diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2008-07-24 17:18:38 +0100 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2008-07-28 15:12:11 -0700 |
commit | 979b1791e5b8f8b556faeec4c48339e7ed63af9f (patch) | |
tree | 30990937096bb25aa8349dae7285e70f268a767a /drivers/pci/pci.c | |
parent | 362b7077a5546b42131af15ba4776f30c9a72d0c (diff) | |
download | op-kernel-dev-979b1791e5b8f8b556faeec4c48339e7ed63af9f.zip op-kernel-dev-979b1791e5b8f8b556faeec4c48339e7ed63af9f.tar.gz |
PCI: add D3 power state avoidance quirk
Libata has some hacks to deal with certain controllers going silly in D3
state. The right way to handle this is to keep a PCI device flag for
such devices. That can then be generalised for no ATA devices with power
problems.
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci/pci.c')
-rw-r--r-- | drivers/pci/pci.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index c95f77d..0a3d856 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -572,6 +572,10 @@ int pci_set_power_state(struct pci_dev *dev, pci_power_t state) if (!ret) pci_update_current_state(dev); } + /* This device is quirked not to be put into D3, so + don't put it in D3 */ + if (state == PCI_D3hot && (dev->dev_flags & PCI_DEV_FLAGS_NO_D3)) + return 0; error = pci_raw_set_power_state(dev, state); |