diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-01-28 00:32:17 -0200 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-01-28 00:32:17 -0200 |
commit | e36741a062b5ab0c7fa8648dfa7548589c4327cd (patch) | |
tree | e6f2df5baa41310e40e157c09b60568e91b159cc /libre-testing/linux-libre/i8042-fix-aliases.patch | |
parent | 239170b83493da6dbc75d11901ce7080b7fb0a75 (diff) |
linux-libre-3.13-2: fix i8042 aliases
Diffstat (limited to 'libre-testing/linux-libre/i8042-fix-aliases.patch')
-rw-r--r-- | libre-testing/linux-libre/i8042-fix-aliases.patch | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/libre-testing/linux-libre/i8042-fix-aliases.patch b/libre-testing/linux-libre/i8042-fix-aliases.patch new file mode 100644 index 000000000..302dcf604 --- /dev/null +++ b/libre-testing/linux-libre/i8042-fix-aliases.patch @@ -0,0 +1,113 @@ +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) { |