qed*: Add support for ethtool link_ksettings callbacks.

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 <sudarsana.kalluru@qlogic.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Sudarsana Reddy Kalluru 2016-08-09 03:51:23 -04:00 committed by David S. Miller
parent e27d6cf55e
commit 054c67d1c8
5 changed files with 180 additions and 84 deletions

View file

@ -268,6 +268,21 @@ enum qed_protocol {
QED_PROTOCOL_ISCSI,
};
enum qed_link_mode_bits {
QED_LM_FIBRE_BIT = BIT(0),
QED_LM_Autoneg_BIT = BIT(1),
QED_LM_Asym_Pause_BIT = BIT(2),
QED_LM_Pause_BIT = BIT(3),
QED_LM_1000baseT_Half_BIT = BIT(4),
QED_LM_1000baseT_Full_BIT = BIT(5),
QED_LM_10000baseKR_Full_BIT = BIT(6),
QED_LM_25000baseKR_Full_BIT = BIT(7),
QED_LM_40000baseLR4_Full_BIT = BIT(8),
QED_LM_50000baseKR2_Full_BIT = BIT(9),
QED_LM_100000baseKR4_Full_BIT = BIT(10),
QED_LM_COUNT = 11
};
struct qed_link_params {
bool link_up;