• Rafael J. Wysocki's avatar
    PCI/PM: Use per-device D3 delays · 1ae861e6
    Rafael J. Wysocki authored
    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: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    1ae861e6
sky2.c 127 KB