mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
phy: mscc: Fix PTP for VSC8574 and VSC8572
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: 774626fa44 ("net: phy: mscc: Add PTP support for 2 more VSC PHYs")
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Link: https://patch.msgid.link/20251023191350.190940-3-horatiu.vultur@microchip.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
1bc80d6730
commit
ea5df88aec
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user