Re: [PATCH net-next] qed*: Add support for ethtool link_ksettings callbacks.

2016-08-10 Thread David Miller
From: Sudarsana Reddy Kalluru 
Date: Tue, 9 Aug 2016 03:51:23 -0400

> This patch adds the driver implementation for ethtool link_ksettings
> callbacks. qed driver now defines/uses the qed specific masks for
> representing link capability values. qede driver maps these values to
> to new link modes defined by the kernel implementation of link_ksettings.
> 
> Please consider applying this to 'net-next' branch.
> 
> Signed-off-by: Sudarsana Reddy Kalluru 
> Signed-off-by: Yuval Mintz 

Applied, thanks.


[PATCH net-next] qed*: Add support for ethtool link_ksettings callbacks.

2016-08-09 Thread Sudarsana Reddy Kalluru
This patch adds the driver implementation for ethtool link_ksettings
callbacks. qed driver now defines/uses the qed specific masks for
representing link capability values. qede driver maps these values to
to new link modes defined by the kernel implementation of link_ksettings.

Please consider applying this to 'net-next' branch.

Signed-off-by: Sudarsana Reddy Kalluru 
Signed-off-by: Yuval Mintz 
---
 drivers/net/ethernet/qlogic/qed/qed_main.c  | 107 ++-
 drivers/net/ethernet/qlogic/qed/qed_mcp.c   |   3 +
 drivers/net/ethernet/qlogic/qed/qed_mcp.h   |   7 +-
 drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 132 ++--
 include/linux/qed/qed_if.h  |  15 +++
 5 files changed, 180 insertions(+), 84 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c 
b/drivers/net/ethernet/qlogic/qed/qed_main.c
index c7dc34b..d6e1dc5 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_main.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_main.c
@@ -1025,20 +1025,23 @@ static int qed_set_link(struct qed_dev *cdev, struct 
qed_link_params *params)
link_params->speed.autoneg = params->autoneg;
if (params->override_flags & QED_LINK_OVERRIDE_SPEED_ADV_SPEEDS) {
link_params->speed.advertised_speeds = 0;
-   if ((params->adv_speeds & SUPPORTED_1000baseT_Half) ||
-   (params->adv_speeds & SUPPORTED_1000baseT_Full))
+   if ((params->adv_speeds & QED_LM_1000baseT_Half_BIT) ||
+   (params->adv_speeds & QED_LM_1000baseT_Full_BIT))
link_params->speed.advertised_speeds |=
-   NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_1G;
-   if (params->adv_speeds & SUPPORTED_1baseKR_Full)
+   NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_1G;
+   if (params->adv_speeds & QED_LM_1baseKR_Full_BIT)
link_params->speed.advertised_speeds |=
-   NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_10G;
-   if (params->adv_speeds & SUPPORTED_4baseLR4_Full)
+   NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_10G;
+   if (params->adv_speeds & QED_LM_25000baseKR_Full_BIT)
link_params->speed.advertised_speeds |=
-   NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_40G;
-   if (params->adv_speeds & 0)
+   NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_25G;
+   if (params->adv_speeds & QED_LM_4baseLR4_Full_BIT)
link_params->speed.advertised_speeds |=
-   NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_50G;
-   if (params->adv_speeds & 0)
+   NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_40G;
+   if (params->adv_speeds & QED_LM_5baseKR2_Full_BIT)
+   link_params->speed.advertised_speeds |=
+   NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_50G;
+   if (params->adv_speeds & QED_LM_10baseKR4_Full_BIT)
link_params->speed.advertised_speeds |=
NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_BB_100G;
}
@@ -1168,50 +1171,56 @@ static void qed_fill_link(struct qed_hwfn *hwfn,
if_link->link_up = true;
 
/* TODO - at the moment assume supported and advertised speed equal */
-   if_link->supported_caps = SUPPORTED_FIBRE;
+   if_link->supported_caps = QED_LM_FIBRE_BIT;
if (params.speed.autoneg)
-   if_link->supported_caps |= SUPPORTED_Autoneg;
+   if_link->supported_caps |= QED_LM_Autoneg_BIT;
if (params.pause.autoneg ||
(params.pause.forced_rx && params.pause.forced_tx))
-   if_link->supported_caps |= SUPPORTED_Asym_Pause;
+   if_link->supported_caps |= QED_LM_Asym_Pause_BIT;
if (params.pause.autoneg || params.pause.forced_rx ||
params.pause.forced_tx)
-   if_link->supported_caps |= SUPPORTED_Pause;
+   if_link->supported_caps |= QED_LM_Pause_BIT;
 
if_link->advertised_caps = if_link->supported_caps;
if (params.speed.advertised_speeds &
NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_1G)
-   if_link->advertised_caps |= SUPPORTED_1000baseT_Half |
-  SUPPORTED_1000baseT_Full;
+   if_link->advertised_caps |= QED_LM_1000baseT_Half_BIT |
+   QED_LM_1000baseT_Full_BIT;
if (params.speed.advertised_speeds &
NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_10G)
-   if_link->advertised_caps |= SUPPORTED_1baseKR_Full;
+   if_link->advertised_caps |= QED_LM_1baseKR_Full_BIT;
+   if (params.speed.advertised_speeds &
+