[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Ya9uV+UVx1ymLg2E@shell.armlinux.org.uk>
Date: Tue, 7 Dec 2021 14:23:19 +0000
From: "Russell King (Oracle)" <linux@...linux.org.uk>
To: Martyn Welch <martyn.welch@...labora.com>
Cc: Andrew Lunn <andrew@...n.ch>,
Vivien Didelot <vivien.didelot@...il.com>,
Florian Fainelli <f.fainelli@...il.com>,
Vladimir Oltean <olteanv@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>, netdev@...r.kernel.org
Subject: Re: [PATCH RFC net] net: dsa: mv88e6xxx: allow use of PHYs on CPU
and DSA ports
On Tue, Dec 07, 2021 at 02:20:28PM +0000, Martyn Welch wrote:
> On Tue, 2021-12-07 at 12:58 +0000, Russell King (Oracle) wrote:
> > On Tue, Dec 07, 2021 at 12:47:35PM +0000, Martyn Welch wrote:
> > > Sorry Russell, but unfortunately this patch doesn't seem to be
> > > resolving the issue for me.
> > >
> > > I've dumped in a bit of debug around this change to see if I could
> > > determine what was going on here, it seems that in my case the
> > > function
> > > is being exited before this at:
> > >
> > > /* FIXME: is this the correct test? If we're in fixed mode on an
> > > * internal port, why should we process this any different from
> > > * PHY mode? On the other hand, the port may be automedia between
> > > * an internal PHY and the serdes...
> > > */
> > > if ((mode == MLO_AN_PHY) && mv88e6xxx_phy_is_internal(ds, port))
> > > return;
> >
> > Oh, I was going to remove that, but clearly forgot, sorry. Please can
> > you try again with that removed? Meanwhile, I'll update the patch at
> > my end.
> >
>
> Yes! That makes it work for me.
>
> To be clear, the additional change I made was:
>
>
> diff --git a/drivers/net/dsa/mv88e6xxx/chip.c
> b/drivers/net/dsa/mv88e6xxx/chip.c
> index b033e653d3f4..14f87f6ac479 100644
> --- a/drivers/net/dsa/mv88e6xxx/chip.c
> +++ b/drivers/net/dsa/mv88e6xxx/chip.c
> @@ -702,14 +702,6 @@ static void mv88e6xxx_mac_config(struct dsa_switch
> *ds, int port,
>
> p = &chip->ports[port];
>
> - /* FIXME: is this the correct test? If we're in fixed mode on
> an
> - * internal port, why should we process this any different from
> - * PHY mode? On the other hand, the port may be automedia
> between
> - * an internal PHY and the serdes...
> - */
> - if ((mode == MLO_AN_PHY) && mv88e6xxx_phy_is_internal(ds,
> port))
> - return;
> -
> mv88e6xxx_reg_lock(chip);
>
> if (mode != MLO_AN_PHY || !mv88e6xxx_phy_is_internal(ds, port))
> {
>
>
> Assuming that's also what you've done:
That is exactly right, indeed, thanks!
> Tested-by: Martyn Welch <martyn.welch@...labora.com>
>
> Thanks for your help!
Thanks for testing. I'll wait a little while in case there's any
further comments.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
Powered by blists - more mailing lists