From: Horatiu Vultur <horatiu.vultur@microchip.com>
To: Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: Jakub Kicinski <kuba@kernel.org>, <andrew@lunn.ch>,
<hkallweit1@gmail.com>, <linux@armlinux.org.uk>,
<davem@davemloft.net>, <edumazet@google.com>, <pabeni@redhat.com>,
<richardcochran@gmail.com>, <vadim.fedorenko@linux.dev>,
<rmk+kernel@armlinux.org.uk>, <christophe.jaillet@wanadoo.fr>,
<rosenp@gmail.com>, <steen.hegelund@microchip.com>,
<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net v2] phy: mscc: Fix PTP for vsc8574 and VSC8572
Date: Fri, 26 Sep 2025 09:11:11 +0200 [thread overview]
Message-ID: <20250926071111.bdxffjghguawcobp@DEN-DL-M31836.microchip.com> (raw)
In-Reply-To: <20250923071924.mv6ytwtifuu5limg@DEN-DL-M31836.microchip.com>
The 09/23/2025 09:19, Horatiu Vultur wrote:
Hi,
> The 09/22/2025 16:28, Vladimir Oltean wrote:
> >
> > On Mon, Sep 22, 2025 at 02:33:01PM +0200, Horatiu Vultur wrote:
> > > Thanks for the advice.
> > > What about to make the PHY_ID_VSC8572 and PHY_ID_VSC8574 to use
> > > vsc8584_probe() and then in this function just have this check:
> > >
> > > ---
> > > if ((phydev->phy_id & 0xfffffff0) != PHY_ID_VSC8572 &&
> > > (phydev->phy_id & 0xfffffff0) != PHY_ID_VSC8574) {
> > > if ((phydev->phy_id & MSCC_DEV_REV_MASK) != VSC8584_REVB) {
> > > dev_err(&phydev->mdio.dev, "Only VSC8584 revB is supported.\n");
> > > return -ENOTSUPP;
> > > }
> > > }
> >
> > Personally, I think you are making the code harder to understand what
> > PHYs the test is referring to, and why it exists in the first place.
> >
> > Ideally this test would have not existed. Instead of the open-coded
> > phy_id and phy_id_mask fields from the struct phy_driver array entries,
> > one could have used PHY_ID_MATCH_MODEL() for those entries where the
> > bits 3:0 of the PHY ID do not matter, and PHY_ID_MATCH_EXACT() where
> > they do. Instead of failing the probe, just not match the device with
> > this driver and let the system handle it some other way (Generic PHY).
>
> Yes, I can see your point. That would be a nicer fix.
>
> >
> > I'm not sure if this is intended or not, but the combined effect of:
> > - commit a5afc1678044 ("net: phy: mscc: add support for VSC8584 PHY")
> > - commit 75a1ccfe6c72 ("mscc.c: Add support for additional VSC PHYs")
> >
> > is that for VSC856X, VSC8575, VSC8582, VSC8584, the driver will only
> > probe on Rev B silicon, and fail otherwise. Initially, the revision test
> > was only there for VSC8584, and it transferred to the others by virtue
> > of reusing the same vsc8584_probe() function. I don't see signs that
> > this was 100% intentional. I say this because when probing e.g. on
> > VSC8575 revA, the kernel will print "Only VSC8584 revB is supported."
> > which looks more like an error than someone's actual intention.
> >
> > By excluding VSC8574 and VSC8572 from the above revision test, it feels
> > like a double workaround rather than using the conventional PHY ID match
> > helpers as intended.
> >
> > As a Microchip employee, maybe you have access to some info regarding
> > whether the limitations mentioned by Quentin Schulz for VSC8584 revA
> > are valid for all the other PHYs for which they are currently imposed.
> > What makes VSC8574/VSC8572 unlike the others in this regard?
>
> Let me start by asking my colleagues and figure out which revisions were
> produced for which PHYs.
> Thanks for the advice.
I have been asking around about these revisions of the PHYs and what is
available:
vsc856x - only rev B exists
vsc8575 - only rev B exists
vsc8582 - only rev B exists
vsc8584 - only rev B exists
vsc8574 - rev A,B,C,D,E exists
vsc8572 - rev A,B,C,D,E exists
For vsc856x, vsc8575, vsc8582, vsc8584 the lower 4 bits in register 3
will have a value of 1.
For vsc8574 and vsc8572 the lower 4 bits in register 3 will have a value
of 0 for rev A, 1 for rev B and C, 2 for D and E.
Based on this information, I think both commits a5afc1678044 and
75a1ccfe6c72 are correct regarding the revision check.
So, now to be able to fix the PTP for vsc8574 and vsc8572, I can do the
following:
- start to use PHY_ID_MATCH_MODEL for vsc856x, vsc8575, vsc8582, vsc8584
- because of this change I will need to remove also the WARN_ON() in the
function vsc8584_config_init()
- then I can drop the check for revision in vsc8584_probe()
- then I can make vsc8574 and vsc8572 to use vsc8584_probe()
What do you think about this?
>
> >
> > It looks like the review comments to clean things up are getting bigger.
> > I'm not sure this is all adequate for 'net' any longer.
> > On the other hand, you said PTP never worked for VSC8574/VSC8572,
> > without any crash, it was just not enabled. Maybe this can all be
> > reconsidered as new functionality for net-next, and there we have more
> > space for shuffling things around?
>
> --
> /Horatiu
--
/Horatiu
next prev parent reply other threads:[~2025-09-26 7:16 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-17 11:33 Horatiu Vultur
2025-09-18 23:09 ` Jakub Kicinski
2025-09-22 12:15 ` Vladimir Oltean
2025-09-22 12:33 ` Horatiu Vultur
2025-09-22 13:28 ` Vladimir Oltean
2025-09-23 7:19 ` Horatiu Vultur
2025-09-26 7:11 ` Horatiu Vultur [this message]
2025-09-26 12:20 ` Vladimir Oltean
2025-09-26 12:21 ` Horatiu Vultur
2025-09-26 12:27 ` Vladimir Oltean
2025-09-26 12:27 ` Horatiu Vultur
2025-09-26 9:46 ` Russell King (Oracle)
2025-09-26 9:52 ` Vladimir Oltean
2025-09-26 10:19 ` Russell King (Oracle)
2025-09-26 12:12 ` Horatiu Vultur
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250926071111.bdxffjghguawcobp@DEN-DL-M31836.microchip.com \
--to=horatiu.vultur@microchip.com \
--cc=andrew@lunn.ch \
--cc=christophe.jaillet@wanadoo.fr \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=richardcochran@gmail.com \
--cc=rmk+kernel@armlinux.org.uk \
--cc=rosenp@gmail.com \
--cc=steen.hegelund@microchip.com \
--cc=vadim.fedorenko@linux.dev \
--cc=vladimir.oltean@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®