mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-27 04:54:41 +08:00
d775155a86
The ice_sriov.c file primarily contains code which handles the logic for mailbox overflow detection and some other utility functions related to the virtualization mailbox. The bulk of the SR-IOV implementation is actually found in ice_virtchnl_pf.c, and this file isn't strictly SR-IOV specific. In the future, the ice driver will support an additional virtualization scheme known as Scalable IOV, and the code in this file will be used for this alternative implementation. Rename this file (and its associated header) to ice_vf_mbx.c, so that we can later re-use the ice_sriov.c file as the SR-IOV specific file. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
53 lines
1.6 KiB
C
53 lines
1.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Copyright (c) 2018, Intel Corporation. */
|
|
|
|
#ifndef _ICE_VF_MBX_H_
|
|
#define _ICE_VF_MBX_H_
|
|
|
|
#include "ice_type.h"
|
|
#include "ice_controlq.h"
|
|
|
|
/* Defining the mailbox message threshold as 63 asynchronous
|
|
* pending messages. Normal VF functionality does not require
|
|
* sending more than 63 asynchronous pending message.
|
|
*/
|
|
#define ICE_ASYNC_VF_MSG_THRESHOLD 63
|
|
|
|
#ifdef CONFIG_PCI_IOV
|
|
int
|
|
ice_aq_send_msg_to_vf(struct ice_hw *hw, u16 vfid, u32 v_opcode, u32 v_retval,
|
|
u8 *msg, u16 msglen, struct ice_sq_cd *cd);
|
|
|
|
u32 ice_conv_link_speed_to_virtchnl(bool adv_link_support, u16 link_speed);
|
|
int
|
|
ice_mbx_vf_state_handler(struct ice_hw *hw, struct ice_mbx_data *mbx_data,
|
|
u16 vf_id, bool *is_mal_vf);
|
|
int
|
|
ice_mbx_clear_malvf(struct ice_mbx_snapshot *snap, unsigned long *all_malvfs,
|
|
u16 bitmap_len, u16 vf_id);
|
|
int ice_mbx_init_snapshot(struct ice_hw *hw, u16 vf_count);
|
|
void ice_mbx_deinit_snapshot(struct ice_hw *hw);
|
|
int
|
|
ice_mbx_report_malvf(struct ice_hw *hw, unsigned long *all_malvfs,
|
|
u16 bitmap_len, u16 vf_id, bool *report_malvf);
|
|
#else /* CONFIG_PCI_IOV */
|
|
static inline int
|
|
ice_aq_send_msg_to_vf(struct ice_hw __always_unused *hw,
|
|
u16 __always_unused vfid, u32 __always_unused v_opcode,
|
|
u32 __always_unused v_retval, u8 __always_unused *msg,
|
|
u16 __always_unused msglen,
|
|
struct ice_sq_cd __always_unused *cd)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline u32
|
|
ice_conv_link_speed_to_virtchnl(bool __always_unused adv_link_support,
|
|
u16 __always_unused link_speed)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
#endif /* CONFIG_PCI_IOV */
|
|
#endif /* _ICE_VF_MBX_H_ */
|