diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-06-23 22:12:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-06-23 22:12:46 -0400 |
commit | e941bc0dd787cd79da3aa7cf1fe0bc1eca6c0b2d (patch) | |
tree | 83386b43591bd152352c5f967829c89cb9de85da /drivers/input | |
parent | 9e895ace5d82df8929b16f58e9f515f6d54ab82d (diff) | |
parent | be66227151c0cd4da536098c3ee07809101c6faa (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input subsystem updates from Dmitry Torokhov:
"A few small fixups for cyttsp, wacom and xpad drivers"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: xpad - fix for "Mad Catz Street Fighter IV FightPad" controllers
Input: wacom - add a new stylus (0x100802) for Intuos5 and Cintiqs
Input: add missing dependencies on CONFIG_HAS_IOMEM
Input: cyttsp - fix swapped mfg_stat and mfg_cmd registers
Input: cyttsp - add missing handshake
Input: cyttsp - fix memcpy size param
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/joystick/xpad.c | 2 | ||||
-rw-r--r-- | drivers/input/keyboard/Kconfig | 1 | ||||
-rw-r--r-- | drivers/input/serio/Kconfig | 1 | ||||
-rw-r--r-- | drivers/input/tablet/wacom_wac.c | 2 | ||||
-rw-r--r-- | drivers/input/touchscreen/cyttsp_core.c | 28 | ||||
-rw-r--r-- | drivers/input/touchscreen/cyttsp_core.h | 2 |
6 files changed, 27 insertions, 9 deletions
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c index d6cbfe9df218..fa061d46527f 100644 --- a/drivers/input/joystick/xpad.c +++ b/drivers/input/joystick/xpad.c | |||
@@ -137,7 +137,7 @@ static const struct xpad_device { | |||
137 | { 0x0738, 0x4540, "Mad Catz Beat Pad", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX }, | 137 | { 0x0738, 0x4540, "Mad Catz Beat Pad", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX }, |
138 | { 0x0738, 0x4556, "Mad Catz Lynx Wireless Controller", 0, XTYPE_XBOX }, | 138 | { 0x0738, 0x4556, "Mad Catz Lynx Wireless Controller", 0, XTYPE_XBOX }, |
139 | { 0x0738, 0x4716, "Mad Catz Wired Xbox 360 Controller", 0, XTYPE_XBOX360 }, | 139 | { 0x0738, 0x4716, "Mad Catz Wired Xbox 360 Controller", 0, XTYPE_XBOX360 }, |
140 | { 0x0738, 0x4728, "Mad Catz Street Fighter IV FightPad", XTYPE_XBOX360 }, | 140 | { 0x0738, 0x4728, "Mad Catz Street Fighter IV FightPad", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, |
141 | { 0x0738, 0x4738, "Mad Catz Wired Xbox 360 Controller (SFIV)", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, | 141 | { 0x0738, 0x4738, "Mad Catz Wired Xbox 360 Controller (SFIV)", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, |
142 | { 0x0738, 0x6040, "Mad Catz Beat Pad Pro", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX }, | 142 | { 0x0738, 0x6040, "Mad Catz Beat Pad Pro", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX }, |
143 | { 0x0738, 0xbeef, "Mad Catz JOYTECH NEO SE Advanced GamePad", XTYPE_XBOX360 }, | 143 | { 0x0738, 0xbeef, "Mad Catz JOYTECH NEO SE Advanced GamePad", XTYPE_XBOX360 }, |
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig index 62a2c0e4cc99..7ac9c9818d55 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig | |||
@@ -431,6 +431,7 @@ config KEYBOARD_TEGRA | |||
431 | 431 | ||
432 | config KEYBOARD_OPENCORES | 432 | config KEYBOARD_OPENCORES |
433 | tristate "OpenCores Keyboard Controller" | 433 | tristate "OpenCores Keyboard Controller" |
434 | depends on HAS_IOMEM | ||
434 | help | 435 | help |
435 | Say Y here if you want to use the OpenCores Keyboard Controller | 436 | Say Y here if you want to use the OpenCores Keyboard Controller |
436 | http://www.opencores.org/project,keyboardcontroller | 437 | http://www.opencores.org/project,keyboardcontroller |
diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig index aebfe3ecb945..1bda828f4b55 100644 --- a/drivers/input/serio/Kconfig +++ b/drivers/input/serio/Kconfig | |||
@@ -205,6 +205,7 @@ config SERIO_XILINX_XPS_PS2 | |||
205 | 205 | ||
206 | config SERIO_ALTERA_PS2 | 206 | config SERIO_ALTERA_PS2 |
207 | tristate "Altera UP PS/2 controller" | 207 | tristate "Altera UP PS/2 controller" |
208 | depends on HAS_IOMEM | ||
208 | help | 209 | help |
209 | Say Y here if you have Altera University Program PS/2 ports. | 210 | Say Y here if you have Altera University Program PS/2 ports. |
210 | 211 | ||
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c index 518282da6d85..384fbcd0cee0 100644 --- a/drivers/input/tablet/wacom_wac.c +++ b/drivers/input/tablet/wacom_wac.c | |||
@@ -363,6 +363,7 @@ static int wacom_intuos_inout(struct wacom_wac *wacom) | |||
363 | case 0x140802: /* Intuos4/5 13HD/24HD Classic Pen */ | 363 | case 0x140802: /* Intuos4/5 13HD/24HD Classic Pen */ |
364 | case 0x160802: /* Cintiq 13HD Pro Pen */ | 364 | case 0x160802: /* Cintiq 13HD Pro Pen */ |
365 | case 0x180802: /* DTH2242 Pen */ | 365 | case 0x180802: /* DTH2242 Pen */ |
366 | case 0x100802: /* Intuos4/5 13HD/24HD General Pen */ | ||
366 | wacom->tool[idx] = BTN_TOOL_PEN; | 367 | wacom->tool[idx] = BTN_TOOL_PEN; |
367 | break; | 368 | break; |
368 | 369 | ||
@@ -401,6 +402,7 @@ static int wacom_intuos_inout(struct wacom_wac *wacom) | |||
401 | case 0x10080c: /* Intuos4/5 13HD/24HD Art Pen Eraser */ | 402 | case 0x10080c: /* Intuos4/5 13HD/24HD Art Pen Eraser */ |
402 | case 0x16080a: /* Cintiq 13HD Pro Pen Eraser */ | 403 | case 0x16080a: /* Cintiq 13HD Pro Pen Eraser */ |
403 | case 0x18080a: /* DTH2242 Eraser */ | 404 | case 0x18080a: /* DTH2242 Eraser */ |
405 | case 0x10080a: /* Intuos4/5 13HD/24HD General Pen Eraser */ | ||
404 | wacom->tool[idx] = BTN_TOOL_RUBBER; | 406 | wacom->tool[idx] = BTN_TOOL_RUBBER; |
405 | break; | 407 | break; |
406 | 408 | ||
diff --git a/drivers/input/touchscreen/cyttsp_core.c b/drivers/input/touchscreen/cyttsp_core.c index 8e60437ac85b..ae89d2609ab0 100644 --- a/drivers/input/touchscreen/cyttsp_core.c +++ b/drivers/input/touchscreen/cyttsp_core.c | |||
@@ -116,6 +116,15 @@ static int ttsp_send_command(struct cyttsp *ts, u8 cmd) | |||
116 | return ttsp_write_block_data(ts, CY_REG_BASE, sizeof(cmd), &cmd); | 116 | return ttsp_write_block_data(ts, CY_REG_BASE, sizeof(cmd), &cmd); |
117 | } | 117 | } |
118 | 118 | ||
119 | static int cyttsp_handshake(struct cyttsp *ts) | ||
120 | { | ||
121 | if (ts->pdata->use_hndshk) | ||
122 | return ttsp_send_command(ts, | ||
123 | ts->xy_data.hst_mode ^ CY_HNDSHK_BIT); | ||
124 | |||
125 | return 0; | ||
126 | } | ||
127 | |||
119 | static int cyttsp_load_bl_regs(struct cyttsp *ts) | 128 | static int cyttsp_load_bl_regs(struct cyttsp *ts) |
120 | { | 129 | { |
121 | memset(&ts->bl_data, 0, sizeof(ts->bl_data)); | 130 | memset(&ts->bl_data, 0, sizeof(ts->bl_data)); |
@@ -133,7 +142,7 @@ static int cyttsp_exit_bl_mode(struct cyttsp *ts) | |||
133 | memcpy(bl_cmd, bl_command, sizeof(bl_command)); | 142 | memcpy(bl_cmd, bl_command, sizeof(bl_command)); |
134 | if (ts->pdata->bl_keys) | 143 | if (ts->pdata->bl_keys) |
135 | memcpy(&bl_cmd[sizeof(bl_command) - CY_NUM_BL_KEYS], | 144 | memcpy(&bl_cmd[sizeof(bl_command) - CY_NUM_BL_KEYS], |
136 | ts->pdata->bl_keys, sizeof(bl_command)); | 145 | ts->pdata->bl_keys, CY_NUM_BL_KEYS); |
137 | 146 | ||
138 | error = ttsp_write_block_data(ts, CY_REG_BASE, | 147 | error = ttsp_write_block_data(ts, CY_REG_BASE, |
139 | sizeof(bl_cmd), bl_cmd); | 148 | sizeof(bl_cmd), bl_cmd); |
@@ -167,6 +176,10 @@ static int cyttsp_set_operational_mode(struct cyttsp *ts) | |||
167 | if (error) | 176 | if (error) |
168 | return error; | 177 | return error; |
169 | 178 | ||
179 | error = cyttsp_handshake(ts); | ||
180 | if (error) | ||
181 | return error; | ||
182 | |||
170 | return ts->xy_data.act_dist == CY_ACT_DIST_DFLT ? -EIO : 0; | 183 | return ts->xy_data.act_dist == CY_ACT_DIST_DFLT ? -EIO : 0; |
171 | } | 184 | } |
172 | 185 | ||
@@ -188,6 +201,10 @@ static int cyttsp_set_sysinfo_mode(struct cyttsp *ts) | |||
188 | if (error) | 201 | if (error) |
189 | return error; | 202 | return error; |
190 | 203 | ||
204 | error = cyttsp_handshake(ts); | ||
205 | if (error) | ||
206 | return error; | ||
207 | |||
191 | if (!ts->sysinfo_data.tts_verh && !ts->sysinfo_data.tts_verl) | 208 | if (!ts->sysinfo_data.tts_verh && !ts->sysinfo_data.tts_verl) |
192 | return -EIO; | 209 | return -EIO; |
193 | 210 | ||
@@ -344,12 +361,9 @@ static irqreturn_t cyttsp_irq(int irq, void *handle) | |||
344 | goto out; | 361 | goto out; |
345 | 362 | ||
346 | /* provide flow control handshake */ | 363 | /* provide flow control handshake */ |
347 | if (ts->pdata->use_hndshk) { | 364 | error = cyttsp_handshake(ts); |
348 | error = ttsp_send_command(ts, | 365 | if (error) |
349 | ts->xy_data.hst_mode ^ CY_HNDSHK_BIT); | 366 | goto out; |
350 | if (error) | ||
351 | goto out; | ||
352 | } | ||
353 | 367 | ||
354 | if (unlikely(ts->state == CY_IDLE_STATE)) | 368 | if (unlikely(ts->state == CY_IDLE_STATE)) |
355 | goto out; | 369 | goto out; |
diff --git a/drivers/input/touchscreen/cyttsp_core.h b/drivers/input/touchscreen/cyttsp_core.h index 1aa3c6967e70..f1ebde369f86 100644 --- a/drivers/input/touchscreen/cyttsp_core.h +++ b/drivers/input/touchscreen/cyttsp_core.h | |||
@@ -67,8 +67,8 @@ struct cyttsp_xydata { | |||
67 | /* TTSP System Information interface definition */ | 67 | /* TTSP System Information interface definition */ |
68 | struct cyttsp_sysinfo_data { | 68 | struct cyttsp_sysinfo_data { |
69 | u8 hst_mode; | 69 | u8 hst_mode; |
70 | u8 mfg_cmd; | ||
71 | u8 mfg_stat; | 70 | u8 mfg_stat; |
71 | u8 mfg_cmd; | ||
72 | u8 cid[3]; | 72 | u8 cid[3]; |
73 | u8 tt_undef1; | 73 | u8 tt_undef1; |
74 | u8 uid[8]; | 74 | u8 uid[8]; |