lkml.org 
[lkml]   [2019]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 052/143] igb: Fix an issue that PME is not enabled during runtime suspend
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    [ Upstream commit 1fb3a7a75e2efcc83ef21f2434069cddd6fae6f5 ]

    I210 ethernet card doesn't wakeup when a cable gets plugged. It's
    because its PME is not set.

    Since commit 42eca2302146 ("PCI: Don't touch card regs after runtime
    suspend D3"), if the PCI state is saved, pci_pm_runtime_suspend() stops
    calling pci_finish_runtime_suspend(), which enables the PCI PME.

    To fix the issue, let's not to save PCI states when it's runtime
    suspend, to let the PCI subsystem enables PME.

    Fixes: 42eca2302146 ("PCI: Don't touch card regs after runtime suspend D3")
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/intel/igb/igb_main.c | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
    index 02b23f6277fb..c1796aa2dde5 100644
    --- a/drivers/net/ethernet/intel/igb/igb_main.c
    +++ b/drivers/net/ethernet/intel/igb/igb_main.c
    @@ -7339,9 +7339,11 @@ static int __igb_shutdown(struct pci_dev *pdev, bool *enable_wake,
    rtnl_unlock();

    #ifdef CONFIG_PM
    - retval = pci_save_state(pdev);
    - if (retval)
    - return retval;
    + if (!runtime) {
    + retval = pci_save_state(pdev);
    + if (retval)
    + return retval;
    + }
    #endif

    status = rd32(E1000_STATUS);
    --
    2.19.1


    \
     
     \ /
      Last update: 2019-02-18 15:03    [W:2.548 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site