The PTP initialization is two-step. First part are the function
vsc8584_ptp_probe_once() and vsc8584_ptp_probe() at probe time which
initialize the locks, queues, creates the PTP device. The second part is
the function vsc8584_ptp_init() at config_init() time which initialize
PTP in the HW.
For VSC8574 and VSC8572, the PTP initialization is incomplete. It is
missing the first part but it makes the second part. Meaning that the
ptp_clock_register() is never called.
There is no crash without the first part when enabling PTP but this is
unexpected because some PHys have PTP functionality exposed by the
driver and some don't even though they share the same PTP clock PTP.
Fixes: 774626fa440e ("net: phy: mscc: Add PTP support for 2 more VSC PHYs")
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
---
drivers/net/phy/mscc/mscc_main.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/phy/mscc/mscc_main.c b/drivers/net/phy/mscc/mscc_main.c
index d05f6ed052ad0..90b62b8fd4af6 100644
--- a/drivers/net/phy/mscc/mscc_main.c
+++ b/drivers/net/phy/mscc/mscc_main.c
@@ -2613,7 +2613,7 @@ static struct phy_driver vsc85xx_driver[] = {
.suspend = &genphy_suspend,
.resume = &genphy_resume,
.remove = &vsc85xx_remove,
- .probe = &vsc8574_probe,
+ .probe = &vsc8584_probe,
.set_wol = &vsc85xx_wol_set,
.get_wol = &vsc85xx_wol_get,
.get_tunable = &vsc85xx_get_tunable,
@@ -2636,12 +2636,12 @@ static struct phy_driver vsc85xx_driver[] = {
.config_aneg = &vsc85xx_config_aneg,
.aneg_done = &genphy_aneg_done,
.read_status = &vsc85xx_read_status,
- .handle_interrupt = vsc85xx_handle_interrupt,
+ .handle_interrupt = vsc8584_handle_interrupt,
.config_intr = &vsc85xx_config_intr,
.suspend = &genphy_suspend,
.resume = &genphy_resume,
.remove = &vsc85xx_remove,
- .probe = &vsc8574_probe,
+ .probe = &vsc8584_probe,
.set_wol = &vsc85xx_wol_set,
.get_wol = &vsc85xx_wol_get,
.get_tunable = &vsc85xx_get_tunable,
--
2.34.1
On Fri, 17 Oct 2025 08:48:19 +0200 Horatiu Vultur wrote: > For VSC8574 and VSC8572, the PTP initialization is incomplete. It is > missing the first part but it makes the second part. Meaning that the > ptp_clock_register() is never called. > > There is no crash without the first part when enabling PTP but this is > unexpected because some PHys have PTP functionality exposed by the > driver and some don't even though they share the same PTP clock PTP. I'm tempted to queue this to net-next, sounds like a "never worked in an obvious way" case. I'd appreciate a second opinion.. Andrew?
On 10/21/25 1:53 AM, Jakub Kicinski wrote: > On Fri, 17 Oct 2025 08:48:19 +0200 Horatiu Vultur wrote: >> For VSC8574 and VSC8572, the PTP initialization is incomplete. It is >> missing the first part but it makes the second part. Meaning that the >> ptp_clock_register() is never called. >> >> There is no crash without the first part when enabling PTP but this is >> unexpected because some PHys have PTP functionality exposed by the >> driver and some don't even though they share the same PTP clock PTP. > > I'm tempted to queue this to net-next, sounds like a "never worked > in an obvious way" case. I'd appreciate a second opinion.. Andrew? FTR, I agree with the above, as (out of sheer ignorance) I think/fear the first patch can potentially cause regressions. /P
On Tue, 21 Oct 2025 11:07:20 +0200 Paolo Abeni wrote: > On 10/21/25 1:53 AM, Jakub Kicinski wrote: > > On Fri, 17 Oct 2025 08:48:19 +0200 Horatiu Vultur wrote: > >> For VSC8574 and VSC8572, the PTP initialization is incomplete. It is > >> missing the first part but it makes the second part. Meaning that the > >> ptp_clock_register() is never called. > >> > >> There is no crash without the first part when enabling PTP but this is > >> unexpected because some PHys have PTP functionality exposed by the > >> driver and some don't even though they share the same PTP clock PTP. > > > > I'm tempted to queue this to net-next, sounds like a "never worked > > in an obvious way" case. I'd appreciate a second opinion.. Andrew? > > FTR, I agree with the above, as (out of sheer ignorance) I think/fear > the first patch can potentially cause regressions. Thanks, let's rephrase the commits message on patch 1 (per Russell's comments) and get this reposted for net-next (without the Fixes tag).
Hi Horatiu,
On 17/10/2025 08:48, Horatiu Vultur wrote:
> The PTP initialization is two-step. First part are the function
> vsc8584_ptp_probe_once() and vsc8584_ptp_probe() at probe time which
> initialize the locks, queues, creates the PTP device. The second part is
> the function vsc8584_ptp_init() at config_init() time which initialize
> PTP in the HW.
>
> For VSC8574 and VSC8572, the PTP initialization is incomplete. It is
> missing the first part but it makes the second part. Meaning that the
> ptp_clock_register() is never called.
>
> There is no crash without the first part when enabling PTP but this is
> unexpected because some PHys have PTP functionality exposed by the
> driver and some don't even though they share the same PTP clock PTP.
>
> Fixes: 774626fa440e ("net: phy: mscc: Add PTP support for 2 more VSC PHYs")
> Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
© 2016 - 2026 Red Hat, Inc.