OSDN Git Service

r8169: power down chip in probe
authorHeiner Kallweit <hkallweit1@gmail.com>
Tue, 17 Jul 2018 19:21:37 +0000 (21:21 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 18 Jul 2018 01:03:35 +0000 (10:03 +0900)
The removed code would be called in two situations:
1. interface is brought up never or >10s after driver load
2. after close()

Case 1 we can handle cleaner by ensuring chip is powered down when
leaving probe(). open() callback will power up the chip.

In case 2 we call rtl_pll_power_down() twice currently, from the
close() callback and 10s later when entering runtime-suspend.
This is avoided by this patch.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/r8169.c

index 261fdfa..3d50378 100644 (file)
@@ -6965,10 +6965,8 @@ static int rtl8169_runtime_suspend(struct device *device)
        struct net_device *dev = pci_get_drvdata(pdev);
        struct rtl8169_private *tp = netdev_priv(dev);
 
-       if (!tp->TxDescArray) {
-               rtl_pll_power_down(tp);
+       if (!tp->TxDescArray)
                return 0;
-       }
 
        rtl_lock_work(tp);
        __rtl8169_set_wol(tp, WAKE_ANY);
@@ -7485,6 +7483,9 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (rc)
                return rc;
 
+       /* chip gets powered up in rtl_open() */
+       rtl_pll_power_down(tp);
+
        rc = register_netdev(dev);
        if (rc)
                goto err_mdio_unregister;