summaryrefslogtreecommitdiff
path: root/kernels/linux-libre-grsec/i8042-fix-aliases.patch
blob: 961968c78ca4d9cd130de6b2caf4424da99f2777 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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) {