diff options
| -rw-r--r-- | MAINTAINERS | 7 | ||||
| -rw-r--r-- | drivers/char/sysrq.c | 8 | ||||
| -rw-r--r-- | drivers/input/keyboard/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/input/misc/pcf8574_keypad.c | 2 | ||||
| -rw-r--r-- | drivers/input/serio/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/input/tablet/wacom_wac.c | 9 | ||||
| -rw-r--r-- | drivers/input/touchscreen/ad7877.c | 7 |
7 files changed, 28 insertions, 9 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index b15f01e3a0dd..78758e12a810 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -2887,6 +2887,13 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git | |||
| 2887 | S: Maintained | 2887 | S: Maintained |
| 2888 | F: drivers/input/ | 2888 | F: drivers/input/ |
| 2889 | 2889 | ||
| 2890 | INPUT MULTITOUCH (MT) PROTOCOL | ||
| 2891 | M: Henrik Rydberg <rydberg@euromail.se> | ||
| 2892 | L: linux-input@vger.kernel.org | ||
| 2893 | S: Maintained | ||
| 2894 | F: Documentation/input/multi-touch-protocol.txt | ||
| 2895 | K: \b(ABS|SYN)_MT_ | ||
| 2896 | |||
| 2890 | INTEL IDLE DRIVER | 2897 | INTEL IDLE DRIVER |
| 2891 | M: Len Brown <lenb@kernel.org> | 2898 | M: Len Brown <lenb@kernel.org> |
| 2892 | L: linux-pm@lists.linux-foundation.org | 2899 | L: linux-pm@lists.linux-foundation.org |
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c index 5d15630a5830..5d64e3acb000 100644 --- a/drivers/char/sysrq.c +++ b/drivers/char/sysrq.c | |||
| @@ -580,8 +580,12 @@ static bool sysrq_filter(struct input_handle *handle, unsigned int type, | |||
| 580 | case KEY_RIGHTALT: | 580 | case KEY_RIGHTALT: |
| 581 | if (value) | 581 | if (value) |
| 582 | sysrq_alt = code; | 582 | sysrq_alt = code; |
| 583 | else if (sysrq_down && code == sysrq_alt_use) | 583 | else { |
| 584 | sysrq_down = false; | 584 | if (sysrq_down && code == sysrq_alt_use) |
| 585 | sysrq_down = false; | ||
| 586 | |||
| 587 | sysrq_alt = 0; | ||
| 588 | } | ||
| 585 | break; | 589 | break; |
| 586 | 590 | ||
| 587 | case KEY_SYSRQ: | 591 | case KEY_SYSRQ: |
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig index d8fa5d724c57..0f9a4785d798 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig | |||
| @@ -69,7 +69,7 @@ config KEYBOARD_ATARI | |||
| 69 | module will be called atakbd. | 69 | module will be called atakbd. |
| 70 | 70 | ||
| 71 | config KEYBOARD_ATKBD | 71 | config KEYBOARD_ATKBD |
| 72 | tristate "AT keyboard" if EMBEDDED || !X86 | 72 | tristate "AT keyboard" if EMBEDDED || !X86 || X86_MRST |
| 73 | default y | 73 | default y |
| 74 | select SERIO | 74 | select SERIO |
| 75 | select SERIO_LIBPS2 | 75 | select SERIO_LIBPS2 |
diff --git a/drivers/input/misc/pcf8574_keypad.c b/drivers/input/misc/pcf8574_keypad.c index 0ac47d2898ec..4b42ffc0532a 100644 --- a/drivers/input/misc/pcf8574_keypad.c +++ b/drivers/input/misc/pcf8574_keypad.c | |||
| @@ -69,7 +69,7 @@ static irqreturn_t pcf8574_kp_irq_handler(int irq, void *dev_id) | |||
| 69 | unsigned char nextstate = read_state(lp); | 69 | unsigned char nextstate = read_state(lp); |
| 70 | 70 | ||
| 71 | if (lp->laststate != nextstate) { | 71 | if (lp->laststate != nextstate) { |
| 72 | int key_down = nextstate <= ARRAY_SIZE(lp->btncode); | 72 | int key_down = nextstate < ARRAY_SIZE(lp->btncode); |
| 73 | unsigned short keycode = key_down ? | 73 | unsigned short keycode = key_down ? |
| 74 | lp->btncode[nextstate] : lp->btncode[lp->laststate]; | 74 | lp->btncode[nextstate] : lp->btncode[lp->laststate]; |
| 75 | 75 | ||
diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig index 3bfe8fafc6ad..256b9e9394dc 100644 --- a/drivers/input/serio/Kconfig +++ b/drivers/input/serio/Kconfig | |||
| @@ -22,7 +22,7 @@ config SERIO_I8042 | |||
| 22 | tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 | 22 | tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 |
| 23 | default y | 23 | default y |
| 24 | depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \ | 24 | depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \ |
| 25 | (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN | 25 | (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN && !X86_MRST |
| 26 | help | 26 | help |
| 27 | i8042 is the chip over which the standard AT keyboard and PS/2 | 27 | i8042 is the chip over which the standard AT keyboard and PS/2 |
| 28 | mouse are connected to the computer. If you use these devices, | 28 | mouse are connected to the computer. If you use these devices, |
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c index d564af58175c..415f6306105d 100644 --- a/drivers/input/tablet/wacom_wac.c +++ b/drivers/input/tablet/wacom_wac.c | |||
| @@ -284,12 +284,13 @@ static int wacom_intuos_inout(struct wacom_wac *wacom) | |||
| 284 | (data[4] << 20) + (data[5] << 12) + | 284 | (data[4] << 20) + (data[5] << 12) + |
| 285 | (data[6] << 4) + (data[7] >> 4); | 285 | (data[6] << 4) + (data[7] >> 4); |
| 286 | 286 | ||
| 287 | wacom->id[idx] = (data[2] << 4) | (data[3] >> 4); | 287 | wacom->id[idx] = (data[2] << 4) | (data[3] >> 4) | |
| 288 | ((data[7] & 0x0f) << 20) | ((data[8] & 0xf0) << 12); | ||
| 288 | 289 | ||
| 289 | switch (wacom->id[idx]) { | 290 | switch (wacom->id[idx] & 0xfffff) { |
| 290 | case 0x812: /* Inking pen */ | 291 | case 0x812: /* Inking pen */ |
| 291 | case 0x801: /* Intuos3 Inking pen */ | 292 | case 0x801: /* Intuos3 Inking pen */ |
| 292 | case 0x20802: /* Intuos4 Classic Pen */ | 293 | case 0x20802: /* Intuos4 Inking Pen */ |
| 293 | case 0x012: | 294 | case 0x012: |
| 294 | wacom->tool[idx] = BTN_TOOL_PENCIL; | 295 | wacom->tool[idx] = BTN_TOOL_PENCIL; |
| 295 | break; | 296 | break; |
| @@ -513,7 +514,7 @@ static int wacom_intuos_irq(struct wacom_wac *wacom) | |||
| 513 | input_report_abs(input, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]); | 514 | input_report_abs(input, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]); |
| 514 | input_report_abs(input, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]); | 515 | input_report_abs(input, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]); |
| 515 | 516 | ||
| 516 | if ((data[5] & 0x1f) | (data[6] & 0x1f) | (data[1] & 0x1f) | | 517 | if ((data[5] & 0x1f) | data[6] | (data[1] & 0x1f) | |
| 517 | data[2] | (data[3] & 0x1f) | data[4] | data[8] | | 518 | data[2] | (data[3] & 0x1f) | data[4] | data[8] | |
| 518 | (data[7] & 0x01)) { | 519 | (data[7] & 0x01)) { |
| 519 | input_report_key(input, wacom->tool[1], 1); | 520 | input_report_key(input, wacom->tool[1], 1); |
diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c index 0d2d7e54b465..5f0221cffef9 100644 --- a/drivers/input/touchscreen/ad7877.c +++ b/drivers/input/touchscreen/ad7877.c | |||
| @@ -679,6 +679,13 @@ static int __devinit ad7877_probe(struct spi_device *spi) | |||
| 679 | return -EINVAL; | 679 | return -EINVAL; |
| 680 | } | 680 | } |
| 681 | 681 | ||
| 682 | spi->bits_per_word = 16; | ||
| 683 | err = spi_setup(spi); | ||
| 684 | if (err) { | ||
| 685 | dev_dbg(&spi->dev, "spi master doesn't support 16 bits/word\n"); | ||
| 686 | return err; | ||
| 687 | } | ||
| 688 | |||
| 682 | ts = kzalloc(sizeof(struct ad7877), GFP_KERNEL); | 689 | ts = kzalloc(sizeof(struct ad7877), GFP_KERNEL); |
| 683 | input_dev = input_allocate_device(); | 690 | input_dev = input_allocate_device(); |
| 684 | if (!ts || !input_dev) { | 691 | if (!ts || !input_dev) { |
