i40e: Add ablitity to enable/disable link from set_link_restart_an
The ability is already there in the fw and this will make it easy to toggle link without calling set_phy_config when no other link settings need to change. Change-ID: I185567ae81776382ac145247e4eb1ee95f22382c Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
c571ea05a0
commit
1ac978af7c
|
@ -971,12 +971,14 @@ i40e_status i40e_aq_clear_pxe_mode(struct i40e_hw *hw,
|
|||
/**
|
||||
* i40e_aq_set_link_restart_an
|
||||
* @hw: pointer to the hw struct
|
||||
* @enable_link: if true: enable link, if false: disable link
|
||||
* @cmd_details: pointer to command details structure or NULL
|
||||
*
|
||||
* Sets up the link and restarts the Auto-Negotiation over the link.
|
||||
**/
|
||||
i40e_status i40e_aq_set_link_restart_an(struct i40e_hw *hw,
|
||||
struct i40e_asq_cmd_details *cmd_details)
|
||||
bool enable_link,
|
||||
struct i40e_asq_cmd_details *cmd_details)
|
||||
{
|
||||
struct i40e_aq_desc desc;
|
||||
struct i40e_aqc_set_link_restart_an *cmd =
|
||||
|
@ -987,6 +989,10 @@ i40e_status i40e_aq_set_link_restart_an(struct i40e_hw *hw,
|
|||
i40e_aqc_opc_set_link_restart_an);
|
||||
|
||||
cmd->command = I40E_AQ_PHY_RESTART_AN;
|
||||
if (enable_link)
|
||||
cmd->command |= I40E_AQ_PHY_LINK_ENABLE;
|
||||
else
|
||||
cmd->command &= ~I40E_AQ_PHY_LINK_ENABLE;
|
||||
|
||||
status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details);
|
||||
|
||||
|
|
|
@ -1027,9 +1027,10 @@ static int i40e_nway_reset(struct net_device *netdev)
|
|||
struct i40e_netdev_priv *np = netdev_priv(netdev);
|
||||
struct i40e_pf *pf = np->vsi->back;
|
||||
struct i40e_hw *hw = &pf->hw;
|
||||
bool link_up = hw->phy.link_info.link_info & I40E_AQ_LINK_UP;
|
||||
i40e_status ret = 0;
|
||||
|
||||
ret = i40e_aq_set_link_restart_an(hw, NULL);
|
||||
ret = i40e_aq_set_link_restart_an(hw, link_up, NULL);
|
||||
if (ret) {
|
||||
netdev_info(netdev, "link restart failed, aq_err=%d\n",
|
||||
pf->hw.aq.asq_last_status);
|
||||
|
|
|
@ -77,7 +77,8 @@ i40e_status i40e_aq_set_default_vsi(struct i40e_hw *hw, u16 vsi_id,
|
|||
i40e_status i40e_aq_clear_pxe_mode(struct i40e_hw *hw,
|
||||
struct i40e_asq_cmd_details *cmd_details);
|
||||
i40e_status i40e_aq_set_link_restart_an(struct i40e_hw *hw,
|
||||
struct i40e_asq_cmd_details *cmd_details);
|
||||
bool enable_link,
|
||||
struct i40e_asq_cmd_details *cmd_details);
|
||||
i40e_status i40e_aq_get_link_info(struct i40e_hw *hw,
|
||||
bool enable_lse, struct i40e_link_status *link,
|
||||
struct i40e_asq_cmd_details *cmd_details);
|
||||
|
|
Loading…
Reference in New Issue