- Assign unique IDs to all special case devices (thermal zones, power resources, processors, power/sleep buttons)

svn path=/trunk/; revision=53501
This commit is contained in:
Cameron Gutman 2011-08-30 20:35:31 +00:00
parent fcea4abdca
commit 5c318a1fa0

View file

@ -60,7 +60,8 @@ LIST_HEAD(acpi_bus_event_list);
KEVENT AcpiEventQueue; KEVENT AcpiEventQueue;
KDPC event_dpc; KDPC event_dpc;
int ProcessorCount; int ProcessorCount, PowerDeviceCount, PowerButtonCount, FixedPowerButtonCount;
int FixedSleepButtonCount, SleepButtonCount, ThermalZoneCount;
static int static int
acpi_device_register ( acpi_device_register (
@ -1146,7 +1147,7 @@ acpi_bus_add (
char *uid = NULL; char *uid = NULL;
ACPI_DEVICE_ID_LIST *cid_list = NULL; ACPI_DEVICE_ID_LIST *cid_list = NULL;
int i = 0; int i = 0;
char processor_uid[5]; char static_uid_buffer[5];
if (!child) if (!child)
return_VALUE(AE_BAD_PARAMETER); return_VALUE(AE_BAD_PARAMETER);
@ -1271,10 +1272,12 @@ acpi_bus_add (
break; break;
case ACPI_BUS_TYPE_POWER: case ACPI_BUS_TYPE_POWER:
hid = ACPI_POWER_HID; hid = ACPI_POWER_HID;
uid = static_uid_buffer;
sprintf(uid, "%d", (PowerDeviceCount++));
break; break;
case ACPI_BUS_TYPE_PROCESSOR: case ACPI_BUS_TYPE_PROCESSOR:
hid = ACPI_PROCESSOR_HID; hid = ACPI_PROCESSOR_HID;
uid = processor_uid; uid = static_uid_buffer;
sprintf(uid, "%d", (ProcessorCount++)); sprintf(uid, "%d", (ProcessorCount++));
break; break;
case ACPI_BUS_TYPE_SYSTEM: case ACPI_BUS_TYPE_SYSTEM:
@ -1282,18 +1285,28 @@ acpi_bus_add (
break; break;
case ACPI_BUS_TYPE_THERMAL: case ACPI_BUS_TYPE_THERMAL:
hid = ACPI_THERMAL_HID; hid = ACPI_THERMAL_HID;
uid = static_uid_buffer;
sprintf(uid, "%d", (ThermalZoneCount++));
break; break;
case ACPI_BUS_TYPE_POWER_BUTTON: case ACPI_BUS_TYPE_POWER_BUTTON:
hid = ACPI_BUTTON_HID_POWER; hid = ACPI_BUTTON_HID_POWER;
uid = static_uid_buffer;
sprintf(uid, "%d", (PowerButtonCount++));
break; break;
case ACPI_BUS_TYPE_POWER_BUTTONF: case ACPI_BUS_TYPE_POWER_BUTTONF:
hid = ACPI_BUTTON_HID_POWERF; hid = ACPI_BUTTON_HID_POWERF;
uid = static_uid_buffer;
sprintf(uid, "%d", (FixedPowerButtonCount++));
break; break;
case ACPI_BUS_TYPE_SLEEP_BUTTON: case ACPI_BUS_TYPE_SLEEP_BUTTON:
hid = ACPI_BUTTON_HID_SLEEP; hid = ACPI_BUTTON_HID_SLEEP;
uid = static_uid_buffer;
sprintf(uid, "%d", (SleepButtonCount++));
break; break;
case ACPI_BUS_TYPE_SLEEP_BUTTONF: case ACPI_BUS_TYPE_SLEEP_BUTTONF:
hid = ACPI_BUTTON_HID_SLEEPF; hid = ACPI_BUTTON_HID_SLEEPF;
uid = static_uid_buffer;
sprintf(uid, "%d", (FixedSleepButtonCount++));
break; break;
} }