[][kernel][mt7981/mt7988][eth][phy: mediatek-ge: Fix TX-VCM calibration pre-setting]

[Description]
Fix TX-VCM calibration pre-setting.

[Release-log]
N/A

Change-Id: I8b9123d215cdb528dee5ddecef66ac9c98adfdd3
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7313362
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 0853e3c..fb74030 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
@@ -153,28 +153,28 @@
 #define   MTK_PHY_DA_CALIN_FLAG			BIT(0)
 
 #define MTK_PHY_RG_DASN_DAC_IN0_A		(0x17d)
-#define   MTK_PHY_DASN_DAC_IN0_A_MASK		GENMASK(9, 0)
+#define   MTK_PHY_FORCE_DASN_DAC_IN0_A		BIT(15)
 
 #define MTK_PHY_RG_DASN_DAC_IN0_B		(0x17e)
-#define   MTK_PHY_DASN_DAC_IN0_B_MASK		GENMASK(9, 0)
+#define   MTK_PHY_FORCE_DASN_DAC_IN0_B		BIT(15)
 
 #define MTK_PHY_RG_DASN_DAC_IN0_C		(0x17f)
-#define   MTK_PHY_DASN_DAC_IN0_C_MASK		GENMASK(9, 0)
+#define   MTK_PHY_FORCE_DASN_DAC_IN0_C		BIT(15)
 
 #define MTK_PHY_RG_DASN_DAC_IN0_D			(0x180)
-#define   MTK_PHY_DASN_DAC_IN0_D_MASK		GENMASK(9, 0)
+#define   MTK_PHY_FORCE_DASN_DAC_IN0_D		BIT(15)
 
 #define MTK_PHY_RG_DASN_DAC_IN1_A			(0x181)
-#define   MTK_PHY_DASN_DAC_IN1_A_MASK		GENMASK(9, 0)
+#define   MTK_PHY_FORCE_DASN_DAC_IN1_A		BIT(15)
 
 #define MTK_PHY_RG_DASN_DAC_IN1_B			(0x182)
-#define   MTK_PHY_DASN_DAC_IN1_B_MASK		GENMASK(9, 0)
+#define   MTK_PHY_FORCE_DASN_DAC_IN1_B		BIT(15)
 
 #define MTK_PHY_RG_DASN_DAC_IN1_C			(0x183)
-#define   MTK_PHY_DASN_DAC_IN1_C_MASK		GENMASK(9, 0)
+#define   MTK_PHY_FORCE_DASN_DAC_IN1_C		BIT(15)
 
 #define MTK_PHY_RG_DASN_DAC_IN1_D			(0x184)
-#define   MTK_PHY_DASN_DAC_IN1_D_MASK		GENMASK(9, 0)
+#define   MTK_PHY_FORCE_DASN_DAC_IN1_D		BIT(15)
 
 #define MTK_PHY_RG_DEV1E_REG19b		(0x19b)
 #define   MTK_PHY_BYPASS_DSP_LPI_READY	BIT(8)
@@ -670,47 +670,48 @@
 	phy_set_bits_mmd(phydev, MDIO_MMD_VEND1, MTK_PHY_RG_ANA_CAL_RG1,
 			 MTK_PHY_RG_TXVOS_CALEN);
 
+	/* Also clear bit[9:0] for MTK_PHY_RG_DASN_DAC_IN0/1_A/B/C/D */
 	switch (rg_txreserve_x) {
 	case PAIR_A:
-		phy_clear_bits_mmd(phydev, MDIO_MMD_VEND1,
+		phy_write_mmd(phydev, MDIO_MMD_VEND1,
 				   MTK_PHY_RG_DASN_DAC_IN0_A,
-				   MTK_PHY_DASN_DAC_IN0_A_MASK);
-		phy_clear_bits_mmd(phydev, MDIO_MMD_VEND1,
+				   MTK_PHY_FORCE_DASN_DAC_IN0_A);
+		phy_write_mmd(phydev, MDIO_MMD_VEND1,
 				   MTK_PHY_RG_DASN_DAC_IN1_A,
-				   MTK_PHY_DASN_DAC_IN1_A_MASK);
+				   MTK_PHY_FORCE_DASN_DAC_IN1_A);
 		phy_set_bits_mmd(phydev, MDIO_MMD_VEND1,
 				 MTK_PHY_RG_ANA_CAL_RG0,
 				 MTK_PHY_RG_ZCALEN_A);
 		break;
 	case PAIR_B:
-		phy_clear_bits_mmd(phydev, MDIO_MMD_VEND1,
+		phy_write_mmd(phydev, MDIO_MMD_VEND1,
 				   MTK_PHY_RG_DASN_DAC_IN0_B,
-				   MTK_PHY_DASN_DAC_IN0_B_MASK);
-		phy_clear_bits_mmd(phydev, MDIO_MMD_VEND1,
+				   MTK_PHY_FORCE_DASN_DAC_IN0_B);
+		phy_write_mmd(phydev, MDIO_MMD_VEND1,
 				   MTK_PHY_RG_DASN_DAC_IN1_B,
-				   MTK_PHY_DASN_DAC_IN1_B_MASK);
+				   MTK_PHY_FORCE_DASN_DAC_IN1_B);
 		phy_set_bits_mmd(phydev, MDIO_MMD_VEND1,
 				 MTK_PHY_RG_ANA_CAL_RG1,
 				 MTK_PHY_RG_ZCALEN_B);
 		break;
 	case PAIR_C:
-		phy_clear_bits_mmd(phydev, MDIO_MMD_VEND1,
+		phy_write_mmd(phydev, MDIO_MMD_VEND1,
 				   MTK_PHY_RG_DASN_DAC_IN0_C,
-				   MTK_PHY_DASN_DAC_IN0_C_MASK);
-		phy_clear_bits_mmd(phydev, MDIO_MMD_VEND1,
+				   MTK_PHY_FORCE_DASN_DAC_IN0_C);
+		phy_write_mmd(phydev, MDIO_MMD_VEND1,
 				   MTK_PHY_RG_DASN_DAC_IN1_C,
-				   MTK_PHY_DASN_DAC_IN1_C_MASK);
+				   MTK_PHY_FORCE_DASN_DAC_IN1_C);
 		phy_set_bits_mmd(phydev, MDIO_MMD_VEND1,
 				 MTK_PHY_RG_ANA_CAL_RG1,
 				 MTK_PHY_RG_ZCALEN_C);
 		break;
 	case PAIR_D:
-		phy_clear_bits_mmd(phydev, MDIO_MMD_VEND1,
+		phy_write_mmd(phydev, MDIO_MMD_VEND1,
 				   MTK_PHY_RG_DASN_DAC_IN0_D,
-				   MTK_PHY_DASN_DAC_IN0_D_MASK);
-		phy_clear_bits_mmd(phydev, MDIO_MMD_VEND1,
+				   MTK_PHY_FORCE_DASN_DAC_IN0_D);
+		phy_write_mmd(phydev, MDIO_MMD_VEND1,
 				   MTK_PHY_RG_DASN_DAC_IN1_D,
-				   MTK_PHY_DASN_DAC_IN1_D_MASK);
+				   MTK_PHY_FORCE_DASN_DAC_IN1_D);
 		phy_set_bits_mmd(phydev, MDIO_MMD_VEND1,
 				 MTK_PHY_RG_ANA_CAL_RG1,
 				 MTK_PHY_RG_ZCALEN_D);