The driver has some missing functionality when operating in the mode that
supports 2.5GbE.  Fix the driver to fully recognize and support this speed.

Signed-off-by: Tom Lendacky <thomas.lenda...@amd.com>
---
 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c 
b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
index 756e116..b8be62e 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
@@ -1966,6 +1966,8 @@ static enum xgbe_mode xgbe_phy_get_baset_mode(struct 
xgbe_phy_data *phy_data,
                return XGBE_MODE_SGMII_100;
        case SPEED_1000:
                return XGBE_MODE_SGMII_1000;
+       case SPEED_2500:
+               return XGBE_MODE_KX_2500;
        case SPEED_10000:
                return XGBE_MODE_KR;
        default:
@@ -2109,6 +2111,9 @@ static bool xgbe_phy_use_baset_mode(struct xgbe_prv_data 
*pdata,
        case XGBE_MODE_SGMII_1000:
                return xgbe_phy_check_mode(pdata, mode,
                                           ADVERTISED_1000baseT_Full);
+       case XGBE_MODE_KX_2500:
+               return xgbe_phy_check_mode(pdata, mode,
+                                          ADVERTISED_2500baseX_Full);
        case XGBE_MODE_KR:
                return xgbe_phy_check_mode(pdata, mode,
                                           ADVERTISED_10000baseT_Full);
@@ -2218,6 +2223,8 @@ static bool xgbe_phy_valid_speed_baset_mode(struct 
xgbe_phy_data *phy_data,
        case SPEED_100:
        case SPEED_1000:
                return true;
+       case SPEED_2500:
+               return (phy_data->port_mode == XGBE_PORT_MODE_NBASE_T);
        case SPEED_10000:
                return (phy_data->port_mode == XGBE_PORT_MODE_10GBASE_T);
        default:

Reply via email to