linux/drivers/net/ethernet/marvell/octeon_ep/octep_pfvf_mbox.h

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

#ifndef _OCTEP_PFVF_MBOX_H_
#define _OCTEP_PFVF_MBOX_H_

/* VF flags */
#define OCTEON_PFVF_FLAG_MAC_SET_BY_PF
#define OCTEON_SDP_16K_HW_FRS
#define OCTEON_SDP_64K_HW_FRS

/* When a new command is implemented,PF 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_mbox_state {};

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_MS
#define OCTEP_PFVF_MBOX_MAX_RETRIES
#define OCTEP_PFVF_MBOX_MAX_DATA_SIZE
#define OCTEP_PFVF_MBOX_MORE_FRAG_FLAG
#define OCTEP_PFVF_MBOX_WRITE_WAIT_TIME

octep_pfvf_mbox_word __packed;

void octep_pfvf_mbox_work(struct work_struct *work);
int octep_setup_pfvf_mbox(struct octep_device *oct);
void octep_delete_pfvf_mbox(struct octep_device *oct);
void octep_pfvf_notify(struct octep_device *oct, struct octep_ctrl_mbox_msg *msg);
#endif