mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-28 12:53:14 +01:00
net: dsa: microchip: fix KSZ8765 fiber detection
The KSZ8765 is similar to the KSZ8795 but has two fiber ports.
KSZ8_PORT_STATUS_0 is used to detect fiber mode. It is currently
defined as 0x08, which is the Global Control 6 MIB Control register
and has bit 7 defined as Flush Counter.
Set KSZ8_PORT_STATUS_0 to 0x18, which is the Port 1 Status 0 register
where bit 7 is the Fiber Mode bit.
This issue was discovered when upgrading an embedded device from kernel
5.10 to 6.16. The device was using a KSZ8765 device tree configuration
and the corresponding hardware, but during boot the kernel incorrectly
detected it as a KSZ8795. The relevant boot messages were:
ksz-switch spi0.0: found switch: KSZ8795, rev 0
ksz-switch spi0.0: Device tree specifies chip KSZ8765 but found KSZ8795, please fix it!
Cc: [email protected]
Fixes: 91a98917a8 ("net: dsa: microchip: move switch chip_id detection to ksz_common")
Reviewed-by: Nicolai Buchwitz <[email protected]>
Signed-off-by: Sebastien Royen <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
This commit is contained in:
1 parent
b056ca4d37
commit
fc13ba44da
1 file changed
+1
-1
@@ -853,7 +853,7 @@ static inline bool ksz_is_sgmii_port(struct ksz_device *dev, int port)
|
||||
#define KSZ88_FAMILY_ID 0x88
|
||||
#define KSZ8895_FAMILY_ID 0x95
|
||||
|
||||
#define KSZ8_PORT_STATUS_0 0x08
|
||||
#define KSZ8_PORT_STATUS_0 0x18
|
||||
#define KSZ8_PORT_FIBER_MODE BIT(7)
|
||||
|
||||
#define SW_CHIP_ID_M GENMASK(7, 4)
|
||||
|
||||
Reference in new issue
Block a user