linux/drivers/pci
Rafael J. Wysocki 076a5dc21f PCI/PM: Fix fallback to PCI_D0 in pci_platform_power_transition()
commit 769ba7212f upstream.

Commit b51306c (PCI: Set device power state to PCI_D0 for device
without native PM support) modified pci_platform_power_transition()
by adding code causing dev->current_state for devices that don't
support native PCI PM but are power-manageable by the platform to be
changed to PCI_D0 regardless of the value returned by the preceding
platform_pci_set_power_state().  In particular, that also is done
if the platform_pci_set_power_state() has been successful, which
causes the correct power state of the device set by
pci_update_current_state() in that case to be overwritten by PCI_D0.

Fix that mistake by making the fallback to PCI_D0 only happen if
the platform_pci_set_power_state() has returned an error.

[bhelgaas: folded in Yinghai's simplification, added URL & stable info]
Reference: http://lkml.kernel.org/r/27806FC4E5928A408B78E88BBC67A2306F466BBA@ORSMSX101.amr.corp.intel.com
Reported-by: Chris J. Benenati <chris.j.benenati@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-05-07 19:51:55 -07:00
..
hotplug PCI: shpchp: Handle push button event asynchronously 2013-01-27 20:47:43 -08:00
pcie PCI: Allow pcie_aspm=force even when FADT indicates it is unsupported 2013-01-27 20:47:43 -08:00
.gitignore
access.c PCI: Introduce INTx check & mask API 2012-01-06 12:10:34 -08:00
ats.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
bus.c PCI: add struct pci_host_bridge_window with CPU/bus address offset 2012-02-23 20:19:00 -07:00
hotplug-pci.c
hotplug.c
htirq.c
ioapic.c
iov.c PCI: Rename pci_remove_bus_device to pci_stop_and_remove_bus_device 2012-02-27 12:12:18 -08:00
irq.c
Kconfig PCI: add a PCI resource reallocation config option 2012-02-24 09:38:59 -08:00
Makefile pci: frv architecture needs generic setup-bus infrastructure 2012-04-26 14:46:17 -04:00
msi.c x86/PCI: Expand the x86_msi_ops to have a restore MSIs. 2012-01-06 14:02:26 -08:00
msi.h
of.c
pci-acpi.c ACPI / PCI / PM: Fix device PM regression related to D3hot/D3cold 2012-05-17 16:16:16 -07:00
pci-driver.c PCI: EHCI: Fix crash during hibernation on ASUS computers 2012-09-14 10:00:20 -07:00
pci-label.c
pci-stub.c
pci-sysfs.c PCI: Rename pci_remove_bus_device to pci_stop_and_remove_bus_device 2012-02-27 12:12:18 -08:00
pci.c PCI/PM: Fix fallback to PCI_D0 in pci_platform_power_transition() 2013-05-07 19:51:55 -07:00
pci.h PCI: Move "pci reassigndev resource alignment" out of quirks.c 2012-02-24 14:37:26 -08:00
probe.c PCI: Check P2P bridge for invalid secondary/subordinate range 2012-10-13 05:38:48 +09:00
proc.c
quirks.c PCI: Reduce Ricoh 0xe822 SD card reader base clock frequency to 50MHz 2013-01-11 09:07:16 -08:00
remove.c PCI/PM: Clean up PME state when removing a device 2013-02-17 10:49:26 -08:00
rom.c
search.c
setup-bus.c Merge branch 'pci-next+probe_only+bus2res-fb127cb' of git://github.com/bjorn-helgaas/linux into linux-next 2012-02-24 14:25:33 -08:00
setup-irq.c
setup-res.c PCI: Move "pci reassigndev resource alignment" out of quirks.c 2012-02-24 14:37:26 -08:00
slot.c
syscall.c
vpd.c
xen-pcifront.c Two fixes for regressions: 2012-04-06 17:54:53 -07:00