Re: Fw: [Bug 54231] r8169 driver regression caused by the commit aee77e4accbeb2c86b1d294cd84fec4a12dde3bd
From: Francois Romieu <romieu@fr.zoreil.com>
Date: 2013-02-22 23:41:04
Stephen Hemminger [off-list ref] : [...]
quoted hunk ↗ jump to hunk
https://bugzilla.kernel.org/show_bug.cgi?id=54231--- Comment #1 from Tomi Orava <tomimo@ncircle.nullnet.fi> 2013-02-22 16:40:49 ---Although the r8169 has been working just fine on 3.4.31 for the past 5 days, it seems that I missed the second DMA Burst setting in the previous patch that should get fixed as well:
[...]
quoted hunk ↗ jump to hunk
--- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c@@ -4406,8 +4407,14 @@ static void rtl_set_rx_tx_config_registers(structrtl8169_private *tp) void __iomem *ioaddr = tp->mmio_addr; /* Set DMA burst size and Interframe Gap Time */ - RTL_W32(TxConfig, (TX_DMA_BURST << TxDMAShift) | - (InterFrameGap << TxInterFrameGapShift)); + + if (tp->mac_version == RTL_GIGA_MAC_VER_11) { + RTL_W32(TxConfig, (TX_DMA_BURST_512 << TxDMAShift) | + (InterFrameGap << TxInterFrameGapShift)); + } else { + RTL_W32(TxConfig, (TX_DMA_BURST << TxDMAShift) | + (InterFrameGap << TxInterFrameGapShift)); + } }
This one should not be used in the (RTL_CFG_1) 8168 / RTL_GIGA_MAC_VER_11 path. Tomi, what does lspci say about your 8168b device ?
quoted hunk ↗ jump to hunk
static void rtl_hw_start(struct net_device *dev)@@ -5148,8 +5155,13 @@ static void rtl_hw_start_8168(struct net_device *dev) rtl_set_rx_mode(dev); - RTL_W32(TxConfig, (TX_DMA_BURST << TxDMAShift) | - (InterFrameGap << TxInterFrameGapShift)); + if (tp->mac_version == RTL_GIGA_MAC_VER_11) { + RTL_W32(TxConfig, (TX_DMA_BURST_512 << TxDMAShift) | + (InterFrameGap << TxInterFrameGapShift)); + } else { + RTL_W32(TxConfig, (TX_DMA_BURST << TxDMAShift) | + (InterFrameGap << TxInterFrameGapShift)); + }
RTL_W32(TxConfig, (InterFrameGap << TxInterFrameGapShift) | (((tp->mac_version == RTL_GIGA_MAC_VER_11) ? TX_DMA_BURST_512 : TX_DMA_BURST) << TxDMAShift)); -- Ueimor