lkml.org 
[lkml]   [2019]   [May]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 246/276] e1000e: Disable runtime PM on CNP+
    Date
    [ Upstream commit 459d69c407f9ba122f12216555c3012284dc9fd7 ]

    There are some new e1000e devices can only be woken up from D3 one time,
    by plugging Ethernet cable. Subsequent cable plugging does set PME bit
    correctly, but it still doesn't get woken up.

    Since e1000e connects to the root complex directly, we rely on ACPI to
    wake it up. In this case, the GPE from _PRW only works once and stops
    working after that. Though it appears to be a platform bug, e1000e
    maintainers confirmed that I219 does not support D3.

    So disable runtime PM on CNP+ chips. We may need to disable earlier
    generations if this bug also hit older platforms.

    Bugzilla: https://bugzilla.kernel.org/attachment.cgi?id=280819
    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/e1000e/netdev.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
    index 8b11682ebba22..8cd339c92c1af 100644
    --- a/drivers/net/ethernet/intel/e1000e/netdev.c
    +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
    @@ -7329,7 +7329,7 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)

    dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NEVER_SKIP);

    - if (pci_dev_run_wake(pdev))
    + if (pci_dev_run_wake(pdev) && hw->mac.type < e1000_pch_cnp)
    pm_runtime_put_noidle(&pdev->dev);

    return 0;
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-05-30 05:37    [W:4.144 / U:0.592 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site