Commit 0dfebaf1 authored by David S. Miller's avatar David S. Miller

Merge branch 'r8169-small-improvements'

Heiner Kallweit says:

====================
r8169: series with smaller improvements w/o functional changes

This series includes smaller improvements w/o intended functional changes.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 755f6633 1e1205b7
...@@ -887,6 +887,11 @@ MODULE_FIRMWARE(FIRMWARE_8168H_2); ...@@ -887,6 +887,11 @@ MODULE_FIRMWARE(FIRMWARE_8168H_2);
MODULE_FIRMWARE(FIRMWARE_8107E_1); MODULE_FIRMWARE(FIRMWARE_8107E_1);
MODULE_FIRMWARE(FIRMWARE_8107E_2); MODULE_FIRMWARE(FIRMWARE_8107E_2);
static inline struct device *tp_to_dev(struct rtl8169_private *tp)
{
return &tp->pci_dev->dev;
}
static void rtl_lock_work(struct rtl8169_private *tp) static void rtl_lock_work(struct rtl8169_private *tp)
{ {
mutex_lock(&tp->wk.mutex); mutex_lock(&tp->wk.mutex);
...@@ -897,9 +902,9 @@ static void rtl_unlock_work(struct rtl8169_private *tp) ...@@ -897,9 +902,9 @@ static void rtl_unlock_work(struct rtl8169_private *tp)
mutex_unlock(&tp->wk.mutex); mutex_unlock(&tp->wk.mutex);
} }
static void rtl_tx_performance_tweak(struct pci_dev *pdev, u16 force) static void rtl_tx_performance_tweak(struct rtl8169_private *tp, u16 force)
{ {
pcie_capability_clear_and_set_word(pdev, PCI_EXP_DEVCTL, pcie_capability_clear_and_set_word(tp->pci_dev, PCI_EXP_DEVCTL,
PCI_EXP_DEVCTL_READRQ, force); PCI_EXP_DEVCTL_READRQ, force);
} }
...@@ -1609,17 +1614,19 @@ static void rtl_link_chg_patch(struct rtl8169_private *tp) ...@@ -1609,17 +1614,19 @@ static void rtl_link_chg_patch(struct rtl8169_private *tp)
static void rtl8169_check_link_status(struct net_device *dev, static void rtl8169_check_link_status(struct net_device *dev,
struct rtl8169_private *tp) struct rtl8169_private *tp)
{ {
struct device *d = tp_to_dev(tp);
if (tp->link_ok(tp)) { if (tp->link_ok(tp)) {
rtl_link_chg_patch(tp); rtl_link_chg_patch(tp);
/* This is to cancel a scheduled suspend if there's one. */ /* This is to cancel a scheduled suspend if there's one. */
pm_request_resume(&tp->pci_dev->dev); pm_request_resume(d);
netif_carrier_on(dev); netif_carrier_on(dev);
if (net_ratelimit()) if (net_ratelimit())
netif_info(tp, ifup, dev, "link up\n"); netif_info(tp, ifup, dev, "link up\n");
} else { } else {
netif_carrier_off(dev); netif_carrier_off(dev);
netif_info(tp, ifdown, dev, "link down\n"); netif_info(tp, ifdown, dev, "link down\n");
pm_runtime_idle(&tp->pci_dev->dev); pm_runtime_idle(d);
} }
} }
...@@ -1678,7 +1685,7 @@ static u32 __rtl8169_get_wol(struct rtl8169_private *tp) ...@@ -1678,7 +1685,7 @@ static u32 __rtl8169_get_wol(struct rtl8169_private *tp)
static void rtl8169_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) static void rtl8169_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
{ {
struct rtl8169_private *tp = netdev_priv(dev); struct rtl8169_private *tp = netdev_priv(dev);
struct device *d = &tp->pci_dev->dev; struct device *d = tp_to_dev(tp);
pm_runtime_get_noresume(d); pm_runtime_get_noresume(d);
...@@ -1781,7 +1788,7 @@ static void __rtl8169_set_wol(struct rtl8169_private *tp, u32 wolopts) ...@@ -1781,7 +1788,7 @@ static void __rtl8169_set_wol(struct rtl8169_private *tp, u32 wolopts)
static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
{ {
struct rtl8169_private *tp = netdev_priv(dev); struct rtl8169_private *tp = netdev_priv(dev);
struct device *d = &tp->pci_dev->dev; struct device *d = tp_to_dev(tp);
pm_runtime_get_noresume(d); pm_runtime_get_noresume(d);
...@@ -1794,7 +1801,7 @@ static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) ...@@ -1794,7 +1801,7 @@ static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
rtl_unlock_work(tp); rtl_unlock_work(tp);
device_set_wakeup_enable(&tp->pci_dev->dev, wol->wolopts); device_set_wakeup_enable(d, wol->wolopts);
pm_runtime_put_noidle(d); pm_runtime_put_noidle(d);
...@@ -2234,7 +2241,7 @@ static void rtl8169_get_ethtool_stats(struct net_device *dev, ...@@ -2234,7 +2241,7 @@ static void rtl8169_get_ethtool_stats(struct net_device *dev,
struct ethtool_stats *stats, u64 *data) struct ethtool_stats *stats, u64 *data)
{ {
struct rtl8169_private *tp = netdev_priv(dev); struct rtl8169_private *tp = netdev_priv(dev);
struct device *d = &tp->pci_dev->dev; struct device *d = tp_to_dev(tp);
struct rtl8169_counters *counters = tp->counters; struct rtl8169_counters *counters = tp->counters;
ASSERT_RTNL(); ASSERT_RTNL();
...@@ -4615,13 +4622,12 @@ static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr) ...@@ -4615,13 +4622,12 @@ static void rtl_rar_set(struct rtl8169_private *tp, u8 *addr)
static int rtl_set_mac_address(struct net_device *dev, void *p) static int rtl_set_mac_address(struct net_device *dev, void *p)
{ {
struct rtl8169_private *tp = netdev_priv(dev); struct rtl8169_private *tp = netdev_priv(dev);
struct device *d = &tp->pci_dev->dev; struct device *d = tp_to_dev(tp);
struct sockaddr *addr = p; int ret;
if (!is_valid_ether_addr(addr->sa_data))
return -EADDRNOTAVAIL;
memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); ret = eth_mac_addr(dev, p);
if (ret)
return ret;
pm_runtime_get_noresume(d); pm_runtime_get_noresume(d);
...@@ -5112,14 +5118,14 @@ static void r8168c_hw_jumbo_enable(struct rtl8169_private *tp) ...@@ -5112,14 +5118,14 @@ static void r8168c_hw_jumbo_enable(struct rtl8169_private *tp)
{ {
RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0);
RTL_W8(tp, Config4, RTL_R8(tp, Config4) | Jumbo_En1); RTL_W8(tp, Config4, RTL_R8(tp, Config4) | Jumbo_En1);
rtl_tx_performance_tweak(tp->pci_dev, PCI_EXP_DEVCTL_READRQ_512B); rtl_tx_performance_tweak(tp, PCI_EXP_DEVCTL_READRQ_512B);
} }
static void r8168c_hw_jumbo_disable(struct rtl8169_private *tp) static void r8168c_hw_jumbo_disable(struct rtl8169_private *tp)
{ {
RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0);
RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~Jumbo_En1); RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~Jumbo_En1);
rtl_tx_performance_tweak(tp->pci_dev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
} }
static void r8168dp_hw_jumbo_enable(struct rtl8169_private *tp) static void r8168dp_hw_jumbo_enable(struct rtl8169_private *tp)
...@@ -5137,7 +5143,7 @@ static void r8168e_hw_jumbo_enable(struct rtl8169_private *tp) ...@@ -5137,7 +5143,7 @@ static void r8168e_hw_jumbo_enable(struct rtl8169_private *tp)
RTL_W8(tp, MaxTxPacketSize, 0x3f); RTL_W8(tp, MaxTxPacketSize, 0x3f);
RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0);
RTL_W8(tp, Config4, RTL_R8(tp, Config4) | 0x01); RTL_W8(tp, Config4, RTL_R8(tp, Config4) | 0x01);
rtl_tx_performance_tweak(tp->pci_dev, PCI_EXP_DEVCTL_READRQ_512B); rtl_tx_performance_tweak(tp, PCI_EXP_DEVCTL_READRQ_512B);
} }
static void r8168e_hw_jumbo_disable(struct rtl8169_private *tp) static void r8168e_hw_jumbo_disable(struct rtl8169_private *tp)
...@@ -5145,18 +5151,18 @@ static void r8168e_hw_jumbo_disable(struct rtl8169_private *tp) ...@@ -5145,18 +5151,18 @@ static void r8168e_hw_jumbo_disable(struct rtl8169_private *tp)
RTL_W8(tp, MaxTxPacketSize, 0x0c); RTL_W8(tp, MaxTxPacketSize, 0x0c);
RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0);
RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~0x01); RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~0x01);
rtl_tx_performance_tweak(tp->pci_dev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
} }
static void r8168b_0_hw_jumbo_enable(struct rtl8169_private *tp) static void r8168b_0_hw_jumbo_enable(struct rtl8169_private *tp)
{ {
rtl_tx_performance_tweak(tp->pci_dev, rtl_tx_performance_tweak(tp,
PCI_EXP_DEVCTL_READRQ_512B | PCI_EXP_DEVCTL_NOSNOOP_EN); PCI_EXP_DEVCTL_READRQ_512B | PCI_EXP_DEVCTL_NOSNOOP_EN);
} }
static void r8168b_0_hw_jumbo_disable(struct rtl8169_private *tp) static void r8168b_0_hw_jumbo_disable(struct rtl8169_private *tp)
{ {
rtl_tx_performance_tweak(tp->pci_dev, rtl_tx_performance_tweak(tp,
(0x5 << MAX_READ_REQUEST_SHIFT) | PCI_EXP_DEVCTL_NOSNOOP_EN); (0x5 << MAX_READ_REQUEST_SHIFT) | PCI_EXP_DEVCTL_NOSNOOP_EN);
} }
...@@ -5262,7 +5268,7 @@ static void rtl_request_uncached_firmware(struct rtl8169_private *tp) ...@@ -5262,7 +5268,7 @@ static void rtl_request_uncached_firmware(struct rtl8169_private *tp)
if (!rtl_fw) if (!rtl_fw)
goto err_warn; goto err_warn;
rc = request_firmware(&rtl_fw->fw, name, &tp->pci_dev->dev); rc = request_firmware(&rtl_fw->fw, name, tp_to_dev(tp));
if (rc < 0) if (rc < 0)
goto err_free; goto err_free;
...@@ -5686,15 +5692,15 @@ static void rtl_ephy_init(struct rtl8169_private *tp, const struct ephy_info *e, ...@@ -5686,15 +5692,15 @@ static void rtl_ephy_init(struct rtl8169_private *tp, const struct ephy_info *e,
} }
} }
static void rtl_disable_clock_request(struct pci_dev *pdev) static void rtl_disable_clock_request(struct rtl8169_private *tp)
{ {
pcie_capability_clear_word(pdev, PCI_EXP_LNKCTL, pcie_capability_clear_word(tp->pci_dev, PCI_EXP_LNKCTL,
PCI_EXP_LNKCTL_CLKREQ_EN); PCI_EXP_LNKCTL_CLKREQ_EN);
} }
static void rtl_enable_clock_request(struct pci_dev *pdev) static void rtl_enable_clock_request(struct rtl8169_private *tp)
{ {
pcie_capability_set_word(pdev, PCI_EXP_LNKCTL, pcie_capability_set_word(tp->pci_dev, PCI_EXP_LNKCTL,
PCI_EXP_LNKCTL_CLKREQ_EN); PCI_EXP_LNKCTL_CLKREQ_EN);
} }
...@@ -5725,14 +5731,12 @@ static void rtl_pcie_state_l2l3_enable(struct rtl8169_private *tp, bool enable) ...@@ -5725,14 +5731,12 @@ static void rtl_pcie_state_l2l3_enable(struct rtl8169_private *tp, bool enable)
static void rtl_hw_start_8168bb(struct rtl8169_private *tp) static void rtl_hw_start_8168bb(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en);
RTL_W16(tp, CPlusCmd, RTL_R16(tp, CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK); RTL_W16(tp, CPlusCmd, RTL_R16(tp, CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK);
if (tp->dev->mtu <= ETH_DATA_LEN) { if (tp->dev->mtu <= ETH_DATA_LEN) {
rtl_tx_performance_tweak(pdev, (0x5 << MAX_READ_REQUEST_SHIFT) | rtl_tx_performance_tweak(tp, (0x5 << MAX_READ_REQUEST_SHIFT) |
PCI_EXP_DEVCTL_NOSNOOP_EN); PCI_EXP_DEVCTL_NOSNOOP_EN);
} }
} }
...@@ -5748,16 +5752,14 @@ static void rtl_hw_start_8168bef(struct rtl8169_private *tp) ...@@ -5748,16 +5752,14 @@ static void rtl_hw_start_8168bef(struct rtl8169_private *tp)
static void __rtl_hw_start_8168cp(struct rtl8169_private *tp) static void __rtl_hw_start_8168cp(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
RTL_W8(tp, Config1, RTL_R8(tp, Config1) | Speed_down); RTL_W8(tp, Config1, RTL_R8(tp, Config1) | Speed_down);
RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en);
if (tp->dev->mtu <= ETH_DATA_LEN) if (tp->dev->mtu <= ETH_DATA_LEN)
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
rtl_disable_clock_request(pdev); rtl_disable_clock_request(tp);
RTL_W16(tp, CPlusCmd, RTL_R16(tp, CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK); RTL_W16(tp, CPlusCmd, RTL_R16(tp, CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK);
} }
...@@ -5781,22 +5783,18 @@ static void rtl_hw_start_8168cp_1(struct rtl8169_private *tp) ...@@ -5781,22 +5783,18 @@ static void rtl_hw_start_8168cp_1(struct rtl8169_private *tp)
static void rtl_hw_start_8168cp_2(struct rtl8169_private *tp) static void rtl_hw_start_8168cp_2(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
rtl_csi_access_enable_2(tp); rtl_csi_access_enable_2(tp);
RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en);
if (tp->dev->mtu <= ETH_DATA_LEN) if (tp->dev->mtu <= ETH_DATA_LEN)
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
RTL_W16(tp, CPlusCmd, RTL_R16(tp, CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK); RTL_W16(tp, CPlusCmd, RTL_R16(tp, CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK);
} }
static void rtl_hw_start_8168cp_3(struct rtl8169_private *tp) static void rtl_hw_start_8168cp_3(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
rtl_csi_access_enable_2(tp); rtl_csi_access_enable_2(tp);
RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en);
...@@ -5807,7 +5805,7 @@ static void rtl_hw_start_8168cp_3(struct rtl8169_private *tp) ...@@ -5807,7 +5805,7 @@ static void rtl_hw_start_8168cp_3(struct rtl8169_private *tp)
RTL_W8(tp, MaxTxPacketSize, TxPacketMax); RTL_W8(tp, MaxTxPacketSize, TxPacketMax);
if (tp->dev->mtu <= ETH_DATA_LEN) if (tp->dev->mtu <= ETH_DATA_LEN)
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
RTL_W16(tp, CPlusCmd, RTL_R16(tp, CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK); RTL_W16(tp, CPlusCmd, RTL_R16(tp, CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK);
} }
...@@ -5857,37 +5855,32 @@ static void rtl_hw_start_8168c_4(struct rtl8169_private *tp) ...@@ -5857,37 +5855,32 @@ static void rtl_hw_start_8168c_4(struct rtl8169_private *tp)
static void rtl_hw_start_8168d(struct rtl8169_private *tp) static void rtl_hw_start_8168d(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
rtl_csi_access_enable_2(tp); rtl_csi_access_enable_2(tp);
rtl_disable_clock_request(pdev); rtl_disable_clock_request(tp);
RTL_W8(tp, MaxTxPacketSize, TxPacketMax); RTL_W8(tp, MaxTxPacketSize, TxPacketMax);
if (tp->dev->mtu <= ETH_DATA_LEN) if (tp->dev->mtu <= ETH_DATA_LEN)
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
RTL_W16(tp, CPlusCmd, RTL_R16(tp, CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK); RTL_W16(tp, CPlusCmd, RTL_R16(tp, CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK);
} }
static void rtl_hw_start_8168dp(struct rtl8169_private *tp) static void rtl_hw_start_8168dp(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
rtl_csi_access_enable_1(tp); rtl_csi_access_enable_1(tp);
if (tp->dev->mtu <= ETH_DATA_LEN) if (tp->dev->mtu <= ETH_DATA_LEN)
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
RTL_W8(tp, MaxTxPacketSize, TxPacketMax); RTL_W8(tp, MaxTxPacketSize, TxPacketMax);
rtl_disable_clock_request(pdev); rtl_disable_clock_request(tp);
} }
static void rtl_hw_start_8168d_4(struct rtl8169_private *tp) static void rtl_hw_start_8168d_4(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
static const struct ephy_info e_info_8168d_4[] = { static const struct ephy_info e_info_8168d_4[] = {
{ 0x0b, 0x0000, 0x0048 }, { 0x0b, 0x0000, 0x0048 },
{ 0x19, 0x0020, 0x0050 }, { 0x19, 0x0020, 0x0050 },
...@@ -5896,18 +5889,17 @@ static void rtl_hw_start_8168d_4(struct rtl8169_private *tp) ...@@ -5896,18 +5889,17 @@ static void rtl_hw_start_8168d_4(struct rtl8169_private *tp)
rtl_csi_access_enable_1(tp); rtl_csi_access_enable_1(tp);
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
RTL_W8(tp, MaxTxPacketSize, TxPacketMax); RTL_W8(tp, MaxTxPacketSize, TxPacketMax);
rtl_ephy_init(tp, e_info_8168d_4, ARRAY_SIZE(e_info_8168d_4)); rtl_ephy_init(tp, e_info_8168d_4, ARRAY_SIZE(e_info_8168d_4));
rtl_enable_clock_request(pdev); rtl_enable_clock_request(tp);
} }
static void rtl_hw_start_8168e_1(struct rtl8169_private *tp) static void rtl_hw_start_8168e_1(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
static const struct ephy_info e_info_8168e_1[] = { static const struct ephy_info e_info_8168e_1[] = {
{ 0x00, 0x0200, 0x0100 }, { 0x00, 0x0200, 0x0100 },
{ 0x00, 0x0000, 0x0004 }, { 0x00, 0x0000, 0x0004 },
...@@ -5929,11 +5921,11 @@ static void rtl_hw_start_8168e_1(struct rtl8169_private *tp) ...@@ -5929,11 +5921,11 @@ static void rtl_hw_start_8168e_1(struct rtl8169_private *tp)
rtl_ephy_init(tp, e_info_8168e_1, ARRAY_SIZE(e_info_8168e_1)); rtl_ephy_init(tp, e_info_8168e_1, ARRAY_SIZE(e_info_8168e_1));
if (tp->dev->mtu <= ETH_DATA_LEN) if (tp->dev->mtu <= ETH_DATA_LEN)
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
RTL_W8(tp, MaxTxPacketSize, TxPacketMax); RTL_W8(tp, MaxTxPacketSize, TxPacketMax);
rtl_disable_clock_request(pdev); rtl_disable_clock_request(tp);
/* Reset tx FIFO pointer */ /* Reset tx FIFO pointer */
RTL_W32(tp, MISC, RTL_R32(tp, MISC) | TXPLA_RST); RTL_W32(tp, MISC, RTL_R32(tp, MISC) | TXPLA_RST);
...@@ -5944,7 +5936,6 @@ static void rtl_hw_start_8168e_1(struct rtl8169_private *tp) ...@@ -5944,7 +5936,6 @@ static void rtl_hw_start_8168e_1(struct rtl8169_private *tp)
static void rtl_hw_start_8168e_2(struct rtl8169_private *tp) static void rtl_hw_start_8168e_2(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
static const struct ephy_info e_info_8168e_2[] = { static const struct ephy_info e_info_8168e_2[] = {
{ 0x09, 0x0000, 0x0080 }, { 0x09, 0x0000, 0x0080 },
{ 0x19, 0x0000, 0x0224 } { 0x19, 0x0000, 0x0224 }
...@@ -5955,7 +5946,7 @@ static void rtl_hw_start_8168e_2(struct rtl8169_private *tp) ...@@ -5955,7 +5946,7 @@ static void rtl_hw_start_8168e_2(struct rtl8169_private *tp)
rtl_ephy_init(tp, e_info_8168e_2, ARRAY_SIZE(e_info_8168e_2)); rtl_ephy_init(tp, e_info_8168e_2, ARRAY_SIZE(e_info_8168e_2));
if (tp->dev->mtu <= ETH_DATA_LEN) if (tp->dev->mtu <= ETH_DATA_LEN)
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000, ERIAR_EXGMAC); rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000, ERIAR_EXGMAC);
rtl_eri_write(tp, 0xb8, ERIAR_MASK_0011, 0x0000, ERIAR_EXGMAC); rtl_eri_write(tp, 0xb8, ERIAR_MASK_0011, 0x0000, ERIAR_EXGMAC);
...@@ -5968,7 +5959,7 @@ static void rtl_hw_start_8168e_2(struct rtl8169_private *tp) ...@@ -5968,7 +5959,7 @@ static void rtl_hw_start_8168e_2(struct rtl8169_private *tp)
RTL_W8(tp, MaxTxPacketSize, EarlySize); RTL_W8(tp, MaxTxPacketSize, EarlySize);
rtl_disable_clock_request(pdev); rtl_disable_clock_request(tp);
RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | TXCFG_AUTO_FIFO); RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | TXCFG_AUTO_FIFO);
RTL_W8(tp, MCU, RTL_R8(tp, MCU) & ~NOW_IS_OOB); RTL_W8(tp, MCU, RTL_R8(tp, MCU) & ~NOW_IS_OOB);
...@@ -5983,11 +5974,9 @@ static void rtl_hw_start_8168e_2(struct rtl8169_private *tp) ...@@ -5983,11 +5974,9 @@ static void rtl_hw_start_8168e_2(struct rtl8169_private *tp)
static void rtl_hw_start_8168f(struct rtl8169_private *tp) static void rtl_hw_start_8168f(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
rtl_csi_access_enable_2(tp); rtl_csi_access_enable_2(tp);
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000, ERIAR_EXGMAC); rtl_eri_write(tp, 0xc0, ERIAR_MASK_0011, 0x0000, ERIAR_EXGMAC);
rtl_eri_write(tp, 0xb8, ERIAR_MASK_0011, 0x0000, ERIAR_EXGMAC); rtl_eri_write(tp, 0xb8, ERIAR_MASK_0011, 0x0000, ERIAR_EXGMAC);
...@@ -6002,7 +5991,7 @@ static void rtl_hw_start_8168f(struct rtl8169_private *tp) ...@@ -6002,7 +5991,7 @@ static void rtl_hw_start_8168f(struct rtl8169_private *tp)
RTL_W8(tp, MaxTxPacketSize, EarlySize); RTL_W8(tp, MaxTxPacketSize, EarlySize);
rtl_disable_clock_request(pdev); rtl_disable_clock_request(tp);
RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | TXCFG_AUTO_FIFO); RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | TXCFG_AUTO_FIFO);
RTL_W8(tp, MCU, RTL_R8(tp, MCU) & ~NOW_IS_OOB); RTL_W8(tp, MCU, RTL_R8(tp, MCU) & ~NOW_IS_OOB);
...@@ -6049,8 +6038,6 @@ static void rtl_hw_start_8411(struct rtl8169_private *tp) ...@@ -6049,8 +6038,6 @@ static void rtl_hw_start_8411(struct rtl8169_private *tp)
static void rtl_hw_start_8168g(struct rtl8169_private *tp) static void rtl_hw_start_8168g(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | TXCFG_AUTO_FIFO); RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | TXCFG_AUTO_FIFO);
rtl_eri_write(tp, 0xc8, ERIAR_MASK_0101, 0x080002, ERIAR_EXGMAC); rtl_eri_write(tp, 0xc8, ERIAR_MASK_0101, 0x080002, ERIAR_EXGMAC);
...@@ -6060,7 +6047,7 @@ static void rtl_hw_start_8168g(struct rtl8169_private *tp) ...@@ -6060,7 +6047,7 @@ static void rtl_hw_start_8168g(struct rtl8169_private *tp)
rtl_csi_access_enable_1(tp); rtl_csi_access_enable_1(tp);
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x00, 0x01, ERIAR_EXGMAC); rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x00, 0x01, ERIAR_EXGMAC);
rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x01, 0x00, ERIAR_EXGMAC); rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x01, 0x00, ERIAR_EXGMAC);
...@@ -6135,7 +6122,6 @@ static void rtl_hw_start_8411_2(struct rtl8169_private *tp) ...@@ -6135,7 +6122,6 @@ static void rtl_hw_start_8411_2(struct rtl8169_private *tp)
static void rtl_hw_start_8168h_1(struct rtl8169_private *tp) static void rtl_hw_start_8168h_1(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
int rg_saw_cnt; int rg_saw_cnt;
u32 data; u32 data;
static const struct ephy_info e_info_8168h_1[] = { static const struct ephy_info e_info_8168h_1[] = {
...@@ -6161,7 +6147,7 @@ static void rtl_hw_start_8168h_1(struct rtl8169_private *tp) ...@@ -6161,7 +6147,7 @@ static void rtl_hw_start_8168h_1(struct rtl8169_private *tp)
rtl_csi_access_enable_1(tp); rtl_csi_access_enable_1(tp);
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x00, 0x01, ERIAR_EXGMAC); rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x00, 0x01, ERIAR_EXGMAC);
rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x01, 0x00, ERIAR_EXGMAC); rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x01, 0x00, ERIAR_EXGMAC);
...@@ -6232,8 +6218,6 @@ static void rtl_hw_start_8168h_1(struct rtl8169_private *tp) ...@@ -6232,8 +6218,6 @@ static void rtl_hw_start_8168h_1(struct rtl8169_private *tp)
static void rtl_hw_start_8168ep(struct rtl8169_private *tp) static void rtl_hw_start_8168ep(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
rtl8168ep_stop_cmac(tp); rtl8168ep_stop_cmac(tp);
RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | TXCFG_AUTO_FIFO); RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | TXCFG_AUTO_FIFO);
...@@ -6245,7 +6229,7 @@ static void rtl_hw_start_8168ep(struct rtl8169_private *tp) ...@@ -6245,7 +6229,7 @@ static void rtl_hw_start_8168ep(struct rtl8169_private *tp)
rtl_csi_access_enable_1(tp); rtl_csi_access_enable_1(tp);
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x00, 0x01, ERIAR_EXGMAC); rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x00, 0x01, ERIAR_EXGMAC);
rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x01, 0x00, ERIAR_EXGMAC); rtl_w0w1_eri(tp, 0xdc, ERIAR_MASK_0001, 0x01, 0x00, ERIAR_EXGMAC);
...@@ -6495,7 +6479,6 @@ static void rtl_hw_start_8168(struct net_device *dev) ...@@ -6495,7 +6479,6 @@ static void rtl_hw_start_8168(struct net_device *dev)
static void rtl_hw_start_8102e_1(struct rtl8169_private *tp) static void rtl_hw_start_8102e_1(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
static const struct ephy_info e_info_8102e_1[] = { static const struct ephy_info e_info_8102e_1[] = {
{ 0x01, 0, 0x6e65 }, { 0x01, 0, 0x6e65 },
{ 0x02, 0, 0x091f }, { 0x02, 0, 0x091f },
...@@ -6512,7 +6495,7 @@ static void rtl_hw_start_8102e_1(struct rtl8169_private *tp) ...@@ -6512,7 +6495,7 @@ static void rtl_hw_start_8102e_1(struct rtl8169_private *tp)
RTL_W8(tp, DBG_REG, FIX_NAK_1); RTL_W8(tp, DBG_REG, FIX_NAK_1);
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
RTL_W8(tp, Config1, RTL_W8(tp, Config1,
LEDS1 | LEDS0 | Speed_down | MEMMAP | IOMAP | VPD | PMEnable); LEDS1 | LEDS0 | Speed_down | MEMMAP | IOMAP | VPD | PMEnable);
...@@ -6527,11 +6510,9 @@ static void rtl_hw_start_8102e_1(struct rtl8169_private *tp) ...@@ -6527,11 +6510,9 @@ static void rtl_hw_start_8102e_1(struct rtl8169_private *tp)
static void rtl_hw_start_8102e_2(struct rtl8169_private *tp) static void rtl_hw_start_8102e_2(struct rtl8169_private *tp)
{ {
struct pci_dev *pdev = tp->pci_dev;
rtl_csi_access_enable_2(tp); rtl_csi_access_enable_2(tp);
rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
RTL_W8(tp, Config1, MEMMAP | IOMAP | VPD | PMEnable); RTL_W8(tp, Config1, MEMMAP | IOMAP | VPD | PMEnable);
RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en);
...@@ -6594,7 +6575,7 @@ static void rtl_hw_start_8402(struct rtl8169_private *tp) ...@@ -6594,7 +6575,7 @@ static void rtl_hw_start_8402(struct rtl8169_private *tp)
rtl_ephy_init(tp, e_info_8402, ARRAY_SIZE(e_info_8402)); rtl_ephy_init(tp, e_info_8402, ARRAY_SIZE(e_info_8402));
rtl_tx_performance_tweak(tp->pci_dev, 0x5 << MAX_READ_REQUEST_SHIFT); rtl_tx_performance_tweak(tp, 0x5 << MAX_READ_REQUEST_SHIFT);
rtl_eri_write(tp, 0xc8, ERIAR_MASK_1111, 0x00000002, ERIAR_EXGMAC); rtl_eri_write(tp, 0xc8, ERIAR_MASK_1111, 0x00000002, ERIAR_EXGMAC);
rtl_eri_write(tp, 0xe8, ERIAR_MASK_1111, 0x00000006, ERIAR_EXGMAC); rtl_eri_write(tp, 0xe8, ERIAR_MASK_1111, 0x00000006, ERIAR_EXGMAC);
...@@ -6718,7 +6699,7 @@ static inline void rtl8169_make_unusable_by_asic(struct RxDesc *desc) ...@@ -6718,7 +6699,7 @@ static inline void rtl8169_make_unusable_by_asic(struct RxDesc *desc)
static void rtl8169_free_rx_databuff(struct rtl8169_private *tp, static void rtl8169_free_rx_databuff(struct rtl8169_private *tp,
void **data_buff, struct RxDesc *desc) void **data_buff, struct RxDesc *desc)
{ {
dma_unmap_single(&tp->pci_dev->dev, le64_to_cpu(desc->addr), rx_buf_sz, dma_unmap_single(tp_to_dev(tp), le64_to_cpu(desc->addr), rx_buf_sz,
DMA_FROM_DEVICE); DMA_FROM_DEVICE);
kfree(*data_buff); kfree(*data_buff);
...@@ -6753,7 +6734,7 @@ static struct sk_buff *rtl8169_alloc_rx_data(struct rtl8169_private *tp, ...@@ -6753,7 +6734,7 @@ static struct sk_buff *rtl8169_alloc_rx_data(struct rtl8169_private *tp,
{ {
void *data; void *data;
dma_addr_t mapping; dma_addr_t mapping;
struct device *d = &tp->pci_dev->dev; struct device *d = tp_to_dev(tp);
struct net_device *dev = tp->dev; struct net_device *dev = tp->dev;
int node = dev->dev.parent ? dev_to_node(dev->dev.parent) : -1; int node = dev->dev.parent ? dev_to_node(dev->dev.parent) : -1;
...@@ -6865,7 +6846,7 @@ static void rtl8169_tx_clear_range(struct rtl8169_private *tp, u32 start, ...@@ -6865,7 +6846,7 @@ static void rtl8169_tx_clear_range(struct rtl8169_private *tp, u32 start,
if (len) { if (len) {
struct sk_buff *skb = tx_skb->skb; struct sk_buff *skb = tx_skb->skb;
rtl8169_unmap_tx_skb(&tp->pci_dev->dev, tx_skb, rtl8169_unmap_tx_skb(tp_to_dev(tp), tx_skb,
tp->TxDescArray + entry); tp->TxDescArray + entry);
if (skb) { if (skb) {
dev_consume_skb_any(skb); dev_consume_skb_any(skb);
...@@ -6917,7 +6898,7 @@ static int rtl8169_xmit_frags(struct rtl8169_private *tp, struct sk_buff *skb, ...@@ -6917,7 +6898,7 @@ static int rtl8169_xmit_frags(struct rtl8169_private *tp, struct sk_buff *skb,
struct skb_shared_info *info = skb_shinfo(skb); struct skb_shared_info *info = skb_shinfo(skb);
unsigned int cur_frag, entry; unsigned int cur_frag, entry;
struct TxDesc *uninitialized_var(txd); struct TxDesc *uninitialized_var(txd);
struct device *d = &tp->pci_dev->dev; struct device *d = tp_to_dev(tp);
entry = tp->cur_tx; entry = tp->cur_tx;
for (cur_frag = 0; cur_frag < info->nr_frags; cur_frag++) { for (cur_frag = 0; cur_frag < info->nr_frags; cur_frag++) {
...@@ -7149,7 +7130,7 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb, ...@@ -7149,7 +7130,7 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
struct rtl8169_private *tp = netdev_priv(dev); struct rtl8169_private *tp = netdev_priv(dev);
unsigned int entry = tp->cur_tx % NUM_TX_DESC; unsigned int entry = tp->cur_tx % NUM_TX_DESC;
struct TxDesc *txd = tp->TxDescArray + entry; struct TxDesc *txd = tp->TxDescArray + entry;
struct device *d = &tp->pci_dev->dev; struct device *d = tp_to_dev(tp);
dma_addr_t mapping; dma_addr_t mapping;
u32 status, len; u32 status, len;
u32 opts[2]; u32 opts[2];
...@@ -7313,7 +7294,7 @@ static void rtl_tx(struct net_device *dev, struct rtl8169_private *tp) ...@@ -7313,7 +7294,7 @@ static void rtl_tx(struct net_device *dev, struct rtl8169_private *tp)
*/ */
dma_rmb(); dma_rmb();
rtl8169_unmap_tx_skb(&tp->pci_dev->dev, tx_skb, rtl8169_unmap_tx_skb(tp_to_dev(tp), tx_skb,
tp->TxDescArray + entry); tp->TxDescArray + entry);
if (status & LastFrag) { if (status & LastFrag) {
u64_stats_update_begin(&tp->tx_stats.syncp); u64_stats_update_begin(&tp->tx_stats.syncp);
...@@ -7374,7 +7355,7 @@ static struct sk_buff *rtl8169_try_rx_copy(void *data, ...@@ -7374,7 +7355,7 @@ static struct sk_buff *rtl8169_try_rx_copy(void *data,
dma_addr_t addr) dma_addr_t addr)
{ {
struct sk_buff *skb; struct sk_buff *skb;
struct device *d = &tp->pci_dev->dev; struct device *d = tp_to_dev(tp);
data = rtl8169_align(data); data = rtl8169_align(data);
dma_sync_single_for_cpu(d, addr, pkt_size, DMA_FROM_DEVICE); dma_sync_single_for_cpu(d, addr, pkt_size, DMA_FROM_DEVICE);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment