linux/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_mbox.h

/* SPDX-License-Identifier: GPL-2.0 */
/* Marvell Octeon EP (EndPoint) Ethernet Driver
 *
 * Copyright (C) 2020 Marvell.
 *
 */
#ifndef _OCTEP_VF_MBOX_H_
#define _OCTEP_VF_MBOX_H_

/* When a new command is implemented, VF Mbox version should be bumped.
 */
enum octep_pfvf_mbox_version {};

#define OCTEP_PFVF_MBOX_VERSION_CURRENT

enum octep_pfvf_mbox_opcode {};

enum octep_pfvf_mbox_word_type {};

enum octep_pfvf_mbox_cmd_status {};

enum octep_pfvf_link_status {};

enum octep_pfvf_link_speed {};

enum octep_pfvf_link_duplex {};

enum octep_pfvf_link_autoneg {};

#define OCTEP_PFVF_MBOX_TIMEOUT_WAIT_COUNT
#define OCTEP_PFVF_MBOX_TIMEOUT_WAIT_UDELAY
#define OCTEP_PFVF_MBOX_MAX_RETRIES
#define OCTEP_PFVF_MBOX_VERSION
#define OCTEP_PFVF_MBOX_MAX_DATA_SIZE
#define OCTEP_PFVF_MBOX_MAX_DATA_BUF_SIZE
#define OCTEP_PFVF_MBOX_MORE_FRAG_FLAG

octep_pfvf_mbox_word __packed;

int octep_vf_setup_mbox(struct octep_vf_device *oct);
void octep_vf_delete_mbox(struct octep_vf_device *oct);
int octep_vf_mbox_send_cmd(struct octep_vf_device *oct, union octep_pfvf_mbox_word cmd,
			   union octep_pfvf_mbox_word *rsp);
int octep_vf_mbox_bulk_read(struct octep_vf_device *oct, enum octep_pfvf_mbox_opcode opcode,
			    u8 *data, int *size);
int octep_vf_mbox_set_mtu(struct octep_vf_device *oct, int mtu);
int octep_vf_mbox_set_mac_addr(struct octep_vf_device *oct, char *mac_addr);
int octep_vf_mbox_get_mac_addr(struct octep_vf_device *oct, char *mac_addr);
int octep_vf_mbox_version_check(struct octep_vf_device *oct);
int octep_vf_mbox_set_rx_state(struct octep_vf_device *oct, bool state);
int octep_vf_mbox_set_link_status(struct octep_vf_device *oct, bool status);
int octep_vf_mbox_get_link_status(struct octep_vf_device *oct, u8 *oper_up);
int octep_vf_mbox_dev_remove(struct octep_vf_device *oct);
int octep_vf_mbox_get_fw_info(struct octep_vf_device *oct);
int octep_vf_mbox_set_offloads(struct octep_vf_device *oct, u16 tx_offloads, u16 rx_offloads);

#endif