]> git.baikalelectronics.ru Git - kernel.git/commit
PCI/PM: Use per-device D3 delays
authorRafael J. Wysocki <rjw@sisk.pl>
Thu, 31 Dec 2009 11:15:54 +0000 (12:15 +0100)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Mon, 4 Jan 2010 23:41:47 +0000 (15:41 -0800)
commit5e35e99a0e97eda1b587afa8a1a9bb54b2633f7b
treed0326aab2746a779f3ab140ec9fdea2508f2e99b
parent185e89f6a1f22b7e50c3daca9c272e86c3a770dc
PCI/PM: Use per-device D3 delays

It turns out that some PCI devices require extra delays when changing
power state from D3 to D0 (and the other way around).  Although this
is against the PCI specification, we can handle it quite easily by
allowing drivers to define arbitrary D3 delays for devices known to
require extra time for switching power states.

Introduce additional field d3_delay in struct pci_dev and use it to
store the value of the device's D0->D3 delay, in miliseconds.  Make
the PCI PM core code use the per-device d3_delay unless
pci_pm_d3_delay is greater (in which case the latter is used).
[This also allows the driver to specify d3_delay shorter than the
 10 ms required by the PCI standard if the device is known to be able
 to handle that.]

Make the sky2 driver set d3_delay to 150 for devices handled by it.

Fixes http://bugzilla.kernel.org/show_bug.cgi?id=14730 which is a
listed regression from 2.6.30.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/net/sky2.c
drivers/pci/pci.c
include/linux/pci.h