[][kernel][mt7988][eth][mediatek-ge: Fix R50 tuning & Add slave mode finetune]

[Description]
Fix R50 tuning & Add slave mode finetune

[Release-log]
N/A

Change-Id: Id80a564983cfccf1067d8c9d032d887914831646
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6642539
Build: srv_hbgsm110
diff --git a/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c b/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c
index 0eefd36..50729d6 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c
@@ -538,7 +538,7 @@
 	switch(phydev->drv->phy_id) {
 		case 0x03a29481:
 		{
-			int tmp[16] = { 1, 1, 1, 1 };
+			int tmp[16] = { -1, -1, -1, -1 };
 			memcpy(bias, (const void *)tmp, sizeof(bias));
 			break;
 		}
@@ -894,6 +894,13 @@
 	/* Disable TX power saving */
 	phy_modify_mmd(phydev, MDIO_MMD_VEND1, MTK_PHY_RXADC_CTRL_RG7,
 			MTK_PHY_DA_AD_BUF_BIAS_LP_MASK, 0x3 << 8);
+
+	/* Slave mode finetune, Kp=3/Kf=2 */
+	phy_select_page(phydev, MTK_PHY_PAGE_EXTENDED_52B5);
+	__phy_write(phydev, 0x12, 0x0);
+	__phy_write(phydev, 0x11, 0x750);
+	__phy_write(phydev, 0x10, 0x9686);
+	phy_restore_page(phydev, MTK_PHY_PAGE_STANDARD, 0);
 }
 
 static int mt798x_phy_calibration(struct phy_device *phydev)