The SGMII autonegotiation status bit definitions do not match the
hardware specification. The link status and duplex bits are defined
at incorrect positions, which can lead to incorrect link state and
duplex reporting.

Correct the SGMII autoneg status bit definitions to align with the
hardware specification.

Fixes: 572890ef6625 ("net/axgbe: add structs for MAC init and reset")
Cc: [email protected]

Signed-off-by: Ashok Kumar Natarajan <[email protected]>
---
 drivers/net/axgbe/axgbe_ethdev.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/axgbe/axgbe_ethdev.h b/drivers/net/axgbe/axgbe_ethdev.h
index 24336f31f6..77c21469a8 100644
--- a/drivers/net/axgbe/axgbe_ethdev.h
+++ b/drivers/net/axgbe/axgbe_ethdev.h
@@ -114,12 +114,12 @@
 #define AXGBE_LINK_TIMEOUT             5
 #define AXGBE_KR_TRAINING_WAIT_ITER    50
 
-#define AXGBE_SGMII_AN_LINK_STATUS     BIT(1)
+#define AXGBE_SGMII_AN_LINK_STATUS     BIT(4)
 #define AXGBE_SGMII_AN_LINK_SPEED      (BIT(2) | BIT(3))
 #define AXGBE_SGMII_AN_LINK_SPEED_10   0x00
 #define AXGBE_SGMII_AN_LINK_SPEED_100  0x04
 #define AXGBE_SGMII_AN_LINK_SPEED_1000 0x08
-#define AXGBE_SGMII_AN_LINK_DUPLEX     BIT(4)
+#define AXGBE_SGMII_AN_LINK_DUPLEX     BIT(1)
 
 /* ECC correctable error notification window (seconds) */
 #define AXGBE_ECC_LIMIT                        60
-- 
2.34.1

Reply via email to