OSDN Git Service

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)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 3 May 2022 09:07:32 +0000 (11:07 +0200)
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>
drivers/net/ethernet/xilinx/xilinx_emaclite.c

index 57a24f6..f7394a5 100644 (file)
@@ -926,8 +926,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);
@@ -938,19 +936,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);
        }