diff options
| -rw-r--r-- | Documentation/input/alps.txt | 9 | ||||
| -rw-r--r-- | MAINTAINERS | 8 | ||||
| -rw-r--r-- | drivers/input/ff-core.c | 10 | ||||
| -rw-r--r-- | drivers/input/joystick/xpad.c | 21 | ||||
| -rw-r--r-- | drivers/input/keyboard/lm8333.c | 4 | ||||
| -rw-r--r-- | drivers/input/mouse/Kconfig | 12 | ||||
| -rw-r--r-- | drivers/input/mouse/Makefile | 1 | ||||
| -rw-r--r-- | drivers/input/mouse/cyapa.c | 4 | ||||
| -rw-r--r-- | drivers/input/mouse/elan_i2c.h | 3 | ||||
| -rw-r--r-- | drivers/input/mouse/elan_i2c_core.c | 38 | ||||
| -rw-r--r-- | drivers/input/mouse/elan_i2c_i2c.c | 27 | ||||
| -rw-r--r-- | drivers/input/mouse/elan_i2c_smbus.c | 12 | ||||
| -rw-r--r-- | drivers/input/mouse/psmouse-base.c | 17 | ||||
| -rw-r--r-- | drivers/input/mouse/psmouse.h | 1 | ||||
| -rw-r--r-- | drivers/input/mouse/vmmouse.c | 508 | ||||
| -rw-r--r-- | drivers/input/mouse/vmmouse.h | 30 | ||||
| -rw-r--r-- | drivers/input/touchscreen/atmel_mxt_ts.c | 141 | ||||
| -rw-r--r-- | drivers/input/touchscreen/elants_i2c.c | 2 |
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 | ||
| 95 | Note that the device never signals overflow condition. | 95 | Note that the device never signals overflow condition. |
| 96 | 96 | ||
| 97 | For protocol version 2 devices when the trackpoint is used, and no fingers | ||
| 98 | are on the touchpad, the M R L bits signal the combined status of both the | ||
| 99 | pointingstick and touchpad buttons. | ||
| 100 | |||
| 97 | ALPS Absolute Mode - Protocol Version 1 | 101 | ALPS Absolute Mode - Protocol Version 1 |
| 98 | -------------------------------------- | 102 | -------------------------------------- |
| 99 | 103 | ||
| @@ -107,7 +111,7 @@ ALPS Absolute Mode - Protocol Version 1 | |||
| 107 | ALPS Absolute Mode - Protocol Version 2 | 111 | ALPS 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 | ||
| 117 | Protocol Version 2 DualPoint devices send standard PS/2 mouse packets for | 121 | Protocol Version 2 DualPoint devices send standard PS/2 mouse packets for |
| 118 | the DualPoint Stick. | 122 | the DualPoint Stick. For non interleaved dualpoint devices the pointingstick |
| 123 | buttons get reported separately in the PSM, PSR and PSL bits. | ||
| 119 | 124 | ||
| 120 | Dualpoint device -- interleaved packet format | 125 | Dualpoint 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 | |||
| 10597 | S: Maintained | 10597 | S: Maintained |
| 10598 | F: drivers/misc/vmw_balloon.c | 10598 | F: drivers/misc/vmw_balloon.c |
| 10599 | 10599 | ||
| 10600 | VMWARE VMMOUSE SUBDRIVER | ||
| 10601 | M: "VMware Graphics" <linux-graphics-maintainer@vmware.com> | ||
| 10602 | M: "VMware, Inc." <pv-drivers@vmware.com> | ||
| 10603 | L: linux-input@vger.kernel.org | ||
| 10604 | S: Maintained | ||
| 10605 | F: drivers/input/mouse/vmmouse.c | ||
| 10606 | F: drivers/input/mouse/vmmouse.h | ||
| 10607 | |||
| 10600 | VMWARE VMXNET3 ETHERNET DRIVER | 10608 | VMWARE VMXNET3 ETHERNET DRIVER |
| 10601 | M: Shreyas Bhatewara <sbhatewara@vmware.com> | 10609 | M: Shreyas Bhatewara <sbhatewara@vmware.com> |
| 10602 | M: "VMware, Inc." <pv-drivers@vmware.com> | 10610 | M: "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 usb_submit_urb(xpad->irq_out, GFP_ATOMIC); | ||
| 849 | |||
| 831 | default: | 850 | default: |
| 832 | dev_dbg(&xpad->dev->dev, | 851 | dev_dbg(&xpad->dev->dev, |
| 833 | "%s - rumble command sent to unsupported xpad type: %d\n", | 852 | "%s - rumble command sent to unsupported xpad type: %d\n", |
| @@ -841,7 +860,7 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect | |||
| 841 | 860 | ||
| 842 | static int xpad_init_ff(struct usb_xpad *xpad) | 861 | static int xpad_init_ff(struct usb_xpad *xpad) |
