Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 350973
b: refs/heads/master
c: 87b85b3
h: refs/heads/master
i:
  350971: b486b0a
v: v3
  • Loading branch information
Rafael J. Wysocki committed Feb 13, 2013
1 parent ef939d9 commit f917a6f
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 73ce873a898ff385cd18e9068d38a35ff48e7585
refs/heads/master: 87b85b3c8a4ac286d41a1c6419014b7562e4663b
40 changes: 28 additions & 12 deletions trunk/drivers/acpi/scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -1553,26 +1553,42 @@ static acpi_status acpi_bus_check_add(acpi_handle handle, u32 lvl_not_used,
return AE_OK;
}

static int acpi_scan_attach_handler(struct acpi_device *device)
static int acpi_scan_do_attach_handler(struct acpi_device *device, char *id)
{
struct acpi_scan_handler *handler;
int ret = 0;

list_for_each_entry(handler, &acpi_scan_handlers_list, list_node) {
const struct acpi_device_id *id;
const struct acpi_device_id *devid;

id = __acpi_match_device(device, handler->ids);
if (!id)
continue;
for (devid = handler->ids; devid->id[0]; devid++) {
int ret;

ret = handler->attach(device, id);
if (ret > 0) {
device->handler = handler;
break;
} else if (ret < 0) {
break;
if (strcmp((char *)devid->id, id))
continue;

ret = handler->attach(device, devid);
if (ret > 0) {
device->handler = handler;
return ret;
} else if (ret < 0) {
return ret;
}
}
}
return 0;
}

static int acpi_scan_attach_handler(struct acpi_device *device)
{
struct acpi_hardware_id *hwid;
int ret = 0;

list_for_each_entry(hwid, &device->pnp.ids, list) {
ret = acpi_scan_do_attach_handler(device, hwid->id);
if (ret)
break;

}
return ret;
}

Expand Down

0 comments on commit f917a6f

Please sign in to comment.