510de5cbe34b49023323130171dd299ba3de23b3
[dpdk.git] / drivers / net / txgbe / base / txgbe_hw.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2015-2020
3  */
4
5 #ifndef _TXGBE_HW_H_
6 #define _TXGBE_HW_H_
7
8 #include "txgbe_type.h"
9
10 s32 txgbe_init_hw(struct txgbe_hw *hw);
11 s32 txgbe_get_mac_addr(struct txgbe_hw *hw, u8 *mac_addr);
12
13 void txgbe_set_lan_id_multi_port(struct txgbe_hw *hw);
14
15 s32 txgbe_set_rar(struct txgbe_hw *hw, u32 index, u8 *addr, u32 vmdq,
16                           u32 enable_addr);
17 s32 txgbe_clear_rar(struct txgbe_hw *hw, u32 index);
18 s32 txgbe_init_rx_addrs(struct txgbe_hw *hw);
19 s32 txgbe_update_mc_addr_list(struct txgbe_hw *hw, u8 *mc_addr_list,
20                                       u32 mc_addr_count,
21                                       txgbe_mc_addr_itr func, bool clear);
22
23 s32 txgbe_validate_mac_addr(u8 *mac_addr);
24
25 s32 txgbe_get_san_mac_addr(struct txgbe_hw *hw, u8 *san_mac_addr);
26 s32 txgbe_set_san_mac_addr(struct txgbe_hw *hw, u8 *san_mac_addr);
27
28 s32 txgbe_init_uta_tables(struct txgbe_hw *hw);
29 s32 txgbe_check_mac_link(struct txgbe_hw *hw,
30                                u32 *speed,
31                                bool *link_up, bool link_up_wait_to_complete);
32
33 void txgbe_clear_tx_pending(struct txgbe_hw *hw);
34
35 s32 txgbe_reset_pipeline_raptor(struct txgbe_hw *hw);
36
37 s32 txgbe_setup_mac_link_multispeed_fiber(struct txgbe_hw *hw,
38                                           u32 speed,
39                                           bool autoneg_wait_to_complete);
40 void txgbe_set_mta(struct txgbe_hw *hw, u8 *mc_addr);
41 s32 txgbe_init_shared_code(struct txgbe_hw *hw);
42 s32 txgbe_set_mac_type(struct txgbe_hw *hw);
43 s32 txgbe_init_ops_pf(struct txgbe_hw *hw);
44 s32 txgbe_get_link_capabilities_raptor(struct txgbe_hw *hw,
45                                       u32 *speed, bool *autoneg);
46 void txgbe_disable_tx_laser_multispeed_fiber(struct txgbe_hw *hw);
47 void txgbe_enable_tx_laser_multispeed_fiber(struct txgbe_hw *hw);
48 void txgbe_flap_tx_laser_multispeed_fiber(struct txgbe_hw *hw);
49 void txgbe_set_hard_rate_select_speed(struct txgbe_hw *hw,
50                                         u32 speed);
51 s32 txgbe_setup_mac_link_smartspeed(struct txgbe_hw *hw,
52                                     u32 speed,
53                                     bool autoneg_wait_to_complete);
54 s32 txgbe_start_mac_link_raptor(struct txgbe_hw *hw,
55                                bool autoneg_wait_to_complete);
56 s32 txgbe_setup_mac_link(struct txgbe_hw *hw, u32 speed,
57                                bool autoneg_wait_to_complete);
58 void txgbe_init_mac_link_ops(struct txgbe_hw *hw);
59 s32 txgbe_reset_hw(struct txgbe_hw *hw);
60 s32 txgbe_init_phy_raptor(struct txgbe_hw *hw);
61 bool txgbe_verify_lesm_fw_enabled_raptor(struct txgbe_hw *hw);
62 #endif /* _TXGBE_HW_H_ */