diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-5.15/9040-amd-xgbe-10G-RJ45-support-on-Fox-platform.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-5.15/9040-amd-xgbe-10G-RJ45-support-on-Fox-platform.patch | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-5.15/9040-amd-xgbe-10G-RJ45-support-on-Fox-platform.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-5.15/9040-amd-xgbe-10G-RJ45-support-on-Fox-platform.patch new file mode 100644 index 00000000..6832c8a7 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-5.15/9040-amd-xgbe-10G-RJ45-support-on-Fox-platform.patch @@ -0,0 +1,80 @@ +From 2ff6dbdea17875299b17860ca24d962ac2381078 Mon Sep 17 00:00:00 2001 +From: Raju Rangoju <Raju.Rangoju@amd.com> +Date: Wed, 9 Mar 2022 18:31:55 +0530 +Subject: [PATCH 40/48] amd-xgbe: 10G RJ45 support on Fox platform + +Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com> +Signed-off-by: Sudheesh Mavila <sudheesh.mavila@amd.com> +Signed-off-by: rgaridap <Ramesh.Garidapuri@amd.com> +Change-Id: Ibe5beafb5dbdd2a2fc822bc3b610f82fc4c9157d +--- + drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +index df7d326616fb..1a56a52e0079 100644 +--- a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c ++++ b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +@@ -1817,6 +1817,11 @@ static void xgbe_phy_an_advertising(struct xgbe_prv_data *pdata, + if (phy_data->phydev && + (phy_data->phydev->speed == SPEED_10000)) + XGBE_SET_ADV(dlks, 10000baseKR_Full); ++ else if (phy_data->phydev && ++ (phy_data->phydev->speed == SPEED_2500)) { ++ netif_dbg(pdata, link, pdata->netdev, "advertising 2.5G speed\n"); ++ XGBE_SET_ADV(dlks, 2500baseX_Full); ++ } + else + XGBE_SET_ADV(dlks, 1000baseKX_Full); + break; +@@ -2200,6 +2205,7 @@ static enum xgbe_mode xgbe_phy_switch_baset_mode(struct xgbe_prv_data *pdata) + switch (xgbe_phy_cur_mode(pdata)) { + case XGBE_MODE_SGMII_100: + case XGBE_MODE_SGMII_1000: ++ case XGBE_MODE_KX_2500: + return XGBE_MODE_KR; + case XGBE_MODE_KR: + default: +@@ -2541,7 +2547,8 @@ static bool xgbe_phy_valid_speed_baset_mode(struct xgbe_phy_data *phy_data, + case SPEED_1000: + return true; + case SPEED_2500: +- return (phy_data->port_mode == XGBE_PORT_MODE_NBASE_T); ++ return ((phy_data->port_mode == XGBE_PORT_MODE_10GBASE_T) || ++ (phy_data->port_mode == XGBE_PORT_MODE_NBASE_T)); + case SPEED_10000: + return (phy_data->port_mode == XGBE_PORT_MODE_10GBASE_T); + default: +@@ -2906,6 +2913,7 @@ static bool xgbe_phy_port_mode_mismatch(struct xgbe_prv_data *pdata) + case XGBE_PORT_MODE_10GBASE_T: + if ((phy_data->port_speeds & XGBE_PHY_PORT_SPEED_100) || + (phy_data->port_speeds & XGBE_PHY_PORT_SPEED_1000) || ++ (phy_data->port_speeds & XGBE_PHY_PORT_SPEED_2500) || + (phy_data->port_speeds & XGBE_PHY_PORT_SPEED_10000)) + return false; + break; +@@ -3331,7 +3339,8 @@ static int xgbe_phy_init(struct xgbe_prv_data *pdata) + + /* 10GBase-T support */ + case XGBE_PORT_MODE_10GBASE_T: +- XGBE_SET_SUP(lks, Autoneg); ++ //XGBE_SET_SUP(lks, Autoneg); ++ dev_dbg(pdata->dev, "port mode: 10GBase-T\n"); + XGBE_SET_SUP(lks, Pause); + XGBE_SET_SUP(lks, Asym_Pause); + XGBE_SET_SUP(lks, TP); +@@ -3343,6 +3352,11 @@ static int xgbe_phy_init(struct xgbe_prv_data *pdata) + XGBE_SET_SUP(lks, 1000baseT_Full); + phy_data->start_mode = XGBE_MODE_SGMII_1000; + } ++ if (phy_data->port_speeds & XGBE_PHY_PORT_SPEED_2500) { ++ dev_dbg(pdata->dev, "setting 2.5G support\n"); ++ XGBE_SET_SUP(lks, 2500baseT_Full); ++ phy_data->start_mode = XGBE_MODE_KX_2500; ++ } + if (phy_data->port_speeds & XGBE_PHY_PORT_SPEED_10000) { + XGBE_SET_SUP(lks, 10000baseT_Full); + phy_data->start_mode = XGBE_MODE_KR; +-- +2.27.0 + |