Maths went wrong, to get 0x20, we need to do 0x1e + (x) * 2, not 0x18,
fix that offset so we access the correct registers. This would make us
not access the correct SerDes Digital control words, status would be
fine and so we would not be correctly flipping between Fiber and SGMII
modes resulting in incorrect status words being pulled into the SerDes
digital status register.

Fixes: 0e01491de646 ("net: dsa: b53: Add SerDes support")
Signed-off-by: Florian Fainelli <f.faine...@gmail.com>
---
 drivers/net/dsa/b53/b53_serdes.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/dsa/b53/b53_serdes.h b/drivers/net/dsa/b53/b53_serdes.h
index eed7c9357091..3bb4f91aec9e 100644
--- a/drivers/net/dsa/b53/b53_serdes.h
+++ b/drivers/net/dsa/b53/b53_serdes.h
@@ -20,7 +20,7 @@
 #define  SERDES_ID0_REV_LETTER_SHIFT   14
 
 #define B53_SERDES_MII_REG(x)          (0x20 + (x) * 2)
-#define B53_SERDES_DIGITAL_CONTROL(x)  (0x18 + (x) * 2)
+#define B53_SERDES_DIGITAL_CONTROL(x)  (0x1e + (x) * 2)
 #define B53_SERDES_DIGITAL_STATUS      0x28
 
 /* SERDES_DIGITAL_CONTROL1 */
-- 
2.17.1

Reply via email to