ACPI: Fix D3hot v D3cold confusion
Before this patch, ACPI_STATE_D3 incorrectly referenced D3hot in some places, but D3cold in other places. After this patch, ACPI_STATE_D3 always means ACPI_STATE_D3_COLD; and all references to D3hot use ACPI_STATE_D3_HOT. ACPI's _PR3 method is used to enter both D3hot and D3cold states. What distinguishes D3hot from D3cold is the presence _PR3 (Power Resources for D3hot) If these resources are all ON, then the state is D3hot. If _PR3 is not present, or all _PR0 resources for the devices are OFF, then the state is D3cold. This patch applies after Linux-3.4-rc1. A future syntax cleanup may remove ACPI_STATE_D3 to emphasize that it always means ACPI_STATE_D3_COLD. Signed-off-by: Lin Ming <ming.m.lin@intel.com> Acked-by: Rafael J. Wysocki <rjw@sisk.pl> Reviewed-by: Aaron Lu <aaron.lu@amd.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
@@ -200,7 +200,7 @@ static pci_power_t acpi_pci_choose_state(struct pci_dev *pdev)
|
||||
return PCI_D1;
|
||||
case ACPI_STATE_D2:
|
||||
return PCI_D2;
|
||||
case ACPI_STATE_D3:
|
||||
case ACPI_STATE_D3_HOT:
|
||||
return PCI_D3hot;
|
||||
case ACPI_STATE_D3_COLD:
|
||||
return PCI_D3cold;
|
||||
@@ -223,7 +223,7 @@ static int acpi_pci_set_power_state(struct pci_dev *dev, pci_power_t state)
|
||||
[PCI_D0] = ACPI_STATE_D0,
|
||||
[PCI_D1] = ACPI_STATE_D1,
|
||||
[PCI_D2] = ACPI_STATE_D2,
|
||||
[PCI_D3hot] = ACPI_STATE_D3,
|
||||
[PCI_D3hot] = ACPI_STATE_D3_HOT,
|
||||
[PCI_D3cold] = ACPI_STATE_D3
|
||||
};
|
||||
int error = -EINVAL;
|
||||
|
Reference in New Issue
Block a user