linux/drivers/net/dsa/mv88e6xxx
Nicolo Giuliani 6b491af01a net: dsa: mv88e6xxx: 88E6191X and 88E6193X have no PTP
The 88E6191X and 88E6193X are 6393 family devices that share
mv88e6393x_ops with the 88E6393X and are marked as ptp_support. Marvell's
UMSD driver describes both as parts without AVB (88E6193X: "BGA package -
No AVB, No Routing, No Cut-through"), and the register access confirms it
on an 88E6193X: the whole indirect AVB register space behind Global 2
registers 0x16 and 0x17 reads zero, for every port, block and address,
with the 6390 and with the 6352 command encoding. Writes to the TAI
registers, including the clock period register and the TAI global
configuration register, read back as zero.

Since commit 7e3c18097a ("net: dsa: mv88e6xxx: read cycle counter
period from hardware") the PTP setup reads the TAI clock period, so the
switch fails to probe:

mv88e6xxx ...: unexpected cycle counter period of 0 ps

Add mv88e6191x_ops, a copy of mv88e6393x_ops without avb_ops and ptp_ops,
use it for the 88E6191X and the 88E6193X and stop setting ptp_support for
them. The 88E6393X is unchanged.

Tested on an 88E6193X (Sophos XGS 107w): the switch probes and the ports
work. I do not have an 88E6191X, it is changed because UMSD describes it
the same way.

Fixes: de776d0d31 ("net: dsa: mv88e6xxx: add support for mv88e6393x family")
Suggested-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Nicolo Giuliani <nicolo.giuliani6@studio.unibo.it>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20260921-send-net-v2-1-031ad720f140@studio.unibo.it
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-23 18:39:46 -07:00
..
chip.c net: dsa: mv88e6xxx: 88E6191X and 88E6193X have no PTP 2026-09-23 18:39:46 -07:00
chip.h mv88e6xxx: Cache scratch config3 of 6352 2026-05-26 12:11:32 +02:00
devlink.c net: dsa: mv88e6xxx: Avoid devlink resource IDs collision with PARENT_TOP 2026-06-15 12:41:41 -07:00
devlink.h
global1_atu.c net: dsa: mv88e6xxx: Fix out-of-bound access 2024-08-20 16:53:21 -07:00
global1_vtu.c net: dsa: mv88e6xxx: Add FID map cache 2024-10-08 15:30:55 -07:00
global1.c net: dsa: mv88e6xxx: Avoid EEPROM timeout without EEPROM on 88E6250-family switches 2024-04-25 11:24:07 +01:00
global1.h net: dsa: mv88e6xxx: Avoid EEPROM timeout without EEPROM on 88E6250-family switches 2024-04-25 11:24:07 +01:00
global2_avb.c
global2_scratch.c mv88e6xxx: Use cached config3 in 6352 has_serdes 2026-05-26 12:11:32 +02:00
global2.c net: Use dev_fwnode() 2025-06-12 18:46:37 -07:00
global2.h mv88e6xxx: Cache scratch config3 of 6352 2026-05-26 12:11:32 +02:00
hwtstamp.c net: dsa: mv88e6xxx: remove duplicated register definition 2025-09-17 18:21:07 -07:00
hwtstamp.h net: dsa: mv88e6xxx: move mv88e6xxx_hwtstamp_work() prototype 2025-09-17 18:21:12 -07:00
Kconfig net: dsa: mv88e6xxx: Support LED control 2024-10-04 15:31:28 -07:00
leds.c net: dsa: mv88e6xxx: Fix fwnode reference leaks in mv88e6xxx_port_setup_leds 2025-09-02 17:04:03 -07:00
Makefile net: dsa: mv88e6xxx: Add partial support for TCAM entries 2026-03-17 10:35:20 +01:00
pcs-639x.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
pcs-6185.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
pcs-6352.c net: dsa: mv88e6xxx: Fix PCS link check on CMODE read error 2026-08-17 16:44:42 -07:00
phy.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
phy.h
port_hidden.c
port.c net: dsa: mv88e6xxx: allow SPEED_200 for 6320 family on supported ports 2026-05-05 18:23:46 -07:00
port.h net: dsa: mv88e6xxx: allow SPEED_200 for 6320 family on supported ports 2026-05-05 18:23:46 -07:00
ptp.c net: dsa: mv88e6xxx: rename TAI definitions according to core 2025-09-17 18:21:01 -07:00
ptp.h net: dsa: mv88e6xxx: move mv88e6xxx_hwtstamp_work() prototype 2025-09-17 18:21:12 -07:00
serdes.c mv88e6xxx: Add SERDES Support for mv88e6321 2026-06-01 19:11:14 -07:00
serdes.h mv88e6xxx: Add SERDES Support for mv88e6321 2026-06-01 19:11:14 -07:00
smi.c
smi.h
switchdev.c
switchdev.h
tcam.c net: dsa: mv88e6xxx: Add partial support for TCAM entries 2026-03-17 10:35:20 +01:00
tcam.h net: dsa: mv88e6xxx: Add partial support for TCAM entries 2026-03-17 10:35:20 +01:00
tcflower.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
tcflower.h net: dsa: mv88e6xxx: Add partial support for TCAM entries 2026-03-17 10:35:20 +01:00
trace.c
trace.h tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00