Skip to content

Commit 4d61658

Browse files
hkallweitopsiff
authored andcommitted
r8169: use helper r8169_mod_reg8_cond to simplify rtl_jumbo_config
mainline inclusion from mainline-v6.13-rc1 category: other Use recently added helper r8169_mod_reg8_cond() to simplify jumbo mode configuration. Signed-off-by: Heiner Kallweit <[email protected]> Reviewed-by: Simon Horman <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]> (cherry picked from commit 7a3bcd3) Signed-off-by: Wentao Guan <[email protected]>
1 parent 6cf8741 commit 4d61658

File tree

1 file changed

+11
-66
lines changed

1 file changed

+11
-66
lines changed

drivers/net/ethernet/realtek/r8169_main.c

Lines changed: 11 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -2543,86 +2543,31 @@ static void rtl8169_init_ring_indexes(struct rtl8169_private *tp)
25432543
tp->dirty_tx = tp->cur_tx = tp->cur_rx = 0;
25442544
}
25452545

2546-
static void r8168c_hw_jumbo_enable(struct rtl8169_private *tp)
2547-
{
2548-
RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0);
2549-
RTL_W8(tp, Config4, RTL_R8(tp, Config4) | Jumbo_En1);
2550-
}
2551-
2552-
static void r8168c_hw_jumbo_disable(struct rtl8169_private *tp)
2553-
{
2554-
RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0);
2555-
RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~Jumbo_En1);
2556-
}
2557-
2558-
static void r8168dp_hw_jumbo_enable(struct rtl8169_private *tp)
2559-
{
2560-
RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0);
2561-
}
2562-
2563-
static void r8168dp_hw_jumbo_disable(struct rtl8169_private *tp)
2564-
{
2565-
RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0);
2566-
}
2567-
2568-
static void r8168e_hw_jumbo_enable(struct rtl8169_private *tp)
2569-
{
2570-
RTL_W8(tp, MaxTxPacketSize, 0x24);
2571-
RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0);
2572-
RTL_W8(tp, Config4, RTL_R8(tp, Config4) | 0x01);
2573-
}
2574-
2575-
static void r8168e_hw_jumbo_disable(struct rtl8169_private *tp)
2576-
{
2577-
RTL_W8(tp, MaxTxPacketSize, 0x3f);
2578-
RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0);
2579-
RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~0x01);
2580-
}
2581-
2582-
static void r8168b_1_hw_jumbo_enable(struct rtl8169_private *tp)
2583-
{
2584-
RTL_W8(tp, Config4, RTL_R8(tp, Config4) | (1 << 0));
2585-
}
2586-
2587-
static void r8168b_1_hw_jumbo_disable(struct rtl8169_private *tp)
2588-
{
2589-
RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~(1 << 0));
2590-
}
2591-
25922546
static void rtl_jumbo_config(struct rtl8169_private *tp)
25932547
{
25942548
bool jumbo = tp->dev->mtu > ETH_DATA_LEN;
25952549
int readrq = 4096;
25962550

2551+
if (jumbo && tp->mac_version >= RTL_GIGA_MAC_VER_17 &&
2552+
tp->mac_version <= RTL_GIGA_MAC_VER_26)
2553+
readrq = 512;
2554+
25972555
rtl_unlock_config_regs(tp);
25982556
switch (tp->mac_version) {
25992557
case RTL_GIGA_MAC_VER_17:
2600-
if (jumbo) {
2601-
readrq = 512;
2602-
r8168b_1_hw_jumbo_enable(tp);
2603-
} else {
2604-
r8168b_1_hw_jumbo_disable(tp);
2605-
}
2558+
r8169_mod_reg8_cond(tp, Config4, BIT(0), jumbo);
26062559
break;
26072560
case RTL_GIGA_MAC_VER_18 ... RTL_GIGA_MAC_VER_26:
2608-
if (jumbo) {
2609-
readrq = 512;
2610-
r8168c_hw_jumbo_enable(tp);
2611-
} else {
2612-
r8168c_hw_jumbo_disable(tp);
2613-
}
2561+
r8169_mod_reg8_cond(tp, Config3, Jumbo_En0, jumbo);
2562+
r8169_mod_reg8_cond(tp, Config4, Jumbo_En1, jumbo);
26142563
break;
26152564
case RTL_GIGA_MAC_VER_28:
2616-
if (jumbo)
2617-
r8168dp_hw_jumbo_enable(tp);
2618-
else
2619-
r8168dp_hw_jumbo_disable(tp);
2565+
r8169_mod_reg8_cond(tp, Config3, Jumbo_En0, jumbo);
26202566
break;
26212567
case RTL_GIGA_MAC_VER_31 ... RTL_GIGA_MAC_VER_33:
2622-
if (jumbo)
2623-
r8168e_hw_jumbo_enable(tp);
2624-
else
2625-
r8168e_hw_jumbo_disable(tp);
2568+
RTL_W8(tp, MaxTxPacketSize, jumbo ? 0x24 : 0x3f);
2569+
r8169_mod_reg8_cond(tp, Config3, Jumbo_En0, jumbo);
2570+
r8169_mod_reg8_cond(tp, Config4, BIT(0), jumbo);
26262571
break;
26272572
default:
26282573
break;

0 commit comments

Comments
 (0)