ixgbe: Add link management support for E610 device
Add low level link management support for E610 device. Link management operations are handled via the Admin Command Interface. Add the following link management operations: - get link capabilities - set up link - get media type - get link status, link status events - link power management Co-developed-by: Stefan Wegrzyn <stefan.wegrzyn@intel.com> Signed-off-by: Stefan Wegrzyn <stefan.wegrzyn@intel.com> Co-developed-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com> Reviewed-by: Jan Glaza <jan.glaza@intel.com> Tested-by: Bharath R <bharath.r@intel.com> Signed-off-by: Piotr Kwapulinski <piotr.kwapulinski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
parent
7c3aa0fccb
commit
23c0e5a16b
3 changed files with 1114 additions and 0 deletions
File diff suppressed because it is too large
Load diff
|
@ -27,5 +27,37 @@ int ixgbe_aci_get_phy_caps(struct ixgbe_hw *hw, bool qual_mods, u8 report_mode,
|
|||
struct ixgbe_aci_cmd_get_phy_caps_data *pcaps);
|
||||
void ixgbe_copy_phy_caps_to_cfg(struct ixgbe_aci_cmd_get_phy_caps_data *caps,
|
||||
struct ixgbe_aci_cmd_set_phy_cfg_data *cfg);
|
||||
int ixgbe_aci_set_phy_cfg(struct ixgbe_hw *hw,
|
||||
struct ixgbe_aci_cmd_set_phy_cfg_data *cfg);
|
||||
int ixgbe_aci_set_link_restart_an(struct ixgbe_hw *hw, bool ena_link);
|
||||
int ixgbe_update_link_info(struct ixgbe_hw *hw);
|
||||
int ixgbe_get_link_status(struct ixgbe_hw *hw, bool *link_up);
|
||||
int ixgbe_aci_get_link_info(struct ixgbe_hw *hw, bool ena_lse,
|
||||
struct ixgbe_link_status *link);
|
||||
int ixgbe_aci_set_event_mask(struct ixgbe_hw *hw, u8 port_num, u16 mask);
|
||||
int ixgbe_configure_lse(struct ixgbe_hw *hw, bool activate, u16 mask);
|
||||
enum ixgbe_media_type ixgbe_get_media_type_e610(struct ixgbe_hw *hw);
|
||||
int ixgbe_setup_link_e610(struct ixgbe_hw *hw, ixgbe_link_speed speed,
|
||||
bool autoneg_wait);
|
||||
int ixgbe_check_link_e610(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
|
||||
bool *link_up, bool link_up_wait_to_complete);
|
||||
int ixgbe_get_link_capabilities_e610(struct ixgbe_hw *hw,
|
||||
ixgbe_link_speed *speed,
|
||||
bool *autoneg);
|
||||
int ixgbe_cfg_phy_fc(struct ixgbe_hw *hw,
|
||||
struct ixgbe_aci_cmd_set_phy_cfg_data *cfg,
|
||||
enum ixgbe_fc_mode req_mode);
|
||||
int ixgbe_setup_fc_e610(struct ixgbe_hw *hw);
|
||||
void ixgbe_fc_autoneg_e610(struct ixgbe_hw *hw);
|
||||
void ixgbe_disable_rx_e610(struct ixgbe_hw *hw);
|
||||
int ixgbe_init_phy_ops_e610(struct ixgbe_hw *hw);
|
||||
int ixgbe_identify_phy_e610(struct ixgbe_hw *hw);
|
||||
int ixgbe_identify_module_e610(struct ixgbe_hw *hw);
|
||||
int ixgbe_setup_phy_link_e610(struct ixgbe_hw *hw);
|
||||
int ixgbe_set_phy_power_e610(struct ixgbe_hw *hw, bool on);
|
||||
int ixgbe_enter_lplu_e610(struct ixgbe_hw *hw);
|
||||
int ixgbe_aci_get_netlist_node(struct ixgbe_hw *hw,
|
||||
struct ixgbe_aci_cmd_get_link_topo *cmd,
|
||||
u8 *node_part_number, u16 *node_handle);
|
||||
|
||||
#endif /* _IXGBE_E610_H_ */
|
||||
|
|
|
@ -652,6 +652,7 @@ struct ixgbe_aci_cmd_link_topo_params {
|
|||
#define IXGBE_ACI_LINK_TOPO_NODE_TYPE_CLK_MUX 10
|
||||
#define IXGBE_ACI_LINK_TOPO_NODE_TYPE_GPS 11
|
||||
#define IXGBE_ACI_LINK_TOPO_NODE_CTX_S 4
|
||||
#define IXGBE_ACI_LINK_TOPO_NODE_CTX_M GENMASK(7, 4)
|
||||
#define IXGBE_ACI_LINK_TOPO_NODE_CTX_GLOBAL 0
|
||||
#define IXGBE_ACI_LINK_TOPO_NODE_CTX_BOARD 1
|
||||
#define IXGBE_ACI_LINK_TOPO_NODE_CTX_PORT 2
|
||||
|
|
Loading…
Add table
Reference in a new issue