aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-04-21 15:54:08 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-04-21 15:54:08 -0400
commitb8ce8d7222b52200e61ea29523993e20751baaaa (patch)
tree323b47725de6726121aa78f98a88738105ee8202
parent1d11437f4fd02f9b5d3749675a1232216787dcc6 (diff)
parent48853389f206b689260ddfd3006816779ca7a52a (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull more input subsystem updates from Dmitry Torokhov: - an update to Atmel MXT driver that makes it functional on Google Pixel 2 boxes (both touchpad and touchscreen) - a new VMware VMMouse driver that should allow us drop X vmmouse driver that requires root privileges (since it accesses ioports) - XBox One controllers now support force feedback (rumble) * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: lm8333 - fix broken email address Input: cyapa - fix setting suspend scan rate Input: elan_i2c - fix calculating number of x and y traces. Input: elan_i2c - report hovering contacts Input: elants_i2c - zero-extend hardware ID in firmware name Input: alps - document separate pointstick button bits for V2 devices Input: atmel_mxt_ts - add support for Google Pixel 2 Input: xpad - add rumble support for Xbox One controller Input: ff-core - use new debug macros Input: add vmmouse driver Input: elan_i2c - adjust for newer firmware pressure reporting
-rw-r--r--Documentation/input/alps.txt9
-rw-r--r--MAINTAINERS8
-rw-r--r--drivers/input/ff-core.c10
-rw-r--r--drivers/input/joystick/xpad.c21
-rw-r--r--drivers/input/keyboard/lm8333.c4
-rw-r--r--drivers/input/mouse/Kconfig12
-rw-r--r--drivers/input/mouse/Makefile1
-rw-r--r--drivers/input/mouse/cyapa.c4
-rw-r--r--drivers/input/mouse/elan_i2c.h3
-rw-r--r--drivers/input/mouse/elan_i2c_core.c38
-rw-r--r--drivers/input/mouse/elan_i2c_i2c.c27
-rw-r--r--drivers/input/mouse/elan_i2c_smbus.c12
-rw-r--r--drivers/input/mouse/psmouse-base.c17
-rw-r--r--drivers/input/mouse/psmouse.h1
-rw-r--r--drivers/input/mouse/vmmouse.c508
-rw-r--r--drivers/input/mouse/vmmouse.h30
-rw-r--r--drivers/input/touchscreen/atmel_mxt_ts.c141
-rw-r--r--drivers/input/touchscreen/elants_i2c.c2
18 files changed, 806 insertions, 42 deletions
diff --git a/Documentation/input/alps.txt b/Documentation/input/alps.txt
index b9d229fee6b9..c86f2f1ae4f6 100644
--- a/Documentation/input/alps.txt
+++ b/Documentation/input/alps.txt
@@ -94,6 +94,10 @@ PS/2 packet format
94 94
95Note that the device never signals overflow condition. 95Note that the device never signals overflow condition.
96 96
97For protocol version 2 devices when the trackpoint is used, and no fingers
98are on the touchpad, the M R L bits signal the combined status of both the
99pointingstick and touchpad buttons.
100
97ALPS Absolute Mode - Protocol Version 1 101ALPS Absolute Mode - Protocol Version 1
98-------------------------------------- 102--------------------------------------
99 103
@@ -107,7 +111,7 @@ ALPS Absolute Mode - Protocol Version 1
107ALPS Absolute Mode - Protocol Version 2 111ALPS Absolute Mode - Protocol Version 2
108--------------------------------------- 112---------------------------------------
109 113
110 byte 0: 1 ? ? ? 1 ? ? ? 114 byte 0: 1 ? ? ? 1 PSM PSR PSL
111 byte 1: 0 x6 x5 x4 x3 x2 x1 x0 115 byte 1: 0 x6 x5 x4 x3 x2 x1 x0
112 byte 2: 0 x10 x9 x8 x7 ? fin ges 116 byte 2: 0 x10 x9 x8 x7 ? fin ges
113 byte 3: 0 y9 y8 y7 1 M R L 117 byte 3: 0 y9 y8 y7 1 M R L
@@ -115,7 +119,8 @@ ALPS Absolute Mode - Protocol Version 2
115 byte 5: 0 z6 z5 z4 z3 z2 z1 z0 119 byte 5: 0 z6 z5 z4 z3 z2 z1 z0
116 120
117Protocol Version 2 DualPoint devices send standard PS/2 mouse packets for 121Protocol Version 2 DualPoint devices send standard PS/2 mouse packets for
118the DualPoint Stick. 122the DualPoint Stick. For non interleaved dualpoint devices the pointingstick
123buttons get reported separately in the PSM, PSR and PSL bits.
119 124
120Dualpoint device -- interleaved packet format 125Dualpoint device -- interleaved packet format
121--------------------------------------------- 126---------------------------------------------
diff --git a/MAINTAINERS b/MAINTAINERS
index 1af6b9a9a6d5..b4b131a0b939 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -10597,6 +10597,14 @@ L: linux-kernel@vger.kernel.org
10597S: Maintained 10597S: Maintained
10598F: drivers/misc/vmw_balloon.c 10598F: drivers/misc/vmw_balloon.c
10599 10599
10600VMWARE VMMOUSE SUBDRIVER
10601M: "VMware Graphics" <linux-graphics-maintainer@vmware.com>
10602M: "VMware, Inc." <pv-drivers@vmware.com>
10603L: linux-input@vger.kernel.org
10604S: Maintained
10605F: drivers/input/mouse/vmmouse.c
10606F: drivers/input/mouse/vmmouse.h
10607
10600VMWARE VMXNET3 ETHERNET DRIVER 10608VMWARE VMXNET3 ETHERNET DRIVER
10601M: Shreyas Bhatewara <sbhatewara@vmware.com> 10609M: Shreyas Bhatewara <sbhatewara@vmware.com>
10602M: "VMware, Inc." <pv-drivers@vmware.com> 10610M: "VMware, Inc." <pv-drivers@vmware.com>
diff --git a/drivers/input/ff-core.c b/drivers/input/ff-core.c
index f50f6dd92274..b81c88c43452 100644
--- a/drivers/input/ff-core.c
+++ b/drivers/input/ff-core.c
@@ -23,8 +23,6 @@
23 23
24/* #define DEBUG */ 24/* #define DEBUG */
25 25
26#define pr_fmt(fmt) KBUILD_BASENAME ": " fmt
27
28#include <linux/input.h> 26#include <linux/input.h>
29#include <linux/module.h> 27#include <linux/module.h>
30#include <linux/mutex.h> 28#include <linux/mutex.h>
@@ -116,7 +114,7 @@ int input_ff_upload(struct input_dev *dev, struct ff_effect *effect,
116 114
117 if (effect->type < FF_EFFECT_MIN || effect->type > FF_EFFECT_MAX || 115 if (effect->type < FF_EFFECT_MIN || effect->type > FF_EFFECT_MAX ||
118 !test_bit(effect->type, dev->ffbit)) { 116 !test_bit(effect->type, dev->ffbit)) {
119 pr_debug("invalid or not supported effect type in upload\n"); 117 dev_dbg(&dev->dev, "invalid or not supported effect type in upload\n");
120 return -EINVAL; 118 return -EINVAL;
121 } 119 }
122 120
@@ -124,7 +122,7 @@ int input_ff_upload(struct input_dev *dev, struct ff_effect *effect,
124 (effect->u.periodic.waveform < FF_WAVEFORM_MIN || 122 (effect->u.periodic.waveform < FF_WAVEFORM_MIN ||
125 effect->u.periodic.waveform > FF_WAVEFORM_MAX || 123 effect->u.periodic.waveform > FF_WAVEFORM_MAX ||
126 !test_bit(effect->u.periodic.waveform, dev->ffbit))) { 124 !test_bit(effect->u.periodic.waveform, dev->ffbit))) {
127 pr_debug("invalid or not supported wave form in upload\n"); 125 dev_dbg(&dev->dev, "invalid or not supported wave form in upload\n");
128 return -EINVAL; 126 return -EINVAL;
129 } 127 }
130 128
@@ -246,7 +244,7 @@ static int flush_effects(struct input_dev *dev, struct file *file)
246 struct ff_device *ff = dev->ff; 244 struct ff_device *ff = dev->ff;
247 int i; 245 int i;
248 246
249 pr_debug("flushing now\n"); 247 dev_dbg(&dev->dev, "flushing now\n");
250 248
251 mutex_lock(&ff->mutex); 249 mutex_lock(&ff->mutex);
252 250
@@ -316,7 +314,7 @@ int input_ff_create(struct input_dev *dev, unsigned int max_effects)
316 int i; 314 int i;
317 315
318 if (!max_effects) { 316 if (!max_effects) {
319 pr_err("cannot allocate device without any effects\n"); 317 dev_err(&dev->dev, "cannot allocate device without any effects\n");
320 return -EINVAL; 318 return -EINVAL;
321 } 319 }
322 320
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 3aa2f3f3da5b..61c761156371 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -31,12 +31,14 @@
31 * - the iForce driver drivers/char/joystick/iforce.c 31 * - the iForce driver drivers/char/joystick/iforce.c
32 * - the skeleton-driver drivers/usb/usb-skeleton.c 32 * - the skeleton-driver drivers/usb/usb-skeleton.c
33 * - Xbox 360 information http://www.free60.org/wiki/Gamepad 33 * - Xbox 360 information http://www.free60.org/wiki/Gamepad
34 * - Xbox One information https://github.com/quantus/xbox-one-controller-protocol
34 * 35 *
35 * Thanks to: 36 * Thanks to:
36 * - ITO Takayuki for providing essential xpad information on his website 37 * - ITO Takayuki for providing essential xpad information on his website
37 * - Vojtech Pavlik - iforce driver / input subsystem 38 * - Vojtech Pavlik - iforce driver / input subsystem
38 * - Greg Kroah-Hartman - usb-skeleton driver 39 * - Greg Kroah-Hartman - usb-skeleton driver
39 * - XBOX Linux project - extra USB id's 40 * - XBOX Linux project - extra USB id's
41 * - Pekka Pöyry (quantus) - Xbox One controller reverse engineering
40 * 42 *
41 * TODO: 43 * TODO:
42 * - fine tune axes (especially trigger axes) 44 * - fine tune axes (especially trigger axes)
@@ -828,6 +830,23 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect
828 830
829 return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); 831 return usb_submit_urb(xpad->irq_out, GFP_ATOMIC);
830 832
833 case XTYPE_XBOXONE:
834 xpad->odata[0] = 0x09; /* activate rumble */
835 xpad->odata[1] = 0x08;
836 xpad->odata[2] = 0x00;
837 xpad->odata[3] = 0x08; /* continuous effect */
838 xpad->odata[4] = 0x00; /* simple rumble mode */
839 xpad->odata[5] = 0x03; /* L and R actuator only */
840 xpad->odata[6] = 0x00; /* TODO: LT actuator */
841 xpad->odata[7] = 0x00; /* TODO: RT actuator */
842 xpad->odata[8] = strong / 256; /* left actuator */
843 xpad->odata[9] = weak / 256; /* right actuator */
844 xpad->odata[10] = 0x80; /* length of pulse */
845 xpad->odata[11] = 0x00; /* stop period of pulse */
846 xpad->irq_out->transfer_buffer_length = 12;
847
848 return u