Loading Documentation/input/alps.txt +7 −2 Original line number Diff line number Diff line Loading @@ -94,6 +94,10 @@ PS/2 packet format Note that the device never signals overflow condition. For protocol version 2 devices when the trackpoint is used, and no fingers are on the touchpad, the M R L bits signal the combined status of both the pointingstick and touchpad buttons. ALPS Absolute Mode - Protocol Version 1 -------------------------------------- Loading @@ -107,7 +111,7 @@ ALPS Absolute Mode - Protocol Version 1 ALPS Absolute Mode - Protocol Version 2 --------------------------------------- byte 0: 1 ? ? ? 1 ? ? ? byte 0: 1 ? ? ? 1 PSM PSR PSL byte 1: 0 x6 x5 x4 x3 x2 x1 x0 byte 2: 0 x10 x9 x8 x7 ? fin ges byte 3: 0 y9 y8 y7 1 M R L Loading @@ -115,7 +119,8 @@ ALPS Absolute Mode - Protocol Version 2 byte 5: 0 z6 z5 z4 z3 z2 z1 z0 Protocol Version 2 DualPoint devices send standard PS/2 mouse packets for the DualPoint Stick. the DualPoint Stick. For non interleaved dualpoint devices the pointingstick buttons get reported separately in the PSM, PSR and PSL bits. Dualpoint device -- interleaved packet format --------------------------------------------- Loading MAINTAINERS +8 −0 Original line number Diff line number Diff line Loading @@ -10530,6 +10530,14 @@ L: linux-kernel@vger.kernel.org S: Maintained F: drivers/misc/vmw_balloon.c VMWARE VMMOUSE SUBDRIVER M: "VMware Graphics" <linux-graphics-maintainer@vmware.com> M: "VMware, Inc." <pv-drivers@vmware.com> L: linux-input@vger.kernel.org S: Maintained F: drivers/input/mouse/vmmouse.c F: drivers/input/mouse/vmmouse.h VMWARE VMXNET3 ETHERNET DRIVER M: Shreyas Bhatewara <sbhatewara@vmware.com> M: "VMware, Inc." <pv-drivers@vmware.com> Loading drivers/input/ff-core.c +4 −6 Original line number Diff line number Diff line Loading @@ -23,8 +23,6 @@ /* #define DEBUG */ #define pr_fmt(fmt) KBUILD_BASENAME ": " fmt #include <linux/input.h> #include <linux/module.h> #include <linux/mutex.h> Loading Loading @@ -116,7 +114,7 @@ int input_ff_upload(struct input_dev *dev, struct ff_effect *effect, if (effect->type < FF_EFFECT_MIN || effect->type > FF_EFFECT_MAX || !test_bit(effect->type, dev->ffbit)) { pr_debug("invalid or not supported effect type in upload\n"); dev_dbg(&dev->dev, "invalid or not supported effect type in upload\n"); return -EINVAL; } Loading @@ -124,7 +122,7 @@ int input_ff_upload(struct input_dev *dev, struct ff_effect *effect, (effect->u.periodic.waveform < FF_WAVEFORM_MIN || effect->u.periodic.waveform > FF_WAVEFORM_MAX || !test_bit(effect->u.periodic.waveform, dev->ffbit))) { pr_debug("invalid or not supported wave form in upload\n"); dev_dbg(&dev->dev, "invalid or not supported wave form in upload\n"); return -EINVAL; } Loading Loading @@ -246,7 +244,7 @@ static int flush_effects(struct input_dev *dev, struct file *file) struct ff_device *ff = dev->ff; int i; pr_debug("flushing now\n"); dev_dbg(&dev->dev, "flushing now\n"); mutex_lock(&ff->mutex); Loading Loading @@ -316,7 +314,7 @@ int input_ff_create(struct input_dev *dev, unsigned int max_effects) int i; if (!max_effects) { pr_err("cannot allocate device without any effects\n"); dev_err(&dev->dev, "cannot allocate device without any effects\n"); return -EINVAL; } Loading drivers/input/joystick/xpad.c +20 −1 Original line number Diff line number Diff line Loading @@ -31,12 +31,14 @@ * - the iForce driver drivers/char/joystick/iforce.c * - the skeleton-driver drivers/usb/usb-skeleton.c * - Xbox 360 information http://www.free60.org/wiki/Gamepad * - Xbox One information https://github.com/quantus/xbox-one-controller-protocol * * Thanks to: * - ITO Takayuki for providing essential xpad information on his website * - Vojtech Pavlik - iforce driver / input subsystem * - Greg Kroah-Hartman - usb-skeleton driver * - XBOX Linux project - extra USB id's * - Pekka Pöyry (quantus) - Xbox One controller reverse engineering * * TODO: * - fine tune axes (especially trigger axes) Loading Loading @@ -828,6 +830,23 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); case XTYPE_XBOXONE: xpad->odata[0] = 0x09; /* activate rumble */ xpad->odata[1] = 0x08; xpad->odata[2] = 0x00; xpad->odata[3] = 0x08; /* continuous effect */ xpad->odata[4] = 0x00; /* simple rumble mode */ xpad->odata[5] = 0x03; /* L and R actuator only */ xpad->odata[6] = 0x00; /* TODO: LT actuator */ xpad->odata[7] = 0x00; /* TODO: RT actuator */ xpad->odata[8] = strong / 256; /* left actuator */ xpad->odata[9] = weak / 256; /* right actuator */ xpad->odata[10] = 0x80; /* length of pulse */ xpad->odata[11] = 0x00; /* stop period of pulse */ xpad->irq_out->transfer_buffer_length = 12; return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); default: dev_dbg(&xpad->dev->dev, "%s - rumble command sent to unsupported xpad type: %d\n", Loading @@ -841,7 +860,7 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect static int xpad_init_ff(struct usb_xpad *xpad) { if (xpad->xtype == XTYPE_UNKNOWN || xpad->xtype == XTYPE_XBOXONE) if (xpad->xtype == XTYPE_UNKNOWN) return 0; input_set_capability(xpad->dev, EV_FF, FF_RUMBLE); Loading drivers/input/keyboard/lm8333.c +2 −2 Original line number Diff line number Diff line /* * LM8333 keypad driver * Copyright (C) 2012 Wolfram Sang, Pengutronix <w.sang@pengutronix.de> * Copyright (C) 2012 Wolfram Sang, Pengutronix <kernel@pengutronix.de> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Loading Loading @@ -231,6 +231,6 @@ static struct i2c_driver lm8333_driver = { }; module_i2c_driver(lm8333_driver); MODULE_AUTHOR("Wolfram Sang <w.sang@pengutronix.de>"); MODULE_AUTHOR("Wolfram Sang <kernel@pengutronix.de>"); MODULE_DESCRIPTION("LM8333 keyboard driver"); MODULE_LICENSE("GPL v2"); Loading
Documentation/input/alps.txt +7 −2 Original line number Diff line number Diff line Loading @@ -94,6 +94,10 @@ PS/2 packet format Note that the device never signals overflow condition. For protocol version 2 devices when the trackpoint is used, and no fingers are on the touchpad, the M R L bits signal the combined status of both the pointingstick and touchpad buttons. ALPS Absolute Mode - Protocol Version 1 -------------------------------------- Loading @@ -107,7 +111,7 @@ ALPS Absolute Mode - Protocol Version 1 ALPS Absolute Mode - Protocol Version 2 --------------------------------------- byte 0: 1 ? ? ? 1 ? ? ? byte 0: 1 ? ? ? 1 PSM PSR PSL byte 1: 0 x6 x5 x4 x3 x2 x1 x0 byte 2: 0 x10 x9 x8 x7 ? fin ges byte 3: 0 y9 y8 y7 1 M R L Loading @@ -115,7 +119,8 @@ ALPS Absolute Mode - Protocol Version 2 byte 5: 0 z6 z5 z4 z3 z2 z1 z0 Protocol Version 2 DualPoint devices send standard PS/2 mouse packets for the DualPoint Stick. the DualPoint Stick. For non interleaved dualpoint devices the pointingstick buttons get reported separately in the PSM, PSR and PSL bits. Dualpoint device -- interleaved packet format --------------------------------------------- Loading
MAINTAINERS +8 −0 Original line number Diff line number Diff line Loading @@ -10530,6 +10530,14 @@ L: linux-kernel@vger.kernel.org S: Maintained F: drivers/misc/vmw_balloon.c VMWARE VMMOUSE SUBDRIVER M: "VMware Graphics" <linux-graphics-maintainer@vmware.com> M: "VMware, Inc." <pv-drivers@vmware.com> L: linux-input@vger.kernel.org S: Maintained F: drivers/input/mouse/vmmouse.c F: drivers/input/mouse/vmmouse.h VMWARE VMXNET3 ETHERNET DRIVER M: Shreyas Bhatewara <sbhatewara@vmware.com> M: "VMware, Inc." <pv-drivers@vmware.com> Loading
drivers/input/ff-core.c +4 −6 Original line number Diff line number Diff line Loading @@ -23,8 +23,6 @@ /* #define DEBUG */ #define pr_fmt(fmt) KBUILD_BASENAME ": " fmt #include <linux/input.h> #include <linux/module.h> #include <linux/mutex.h> Loading Loading @@ -116,7 +114,7 @@ int input_ff_upload(struct input_dev *dev, struct ff_effect *effect, if (effect->type < FF_EFFECT_MIN || effect->type > FF_EFFECT_MAX || !test_bit(effect->type, dev->ffbit)) { pr_debug("invalid or not supported effect type in upload\n"); dev_dbg(&dev->dev, "invalid or not supported effect type in upload\n"); return -EINVAL; } Loading @@ -124,7 +122,7 @@ int input_ff_upload(struct input_dev *dev, struct ff_effect *effect, (effect->u.periodic.waveform < FF_WAVEFORM_MIN || effect->u.periodic.waveform > FF_WAVEFORM_MAX || !test_bit(effect->u.periodic.waveform, dev->ffbit))) { pr_debug("invalid or not supported wave form in upload\n"); dev_dbg(&dev->dev, "invalid or not supported wave form in upload\n"); return -EINVAL; } Loading Loading @@ -246,7 +244,7 @@ static int flush_effects(struct input_dev *dev, struct file *file) struct ff_device *ff = dev->ff; int i; pr_debug("flushing now\n"); dev_dbg(&dev->dev, "flushing now\n"); mutex_lock(&ff->mutex); Loading Loading @@ -316,7 +314,7 @@ int input_ff_create(struct input_dev *dev, unsigned int max_effects) int i; if (!max_effects) { pr_err("cannot allocate device without any effects\n"); dev_err(&dev->dev, "cannot allocate device without any effects\n"); return -EINVAL; } Loading
drivers/input/joystick/xpad.c +20 −1 Original line number Diff line number Diff line Loading @@ -31,12 +31,14 @@ * - the iForce driver drivers/char/joystick/iforce.c * - the skeleton-driver drivers/usb/usb-skeleton.c * - Xbox 360 information http://www.free60.org/wiki/Gamepad * - Xbox One information https://github.com/quantus/xbox-one-controller-protocol * * Thanks to: * - ITO Takayuki for providing essential xpad information on his website * - Vojtech Pavlik - iforce driver / input subsystem * - Greg Kroah-Hartman - usb-skeleton driver * - XBOX Linux project - extra USB id's * - Pekka Pöyry (quantus) - Xbox One controller reverse engineering * * TODO: * - fine tune axes (especially trigger axes) Loading Loading @@ -828,6 +830,23 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); case XTYPE_XBOXONE: xpad->odata[0] = 0x09; /* activate rumble */ xpad->odata[1] = 0x08; xpad->odata[2] = 0x00; xpad->odata[3] = 0x08; /* continuous effect */ xpad->odata[4] = 0x00; /* simple rumble mode */ xpad->odata[5] = 0x03; /* L and R actuator only */ xpad->odata[6] = 0x00; /* TODO: LT actuator */ xpad->odata[7] = 0x00; /* TODO: RT actuator */ xpad->odata[8] = strong / 256; /* left actuator */ xpad->odata[9] = weak / 256; /* right actuator */ xpad->odata[10] = 0x80; /* length of pulse */ xpad->odata[11] = 0x00; /* stop period of pulse */ xpad->irq_out->transfer_buffer_length = 12; return usb_submit_urb(xpad->irq_out, GFP_ATOMIC); default: dev_dbg(&xpad->dev->dev, "%s - rumble command sent to unsupported xpad type: %d\n", Loading @@ -841,7 +860,7 @@ static int xpad_play_effect(struct input_dev *dev, void *data, struct ff_effect static int xpad_init_ff(struct usb_xpad *xpad) { if (xpad->xtype == XTYPE_UNKNOWN || xpad->xtype == XTYPE_XBOXONE) if (xpad->xtype == XTYPE_UNKNOWN) return 0; input_set_capability(xpad->dev, EV_FF, FF_RUMBLE); Loading
drivers/input/keyboard/lm8333.c +2 −2 Original line number Diff line number Diff line /* * LM8333 keypad driver * Copyright (C) 2012 Wolfram Sang, Pengutronix <w.sang@pengutronix.de> * Copyright (C) 2012 Wolfram Sang, Pengutronix <kernel@pengutronix.de> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Loading Loading @@ -231,6 +231,6 @@ static struct i2c_driver lm8333_driver = { }; module_i2c_driver(lm8333_driver); MODULE_AUTHOR("Wolfram Sang <w.sang@pengutronix.de>"); MODULE_AUTHOR("Wolfram Sang <kernel@pengutronix.de>"); MODULE_DESCRIPTION("LM8333 keyboard driver"); MODULE_LICENSE("GPL v2");