mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 11:40:19 -04:00
Merge branch 'r8169-merge-chip-versions'
Heiner Kallweit says:
====================
r8169: merge chip versions
After 2b065c098c ("r8169: refactor chip version detection") we can
merge handling of few chip versions.
====================
Link: https://patch.msgid.link/5e1e14ea-d60f-4608-88eb-3104b6bbace8@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -64,15 +64,12 @@ enum mac_version {
|
||||
/* support for RTL_GIGA_MAC_VER_50 has been removed */
|
||||
RTL_GIGA_MAC_VER_51,
|
||||
RTL_GIGA_MAC_VER_52,
|
||||
RTL_GIGA_MAC_VER_53,
|
||||
/* support for RTL_GIGA_MAC_VER_60 has been removed */
|
||||
RTL_GIGA_MAC_VER_61,
|
||||
RTL_GIGA_MAC_VER_63,
|
||||
RTL_GIGA_MAC_VER_64,
|
||||
RTL_GIGA_MAC_VER_65,
|
||||
RTL_GIGA_MAC_VER_66,
|
||||
RTL_GIGA_MAC_VER_70,
|
||||
RTL_GIGA_MAC_VER_71,
|
||||
RTL_GIGA_MAC_NONE,
|
||||
RTL_GIGA_MAC_VER_LAST = RTL_GIGA_MAC_NONE - 1
|
||||
};
|
||||
|
||||
@@ -99,14 +99,14 @@ static const struct rtl_chip_info {
|
||||
const char *fw_name;
|
||||
} rtl_chip_infos[] = {
|
||||
/* 8126A family. */
|
||||
{ 0x7cf, 0x64a, RTL_GIGA_MAC_VER_71, "RTL8126A", FIRMWARE_8126A_3 },
|
||||
{ 0x7cf, 0x64a, RTL_GIGA_MAC_VER_70, "RTL8126A", FIRMWARE_8126A_3 },
|
||||
{ 0x7cf, 0x649, RTL_GIGA_MAC_VER_70, "RTL8126A", FIRMWARE_8126A_2 },
|
||||
|
||||
/* 8125BP family. */
|
||||
{ 0x7cf, 0x681, RTL_GIGA_MAC_VER_66, "RTL8125BP", FIRMWARE_8125BP_2 },
|
||||
|
||||
/* 8125D family. */
|
||||
{ 0x7cf, 0x689, RTL_GIGA_MAC_VER_65, "RTL8125D", FIRMWARE_8125D_2 },
|
||||
{ 0x7cf, 0x689, RTL_GIGA_MAC_VER_64, "RTL8125D", FIRMWARE_8125D_2 },
|
||||
{ 0x7cf, 0x688, RTL_GIGA_MAC_VER_64, "RTL8125D", FIRMWARE_8125D_1 },
|
||||
|
||||
/* 8125B family. */
|
||||
@@ -116,7 +116,7 @@ static const struct rtl_chip_info {
|
||||
{ 0x7cf, 0x609, RTL_GIGA_MAC_VER_61, "RTL8125A", FIRMWARE_8125A_3 },
|
||||
|
||||
/* RTL8117 */
|
||||
{ 0x7cf, 0x54b, RTL_GIGA_MAC_VER_53, "RTL8168fp/RTL8117" },
|
||||
{ 0x7cf, 0x54b, RTL_GIGA_MAC_VER_52, "RTL8168fp/RTL8117" },
|
||||
{ 0x7cf, 0x54a, RTL_GIGA_MAC_VER_52, "RTL8168fp/RTL8117",
|
||||
FIRMWARE_8168FP_3 },
|
||||
|
||||
@@ -830,7 +830,7 @@ static bool rtl_is_8168evl_up(struct rtl8169_private *tp)
|
||||
{
|
||||
return tp->mac_version >= RTL_GIGA_MAC_VER_34 &&
|
||||
tp->mac_version != RTL_GIGA_MAC_VER_39 &&
|
||||
tp->mac_version <= RTL_GIGA_MAC_VER_53;
|
||||
tp->mac_version <= RTL_GIGA_MAC_VER_52;
|
||||
}
|
||||
|
||||
static bool rtl_supports_eee(struct rtl8169_private *tp)
|
||||
@@ -998,9 +998,7 @@ void r8169_get_led_name(struct rtl8169_private *tp, int idx,
|
||||
static void r8168fp_adjust_ocp_cmd(struct rtl8169_private *tp, u32 *cmd, int type)
|
||||
{
|
||||
/* based on RTL8168FP_OOBMAC_BASE in vendor driver */
|
||||
if (type == ERIAR_OOB &&
|
||||
(tp->mac_version == RTL_GIGA_MAC_VER_52 ||
|
||||
tp->mac_version == RTL_GIGA_MAC_VER_53))
|
||||
if (type == ERIAR_OOB && tp->mac_version == RTL_GIGA_MAC_VER_52)
|
||||
*cmd |= 0xf70 << 18;
|
||||
}
|
||||
|
||||
@@ -1500,7 +1498,7 @@ static enum rtl_dash_type rtl_get_dash_type(struct rtl8169_private *tp)
|
||||
case RTL_GIGA_MAC_VER_28:
|
||||
case RTL_GIGA_MAC_VER_31:
|
||||
return RTL_DASH_DP;
|
||||
case RTL_GIGA_MAC_VER_51 ... RTL_GIGA_MAC_VER_53:
|
||||
case RTL_GIGA_MAC_VER_51 ... RTL_GIGA_MAC_VER_52:
|
||||
return RTL_DASH_EP;
|
||||
case RTL_GIGA_MAC_VER_66:
|
||||
return RTL_DASH_25_BP;
|
||||
@@ -2485,7 +2483,7 @@ static void rtl_init_rxcfg(struct rtl8169_private *tp)
|
||||
case RTL_GIGA_MAC_VER_38:
|
||||
RTL_W32(tp, RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST);
|
||||
break;
|
||||
case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_53:
|
||||
case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_52:
|
||||
RTL_W32(tp, RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST | RX_EARLY_OFF);
|
||||
break;
|
||||
case RTL_GIGA_MAC_VER_61:
|
||||
@@ -2616,7 +2614,7 @@ DECLARE_RTL_COND(rtl_rxtx_empty_cond_2)
|
||||
static void rtl_wait_txrx_fifo_empty(struct rtl8169_private *tp)
|
||||
{
|
||||
switch (tp->mac_version) {
|
||||
case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_53:
|
||||
case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_52:
|
||||
rtl_loop_wait_high(tp, &rtl_txcfg_empty_cond, 100, 42);
|
||||
rtl_loop_wait_high(tp, &rtl_rxtx_empty_cond, 100, 42);
|
||||
break;
|
||||
@@ -2939,7 +2937,6 @@ static void rtl_hw_aspm_clkreq_enable(struct rtl8169_private *tp, bool enable)
|
||||
rtl_mod_config5(tp, 0, ASPM_en);
|
||||
switch (tp->mac_version) {
|
||||
case RTL_GIGA_MAC_VER_70:
|
||||
case RTL_GIGA_MAC_VER_71:
|
||||
val8 = RTL_R8(tp, INT_CFG0_8125) | INT_CFG0_CLKREQEN;
|
||||
RTL_W8(tp, INT_CFG0_8125, val8);
|
||||
break;
|
||||
@@ -2971,7 +2968,6 @@ static void rtl_hw_aspm_clkreq_enable(struct rtl8169_private *tp, bool enable)
|
||||
|
||||
switch (tp->mac_version) {
|
||||
case RTL_GIGA_MAC_VER_70:
|
||||
case RTL_GIGA_MAC_VER_71:
|
||||
val8 = RTL_R8(tp, INT_CFG0_8125) & ~INT_CFG0_CLKREQEN;
|
||||
RTL_W8(tp, INT_CFG0_8125, val8);
|
||||
break;
|
||||
@@ -3691,12 +3687,10 @@ static void rtl_hw_start_8125_common(struct rtl8169_private *tp)
|
||||
/* disable new tx descriptor format */
|
||||
r8168_mac_ocp_modify(tp, 0xeb58, 0x0001, 0x0000);
|
||||
|
||||
if (tp->mac_version == RTL_GIGA_MAC_VER_70 ||
|
||||
tp->mac_version == RTL_GIGA_MAC_VER_71)
|
||||
if (tp->mac_version == RTL_GIGA_MAC_VER_70)
|
||||
RTL_W8(tp, 0xD8, RTL_R8(tp, 0xD8) & ~0x02);
|
||||
|
||||
if (tp->mac_version == RTL_GIGA_MAC_VER_70 ||
|
||||
tp->mac_version == RTL_GIGA_MAC_VER_71)
|
||||
if (tp->mac_version == RTL_GIGA_MAC_VER_70)
|
||||
r8168_mac_ocp_modify(tp, 0xe614, 0x0700, 0x0400);
|
||||
else if (tp->mac_version == RTL_GIGA_MAC_VER_63)
|
||||
r8168_mac_ocp_modify(tp, 0xe614, 0x0700, 0x0200);
|
||||
@@ -3714,8 +3708,7 @@ static void rtl_hw_start_8125_common(struct rtl8169_private *tp)
|
||||
r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0030);
|
||||
r8168_mac_ocp_modify(tp, 0xe040, 0x1000, 0x0000);
|
||||
r8168_mac_ocp_modify(tp, 0xea1c, 0x0003, 0x0001);
|
||||
if (tp->mac_version == RTL_GIGA_MAC_VER_70 ||
|
||||
tp->mac_version == RTL_GIGA_MAC_VER_71)
|
||||
if (tp->mac_version == RTL_GIGA_MAC_VER_70)
|
||||
r8168_mac_ocp_modify(tp, 0xea1c, 0x0300, 0x0000);
|
||||
else
|
||||
r8168_mac_ocp_modify(tp, 0xea1c, 0x0004, 0x0000);
|
||||
@@ -3831,14 +3824,11 @@ static void rtl_hw_config(struct rtl8169_private *tp)
|
||||
[RTL_GIGA_MAC_VER_48] = rtl_hw_start_8168h_1,
|
||||
[RTL_GIGA_MAC_VER_51] = rtl_hw_start_8168ep_3,
|
||||
[RTL_GIGA_MAC_VER_52] = rtl_hw_start_8117,
|
||||
[RTL_GIGA_MAC_VER_53] = rtl_hw_start_8117,
|
||||
[RTL_GIGA_MAC_VER_61] = rtl_hw_start_8125a_2,
|
||||
[RTL_GIGA_MAC_VER_63] = rtl_hw_start_8125b,
|
||||
[RTL_GIGA_MAC_VER_64] = rtl_hw_start_8125d,
|
||||
[RTL_GIGA_MAC_VER_65] = rtl_hw_start_8125d,
|
||||
[RTL_GIGA_MAC_VER_66] = rtl_hw_start_8125d,
|
||||
[RTL_GIGA_MAC_VER_70] = rtl_hw_start_8126a,
|
||||
[RTL_GIGA_MAC_VER_71] = rtl_hw_start_8126a,
|
||||
};
|
||||
|
||||
if (hw_configs[tp->mac_version])
|
||||
@@ -3855,14 +3845,12 @@ static void rtl_hw_start_8125(struct rtl8169_private *tp)
|
||||
switch (tp->mac_version) {
|
||||
case RTL_GIGA_MAC_VER_61:
|
||||
case RTL_GIGA_MAC_VER_64:
|
||||
case RTL_GIGA_MAC_VER_65:
|
||||
case RTL_GIGA_MAC_VER_66:
|
||||
for (i = 0xa00; i < 0xb00; i += 4)
|
||||
RTL_W32(tp, i, 0);
|
||||
break;
|
||||
case RTL_GIGA_MAC_VER_63:
|
||||
case RTL_GIGA_MAC_VER_70:
|
||||
case RTL_GIGA_MAC_VER_71:
|
||||
for (i = 0xa00; i < 0xa80; i += 4)
|
||||
RTL_W32(tp, i, 0);
|
||||
RTL_W16(tp, INT_CFG1_8125, 0x0000);
|
||||
@@ -5294,7 +5282,7 @@ static void rtl_hw_init_8125(struct rtl8169_private *tp)
|
||||
static void rtl_hw_initialize(struct rtl8169_private *tp)
|
||||
{
|
||||
switch (tp->mac_version) {
|
||||
case RTL_GIGA_MAC_VER_51 ... RTL_GIGA_MAC_VER_53:
|
||||
case RTL_GIGA_MAC_VER_51 ... RTL_GIGA_MAC_VER_52:
|
||||
rtl8168ep_stop_cmac(tp);
|
||||
fallthrough;
|
||||
case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_48:
|
||||
|
||||
@@ -1176,14 +1176,11 @@ void r8169_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev,
|
||||
[RTL_GIGA_MAC_VER_48] = rtl8168h_2_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_51] = rtl8168ep_2_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_52] = rtl8117_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_53] = rtl8117_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_61] = rtl8125a_2_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_63] = rtl8125b_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_64] = rtl8125d_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_65] = rtl8125d_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_66] = rtl8125bp_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_70] = rtl8126a_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_71] = rtl8126a_hw_phy_config,
|
||||
};
|
||||
|
||||
if (phy_configs[ver])
|
||||
|
||||
Reference in New Issue
Block a user