bnxt_en: Set backplane link modes correctly for ethtool
Use the return value from bnxt_get_media() to determine the port and
link modes. bnxt_get_media() returns the proper BNXT_MEDIA_KR when
the PHY is backplane. This will correct the ethtool settings for
backplane devices.
Fixes: 5d4e1bf606 ("bnxt_en: extend media types to supported and autoneg modes")
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Shravya KN <shravya.k-n@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
pull/1097/head
parent
5311598f7f
commit
5007991670
|
|
@ -2837,19 +2837,24 @@ static int bnxt_get_link_ksettings(struct net_device *dev,
|
|||
}
|
||||
|
||||
base->port = PORT_NONE;
|
||||
if (link_info->media_type == PORT_PHY_QCFG_RESP_MEDIA_TYPE_TP) {
|
||||
if (media == BNXT_MEDIA_TP) {
|
||||
base->port = PORT_TP;
|
||||
linkmode_set_bit(ETHTOOL_LINK_MODE_TP_BIT,
|
||||
lk_ksettings->link_modes.supported);
|
||||
linkmode_set_bit(ETHTOOL_LINK_MODE_TP_BIT,
|
||||
lk_ksettings->link_modes.advertising);
|
||||
} else if (media == BNXT_MEDIA_KR) {
|
||||
linkmode_set_bit(ETHTOOL_LINK_MODE_Backplane_BIT,
|
||||
lk_ksettings->link_modes.supported);
|
||||
linkmode_set_bit(ETHTOOL_LINK_MODE_Backplane_BIT,
|
||||
lk_ksettings->link_modes.advertising);
|
||||
} else {
|
||||
linkmode_set_bit(ETHTOOL_LINK_MODE_FIBRE_BIT,
|
||||
lk_ksettings->link_modes.supported);
|
||||
linkmode_set_bit(ETHTOOL_LINK_MODE_FIBRE_BIT,
|
||||
lk_ksettings->link_modes.advertising);
|
||||
|
||||
if (link_info->media_type == PORT_PHY_QCFG_RESP_MEDIA_TYPE_DAC)
|
||||
if (media == BNXT_MEDIA_CR)
|
||||
base->port = PORT_DA;
|
||||
else
|
||||
base->port = PORT_FIBRE;
|
||||
|
|
|
|||
Loading…
Reference in New Issue