[][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)