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()
154 static s32 fm10k_update_vlan_vf(struct fm10k_hw *hw, u32 vid, u8 vsi, bool set) in fm10k_update_vlan_vf() argument
156 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_vlan_vf()
176 return mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_vlan_vf()
187 s32 fm10k_msg_mac_vlan_vf(struct fm10k_hw *hw, u32 **results, in fm10k_msg_mac_vlan_vf() argument
201 ether_addr_copy(hw->mac.perm_addr, perm_addr); in fm10k_msg_mac_vlan_vf()
202 hw->mac.default_vid = vid & (FM10K_VLAN_TABLE_VID_MAX - 1); in fm10k_msg_mac_vlan_vf()
203 hw->mac.vlan_override = !!(vid & FM10K_VLAN_CLEAR); in fm10k_msg_mac_vlan_vf()
214 static s32 fm10k_read_mac_addr_vf(struct fm10k_hw *hw) in fm10k_read_mac_addr_vf() argument
219 base_addr = fm10k_read_reg(hw, FM10K_TDBAL(0)); in fm10k_read_mac_addr_vf()
229 base_addr = fm10k_read_reg(hw, FM10K_TDBAH(0)); in fm10k_read_mac_addr_vf()
239 ether_addr_copy(hw->mac.perm_addr, perm_addr); in fm10k_read_mac_addr_vf()
240 ether_addr_copy(hw->mac.addr, perm_addr); in fm10k_read_mac_addr_vf()
257 static s32 fm10k_update_uc_addr_vf(struct fm10k_hw *hw, u16 glort, in fm10k_update_uc_addr_vf() argument
260 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_uc_addr_vf()
272 if (is_valid_ether_addr(hw->mac.perm_addr) && in fm10k_update_uc_addr_vf()
273 memcmp(hw->mac.perm_addr, mac, ETH_ALEN)) in fm10k_update_uc_addr_vf()
285 return mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_uc_addr_vf()
299 static s32 fm10k_update_mc_addr_vf(struct fm10k_hw *hw, u16 glort, in fm10k_update_mc_addr_vf() argument
302 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_mc_addr_vf()
323 return mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_mc_addr_vf()
333 static void fm10k_update_int_moderator_vf(struct fm10k_hw *hw) in fm10k_update_int_moderator_vf() argument
335 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_int_moderator_vf()
342 mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_int_moderator_vf()
362 s32 fm10k_msg_lport_state_vf(struct fm10k_hw *hw, u32 **results, in fm10k_msg_lport_state_vf() argument
365 hw->mac.dglort_map = !results[FM10K_LPORT_STATE_MSG_READY] ? in fm10k_msg_lport_state_vf()
382 static s32 fm10k_update_lport_state_vf(struct fm10k_hw *hw, u16 glort, in fm10k_update_lport_state_vf() argument
385 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_lport_state_vf()
389 hw->mac.dglort_map = FM10K_DGLORTMAP_NONE; in fm10k_update_lport_state_vf()
397 return mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_lport_state_vf()
410 static s32 fm10k_update_xcast_mode_vf(struct fm10k_hw *hw, u16 glort, u8 mode) in fm10k_update_xcast_mode_vf() argument
412 struct fm10k_mbx_info *mbx = &hw->mbx; in fm10k_update_xcast_mode_vf()
422 return mbx->ops.enqueue_tx(hw, mbx, msg); in fm10k_update_xcast_mode_vf()
439 static void fm10k_update_hw_stats_vf(struct fm10k_hw *hw, in fm10k_update_hw_stats_vf() argument
442 fm10k_update_hw_stats_q(hw, stats->q, 0, hw->mac.max_queues); in fm10k_update_hw_stats_vf()
452 static void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw, in fm10k_rebind_hw_stats_vf() argument
456 fm10k_unbind_hw_stats_q(stats->q, 0, hw->mac.max_queues); in fm10k_rebind_hw_stats_vf()
459 fm10k_update_hw_stats_vf(hw, stats); in fm10k_rebind_hw_stats_vf()
471 static s32 fm10k_configure_dglort_map_vf(struct fm10k_hw *hw, in fm10k_configure_dglort_map_vf() argument
494 static s32 fm10k_adjust_systime_vf(struct fm10k_hw *hw, s32 ppb) in fm10k_adjust_systime_vf() argument
514 static u64 fm10k_read_systime_vf(struct fm10k_hw *hw) in fm10k_read_systime_vf() argument
518 systime_h = fm10k_read_reg(hw, FM10K_VFSYSTIME + 1); in fm10k_read_systime_vf()
522 systime_l = fm10k_read_reg(hw, FM10K_VFSYSTIME); in fm10k_read_systime_vf()
523 systime_h = fm10k_read_reg(hw, FM10K_VFSYSTIME + 1); in fm10k_read_systime_vf()
557 static s32 fm10k_get_invariants_vf(struct fm10k_hw *hw) in fm10k_get_invariants_vf() argument
559 fm10k_get_invariants_generic(hw); in fm10k_get_invariants_vf()
561 return fm10k_pfvf_mbx_init(hw, &hw->mbx, fm10k_msg_data_vf, 0); in fm10k_get_invariants_vf()