aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pnp
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pnp')
-rw-r--r--drivers/pnp/pnpacpi/core.c28
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
31static int num; 31static 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 */
40static 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
48static 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