aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/r8169.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/r8169.c')
-rw-r--r--drivers/net/r8169.c15
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)
2054 RTL_W16(IntrMask, tp->intr_event); 2054 RTL_W16(IntrMask, tp->intr_event);
2055} 2055}
2056 2056
2057static void rtl_tx_performance_tweak(struct pci_dev *pdev, u8 force)
2058{
2059 u8 ctl;
2060
2061 pci_read_config_byte(pdev, 0x69, &ctl);
2062 ctl = (ctl & ~0x70) | force;
2063 pci_write_config_byte(pdev, 0x69, ctl);
2064}
2065
2057static void rtl_hw_start_8168(struct net_device *dev) 2066static void rtl_hw_start_8168(struct net_device *dev)
2058{ 2067{
2059 struct rtl8169_private *tp = netdev_priv(dev); 2068 struct rtl8169_private *tp = netdev_priv(dev);
2060 void __iomem *ioaddr = tp->mmio_addr; 2069 void __iomem *ioaddr = tp->mmio_addr;
2061 struct pci_dev *pdev = tp->pci_dev; 2070 struct pci_dev *pdev = tp->pci_dev;
2062 u8 ctl;
2063 2071
2064 RTL_W8(Cfg9346, Cfg9346_Unlock); 2072 RTL_W8(Cfg9346, Cfg9346_Unlock);
2065 2073
@@ -2073,10 +2081,7 @@ static void rtl_hw_start_8168(struct net_device *dev)
2073 2081
2074 RTL_W16(CPlusCmd, tp->cp_cmd); 2082 RTL_W16(CPlusCmd, tp->cp_cmd);
2075 2083
2076 /* Tx performance tweak. */ 2084 rtl_tx_performance_tweak(pdev, 0x50);
2077 pci_read_config_byte(pdev, 0x69, &ctl);
2078 ctl = (ctl & ~0x70) | 0x50;
2079 pci_write_config_byte(pdev, 0x69, ctl);
2080 2085
2081 RTL_W16(IntrMitigate, 0x5151); 2086 RTL_W16(IntrMitigate, 0x5151);
2082 2087