114 lines
4.0 KiB
Diff
114 lines
4.0 KiB
Diff
commit 5a420e61e39862c7c3356080eddb23dfe4ccadb7
|
|
Author: Tom Gundersen <teg@jklm.no>
|
|
Date: Sun Jan 26 17:00:32 2014 +0100
|
|
|
|
Input: i8042 - fix PNP modaliases when both aux and kdb are enabled
|
|
|
|
Commit 78551277e4 exposed the PNP modaliases for the i8042 module. However,
|
|
when both the aux and the kbd drivers are enabled the aux entries would
|
|
override the kdb ones.
|
|
|
|
Refactor the device_id lists, and unconditionally attempt to load the driver
|
|
if either a kdb or aux devices is present.
|
|
|
|
Signed-off-by: Tom Gundersen <teg@jklm.no>
|
|
|
|
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
|
|
index 0ec9abb..dbc6958 100644
|
|
--- a/drivers/input/serio/i8042-x86ia64io.h
|
|
+++ b/drivers/input/serio/i8042-x86ia64io.h
|
|
@@ -747,25 +747,27 @@ static int i8042_pnp_aux_probe(struct pnp_dev *dev, const struct pnp_device_id *
|
|
return 0;
|
|
}
|
|
|
|
-static struct pnp_device_id pnp_kbd_devids[] = {
|
|
- { .id = "PNP0300", .driver_data = 0 },
|
|
- { .id = "PNP0301", .driver_data = 0 },
|
|
- { .id = "PNP0302", .driver_data = 0 },
|
|
- { .id = "PNP0303", .driver_data = 0 },
|
|
- { .id = "PNP0304", .driver_data = 0 },
|
|
- { .id = "PNP0305", .driver_data = 0 },
|
|
- { .id = "PNP0306", .driver_data = 0 },
|
|
- { .id = "PNP0309", .driver_data = 0 },
|
|
- { .id = "PNP030a", .driver_data = 0 },
|
|
- { .id = "PNP030b", .driver_data = 0 },
|
|
- { .id = "PNP0320", .driver_data = 0 },
|
|
- { .id = "PNP0343", .driver_data = 0 },
|
|
- { .id = "PNP0344", .driver_data = 0 },
|
|
- { .id = "PNP0345", .driver_data = 0 },
|
|
+#define KBD_DEVIDS \
|
|
+ { .id = "PNP0300", .driver_data = 0 }, \
|
|
+ { .id = "PNP0301", .driver_data = 0 }, \
|
|
+ { .id = "PNP0302", .driver_data = 0 }, \
|
|
+ { .id = "PNP0303", .driver_data = 0 }, \
|
|
+ { .id = "PNP0304", .driver_data = 0 }, \
|
|
+ { .id = "PNP0305", .driver_data = 0 }, \
|
|
+ { .id = "PNP0306", .driver_data = 0 }, \
|
|
+ { .id = "PNP0309", .driver_data = 0 }, \
|
|
+ { .id = "PNP030a", .driver_data = 0 }, \
|
|
+ { .id = "PNP030b", .driver_data = 0 }, \
|
|
+ { .id = "PNP0320", .driver_data = 0 }, \
|
|
+ { .id = "PNP0343", .driver_data = 0 }, \
|
|
+ { .id = "PNP0344", .driver_data = 0 }, \
|
|
+ { .id = "PNP0345", .driver_data = 0 }, \
|
|
{ .id = "CPQA0D7", .driver_data = 0 },
|
|
+
|
|
+static struct pnp_device_id pnp_kbd_devids[] = {
|
|
+ KBD_DEVIDS
|
|
{ .id = "", },
|
|
};
|
|
-MODULE_DEVICE_TABLE(pnp, pnp_kbd_devids);
|
|
|
|
static struct pnp_driver i8042_pnp_kbd_driver = {
|
|
.name = "i8042 kbd",
|
|
@@ -773,21 +775,23 @@ static struct pnp_driver i8042_pnp_kbd_driver = {
|
|
.probe = i8042_pnp_kbd_probe,
|
|
};
|
|
|
|
-static struct pnp_device_id pnp_aux_devids[] = {
|
|
- { .id = "AUI0200", .driver_data = 0 },
|
|
- { .id = "FJC6000", .driver_data = 0 },
|
|
- { .id = "FJC6001", .driver_data = 0 },
|
|
- { .id = "PNP0f03", .driver_data = 0 },
|
|
- { .id = "PNP0f0b", .driver_data = 0 },
|
|
- { .id = "PNP0f0e", .driver_data = 0 },
|
|
- { .id = "PNP0f12", .driver_data = 0 },
|
|
- { .id = "PNP0f13", .driver_data = 0 },
|
|
- { .id = "PNP0f19", .driver_data = 0 },
|
|
- { .id = "PNP0f1c", .driver_data = 0 },
|
|
+#define AUX_DEVIDS \
|
|
+ { .id = "AUI0200", .driver_data = 0 }, \
|
|
+ { .id = "FJC6000", .driver_data = 0 }, \
|
|
+ { .id = "FJC6001", .driver_data = 0 }, \
|
|
+ { .id = "PNP0f03", .driver_data = 0 }, \
|
|
+ { .id = "PNP0f0b", .driver_data = 0 }, \
|
|
+ { .id = "PNP0f0e", .driver_data = 0 }, \
|
|
+ { .id = "PNP0f12", .driver_data = 0 }, \
|
|
+ { .id = "PNP0f13", .driver_data = 0 }, \
|
|
+ { .id = "PNP0f19", .driver_data = 0 }, \
|
|
+ { .id = "PNP0f1c", .driver_data = 0 }, \
|
|
{ .id = "SYN0801", .driver_data = 0 },
|
|
+
|
|
+static struct pnp_device_id pnp_aux_devids[] = {
|
|
+ AUX_DEVIDS
|
|
{ .id = "", },
|
|
};
|
|
-MODULE_DEVICE_TABLE(pnp, pnp_aux_devids);
|
|
|
|
static struct pnp_driver i8042_pnp_aux_driver = {
|
|
.name = "i8042 aux",
|
|
@@ -795,6 +799,13 @@ static struct pnp_driver i8042_pnp_aux_driver = {
|
|
.probe = i8042_pnp_aux_probe,
|
|
};
|
|
|
|
+static struct pnp_device_id pnp_kdb_aux_devids[] = {
|
|
+ KBD_DEVIDS
|
|
+ AUX_DEVIDS
|
|
+ { .id = "", },
|
|
+};
|
|
+MODULE_DEVICE_TABLE(pnp, pnp_kdb_aux_devids);
|
|
+
|
|
static void i8042_pnp_exit(void)
|
|
{
|
|
if (i8042_pnp_kbd_registered) {
|