Re: [RFC PATCH net-next 4/4] net: phy: added master-slave config and cable diagnostics for Lan937x

From: Arun.Ramadoss
Date: Tue Mar 01 2022 - 11:59:45 EST


On Mon, 2022-02-28 at 14:12 +0000, Russell King (Oracle) wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you
> know the content is safe
>
> On Mon, Feb 28, 2022 at 07:35:10PM +0530, Arun Ramadoss wrote:
> > To configure the Lan937x T1 phy as master or slave using the
> > ethtool -s
> > <dev> master-slave <forced-master/forced-slave>, the config_aneg
> > and
> > read status functions are added. And for the cable-diagnostics,
> > used the
> > lan87xx routines.
> >
> > Signed-off-by: Prasanna Vengateshan <
> > prasanna.vengateshan@xxxxxxxxxxxxx>
> > Signed-off-by: Arun Ramadoss <arun.ramadoss@xxxxxxxxxxxxx>
> > ---
> > drivers/net/phy/microchip_t1.c | 75
> > ++++++++++++++++++++++++++++++++++
> > 1 file changed, 75 insertions(+)
> >
> > diff --git a/drivers/net/phy/microchip_t1.c
> > b/drivers/net/phy/microchip_t1.c
> > index 634a1423182a..3a0d4c4fab0a 100644
> > --- a/drivers/net/phy/microchip_t1.c
> > +++ b/drivers/net/phy/microchip_t1.c
> > @@ -81,6 +81,9 @@
> > #define T1_REG_BANK_SEL 8
> > #define T1_REG_ADDR_MASK 0xFF
> >
> > +#define T1_MODE_STAT_REG 0x11
> > +#define T1_LINK_UP_MSK BIT(0)
> > +
> > #define DRIVER_AUTHOR "Nisar Sayed <
> > nisar.sayed@xxxxxxxxxxxxx>"
> > #define DRIVER_DESC "Microchip LAN87XX/LAN937x T1 PHY driver"
> >
> > @@ -435,6 +438,11 @@ static int lan_phy_config_init(struct
> > phy_device *phydev)
> > if (rc < 0)
> > phydev_err(phydev, "failed to initialize phy\n");
> >
> > + phydev->duplex = DUPLEX_FULL;
> > + phydev->speed = SPEED_100;
> > + phydev->pause = 0;
> > + phydev->asym_pause = 0;
>
> Shouldn't this be done in lan937x_read_status()?
>
> Have you tested this patch with various invocations of ethtool -s ?
> E.g. autoneg on, autoneg off at various forced speeds, both suitable
> for the PHY and unsuitable? Are all these sensibly handled?
>
Thanks for the comment.

LAN937x is 100BaseT1 Phy and it doesn't provide option for changing
speed and autonegotiation. Since it is fixed and not going to change
using ethtool -s command, I added it in the config_init routine. I took
the drivers/net/phy/nxp-tja11xx as reference in which speed is
initialised in config_init routine. I tested the patch using the
ethtool -s for changing the master/slave configuration. For other
change like speed/duplex setting, driver will not make change. When I
execute ethtool <dev>, it returns the default value 100Mbps, Full
duplex.
If lan937x_read_status( ) is the suitable place, then I will move it
there.

> Thanks.
>
> --
> RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
> FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!