Merge "[Feature][T108][task-view-1443] update version to T108v05.04b01_GSW.000" into GSW_V1453
diff --git a/marvell/linux/drivers/net/ethernet/asr/emac_eth.c b/marvell/linux/drivers/net/ethernet/asr/emac_eth.c
index ec57709..fb69678 100755
--- a/marvell/linux/drivers/net/ethernet/asr/emac_eth.c
+++ b/marvell/linux/drivers/net/ethernet/asr/emac_eth.c
@@ -3304,14 +3304,14 @@
 
 	memcpy(ndev->dev_addr, sa->sa_data, ETH_ALEN);
 	
-//#LYNQ_MODFIY modify for task-1620 2025/6/10 start
+//#LYNQ_MODFIY modify for task-1620 2025/7/7 start
 	(ndev->dev_addr)[0] = 0x2;
 	(ndev->dev_addr)[1] = 0x0;
 	(ndev->dev_addr)[2] = 0x0;
 	(ndev->dev_addr)[3] = 0x0;
-	(ndev->dev_addr)[4] = 0x10;
+	(ndev->dev_addr)[4] = 0x11;
 	(ndev->dev_addr)[5] = 0x1;
-//#LYNQ_MODFIY modify for task-1620 2025/6/10 end
+//#LYNQ_MODFIY modify for task-1620 2025/7/7 end
 
 	emac_set_mac_addr(priv, ndev->dev_addr);
 
diff --git a/marvell/linux/drivers/net/phy/realtek.c b/marvell/linux/drivers/net/phy/realtek.c
index d1de801..339bb78 100755
--- a/marvell/linux/drivers/net/phy/realtek.c
+++ b/marvell/linux/drivers/net/phy/realtek.c
@@ -989,7 +989,51 @@
 
 	return 0;
 }
+//#LYNQ_MODFIY modify for task-1618 2025/7/7 start
+static void RTL9000Bx_xMII_driving_strength(struct phy_device *phydev)
+{
 
+	// Typical_xMII_1V8
+	phy_write(phydev, 0x1B, 0xD414);
+	phy_write(phydev, 0x1C, 0x0201);
+	
+	phy_write(phydev, 0x1B, 0xD416);
+	phy_write(phydev, 0x1C, 0x0101);
+	
+	phy_write(phydev, 0x1B, 0xD418);
+	phy_write(phydev, 0x1C, 0x0200);
+	
+	phy_write(phydev, 0x1B, 0xD41A);
+	phy_write(phydev, 0x1C, 0x0100);
+	
+	phy_write(phydev, 0x1B, 0xD42E);
+	phy_write(phydev, 0x1C, 0xC8C8);
+
+}
+
+static s16 RTL9000Bx_Soft_Reset(struct phy_device *phydev)
+{
+	u16 reg_data = 0;
+	u32 timer = 2000; // set a 2ms timer
+
+	phy_write(phydev, 0, 0x8000); // PHY soft-reset
+
+	do
+	{ // Check soft-reset complete
+
+		reg_data = phy_read(phydev, 0);
+		if (reg_data == 0xFFFF)
+			return -1;
+		timer--;
+		if (timer == 0)
+		{
+			return -1;
+		}
+	} while (reg_data != 0x2100);
+
+	return 0;
+}
+//#LYNQ_MODFIY modify for task-1618 2025/7/7 end
 //#LYNQ_MODFIY modify for task-1618 2025/6/19 satrt
 static int rtl9000Bf_power_set(int gpio, int power_en)
 {
@@ -1102,6 +1146,8 @@
 		ret = -1;
 		goto err;
 	} 
+	//#LYNQ_MODFIY modify for task-1618 2025/7/7 start
+	RTL9000Bx_xMII_driving_strength(phydev);
 	
 	/*	I/O Power Sllection  */
 	//change page to default value
@@ -1112,6 +1158,12 @@
 	phy_write(phydev, 0x12, mdio_data);
 	printk(KERN_INFO "phy_info: set rgmii driving strengths is 1.8v \n");
 
+	ret = RTL9000Bx_Soft_Reset(phydev);
+	if(0 != ret) {
+		goto err;
+	}
+	printk(KERN_INFO "phy_info: phy soft-reset over \n");
+	//#LYNQ_MODFIY modify for task-1618 2025/7/7 end
 	phydev->autoneg = AUTONEG_DISABLE;
 	phydev->duplex = DUPLEX_FULL;