Re: [PATCH RFC net] net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports
flat view
From: Martyn Welch <hidden>
Date: 2021-12-07 14:20:40
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:quoted
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.cb/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 <redacted>
Thanks for your help!
Martyn