RE: [PATCH v2] e1000: use generic power management
From: Brown, Aaron F
Date: Mon Jun 01 2020 - 13:16:01 EST
> From: Vaibhav Gupta <vaibhavgupta40@xxxxxxxxx>
> Sent: Monday, May 25, 2020 5:27 AM
> To: Vaibhav Gupta <vaibhav.varodek@xxxxxxxxx>; Bjorn Helgaas
> <helgaas@xxxxxxxxxx>; Bjorn Helgaas <bhelgaas@xxxxxxxxxx>;
> bjorn@xxxxxxxxxxx; Kirsher, Jeffrey T <jeffrey.t.kirsher@xxxxxxxxx>; David S.
> Miller <davem@xxxxxxxxxxxxx>; rjw@xxxxxxxxxxxxx
> Cc: Vaibhav Gupta <vaibhavgupta40@xxxxxxxxx>; Brandeburg, Jesse
> <jesse.brandeburg@xxxxxxxxx>; intel-wired-lan@xxxxxxxxxxxxxxxx;
> netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-kernel-
> mentees@xxxxxxxxxxxxxxxxxxxxxxxxx; skhan@xxxxxxxxxxxxxxxxxxx
> 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@xxxxxxxxx>
> ---
> 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@xxxxxxxxx>