mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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

  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®