qed: add support for link pause configuration.
authorSudarsana Reddy Kalluru <sudarsana.kalluru@qlogic.com>
Fri, 22 Apr 2016 05:41:04 +0000 (08:41 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 Apr 2016 19:59:16 +0000 (15:59 -0400)
The APIs for making this sort of configuration [e.g., via ethtool] are
already present in qede, but the current configuration flow in qed doesn't
respect it.

Signed-off-by: Sudarsana Reddy Kalluru <sudarsana.kalluru@qlogic.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qed/qed_main.c

index d189871..1918b83 100644 (file)
@@ -962,6 +962,20 @@ static int qed_set_link(struct qed_dev *cdev,
        }
        if (params->override_flags & QED_LINK_OVERRIDE_SPEED_FORCED_SPEED)
                link_params->speed.forced_speed = params->forced_speed;
+       if (params->override_flags & QED_LINK_OVERRIDE_PAUSE_CONFIG) {
+               if (params->pause_config & QED_LINK_PAUSE_AUTONEG_ENABLE)
+                       link_params->pause.autoneg = true;
+               else
+                       link_params->pause.autoneg = false;
+               if (params->pause_config & QED_LINK_PAUSE_RX_ENABLE)
+                       link_params->pause.forced_rx = true;
+               else
+                       link_params->pause.forced_rx = false;
+               if (params->pause_config & QED_LINK_PAUSE_TX_ENABLE)
+                       link_params->pause.forced_tx = true;
+               else
+                       link_params->pause.forced_tx = false;
+       }
 
        rc = qed_mcp_set_link(hwfn, ptt, params->link_up);