[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aa773849b84297679f4eb4b3743518856ca5b71a.camel@collabora.com>
Date:   Tue, 07 Dec 2021 14:20:28 +0000
From:   Martyn Welch <martyn.welch@...labora.com>
To:     "Russell King (Oracle)" <linux@...linux.org.uk>
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, 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:
Tested-by: Martyn Welch <martyn.welch@...labora.com>
Thanks for your help!
Martyn
Powered by blists - more mailing lists
 
