diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0617-Revert-net-ethernet-Use-phy_set_max_speed-to-limit-a.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/0617-Revert-net-ethernet-Use-phy_set_max_speed-to-limit-a.patch | 528 |
1 files changed, 528 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0617-Revert-net-ethernet-Use-phy_set_max_speed-to-limit-a.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0617-Revert-net-ethernet-Use-phy_set_max_speed-to-limit-a.patch new file mode 100644 index 00000000..c6972430 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0617-Revert-net-ethernet-Use-phy_set_max_speed-to-limit-a.patch @@ -0,0 +1,528 @@ +From aa2a600cb050a5dabc79273707ccc6b6462c9322 Mon Sep 17 00:00:00 2001 +From: Sudheesh Mavila <sudheesh.mavila@amd.com> +Date: Mon, 4 Feb 2019 11:49:42 +0530 +Subject: [PATCH 0617/2940] Revert "net: ethernet: Use phy_set_max_speed() to + limit advertised speed" + +This reverts commit cd3615280df4cd745153c4454cc77b7e2f24ba55. +--- + drivers/net/ethernet/8390/ax88796.c | 4 +++- + drivers/net/ethernet/aeroflex/greth.c | 4 ++-- + drivers/net/ethernet/agere/et131x.c | 12 ++++++++++-- + drivers/net/ethernet/allwinner/sun4i-emac.c | 3 ++- + drivers/net/ethernet/altera/altera_tse_main.c | 5 ++++- + drivers/net/ethernet/amd/au1000_eth.c | 12 +++++++++++- + drivers/net/ethernet/broadcom/bcm63xx_enet.c | 10 ++++++++-- + drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 +- + drivers/net/ethernet/broadcom/sb1250-mac.c | 11 +++++++++-- + drivers/net/ethernet/broadcom/tg3.c | 8 ++++---- + drivers/net/ethernet/cadence/macb_main.c | 4 ++-- + drivers/net/ethernet/cortina/gemini.c | 2 +- + drivers/net/ethernet/dnet.c | 4 ++-- + drivers/net/ethernet/ethoc.c | 5 ++++- + drivers/net/ethernet/freescale/fec_main.c | 4 ++-- + drivers/net/ethernet/freescale/ucc_geth.c | 7 ++++++- + drivers/net/ethernet/lantiq_etop.c | 11 +++++++++-- + drivers/net/ethernet/mediatek/mtk_eth_soc.c | 4 ++-- + drivers/net/ethernet/nxp/lpc_eth.c | 3 ++- + drivers/net/ethernet/rdc/r6040.c | 12 ++++++++++-- + drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 4 ++-- + drivers/net/ethernet/smsc/smsc911x.c | 5 ++--- + drivers/net/ethernet/smsc/smsc9420.c | 5 ++--- + drivers/net/ethernet/socionext/sni_ave.c | 6 ++++-- + drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 ++- + drivers/net/ethernet/toshiba/tc35815.c | 2 +- + drivers/net/ethernet/xilinx/xilinx_emaclite.c | 3 ++- + drivers/staging/mt7621-eth/mdio.c | 2 +- + 28 files changed, 110 insertions(+), 47 deletions(-) + +diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c +index 3dcc61821ed5..2a0ddec1dd56 100644 +--- a/drivers/net/ethernet/8390/ax88796.c ++++ b/drivers/net/ethernet/8390/ax88796.c +@@ -377,7 +377,9 @@ static int ax_mii_probe(struct net_device *dev) + return ret; + } + +- phy_set_max_speed(phy_dev, SPEED_100); ++ /* mask with MAC supported features */ ++ phy_dev->supported &= PHY_BASIC_FEATURES; ++ phy_dev->advertising = phy_dev->supported; + + netdev_info(dev, "PHY driver [%s] (mii_bus:phy_addr=%s, irq=%d)\n", + phy_dev->drv->name, phydev_name(phy_dev), phy_dev->irq); +diff --git a/drivers/net/ethernet/aeroflex/greth.c b/drivers/net/ethernet/aeroflex/greth.c +index 7c9348a26cbb..4309be3724ad 100644 +--- a/drivers/net/ethernet/aeroflex/greth.c ++++ b/drivers/net/ethernet/aeroflex/greth.c +@@ -1279,9 +1279,9 @@ static int greth_mdio_probe(struct net_device *dev) + } + + if (greth->gbit_mac) +- phy_set_max_speed(phy, SPEED_1000); ++ phy->supported &= PHY_GBIT_FEATURES; + else +- phy_set_max_speed(phy, SPEED_100); ++ phy->supported &= PHY_BASIC_FEATURES; + + phy->advertising = phy->supported; + +diff --git a/drivers/net/ethernet/agere/et131x.c b/drivers/net/ethernet/agere/et131x.c +index ea34bcb868b5..48220b6c600d 100644 +--- a/drivers/net/ethernet/agere/et131x.c ++++ b/drivers/net/ethernet/agere/et131x.c +@@ -3258,11 +3258,19 @@ static int et131x_mii_probe(struct net_device *netdev) + return PTR_ERR(phydev); + } + +- phy_set_max_speed(phydev, SPEED_100); ++ phydev->supported &= (SUPPORTED_10baseT_Half | ++ SUPPORTED_10baseT_Full | ++ SUPPORTED_100baseT_Half | ++ SUPPORTED_100baseT_Full | ++ SUPPORTED_Autoneg | ++ SUPPORTED_MII | ++ SUPPORTED_TP); + + if (adapter->pdev->device != ET131X_PCI_DEVICE_ID_FAST) +- phy_set_max_speed(phydev, SPEED_1000); ++ phydev->supported |= SUPPORTED_1000baseT_Half | ++ SUPPORTED_1000baseT_Full; + ++ phydev->advertising = phydev->supported; + phydev->autoneg = AUTONEG_ENABLE; + + phy_attached_info(phydev); +diff --git a/drivers/net/ethernet/allwinner/sun4i-emac.c b/drivers/net/ethernet/allwinner/sun4i-emac.c +index e1acafa82214..3143de45baaa 100644 +--- a/drivers/net/ethernet/allwinner/sun4i-emac.c ++++ b/drivers/net/ethernet/allwinner/sun4i-emac.c +@@ -172,7 +172,8 @@ static int emac_mdio_probe(struct net_device *dev) + } + + /* mask with MAC supported features */ +- phy_set_max_speed(phydev, SPEED_100); ++ phydev->supported &= PHY_BASIC_FEATURES; ++ phydev->advertising = phydev->supported; + + db->link = 0; + db->speed = 0; +diff --git a/drivers/net/ethernet/altera/altera_tse_main.c b/drivers/net/ethernet/altera/altera_tse_main.c +index 02921d877c08..baca8f704a45 100644 +--- a/drivers/net/ethernet/altera/altera_tse_main.c ++++ b/drivers/net/ethernet/altera/altera_tse_main.c +@@ -835,10 +835,13 @@ static int init_phy(struct net_device *dev) + } + + /* Stop Advertising 1000BASE Capability if interface is not GMII ++ * Note: Checkpatch throws CHECKs for the camel case defines below, ++ * it's ok to ignore. + */ + if ((priv->phy_iface == PHY_INTERFACE_MODE_MII) || + (priv->phy_iface == PHY_INTERFACE_MODE_RMII)) +- phy_set_max_speed(phydev, SPEED_100); ++ phydev->advertising &= ~(SUPPORTED_1000baseT_Half | ++ SUPPORTED_1000baseT_Full); + + /* Broken HW is sometimes missing the pull-up resistor on the + * MDIO line, which results in reads to non-existent devices returning +diff --git a/drivers/net/ethernet/amd/au1000_eth.c b/drivers/net/ethernet/amd/au1000_eth.c +index 7c1eb304c27e..73ca8879ada7 100644 +--- a/drivers/net/ethernet/amd/au1000_eth.c ++++ b/drivers/net/ethernet/amd/au1000_eth.c +@@ -564,7 +564,17 @@ static int au1000_mii_probe(struct net_device *dev) + return PTR_ERR(phydev); + } + +- phy_set_max_speed(phydev, SPEED_100); ++ /* mask with MAC supported features */ ++ phydev->supported &= (SUPPORTED_10baseT_Half ++ | SUPPORTED_10baseT_Full ++ | SUPPORTED_100baseT_Half ++ | SUPPORTED_100baseT_Full ++ | SUPPORTED_Autoneg ++ /* | SUPPORTED_Pause | SUPPORTED_Asym_Pause */ ++ | SUPPORTED_MII ++ | SUPPORTED_TP); ++ ++ phydev->advertising = phydev->supported; + + aup->old_link = 0; + aup->old_speed = 0; +diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c +index 2eee9459c2cf..897302adc38e 100644 +--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c ++++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c +@@ -890,8 +890,14 @@ static int bcm_enet_open(struct net_device *dev) + } + + /* mask with MAC supported features */ +- phydev->supported |= SUPPORTED_Pause; +- phy_set_max_speed(phydev, SPEED_100); ++ phydev->supported &= (SUPPORTED_10baseT_Half | ++ SUPPORTED_10baseT_Full | ++ SUPPORTED_100baseT_Half | ++ SUPPORTED_100baseT_Full | ++ SUPPORTED_Autoneg | ++ SUPPORTED_Pause | ++ SUPPORTED_MII); ++ phydev->advertising = phydev->supported; + + if (priv->pause_auto && priv->pause_rx && priv->pause_tx) + phydev->advertising |= SUPPORTED_Pause; +diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c +index 21fe15142c25..de0e24d912fe 100644 +--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c ++++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c +@@ -214,7 +214,7 @@ int bcmgenet_mii_config(struct net_device *dev, bool init) + + case PHY_INTERFACE_MODE_MII: + phy_name = "external MII"; +- phy_set_max_speed(phydev, SPEED_100); ++ phydev->supported &= PHY_BASIC_FEATURES; + bcmgenet_sys_writel(priv, + PORT_MODE_EXT_EPHY, SYS_PORT_CTRL); + break; +diff --git a/drivers/net/ethernet/broadcom/sb1250-mac.c b/drivers/net/ethernet/broadcom/sb1250-mac.c +index 4ce4b097ec05..ef4a0c326736 100644 +--- a/drivers/net/ethernet/broadcom/sb1250-mac.c ++++ b/drivers/net/ethernet/broadcom/sb1250-mac.c +@@ -2357,8 +2357,15 @@ static int sbmac_mii_probe(struct net_device *dev) + } + + /* Remove any features not supported by the controller */ +- phy_set_max_speed(phy_dev, SPEED_1000); +- phy_dev->supported |= SUPPORTED_Pause | ++ phy_dev->supported &= SUPPORTED_10baseT_Half | ++ SUPPORTED_10baseT_Full | ++ SUPPORTED_100baseT_Half | ++ SUPPORTED_100baseT_Full | ++ SUPPORTED_1000baseT_Half | ++ SUPPORTED_1000baseT_Full | ++ SUPPORTED_Autoneg | ++ SUPPORTED_MII | ++ SUPPORTED_Pause | + SUPPORTED_Asym_Pause; + + phy_attached_info(phy_dev); +diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c +index 878c9e7aa975..a12962702611 100644 +--- a/drivers/net/ethernet/broadcom/tg3.c ++++ b/drivers/net/ethernet/broadcom/tg3.c +@@ -2122,15 +2122,15 @@ static int tg3_phy_init(struct tg3 *tp) + case PHY_INTERFACE_MODE_GMII: + case PHY_INTERFACE_MODE_RGMII: + if (!(tp->phy_flags & TG3_PHYFLG_10_100_ONLY)) { +- phy_set_max_speed(phydev, SPEED_1000); +- phydev->supported &= (SUPPORTED_Pause | ++ phydev->supported &= (PHY_GBIT_FEATURES | ++ SUPPORTED_Pause | + SUPPORTED_Asym_Pause); + break; + } + /* fallthru */ + case PHY_INTERFACE_MODE_MII: +- phy_set_max_speed(phydev, SPEED_100); +- phydev->supported &= (SUPPORTED_Pause | ++ phydev->supported &= (PHY_BASIC_FEATURES | ++ SUPPORTED_Pause | + SUPPORTED_Asym_Pause); + break; + default: +diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c +index 05ba0a9cbd35..58b9744c4058 100644 +--- a/drivers/net/ethernet/cadence/macb_main.c ++++ b/drivers/net/ethernet/cadence/macb_main.c +@@ -544,9 +544,9 @@ static int macb_mii_probe(struct net_device *dev) + + /* mask with MAC supported features */ + if (macb_is_gem(bp) && bp->caps & MACB_CAPS_GIGABIT_MODE_AVAILABLE) +- phy_set_max_speed(phydev, SPEED_1000); ++ phydev->supported &= PHY_GBIT_FEATURES; + else +- phy_set_max_speed(phydev, SPEED_100); ++ phydev->supported &= PHY_BASIC_FEATURES; + + if (bp->caps & MACB_CAPS_NO_GIGABIT_HALF) + phydev->supported &= ~SUPPORTED_1000baseT_Half; +diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c +index cf7dfd545760..dfd1ad0b1cb9 100644 +--- a/drivers/net/ethernet/cortina/gemini.c ++++ b/drivers/net/ethernet/cortina/gemini.c +@@ -372,7 +372,7 @@ static int gmac_setup_phy(struct net_device *netdev) + return -ENODEV; + netdev->phydev = phy; + +- phy_set_max_speed(phy, SPEED_1000); ++ phy->supported &= PHY_GBIT_FEATURES; + phy->supported |= SUPPORTED_Asym_Pause | SUPPORTED_Pause; + phy->advertising = phy->supported; + +diff --git a/drivers/net/ethernet/dnet.c b/drivers/net/ethernet/dnet.c +index 08b7ad1594ce..5a847941c46b 100644 +--- a/drivers/net/ethernet/dnet.c ++++ b/drivers/net/ethernet/dnet.c +@@ -284,9 +284,9 @@ static int dnet_mii_probe(struct net_device *dev) + + /* mask with MAC supported features */ + if (bp->capabilities & DNET_HAS_GIGABIT) +- phy_set_max_speed(phydev, SPEED_1000); ++ phydev->supported &= PHY_GBIT_FEATURES; + else +- phy_set_max_speed(phydev, SPEED_100); ++ phydev->supported &= PHY_BASIC_FEATURES; + + phydev->supported |= SUPPORTED_Asym_Pause | SUPPORTED_Pause; + +diff --git a/drivers/net/ethernet/ethoc.c b/drivers/net/ethernet/ethoc.c +index 0f3e7f21c6fa..60da0499ad66 100644 +--- a/drivers/net/ethernet/ethoc.c ++++ b/drivers/net/ethernet/ethoc.c +@@ -721,7 +721,10 @@ static int ethoc_mdio_probe(struct net_device *dev) + return err; + } + +- phy_set_max_speed(phy, SPEED_100); ++ phy->advertising &= ~(ADVERTISED_1000baseT_Full | ++ ADVERTISED_1000baseT_Half); ++ phy->supported &= ~(SUPPORTED_1000baseT_Full | ++ SUPPORTED_1000baseT_Half); + + return 0; + } +diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c +index b5c9b79468eb..7b98bb75ba8a 100644 +--- a/drivers/net/ethernet/freescale/fec_main.c ++++ b/drivers/net/ethernet/freescale/fec_main.c +@@ -1948,14 +1948,14 @@ static int fec_enet_mii_probe(struct net_device *ndev) + + /* mask with MAC supported features */ + if (fep->quirks & FEC_QUIRK_HAS_GBIT) { +- phy_set_max_speed(phy_dev, 1000); ++ phy_dev->supported &= PHY_GBIT_FEATURES; + phy_dev->supported &= ~SUPPORTED_1000baseT_Half; + #if !defined(CONFIG_M5272) + phy_dev->supported |= SUPPORTED_Pause; + #endif + } + else +- phy_set_max_speed(phy_dev, 100); ++ phy_dev->supported &= PHY_BASIC_FEATURES; + + phy_dev->advertising = phy_dev->supported; + +diff --git a/drivers/net/ethernet/freescale/ucc_geth.c b/drivers/net/ethernet/freescale/ucc_geth.c +index 9600837f21b8..22a817da861e 100644 +--- a/drivers/net/ethernet/freescale/ucc_geth.c ++++ b/drivers/net/ethernet/freescale/ucc_geth.c +@@ -1742,7 +1742,12 @@ static int init_phy(struct net_device *dev) + if (priv->phy_interface == PHY_INTERFACE_MODE_SGMII) + uec_configure_serdes(dev); + +- phy_set_max_speed(phydev, SPEED_100); ++ phydev->supported &= (SUPPORTED_MII | ++ SUPPORTED_Autoneg | ++ ADVERTISED_10baseT_Half | ++ ADVERTISED_10baseT_Full | ++ ADVERTISED_100baseT_Half | ++ ADVERTISED_100baseT_Full); + + if (priv->max_speed == SPEED_1000) + phydev->supported |= ADVERTISED_1000baseT_Full; +diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c +index 5a7af52d9deb..e08301d833e2 100644 +--- a/drivers/net/ethernet/lantiq_etop.c ++++ b/drivers/net/ethernet/lantiq_etop.c +@@ -365,8 +365,15 @@ ltq_etop_mdio_probe(struct net_device *dev) + return PTR_ERR(phydev); + } + +- phy_set_max_speed(phydev, SPEED_100); +- ++ phydev->supported &= (SUPPORTED_10baseT_Half ++ | SUPPORTED_10baseT_Full ++ | SUPPORTED_100baseT_Half ++ | SUPPORTED_100baseT_Full ++ | SUPPORTED_Autoneg ++ | SUPPORTED_MII ++ | SUPPORTED_TP); ++ ++ phydev->advertising = phydev->supported; + phy_attached_info(phydev); + + return 0; +diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +index c7c4432de543..6e6abdc399de 100644 +--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c ++++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +@@ -359,8 +359,8 @@ static int mtk_phy_connect(struct net_device *dev) + dev->phydev->supported |= + SUPPORTED_Pause | SUPPORTED_Asym_Pause; + +- phy_set_max_speed(dev->phydev, SPEED_1000); +- dev->phydev->supported &= SUPPORTED_Pause | SUPPORTED_Asym_Pause; ++ dev->phydev->supported &= PHY_GBIT_FEATURES | SUPPORTED_Pause | ++ SUPPORTED_Asym_Pause; + dev->phydev->advertising = dev->phydev->supported | + ADVERTISED_Autoneg; + phy_start_aneg(dev->phydev); +diff --git a/drivers/net/ethernet/nxp/lpc_eth.c b/drivers/net/ethernet/nxp/lpc_eth.c +index 8b23d2848457..08381ef8bdb4 100644 +--- a/drivers/net/ethernet/nxp/lpc_eth.c ++++ b/drivers/net/ethernet/nxp/lpc_eth.c +@@ -797,7 +797,8 @@ static int lpc_mii_probe(struct net_device *ndev) + return PTR_ERR(phydev); + } + +- phy_set_max_speed(phydev, SPEED_100); ++ /* mask with MAC supported features */ ++ phydev->supported &= PHY_BASIC_FEATURES; + + phydev->advertising = phydev->supported; + +diff --git a/drivers/net/ethernet/rdc/r6040.c b/drivers/net/ethernet/rdc/r6040.c +index 04aa592f35c3..aa11b70b9ca4 100644 +--- a/drivers/net/ethernet/rdc/r6040.c ++++ b/drivers/net/ethernet/rdc/r6040.c +@@ -1024,8 +1024,16 @@ static int r6040_mii_probe(struct net_device *dev) + return PTR_ERR(phydev); + } + +- phy_set_max_speed(phydev, SPEED_100); +- ++ /* mask with MAC supported features */ ++ phydev->supported &= (SUPPORTED_10baseT_Half ++ | SUPPORTED_10baseT_Full ++ | SUPPORTED_100baseT_Half ++ | SUPPORTED_100baseT_Full ++ | SUPPORTED_Autoneg ++ | SUPPORTED_MII ++ | SUPPORTED_TP); ++ ++ phydev->advertising = phydev->supported; + lp->old_link = 0; + lp->old_duplex = -1; + +diff --git a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c +index 690aee88f0eb..a9da1ad4b4f2 100644 +--- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c ++++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c +@@ -298,8 +298,8 @@ static int sxgbe_init_phy(struct net_device *ndev) + /* Stop Advertising 1000BASE Capability if interface is not GMII */ + if ((phy_iface == PHY_INTERFACE_MODE_MII) || + (phy_iface == PHY_INTERFACE_MODE_RMII)) +- phy_set_max_speed(phydev, SPEED_1000); +- ++ phydev->advertising &= ~(SUPPORTED_1000baseT_Half | ++ SUPPORTED_1000baseT_Full); + if (phydev->phy_id == 0) { + phy_disconnect(phydev); + return -ENODEV; +diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c +index f84dbd0beb8e..f0afb88d7bc2 100644 +--- a/drivers/net/ethernet/smsc/smsc911x.c ++++ b/drivers/net/ethernet/smsc/smsc911x.c +@@ -1048,10 +1048,9 @@ static int smsc911x_mii_probe(struct net_device *dev) + + phy_attached_info(phydev); + +- phy_set_max_speed(phydev, SPEED_100); +- + /* mask with MAC supported features */ +- phydev->supported &= (SUPPORTED_Pause | SUPPORTED_Asym_Pause); ++ phydev->supported &= (PHY_BASIC_FEATURES | SUPPORTED_Pause | ++ SUPPORTED_Asym_Pause); + phydev->advertising = phydev->supported; + + pdata->last_duplex = -1; +diff --git a/drivers/net/ethernet/smsc/smsc9420.c b/drivers/net/ethernet/smsc/smsc9420.c +index 795f60d92611..2fa3c1d03abc 100644 +--- a/drivers/net/ethernet/smsc/smsc9420.c ++++ b/drivers/net/ethernet/smsc/smsc9420.c +@@ -1135,10 +1135,9 @@ static int smsc9420_mii_probe(struct net_device *dev) + return PTR_ERR(phydev); + } + +- phy_set_max_speed(phydev, SPEED_100); +- + /* mask with MAC supported features */ +- phydev->supported &= (SUPPORTED_Pause | SUPPORTED_Asym_Pause); ++ phydev->supported &= (PHY_BASIC_FEATURES | SUPPORTED_Pause | ++ SUPPORTED_Asym_Pause); + phydev->advertising = phydev->supported; + + phy_attached_info(phydev); +diff --git a/drivers/net/ethernet/socionext/sni_ave.c b/drivers/net/ethernet/socionext/sni_ave.c +index 76ff364c40e9..f7ecceeb1e28 100644 +--- a/drivers/net/ethernet/socionext/sni_ave.c ++++ b/drivers/net/ethernet/socionext/sni_ave.c +@@ -1223,8 +1223,10 @@ static int ave_init(struct net_device *ndev) + phy_ethtool_get_wol(phydev, &wol); + device_set_wakeup_capable(&ndev->dev, !!wol.supported); + +- if (!phy_interface_is_rgmii(phydev)) +- phy_set_max_speed(phydev, SPEED_100); ++ if (!phy_interface_is_rgmii(phydev)) { ++ phydev->supported &= ~PHY_GBIT_FEATURES; ++ phydev->supported |= PHY_BASIC_FEATURES; ++ } + phydev->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause; + + phy_attached_info(phydev); +diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +index 72c9bdca6549..75896d6ba6e2 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c ++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +@@ -991,7 +991,8 @@ static int stmmac_init_phy(struct net_device *dev) + if ((interface == PHY_INTERFACE_MODE_MII) || + (interface == PHY_INTERFACE_MODE_RMII) || + (max_speed < 1000 && max_speed > 0)) +- phy_set_max_speed(phydev, SPEED_100); ++ phydev->advertising &= ~(SUPPORTED_1000baseT_Half | ++ SUPPORTED_1000baseT_Full); + + /* + * Half-duplex mode not supported with multiqueue +diff --git a/drivers/net/ethernet/toshiba/tc35815.c b/drivers/net/ethernet/toshiba/tc35815.c +index 7163a8d10dba..cce9c9ed46aa 100644 +--- a/drivers/net/ethernet/toshiba/tc35815.c ++++ b/drivers/net/ethernet/toshiba/tc35815.c +@@ -628,7 +628,7 @@ static int tc_mii_probe(struct net_device *dev) + phy_attached_info(phydev); + + /* mask with MAC supported features */ +- phy_set_max_speed(phydev, SPEED_100); ++ phydev->supported &= PHY_BASIC_FEATURES; + dropmask = 0; + if (options.speed == 10) + dropmask |= SUPPORTED_100baseT_Half | SUPPORTED_100baseT_Full; +diff --git a/drivers/net/ethernet/xilinx/xilinx_emaclite.c b/drivers/net/ethernet/xilinx/xilinx_emaclite.c +index 46d3092b8aad..42f1f518dad6 100644 +--- a/drivers/net/ethernet/xilinx/xilinx_emaclite.c ++++ b/drivers/net/ethernet/xilinx/xilinx_emaclite.c +@@ -941,7 +941,8 @@ static int xemaclite_open(struct net_device *dev) + } + + /* EmacLite doesn't support giga-bit speeds */ +- phy_set_max_speed(lp->phy_dev, SPEED_100); ++ lp->phy_dev->supported &= (PHY_BASIC_FEATURES); ++ lp->phy_dev->advertising = lp->phy_dev->supported; + + /* Don't advertise 1000BASE-T Full/Half duplex speeds */ + phy_write(lp->phy_dev, MII_CTRL1000, 0); +diff --git a/drivers/staging/mt7621-eth/mdio.c b/drivers/staging/mt7621-eth/mdio.c +index 2c6e1800a3fd..7ad0c4141205 100644 +--- a/drivers/staging/mt7621-eth/mdio.c ++++ b/drivers/staging/mt7621-eth/mdio.c +@@ -112,7 +112,7 @@ static void phy_init(struct mtk_eth *eth, struct mtk_mac *mac, + phy->autoneg = AUTONEG_ENABLE; + phy->speed = 0; + phy->duplex = 0; +- phy_set_max_speed(phy, SPEED_100); ++ phy->supported &= PHY_BASIC_FEATURES; + phy->advertising = phy->supported | ADVERTISED_Autoneg; + + phy_start_aneg(phy); +-- +2.17.1 + |