Lines Matching refs:hw
28 static s32 fm10k_stop_hw_vf(struct fm10k_hw *hw) in fm10k_stop_hw_vf() argument
30 u8 *perm_addr = hw->mac.perm_addr; in fm10k_stop_hw_vf()
36 err = fm10k_stop_hw_generic(hw); in fm10k_stop_hw_vf()
54 for (i = 0; i < hw->mac.max_queues; i++) { in fm10k_stop_hw_vf()
55 fm10k_write_reg(hw, FM10K_TDBAL(i), bal); in fm10k_stop_hw_vf()
56 fm10k_write_reg(hw, FM10K_TDBAH(i), bah); in fm10k_stop_hw_vf()
57 fm10k_write_reg(hw, FM10K_RDBAL(i), bal); in fm10k_stop_hw_vf()
58 fm10k_write_reg(hw, FM10K_RDBAH(i), bah); in fm10k_stop_hw_vf()
71 static s32 fm10k_reset_hw_vf(struct fm10k_hw *hw) in fm10k_reset_hw_vf() argument
76 err = fm10k_stop_hw_vf(hw); in fm10k_reset_hw_vf()
81 fm10k_write_reg(hw, FM10K_VFCTRL, FM10K_VFCTRL_RST); in fm10k_reset_hw_vf()
84 fm10k_write_flush(hw); in fm10k_reset_hw_vf()
88 fm10k_write_reg(hw, FM10K_VFCTRL, 0); in fm10k_reset_hw_vf()
89 if (fm10k_read_reg(hw, FM10K_VFCTRL) & FM10K_VFCTRL_RST) in fm10k_reset_hw_vf()
100 static s32 fm10k_init_hw_vf(struct fm10k_hw *hw) in fm10k_init_hw_vf() argument
102 u32 tqdloc, tqdloc0 = ~fm10k_read_reg(hw, FM10K_TQDLOC(0)); in fm10k_init_hw_vf()
109 tqdloc = ~fm10k_read_reg(hw, FM10K_TQDLOC(i)); in fm10k_init_hw_vf()
114 if (!~fm10k_read_reg(hw, FM10K_TXQCTL(i)) || in fm10k_init_hw_vf()
115 !~fm10k_read_reg(hw, FM10K_RXQCTL(i))) in fm10k_init_hw_vf()
120 err = fm10k_disable_queues_generic(hw, i); in fm10k_init_hw_vf()
125 hw->mac.max_queues = i; in fm10k_init_hw_vf()
128 hw->mac.default_vid = (fm10k_read_reg(hw, FM10K_TXQCTL(0)) & in fm10k_init_hw_vf()
142 static bool fm10k_is_slot_appropriate_vf(struct fm10k_hw *hw) in fm10k_is_slot_appropriate_vf() argument
167 static s32 fm10k_update_vlan_vf(struct fm10k_hw *hw, u32 vid, u8 vsi, bool set) in fm10k_update_vlan_vf() argument
169 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_vlan_vf()
189 return mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_vlan_vf()
200 s32 fm10k_msg_mac_vlan_vf(struct fm10k_hw *hw, u32 **results, in fm10k_msg_mac_vlan_vf() argument
214 ether_addr_copy(hw->mac.perm_addr, perm_addr); in fm10k_msg_mac_vlan_vf()
215 hw->mac.default_vid = vid & (FM10K_VLAN_TABLE_VID_MAX - 1); in fm10k_msg_mac_vlan_vf()
216 hw->mac.vlan_override = !!(vid & FM10K_VLAN_CLEAR); in fm10k_msg_mac_vlan_vf()
227 static s32 fm10k_read_mac_addr_vf(struct fm10k_hw *hw) in fm10k_read_mac_addr_vf() argument
232 base_addr = fm10k_read_reg(hw, FM10K_TDBAL(0)); in fm10k_read_mac_addr_vf()
242 base_addr = fm10k_read_reg(hw, FM10K_TDBAH(0)); in fm10k_read_mac_addr_vf()
252 ether_addr_copy(hw->mac.perm_addr, perm_addr); in fm10k_read_mac_addr_vf()
253 ether_addr_copy(hw->mac.addr, perm_addr); in fm10k_read_mac_addr_vf()
270 static s32 fm10k_update_uc_addr_vf(struct fm10k_hw *hw, u16 glort, in fm10k_update_uc_addr_vf() argument
273 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_uc_addr_vf()
285 if (is_valid_ether_addr(hw->mac.perm_addr) && in fm10k_update_uc_addr_vf()
286 memcmp(hw->mac.perm_addr, mac, ETH_ALEN)) in fm10k_update_uc_addr_vf()
298 return mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_uc_addr_vf()
312 static s32 fm10k_update_mc_addr_vf(struct fm10k_hw *hw, u16 glort, in fm10k_update_mc_addr_vf() argument
315 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_mc_addr_vf()
336 return mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_mc_addr_vf()
346 static void fm10k_update_int_moderator_vf(struct fm10k_hw *hw) in fm10k_update_int_moderator_vf() argument
348 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_int_moderator_vf()
355 mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_int_moderator_vf()
375 s32 fm10k_msg_lport_state_vf(struct fm10k_hw *hw, u32 **results, in fm10k_msg_lport_state_vf() argument
378 hw->mac.dglort_map = !results[FM10K_LPORT_STATE_MSG_READY] ? in fm10k_msg_lport_state_vf()
395 static s32 fm10k_update_lport_state_vf(struct fm10k_hw *hw, u16 glort, in fm10k_update_lport_state_vf() argument
398 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_lport_state_vf()
402 hw->mac.dglort_map = FM10K_DGLORTMAP_NONE; in fm10k_update_lport_state_vf()
410 return mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_lport_state_vf()
423 static s32 fm10k_update_xcast_mode_vf(struct fm10k_hw *hw, u16 glort, u8 mode) in fm10k_update_xcast_mode_vf() argument
425 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_xcast_mode_vf()
435 return mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_xcast_mode_vf()
452 static void fm10k_update_hw_stats_vf(struct fm10k_hw *hw, in fm10k_update_hw_stats_vf() argument
455 fm10k_update_hw_stats_q(hw, stats->q, 0, hw->mac.max_queues); in fm10k_update_hw_stats_vf()
465 static void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw, in fm10k_rebind_hw_stats_vf() argument
469 fm10k_unbind_hw_stats_q(stats->q, 0, hw->mac.max_queues); in fm10k_rebind_hw_stats_vf()
472 fm10k_update_hw_stats_vf(hw, stats); in fm10k_rebind_hw_stats_vf()
484 static s32 fm10k_configure_dglort_map_vf(struct fm10k_hw *hw, in fm10k_configure_dglort_map_vf() argument
507 static s32 fm10k_adjust_systime_vf(struct fm10k_hw *hw, s32 ppb) in fm10k_adjust_systime_vf() argument
527 static u64 fm10k_read_systime_vf(struct fm10k_hw *hw) in fm10k_read_systime_vf() argument
531 systime_h = fm10k_read_reg(hw, FM10K_VFSYSTIME + 1); in fm10k_read_systime_vf()
535 systime_l = fm10k_read_reg(hw, FM10K_VFSYSTIME); in fm10k_read_systime_vf()
536 systime_h = fm10k_read_reg(hw, FM10K_VFSYSTIME + 1); in fm10k_read_systime_vf()
571 static s32 fm10k_get_invariants_vf(struct fm10k_hw *hw) in fm10k_get_invariants_vf() argument
573 fm10k_get_invariants_generic(hw); in fm10k_get_invariants_vf()
575 return fm10k_pfvf_mbx_init(hw, &hw->mbx, fm10k_msg_data_vf, 0); in fm10k_get_invariants_vf()