Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux

Pull an ACPI patch from Len Brown:
"It fixes a D3 issue new in 3.4-rc1."

By Lin Ming via Len Brown:
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
ACPI: Fix D3hot v D3cold confusion

+14 -16
+1 -1
drivers/acpi/power.c
··· 631 631 * We know a device's inferred power state when all the resources 632 632 * required for a given D-state are 'on'. 633 633 */ 634 - for (i = ACPI_STATE_D0; i < ACPI_STATE_D3; i++) { 634 + for (i = ACPI_STATE_D0; i < ACPI_STATE_D3_HOT; i++) { 635 635 list = &device->power.states[i].resources; 636 636 if (list->count < 1) 637 637 continue;
+7 -10
drivers/acpi/scan.c
··· 869 869 /* 870 870 * Enumerate supported power management states 871 871 */ 872 - for (i = ACPI_STATE_D0; i <= ACPI_STATE_D3; i++) { 872 + for (i = ACPI_STATE_D0; i <= ACPI_STATE_D3_HOT; i++) { 873 873 struct acpi_device_power_state *ps = &device->power.states[i]; 874 874 char object_name[5] = { '_', 'P', 'R', '0' + i, '\0' }; 875 875 ··· 884 884 acpi_bus_add_power_resource(ps->resources.handles[j]); 885 885 } 886 886 887 - /* The exist of _PR3 indicates D3Cold support */ 888 - if (i == ACPI_STATE_D3) { 889 - status = acpi_get_handle(device->handle, object_name, &handle); 890 - if (ACPI_SUCCESS(status)) 891 - device->power.states[ACPI_STATE_D3_COLD].flags.valid = 1; 892 - } 893 - 894 887 /* Evaluate "_PSx" to see if we can do explicit sets */ 895 888 object_name[2] = 'S'; 896 889 status = acpi_get_handle(device->handle, object_name, &handle); 897 890 if (ACPI_SUCCESS(status)) 898 891 ps->flags.explicit_set = 1; 899 892 900 - /* State is valid if we have some power control */ 901 - if (ps->resources.count || ps->flags.explicit_set) 893 + /* 894 + * State is valid if there are means to put the device into it. 895 + * D3hot is only valid if _PR3 present. 896 + */ 897 + if (ps->resources.count || 898 + (ps->flags.explicit_set && i < ACPI_STATE_D3_HOT)) 902 899 ps->flags.valid = 1; 903 900 904 901 ps->power = -1; /* Unknown - driver assigned */
+2 -2
drivers/pci/pci-acpi.c
··· 200 200 return PCI_D1; 201 201 case ACPI_STATE_D2: 202 202 return PCI_D2; 203 - case ACPI_STATE_D3: 203 + case ACPI_STATE_D3_HOT: 204 204 return PCI_D3hot; 205 205 case ACPI_STATE_D3_COLD: 206 206 return PCI_D3cold; ··· 223 223 [PCI_D0] = ACPI_STATE_D0, 224 224 [PCI_D1] = ACPI_STATE_D1, 225 225 [PCI_D2] = ACPI_STATE_D2, 226 - [PCI_D3hot] = ACPI_STATE_D3, 226 + [PCI_D3hot] = ACPI_STATE_D3_HOT, 227 227 [PCI_D3cold] = ACPI_STATE_D3 228 228 }; 229 229 int error = -EINVAL;
+4 -3
include/acpi/actypes.h
··· 499 499 #define ACPI_STATE_D0 (u8) 0 500 500 #define ACPI_STATE_D1 (u8) 1 501 501 #define ACPI_STATE_D2 (u8) 2 502 - #define ACPI_STATE_D3 (u8) 3 503 - #define ACPI_STATE_D3_COLD (u8) 4 504 - #define ACPI_D_STATES_MAX ACPI_STATE_D3_COLD 502 + #define ACPI_STATE_D3_HOT (u8) 3 503 + #define ACPI_STATE_D3 (u8) 4 504 + #define ACPI_STATE_D3_COLD ACPI_STATE_D3 505 + #define ACPI_D_STATES_MAX ACPI_STATE_D3 505 506 #define ACPI_D_STATE_COUNT 5 506 507 507 508 #define ACPI_STATE_C0 (u8) 0