[Linux-kernel-mentees] [PATCH v2] e1000: use generic power management

Brown, Aaron F aaron.f.brown at intel.com
Mon Jun 1 17:15:54 UTC 2020


> From: Vaibhav Gupta <vaibhavgupta40 at gmail.com>
> Sent: Monday, May 25, 2020 5:27 AM
> To: Vaibhav Gupta <vaibhav.varodek at gmail.com>; Bjorn Helgaas
> <helgaas at kernel.org>; Bjorn Helgaas <bhelgaas at google.com>;
> bjorn at helgaas.com; Kirsher, Jeffrey T <jeffrey.t.kirsher at intel.com>; David S.
> Miller <davem at davemloft.net>; rjw at rjwysocki.net
> Cc: Vaibhav Gupta <vaibhavgupta40 at gmail.com>; Brandeburg, Jesse
> <jesse.brandeburg at intel.com>; intel-wired-lan at lists.osuosl.org;
> netdev at vger.kernel.org; linux-kernel at vger.kernel.org; linux-kernel-
> mentees at lists.linuxfoundation.org; skhan at linuxfoundation.org
> Subject: [PATCH v2] e1000: use generic power management
> 
> compile-tested only
> 
> With legacy PM hooks, it was the responsibility of a driver to manage PCI
> states and also the device's power state. The generic approach is to let PCI
> core handle the work.
> 
> e1000_suspend() calls __e1000_shutdown() to perform intermediate tasks.
> __e1000_shutdown() modifies the value of "wake" (device should be wakeup
> enabled or not), responsible for controlling the flow of legacy PM.
> 
> Since, PCI core has no idea about the value of "wake", new code for generic
> PM may produce unexpected results. Thus, use "device_set_wakeup_enable()"
> to wakeup-enable the device accordingly.
> 
> Signed-off-by: Vaibhav Gupta <vaibhavgupta40 at gmail.com>
> ---
>  drivers/net/ethernet/intel/e1000/e1000_main.c | 49 +++++--------------
>  1 file changed, 13 insertions(+), 36 deletions(-)

I don't have many old PCI systems that handle power management properly before adding this patch.  However, the few ones that do continue to do so with the older e1000 parts I still have around.  So a small sample, but at least confirmed on _some_ real hardware
Tested-by: Aaron Brown <aaron.f.brown at intel.com>


More information about the Linux-kernel-mentees mailing list