summaryrefslogtreecommitdiffstats
path: root/pnpacpi-cope-with-invalid-device-ids.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pnpacpi-cope-with-invalid-device-ids.patch')
-rw-r--r--pnpacpi-cope-with-invalid-device-ids.patch85
1 files changed, 0 insertions, 85 deletions
diff --git a/pnpacpi-cope-with-invalid-device-ids.patch b/pnpacpi-cope-with-invalid-device-ids.patch
deleted file mode 100644
index 70b2ab968..000000000
--- a/pnpacpi-cope-with-invalid-device-ids.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-commit 420a0f66378c84b00b0e603e4d38210102dbe367
-Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-Date: Sat Sep 18 10:11:09 2010 -0700
-
- PNPACPI: cope with invalid device IDs
-
- If primary ID (HID) is invalid try locating first valid ID on compatible
- ID list before giving up.
-
- This helps, for example, to recognize i8042 AUX port on Sony Vaio VPCZ1
- which uses SNYSYN0003 as HID. Without the patch users are forced to
- boot with i8042.nopnp to make use of their touchpads.
-
- Tested-by: Jan-Hendrik Zab <jan@jhz.name>
- Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
- Signed-off-by: Len Brown <len.brown@intel.com>
-
-diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
-index dc4e32e..0d943ee 100644
---- a/drivers/pnp/pnpacpi/core.c
-+++ b/drivers/pnp/pnpacpi/core.c
-@@ -28,7 +28,7 @@
- #include "../base.h"
- #include "pnpacpi.h"
-
--static int num = 0;
-+static int num;
-
- /* We need only to blacklist devices that have already an acpi driver that
- * can't use pnp layer. We don't need to blacklist device that are directly
-@@ -180,11 +180,24 @@ struct pnp_protocol pnpacpi_protocol = {
- };
- EXPORT_SYMBOL(pnpacpi_protocol);
-
-+static char *pnpacpi_get_id(struct acpi_device *device)
-+{
-+ struct acpi_hardware_id *id;
-+
-+ list_for_each_entry(id, &device->pnp.ids, list) {
-+ if (ispnpidacpi(id->id))
-+ return id->id;
-+ }
-+
-+ return NULL;
-+}
-+
- static int __init pnpacpi_add_device(struct acpi_device *device)
- {
- acpi_handle temp = NULL;
- acpi_status status;
- struct pnp_dev *dev;
-+ char *pnpid;
- struct acpi_hardware_id *id;
-
- /*
-@@ -192,11 +205,17 @@ static int __init pnpacpi_add_device(struct acpi_device *device)
- * driver should not be loaded.
- */
- status = acpi_get_handle(device->handle, "_CRS", &temp);
-- if (ACPI_FAILURE(status) || !ispnpidacpi(acpi_device_hid(device)) ||
-- is_exclusive_device(device) || (!device->status.present))
-+ if (ACPI_FAILURE(status))
-+ return 0;
-+
-+ pnpid = pnpacpi_get_id(device);
-+ if (!pnpid)
-+ return 0;
-+
-+ if (is_exclusive_device(device) || !device->status.present)
- return 0;
-
-- dev = pnp_alloc_dev(&pnpacpi_protocol, num, acpi_device_hid(device));
-+ dev = pnp_alloc_dev(&pnpacpi_protocol, num, pnpid);
- if (!dev)
- return -ENOMEM;
-
-@@ -227,7 +246,7 @@ static int __init pnpacpi_add_device(struct acpi_device *device)
- pnpacpi_parse_resource_option_data(dev);
-
- list_for_each_entry(id, &device->pnp.ids, list) {
-- if (!strcmp(id->id, acpi_device_hid(device)))
-+ if (!strcmp(id->id, pnpid))
- continue;
- if (!ispnpidacpi(id->id))
- continue;