Notification Handling
-------------------------------------------------------------------------- */
-static int
-acpi_bus_check_device(struct acpi_device *device, int *status_changed)
+static int acpi_bus_check_device(struct acpi_device *device)
{
acpi_status status = 0;
struct acpi_device_status old_status;
if (!device)
return -EINVAL;
- if (status_changed)
- *status_changed = 0;
-
old_status = device->status;
/*
*/
if (device->parent && !device->parent->status.present) {
device->status = device->parent->status;
- if (STRUCT_TO_INT(old_status) != STRUCT_TO_INT(device->status)) {
- if (status_changed)
- *status_changed = 1;
- }
return 0;
}
if (STRUCT_TO_INT(old_status) == STRUCT_TO_INT(device->status))
return 0;
- if (status_changed)
- *status_changed = 1;
-
/*
* Device Insertion/Removal
*/
static int acpi_bus_check_scope(struct acpi_device *device)
{
int result = 0;
- int status_changed = 0;
-
if (!device)
return -EINVAL;
/* Status Change? */
- result = acpi_bus_check_device(device, &status_changed);
+ result = acpi_bus_check_device(device);
if (result)
return result;
- if (!status_changed)
- return 0;
-
/*
* TBD: Enumerate child devices within this device's scope and
* run acpi_bus_check_device()'s on them.
break;
case ACPI_NOTIFY_DEVICE_CHECK:
- result = acpi_bus_check_device(device, NULL);
+ result = acpi_bus_check_device(device);
/*
* TBD: We'll need to outsource certain events to non-ACPI
* drivers via the device manager (device.c).