diff options
Diffstat (limited to 'drivers/pnp')
-rw-r--r-- | drivers/pnp/pnpacpi/core.c | 28 |
1 files changed, 4 insertions, 24 deletions
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c index c31aa07b3ba5..b81448b2c75d 100644 --- a/drivers/pnp/pnpacpi/core.c +++ b/drivers/pnp/pnpacpi/core.c | |||
@@ -30,26 +30,6 @@ | |||
30 | 30 | ||
31 | static int num; | 31 | static int num; |
32 | 32 | ||
33 | /* We need only to blacklist devices that have already an acpi driver that | ||
34 | * can't use pnp layer. We don't need to blacklist device that are directly | ||
35 | * used by the kernel (PCI root, ...), as it is harmless and there were | ||
36 | * already present in pnpbios. But there is an exception for devices that | ||
37 | * have irqs (PIC, Timer) because we call acpi_register_gsi. | ||
38 | * Finally, only devices that have a CRS method need to be in this list. | ||
39 | */ | ||
40 | static struct acpi_device_id excluded_id_list[] __initdata = { | ||
41 | {"PNP0C09", 0}, /* EC */ | ||
42 | {"PNP0C0F", 0}, /* Link device */ | ||
43 | {"PNP0000", 0}, /* PIC */ | ||
44 | {"PNP0100", 0}, /* Timer */ | ||
45 | {"", 0}, | ||
46 | }; | ||
47 | |||
48 | static inline int __init is_exclusive_device(struct acpi_device *dev) | ||
49 | { | ||
50 | return (!acpi_match_device_ids(dev, excluded_id_list)); | ||
51 | } | ||
52 | |||
53 | /* | 33 | /* |
54 | * Compatible Device IDs | 34 | * Compatible Device IDs |
55 | */ | 35 | */ |
@@ -266,7 +246,7 @@ static int __init pnpacpi_add_device(struct acpi_device *device) | |||
266 | if (!pnpid) | 246 | if (!pnpid) |
267 | return 0; | 247 | return 0; |
268 | 248 | ||
269 | if (is_exclusive_device(device) || !device->status.present) | 249 | if (!device->status.present) |
270 | return 0; | 250 | return 0; |
271 | 251 | ||
272 | dev = pnp_alloc_dev(&pnpacpi_protocol, num, pnpid); | 252 | dev = pnp_alloc_dev(&pnpacpi_protocol, num, pnpid); |
@@ -326,10 +306,10 @@ static acpi_status __init pnpacpi_add_device_handler(acpi_handle handle, | |||
326 | { | 306 | { |
327 | struct acpi_device *device; | 307 | struct acpi_device *device; |
328 | 308 | ||
329 | if (!acpi_bus_get_device(handle, &device)) | 309 | if (acpi_bus_get_device(handle, &device)) |
330 | pnpacpi_add_device(device); | ||
331 | else | ||
332 | return AE_CTRL_DEPTH; | 310 | return AE_CTRL_DEPTH; |
311 | if (acpi_is_pnp_device(device)) | ||
312 | pnpacpi_add_device(device); | ||
333 | return AE_OK; | 313 | return AE_OK; |
334 | } | 314 | } |
335 | 315 | ||