Potential issue with pci_prepare_to_sleep if there's no platform support for D3cold transition

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If there's no platform support for transition to D3cold, then
pci_set_power_state(dev, D3cold) still returns 0, even though
power state is transitioned to D3hot only. We called
pci_enable_wake(dev, D3cold, wakeup) before, therefore PME for
D3hot may not be enabled. Is this a bug?

Background:
In __pci_set_power_state we have the following:

error = pci_set_low_power_state(dev, PCI_D3hot, locked);
if (pci_platform_power_transition(dev, PCI_D3cold))
	return error;

The acpi_pci_set_power_state() stub returns -ENODEV.
Therefore, if error=0,  __pci_set_power_state() will
return 0 if pci_platform_power_transition() fails.





[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux