[Feature][T8TSK-234][ethernet]update link status judgment
Change-Id: Ibccf186ccf305c928f43bc014b691e98193b0299
diff --git a/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c b/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c
index 2349cab..ca19b11 100755
--- a/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c
+++ b/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c
@@ -206,12 +206,26 @@
static int q2110_read_status(struct phy_device *phydev)
{
+
int val;
+ unsigned int regVal1, regVal2, regVal3;
phydev->duplex = 1;
phydev->pause = 0;
- val = phy_read(phydev, Q2110_T1_AN_STATUS);
+ regVal1 = phy_read(phydev, MII_ADDR_C45 | 0x030901);
+ regVal1 = phy_read(phydev, MII_ADDR_C45 | 0x030901);
+ regVal2 = phy_read(phydev, MII_ADDR_C45 | 0x078001);
+ regVal3 = phy_read(phydev, MII_ADDR_C45 | 0x03FD9D);
+
+ phydev->link = ((0x0004U == (regVal1 & 0x0004U))
+ && (0x3000U == (regVal2 & 0x3000U))
+ && (0x0010U == (regVal3 & 0x0010U))) ? 1 : 0;
+ if(phydev->link == 0)
+ {
+ printk("phy_link_status down: regVal1: %x, regVal2: %x, regVal3: %x.\n",regVal1, regVal2, regVal3);
+ }
+/* val = phy_read(phydev, Q2110_T1_AN_STATUS);
if (val < 0)
return val;
@@ -219,7 +233,7 @@
phydev->link = 1;
else
phydev->link = 0;
-
+*/
val = phy_read(phydev, Q2110_T1_PMA_PMD_CTRL);
if (val < 0)
return val;