[v2,5/8] net/r8169: add RTL8127AP dash support

Message ID 20250610074037.5288-6-howard_wang@realsil.com.cn (mailing list archive)
State Superseded
Delegated to: Stephen Hemminger
Headers
Series net/r8169: support more cards |

Checks

Context Check Description
ci/checkpatch warning coding style issues

Commit Message

Howard Wang June 10, 2025, 7:40 a.m. UTC
Signed-off-by: Howard Wang <howard_wang@realsil.com.cn>
---
 drivers/net/r8169/r8169_dash.c |  1 +
 drivers/net/r8169/r8169_hw.c   | 32 ++++++++++----------------------
 drivers/net/r8169/r8169_phy.c  | 34 ++--------------------------------
 3 files changed, 13 insertions(+), 54 deletions(-)
  

Patch

diff --git a/drivers/net/r8169/r8169_dash.c b/drivers/net/r8169/r8169_dash.c
index a225af7e27..fbed423358 100644
--- a/drivers/net/r8169/r8169_dash.c
+++ b/drivers/net/r8169/r8169_dash.c
@@ -32,6 +32,7 @@  rtl_is_allow_access_dash_ocp(struct rtl_hw *hw)
 		break;
 	case CFG_METHOD_54:
 	case CFG_METHOD_55:
+	case CFG_METHOD_91:
 		mac_ocp_data = rtl_mac_ocp_read(hw, 0xd4c0);
 		if (mac_ocp_data == 0xffff || (mac_ocp_data & BIT_3))
 			allow_access = false;
diff --git a/drivers/net/r8169/r8169_hw.c b/drivers/net/r8169/r8169_hw.c
index 002dc25ef7..e5a45f6810 100644
--- a/drivers/net/r8169/r8169_hw.c
+++ b/drivers/net/r8169/r8169_hw.c
@@ -334,6 +334,7 @@  rtl_oob_mutex_lock(struct rtl_hw *hw)
 	case CFG_METHOD_52:
 	case CFG_METHOD_54:
 	case CFG_METHOD_55:
+	case CFG_METHOD_91:
 		ocp_reg_mutex_oob = 0x110;
 		ocp_reg_mutex_ib = 0x114;
 		ocp_reg_mutex_prio = 0x11C;
@@ -392,6 +393,7 @@  rtl_oob_mutex_unlock(struct rtl_hw *hw)
 	case CFG_METHOD_52:
 	case CFG_METHOD_54:
 	case CFG_METHOD_55:
+	case CFG_METHOD_91:
 		ocp_reg_mutex_ib = 0x114;
 		ocp_reg_mutex_prio = 0x11C;
 		break;
@@ -1057,15 +1059,7 @@  rtl8125_hw_config(struct rtl_hw *hw)
 	mac_ocp_data |= BIT_0;
 	rtl_mac_ocp_write(hw, 0xEA1C, mac_ocp_data);
 
-	switch (hw->mcfg) {
-	case CFG_METHOD_48:
-	case CFG_METHOD_49:
-	case CFG_METHOD_52:
-	case CFG_METHOD_54:
-	case CFG_METHOD_55:
-		rtl_oob_mutex_lock(hw);
-		break;
-	}
+	rtl_oob_mutex_lock(hw);
 
 	/* MAC_PWRDWN_CR0 */
 	rtl_mac_ocp_write(hw, 0xE0C0, 0x4000);
@@ -1073,15 +1067,7 @@  rtl8125_hw_config(struct rtl_hw *hw)
 	rtl_set_mac_ocp_bit(hw, 0xE052, (BIT_6 | BIT_5));
 	rtl_clear_mac_ocp_bit(hw, 0xE052, (BIT_3 | BIT_7));
 
-	switch (hw->mcfg) {
-	case CFG_METHOD_48:
-	case CFG_METHOD_49:
-	case CFG_METHOD_52:
-	case CFG_METHOD_54:
-	case CFG_METHOD_55:
-		rtl_oob_mutex_unlock(hw);
-		break;
-	}
+	rtl_oob_mutex_unlock(hw);
 
 	/*
 	 * DMY_PWR_REG_0
@@ -1574,9 +1560,12 @@  rtl_init_software_variable(struct rtl_hw *hw)
 		break;
 	case CFG_METHOD_48:
 	case CFG_METHOD_49:
+	case CFG_METHOD_91:
 		tmp = (u8)rtl_mac_ocp_read(hw, 0xD006);
 		if (tmp == 0x02 || tmp == 0x04)
 			hw->HwSuppDashVer = 2;
+		else if (tmp == 0x03)
+			hw->HwSuppDashVer = 4;
 		break;
 	case CFG_METHOD_54:
 	case CFG_METHOD_55:
@@ -1615,6 +1604,8 @@  rtl_init_software_variable(struct rtl_hw *hw)
 	case CFG_METHOD_23:
 	case CFG_METHOD_27:
 	case CFG_METHOD_28:
+	case CFG_METHOD_54:
+	case CFG_METHOD_55:
 		hw->HwSuppOcpChannelVer = 2;
 		break;
 	case CFG_METHOD_31:
@@ -1625,13 +1616,10 @@  rtl_init_software_variable(struct rtl_hw *hw)
 		break;
 	case CFG_METHOD_48:
 	case CFG_METHOD_49:
+	case CFG_METHOD_91:
 		if (HW_DASH_SUPPORT_DASH(hw))
 			hw->HwSuppOcpChannelVer = 2;
 		break;
-	case CFG_METHOD_54:
-	case CFG_METHOD_55:
-		hw->HwSuppOcpChannelVer = 2;
-		break;
 	default:
 		hw->HwSuppOcpChannelVer = 0;
 		break;
diff --git a/drivers/net/r8169/r8169_phy.c b/drivers/net/r8169/r8169_phy.c
index 44ffd49a56..677bca7800 100644
--- a/drivers/net/r8169/r8169_phy.c
+++ b/drivers/net/r8169/r8169_phy.c
@@ -1207,41 +1207,11 @@  rtl_disable_adv_eee(struct rtl_hw *hw)
 	if (hw->mcfg < CFG_METHOD_25 || hw->mcfg == CFG_METHOD_37)
 		return;
 
-	switch (hw->mcfg) {
-	case CFG_METHOD_23:
-	case CFG_METHOD_27:
-	case CFG_METHOD_28:
-	case CFG_METHOD_31:
-	case CFG_METHOD_32:
-	case CFG_METHOD_33:
-	case CFG_METHOD_34:
-	case CFG_METHOD_48:
-	case CFG_METHOD_49:
-	case CFG_METHOD_52:
-	case CFG_METHOD_54:
-	case CFG_METHOD_55:
-		rtl_oob_mutex_lock(hw);
-		break;
-	}
+	rtl_oob_mutex_lock(hw);
 
 	_rtl_disable_adv_eee(hw);
 
-	switch (hw->mcfg) {
-	case CFG_METHOD_23:
-	case CFG_METHOD_27:
-	case CFG_METHOD_28:
-	case CFG_METHOD_31:
-	case CFG_METHOD_32:
-	case CFG_METHOD_33:
-	case CFG_METHOD_34:
-	case CFG_METHOD_48:
-	case CFG_METHOD_49:
-	case CFG_METHOD_52:
-	case CFG_METHOD_54:
-	case CFG_METHOD_55:
-		rtl_oob_mutex_unlock(hw);
-		break;
-	}
+	rtl_oob_mutex_unlock(hw);
 }
 
 static void