diff options
author | Francois Romieu <romieu@fr.zoreil.com> | 2008-08-02 15:50:02 +0200 |
---|---|---|
committer | Francois Romieu <romieu@fr.zoreil.com> | 2008-08-17 15:53:04 +0200 |
commit | 458a9f617adfb2fc5f38e7673339115c4ba3290f (patch) | |
tree | 1bae55f41064383b1bffd6163486e0a6bc8dec5c /drivers/net/r8169.c | |
parent | ccdffb9a88b2907b159538d7bfd6256621db4f84 (diff) | |
download | lwn-458a9f617adfb2fc5f38e7673339115c4ba3290f.tar.gz lwn-458a9f617adfb2fc5f38e7673339115c4ba3290f.zip |
r8169: Tx performance tweak helper
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
Diffstat (limited to 'drivers/net/r8169.c')
-rw-r--r-- | drivers/net/r8169.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index dac2677eeede..26fa6e0c6d96 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c @@ -2054,12 +2054,20 @@ static void rtl_hw_start_8169(struct net_device *dev) RTL_W16(IntrMask, tp->intr_event); } +static void rtl_tx_performance_tweak(struct pci_dev *pdev, u8 force) +{ + u8 ctl; + + pci_read_config_byte(pdev, 0x69, &ctl); + ctl = (ctl & ~0x70) | force; + pci_write_config_byte(pdev, 0x69, ctl); +} + static void rtl_hw_start_8168(struct net_device *dev) { struct rtl8169_private *tp = netdev_priv(dev); void __iomem *ioaddr = tp->mmio_addr; struct pci_dev *pdev = tp->pci_dev; - u8 ctl; RTL_W8(Cfg9346, Cfg9346_Unlock); @@ -2073,10 +2081,7 @@ static void rtl_hw_start_8168(struct net_device *dev) RTL_W16(CPlusCmd, tp->cp_cmd); - /* Tx performance tweak. */ - pci_read_config_byte(pdev, 0x69, &ctl); - ctl = (ctl & ~0x70) | 0x50; - pci_write_config_byte(pdev, 0x69, ctl); + rtl_tx_performance_tweak(pdev, 0x50); RTL_W16(IntrMitigate, 0x5151); |