Lines Matching refs:vf

119 static void nic_clear_mbx_intr(struct nicpf *nic, int vf, int mbx_reg)  in nic_clear_mbx_intr()  argument
121 nic_reg_write(nic, NIC_PF_MAILBOX_INT + (mbx_reg << 3), BIT_ULL(vf)); in nic_clear_mbx_intr()
124 static u64 nic_get_mbx_addr(int vf) in nic_get_mbx_addr() argument
126 return NIC_PF_VF_0_127_MAILBOX_0_1 + (vf << NIC_VF_NUM_SHIFT); in nic_get_mbx_addr()
133 static void nic_send_msg_to_vf(struct nicpf *nic, int vf, union nic_mbx *mbx) in nic_send_msg_to_vf() argument
135 void __iomem *mbx_addr = nic->reg_base + nic_get_mbx_addr(vf); in nic_send_msg_to_vf()
158 static void nic_mbx_send_ready(struct nicpf *nic, int vf) in nic_mbx_send_ready() argument
165 mbx.nic_cfg.vf_id = vf; in nic_mbx_send_ready()
169 if (vf < nic->num_vf_en) { in nic_mbx_send_ready()
170 bgx_idx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_mbx_send_ready()
171 lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_mbx_send_ready()
177 mbx.nic_cfg.sqs_mode = (vf >= nic->num_vf_en) ? true : false; in nic_mbx_send_ready()
180 mbx.nic_cfg.loopback_supported = vf < nic->num_vf_en; in nic_mbx_send_ready()
182 nic_send_msg_to_vf(nic, vf, &mbx); in nic_mbx_send_ready()
188 static void nic_mbx_send_ack(struct nicpf *nic, int vf) in nic_mbx_send_ack() argument
193 nic_send_msg_to_vf(nic, vf, &mbx); in nic_mbx_send_ack()
200 static void nic_mbx_send_nack(struct nicpf *nic, int vf) in nic_mbx_send_nack() argument
205 nic_send_msg_to_vf(nic, vf, &mbx); in nic_mbx_send_nack()
253 static int nic_update_hw_frs(struct nicpf *nic, int new_frs, int vf) in nic_update_hw_frs() argument
261 bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_update_hw_frs()
262 lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_update_hw_frs()
550 static void nic_send_rss_size(struct nicpf *nic, int vf) in nic_send_rss_size() argument
556 nic_send_msg_to_vf(nic, vf, &mbx); in nic_send_rss_size()
786 int vf, struct reset_stat_cfg *cfg) in nic_reset_stat_counters() argument
794 (vf << NIC_QS_ID_SHIFT) | in nic_reset_stat_counters()
803 (vf << NIC_QS_ID_SHIFT) | in nic_reset_stat_counters()
812 reg_addr = (vf << NIC_QS_ID_SHIFT) | in nic_reset_stat_counters()
827 static void nic_enable_tunnel_parsing(struct nicpf *nic, int vf) in nic_enable_tunnel_parsing() argument
846 static void nic_enable_vf(struct nicpf *nic, int vf, bool enable) in nic_enable_vf() argument
850 nic->vf_enabled[vf] = enable; in nic_enable_vf()
852 if (vf >= nic->num_vf_en) in nic_enable_vf()
855 bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_enable_vf()
856 lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_enable_vf()
861 static void nic_pause_frame(struct nicpf *nic, int vf, struct pfc *cfg) in nic_pause_frame() argument
867 if (vf >= nic->num_vf_en) in nic_pause_frame()
869 bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_pause_frame()
870 lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_pause_frame()
878 nic_send_msg_to_vf(nic, vf, &mbx); in nic_pause_frame()
881 nic_mbx_send_ack(nic, vf); in nic_pause_frame()
886 static void nic_config_timestamp(struct nicpf *nic, int vf, struct set_ptp *ptp) in nic_config_timestamp() argument
892 if (vf >= nic->num_vf_en) in nic_config_timestamp()
895 bgx_idx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_config_timestamp()
896 lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_config_timestamp()
927 static void nic_link_status_get(struct nicpf *nic, u8 vf) in nic_link_status_get() argument
936 bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_link_status_get()
937 lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_link_status_get()
949 nic_send_msg_to_vf(nic, vf, &mbx); in nic_link_status_get()
953 static void nic_handle_mbx_intr(struct nicpf *nic, int vf) in nic_handle_mbx_intr() argument
964 mbx_addr = nic_get_mbx_addr(vf); in nic_handle_mbx_intr()
974 __func__, mbx.msg.msg, vf); in nic_handle_mbx_intr()
977 nic_mbx_send_ready(nic, vf); in nic_handle_mbx_intr()
984 if (vf >= nic->num_vf_en) { in nic_handle_mbx_intr()
987 cfg |= nic->pqs_vf[vf]; in nic_handle_mbx_intr()
1004 nic_enable_tunnel_parsing(nic, vf); in nic_handle_mbx_intr()
1029 if (vf >= nic->num_vf_en) { in nic_handle_mbx_intr()
1046 nic_send_rss_size(nic, vf); in nic_handle_mbx_intr()
1054 nic_enable_vf(nic, vf, true); in nic_handle_mbx_intr()
1058 if (vf >= nic->num_vf_en) in nic_handle_mbx_intr()
1059 nic->sqs_used[vf - nic->num_vf_en] = false; in nic_handle_mbx_intr()
1060 nic->pqs_vf[vf] = 0; in nic_handle_mbx_intr()
1061 nic_enable_vf(nic, vf, false); in nic_handle_mbx_intr()
1067 nic->nicvf[vf] = mbx.nicvf.nicvf; in nic_handle_mbx_intr()
1070 nic_send_pnicvf(nic, vf); in nic_handle_mbx_intr()
1082 ret = nic_reset_stat_counters(nic, vf, &mbx.reset_stat); in nic_handle_mbx_intr()
1085 nic_pause_frame(nic, vf, &mbx.pfc); in nic_handle_mbx_intr()
1088 nic_config_timestamp(nic, vf, &mbx.ptp); in nic_handle_mbx_intr()
1091 if (vf >= nic->num_vf_en) { in nic_handle_mbx_intr()
1095 bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_handle_mbx_intr()
1096 lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_handle_mbx_intr()
1098 vf < NIC_VF_PER_MBX_REG ? vf : in nic_handle_mbx_intr()
1099 vf - NIC_VF_PER_MBX_REG); in nic_handle_mbx_intr()
1103 if (vf >= nic->num_vf_en) { in nic_handle_mbx_intr()
1107 bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_handle_mbx_intr()
1108 lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_handle_mbx_intr()
1111 vf < NIC_VF_PER_MBX_REG ? vf : in nic_handle_mbx_intr()
1112 vf - NIC_VF_PER_MBX_REG); in nic_handle_mbx_intr()
1116 if (vf >= nic->num_vf_en) { in nic_handle_mbx_intr()
1120 bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_handle_mbx_intr()
1121 lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]); in nic_handle_mbx_intr()
1125 if (vf >= nic->num_vf_en) { in nic_handle_mbx_intr()
1129 nic_link_status_get(nic, vf); in nic_handle_mbx_intr()
1133 "Invalid msg from VF%d, msg 0x%x\n", vf, mbx.msg.msg); in nic_handle_mbx_intr()
1138 nic_mbx_send_ack(nic, vf); in nic_handle_mbx_intr()
1141 mbx.msg.msg, vf); in nic_handle_mbx_intr()
1142 nic_mbx_send_nack(nic, vf); in nic_handle_mbx_intr()
1151 u8 vf; in nic_mbx_intr_handler() local
1160 for (vf = 0; vf < NIC_VF_PER_MBX_REG; vf++) { in nic_mbx_intr_handler()
1161 if (intr & (1ULL << vf)) { in nic_mbx_intr_handler()
1163 vf + (mbx * NIC_VF_PER_MBX_REG)); in nic_mbx_intr_handler()
1165 nic_handle_mbx_intr(nic, vf + in nic_mbx_intr_handler()
1167 nic_clear_mbx_intr(nic, vf, mbx); in nic_mbx_intr_handler()