1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* Copyright (c) 2018, Intel Corporation. */ |
3 | |
4 | #ifndef _ICE_VF_MBX_H_ |
5 | #define _ICE_VF_MBX_H_ |
6 | |
7 | #include "ice_type.h" |
8 | #include "ice_controlq.h" |
9 | |
10 | /* Defining the mailbox message threshold as 63 asynchronous |
11 | * pending messages. Normal VF functionality does not require |
12 | * sending more than 63 asynchronous pending message. |
13 | */ |
14 | #define ICE_ASYNC_VF_MSG_THRESHOLD 63 |
15 | |
16 | #ifdef CONFIG_PCI_IOV |
17 | int |
18 | ice_aq_send_msg_to_vf(struct ice_hw *hw, u16 vfid, u32 v_opcode, u32 v_retval, |
19 | u8 *msg, u16 msglen, struct ice_sq_cd *cd); |
20 | |
21 | u32 ice_conv_link_speed_to_virtchnl(bool adv_link_support, u16 link_speed); |
22 | int |
23 | ice_mbx_vf_state_handler(struct ice_hw *hw, struct ice_mbx_data *mbx_data, |
24 | struct ice_mbx_vf_info *vf_info, bool *report_malvf); |
25 | void ice_mbx_clear_malvf(struct ice_mbx_vf_info *vf_info); |
26 | void ice_mbx_init_vf_info(struct ice_hw *hw, struct ice_mbx_vf_info *vf_info); |
27 | void ice_mbx_init_snapshot(struct ice_hw *hw); |
28 | #else /* CONFIG_PCI_IOV */ |
29 | static inline int |
30 | ice_aq_send_msg_to_vf(struct ice_hw __always_unused *hw, |
31 | u16 __always_unused vfid, u32 __always_unused v_opcode, |
32 | u32 __always_unused v_retval, u8 __always_unused *msg, |
33 | u16 __always_unused msglen, |
34 | struct ice_sq_cd __always_unused *cd) |
35 | { |
36 | return 0; |
37 | } |
38 | |
39 | static inline u32 |
40 | ice_conv_link_speed_to_virtchnl(bool __always_unused adv_link_support, |
41 | u16 __always_unused link_speed) |
42 | { |
43 | return 0; |
44 | } |
45 | |
46 | static inline void ice_mbx_init_snapshot(struct ice_hw *hw) |
47 | { |
48 | } |
49 | |
50 | #endif /* CONFIG_PCI_IOV */ |
51 | #endif /* _ICE_VF_MBX_H_ */ |
52 | |