]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
net: emaclite: Don't advertise 1000BASE-T and do auto negotiation
authorShravya Kumbham <shravya.kumbham@xilinx.com>
Mon, 2 May 2022 07:27:49 +0000 (12:57 +0530)
committerStefan Bader <stefan.bader@canonical.com>
Wed, 10 Aug 2022 07:22:13 +0000 (09:22 +0200)
BugLink: https://bugs.launchpad.net/bugs/1980278
[ Upstream commit b800528b97d0adc3a5ba42d78a8b0d3f07a31f44 ]

In xemaclite_open() function we are setting the max speed of
emaclite to 100Mb using phy_set_max_speed() function so,
there is no need to write the advertising registers to stop
giga-bit speed and the phy_start() function starts the
auto-negotiation so, there is no need to handle it separately
using advertising registers. Remove the phy_read and phy_write
of advertising registers in xemaclite_open() function.

Signed-off-by: Shravya Kumbham <shravya.kumbham@xilinx.com>
Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/net/ethernet/xilinx/xilinx_emaclite.c

index 642472de5a08bd3f63a98e3db7bc93a7f03c9057..97c1d1ecba34cb5a1ac1f34d578e2369500e188a 100644 (file)
@@ -934,8 +934,6 @@ static int xemaclite_open(struct net_device *dev)
        xemaclite_disable_interrupts(lp);
 
        if (lp->phy_node) {
-               u32 bmcr;
-
                lp->phy_dev = of_phy_connect(lp->ndev, lp->phy_node,
                                             xemaclite_adjust_link, 0,
                                             PHY_INTERFACE_MODE_MII);
@@ -946,19 +944,6 @@ static int xemaclite_open(struct net_device *dev)
 
                /* EmacLite doesn't support giga-bit speeds */
                phy_set_max_speed(lp->phy_dev, SPEED_100);
-
-               /* Don't advertise 1000BASE-T Full/Half duplex speeds */
-               phy_write(lp->phy_dev, MII_CTRL1000, 0);
-
-               /* Advertise only 10 and 100mbps full/half duplex speeds */
-               phy_write(lp->phy_dev, MII_ADVERTISE, ADVERTISE_ALL |
-                         ADVERTISE_CSMA);
-
-               /* Restart auto negotiation */
-               bmcr = phy_read(lp->phy_dev, MII_BMCR);
-               bmcr |= (BMCR_ANENABLE | BMCR_ANRESTART);
-               phy_write(lp->phy_dev, MII_BMCR, bmcr);
-
                phy_start(lp->phy_dev);
        }