aboutsummaryrefslogtreecommitdiff
path: root/drivers/input
AgeCommit message (Collapse)AuthorFilesLines
2015-02-15Input: bfin_rotary - mark suspend and resume code as __maybe_unusedDmitry Torokhov1-10/+4
Instead of using #ifdef to guard potentially unused suspend and resume code let's mark them as __maybe_unused so they still get discarded if they are not used but we do not get warning. This allows for better compile coverage. Acked-by: Sonic Zhang <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-15Input: bfin_rotary - fix potential oops in interrupt handlerDmitry Torokhov1-5/+4
The interrupt handler in the driver tries to fetch driver data from platform device, unfortunately it is only set up after interrupt handler is registered. Since interrupt handler does not really need to access the platform device itself let's change it to get the driver data instance instead. Acked-by: Sonic Zhang <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-15Input: ALPS - move v7 packet info to Documentation and v6 packet infoPali Rohár1-39/+0
This patch move all packet info from driver source code to documentation and adds info about v6 packet format (from driver source code). Signed-off-by: Pali Rohár <[email protected]> Acked-by: Hans de Goede <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-15Input: ALPS - fix confusing comment in protocol dataDmitry Torokhov1-7/+8
The comment about suspicions entry 0x20, 0x02, 0x0e has over time drifted away and it become hard to figure out what it meant. Let's move it back so it is clear. Reported-by: Pali Rohár <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-15Input: ALPS - do not mix trackstick and external PS/2 mouse dataPali Rohár2-53/+151
Previously dev2 device was used for both external PS/2 mouse and internal trackstick device (if available). This change introduces dev3 device which is used for external PS/2 mouse data and dev2 is now used only for trackstick. In case that trackstick is not present dev2 is not created, so userspace does not see non existent device in system. Because laptops with ALPS devices often do not use i8042 active multiplexing all data (from touchpad, trackstick and external PS/2 mouse) come to one port. So it is not possible to know if external PS/2 mouse is connected or not. In most cases external PS/2 mouse is not connected so driver will create dev3 input device after first bare PS/2 packet will be received. So there will not be "ghost" input device. This change also helps in identifying possible problems in future if driver decides to report 6-bytes trackstick packets as 3-bytes bare PS/2 (data will be reported to dev3 instead dev2). Signed-off-by: Pali Rohár <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-15Input: ALPS - fix trackstick detection on some Dell LatitudesDmitry Torokhov1-22/+56
On some Dell Latitudes we fail to identify presence of trackstick unless we reset the device. The issue is quite benign as we do perform reset in alps_init(), so the trackstick ends up working, but mouse name reported to userspace is not accurate. In order to fix the issue while avoiding the additional lengthy reset we move the resrt to alps_detect() and keep the discovered state to be used later in alps_init(). Reported-by: Pali Rohár <[email protected]> Tested-by: Pali Rohár <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-15Input: ALPS - consolidate setting protocol parametersDmitry Torokhov1-64/+67
Move setting of all protocol properties into alps_set_protocol (former alps_set_defaults) instead of having it split between several functions. Tested-by: Pali Rohár <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-15Input: ALPS - split protocol data from model infoDmitry Torokhov2-38/+46
In preparation of reworking the way we set protocol parameters let's split certain protocol items from alps_model_info into a separate structure. Tested-by: Pali Rohár <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-15Input: ALPS - make Rushmore a separate protocolDmitry Torokhov2-11/+19
Even though Rushmore is very close to V3 protocol it is sufficiently different to warrant it's own protocol name. Tested-by: Pali Rohár <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-15Input: ALPS - renumber protocol numbersDmitry Torokhov2-16/+16
In order to accommodate new protocol number for Rushmore touchpads let's shift protocol numbers by 8 bits (i.e. 1 -> 0x100) - this way we keep protocol version reported in input device id the same as it was, but add some holes in numbering. Tested-by: Pali Rohár <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-13input: use %*pb[l] to print bitmaps including cpumasks and nodemasksTejun Heo2-3/+3
printk and friends can now format bitmaps using '%*pb[l]'. cpumask and nodemask also provide cpumask_pr_args() and nodemask_pr_args() respectively which can be used to generate the two printf arguments necessary to format the specified cpu/nodemask. * Line termination only requires one extra space at the end of the buffer. Use PAGE_SIZE - 1 instead of PAGE_SIZE - 2 when formatting. Signed-off-by: Tejun Heo <[email protected]> Cc: Dmitry Torokhov <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2015-02-11Input: adi - remove an unnecessary checkMarkus Elfring1-2/+1
The input_free_device() function tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-11Input: pxa27x_keypad - remove an unneeded NULL checkDan Carpenter1-3/+1
Static checkers complain about this NULL check because we dereference it without checking a couple lines later. This function is only called when "keypad->pdata" is non-NULL so we can just delete the NULL test. Signed-off-by: Dan Carpenter <[email protected]> [Dmitry: remove the variable altogether given that it is used just once and dereference directly.] Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-10Input: soc_button_array - use "Windows" key for "Home"Bastien Nocera1-1/+1
KEY_HOME is the key to go back to the beginning of the line, not the key to get into an overview mode, as Windows does. GNOME can already make use of the Windows key on multiple form factors, and other desktop environments can use it depending on the form factor. Using "Windows" as the emitted key also means that the keycode sent out matches the symbol on the key itself. So switch KEY_HOME to KEY_LEFTMETA ("Windows" key). Signed-off-by: Bastien Nocera <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-10Merge branch 'next' into for-linusDmitry Torokhov145-1546/+7818
Prepare first round of input updates for 3.20.
2015-02-06Input: elan_i2c - fix wrong %p extensionRasmus Villemoes1-1/+1
There's no %px extension. From the context I think the intention was to dump the five bytes which were not as expected, and for that one should use %ph. Signed-off-by: Rasmus Villemoes <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-05Input: evdev - do not queue SYN_DROPPED if queue is emptyDmitry Torokhov1-11/+23
There is no point in queueing EV_SYN/SYN_DROPPED on clock type change when there are no events in the client's queue and doing so confuses tests in libinput package, so let's not do that. Reported-and-tested-by: Benjamin Tissoires <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-04Input: gscps2 - fix MODULE_DEVICE_TABLE invocationGeert Uytterhoeven1-1/+1
The patch "module: fix types of device tables aliases" newly requires that invocations of MODULE_DEVICE_TABLE(type, name); come *after* the definition of `name'. That is reasonable, but gscps2 wasn't doing this. Fix it. Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-03Input: synaptics - use dmax in input_mt_assign_slotsBenjamin Tissoires1-1/+4
When tapping a clickpad with two fingers, there is a chance that the sensor sees first only one finger, and at the next scan only the second one. In this case, the sensors says that there has been only one finger on the clickpad, which moved really fast between two scans. We can try to counter this by adding a limit to what an actual finger can move between 2 scans. A distance of 1cm between two scans for one finger seems reasonable. However, this is not really accurate because the resolution in X and in Y differs. But heh, that's how the in-kernel tracking works right now, and its job is quite good, even with this approximation. This parameter solves most of the jumps observed, not all of them however. But this is a hardware defect, and we might not be able to get something better without much heavier computations. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=76722 Signed-off-by: Benjamin Tissoires <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-03Input: pxa27x_keypad - remove unnecessary ARM includesRob Herring1-4/+1
Remove some left-over ARM only includes in order to enable building on ARM64. __raw_{read,write}l were getting implicitly included, so add linux/io.h include. Signed-off-by: Rob Herring <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-03Input: ti_am335x_tsc - replace delta filtering with median filteringVignesh R1-40/+52
Previously, delta filtering was applied TSC co-ordinate readouts before reporting a single value to user space. This patch replaces delta filtering with median filtering. Median filtering sorts co-ordinate readouts, drops min and max values, and reports the average of remaining values. This method is more sensible than delta filtering. Median filtering is applied only if number of readouts is greater than 3 else just average of co-ordinate readouts is reported. Signed-off-by: Vignesh R <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-03Input: ti_am335x_tsc - read charge delay from DTVignesh R1-1/+13
This patch reads charge delay from tsc DT node and writes to REG_CHARGEDELAY register. If the charge delay is not specified in DT then default value of 0x400(CHARGEDLY_OPENDLY) is used. Signed-off-by: Vignesh R <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-03Input: ti_am335x_tsc - remove udelay in interrupt handlerBrad Griffis1-36/+31
TSC interrupt handler had udelay to avoid reporting of false pen-up interrupt to user space. This patch implements workaround suggesting in Advisory 1.0.31 of silicon errata for am335x, thus eliminating udelay and touchscreen lag. This also improves performance of touchscreen and eliminates sudden jump of cursor at touch release. IDLECONFIG and CHARGECONFIG registers are to be configured with same values in order to eliminate false pen-up events. This workaround may result in false pen-down to be detected, hence considerable charge step delay needs to be added. The charge delay is set to 0xB000 (in terms of ADC clock cycles) by default. TSC steps are disabled at the end of every sampling cycle and EOS bit is set. Once the EOS bit is set, the TSC steps need to be re-enabled to begin next sampling cycle. Signed-off-by: Brad Griffis <[email protected]> [[email protected]: Ported the patch from v3.12 to v3.19rc1] Signed-off-by: Vignesh R <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-03Input: ti_am335x_tsc - interchange touchscreen and ADC stepsBrad Griffis1-18/+24
This patch makes the initial changes required to workaround TSC-false pen-up interrupts. It is required to implement these changes in order to remove udelay in the TSC interrupt handler and false pen-up events. The charge step is to be executed immediately after sampling X+. Hence TSC is made to use higher numbered steps (steps 5 to 16 for 5 co-ordinate readouts, 4 wire TSC configuration) and ADC to use lower ones. Further X co-ordinate readouts must be the last to be sampled, thus co-ordinates are sampled in the order Y-Z-X. Signed-off-by: Brad Griffis <[email protected]> [[email protected]: Ported the patch from v3.12 to v3.19rc1] Signed-off-by: Vignesh R <[email protected]> Acked-by: Jonathan Cameron <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-01Merge branch 'for-linus' of ↵Linus Torvalds3-3/+28
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input layer updates from Dmitry Torokhov: "Just a few quirks for PS/2 this time" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: elantech - add more Fujtisu notebooks to force crc_enabled Input: i8042 - add noloop quirk for Medion Akoya E7225 (MD98857) Input: synaptics - adjust min/max for Lenovo ThinkPad X1 Carbon 2nd
2015-02-01Input: elantech - add more Fujtisu notebooks to force crc_enabledRainer Koenig1-0/+16
Add two more Fujitsu LIFEBOOK models that also ship with the Elantech touchpad and don't work with crc_disabled to the quirk list. Signed-off-by: Rainer Koenig <[email protected]> Cc: [email protected] Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-01Input: MT - add support for balanced slot assignmentHenrik Rydberg6-16/+25
Some devices are not fast enough to differentiate between a fast-moving contact and a new contact. This problem cannot be fully resolved because information is truly missing, but it is possible to safe-guard against obvious mistakes by restricting movement with a maximum displacement. The new problem formulation for dmax > 0 cannot benefit from the speedup for positive definite matrices, but since the convergence is faster, the result is about the same. For a handful of contacts, the latency difference is truly negligible. Suggested-by: Benjamin Tissoires <[email protected]> Tested-by: Benjamin Tissoires <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-01Input: drv2667 - remove wrong and unneeded drv2667-haptics modaliasAxel Lin1-1/+0
This is a I2C driver, so it's wrong to use platform prefix for the modalias. We have all needed i2c aliases coming form MODULE_DEVICE_TABLE, so let's remove the wrong and unneeded drv2667-haptics modalias. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-01Input: drv260x - remove wrong and unneeded drv260x-haptics modaliasAxel Lin1-1/+0
This is a I2C driver, so it's wrong to use platform prefix for the modalias. We have all needed i2c aliases coming form MODULE_DEVICE_TABLE, so let's remove the wrong and unneeded drv260x-haptics modalias. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-02-01Input: cap11xx - remove wrong and unneeded cap11xx modaliasAxel Lin1-1/+0
This is a I2C driver, so it's wrong to use platform prefix for the modalias. We have all needed i2c aliases coming form MODULE_DEVICE_TABLE, so let's remove the wrong and unneeded cap11xx modalias. Signed-off-by: Axel Lin <[email protected]> Acked-by: Daniel Mack <[email protected]> Reviewed-by: Matt Ranostay <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-26Input: sun4i-ts - add support for touchpanel controller on A31Chen-Yu Tsai1-13/+33
The Allwinner A31 SoC (sun6i) has the same resistive touchpanel controller as on other sunxi platforms. The only difference between the variants is the control bits for enabling operations are left-shifted by 1 on the A31. Also update the comment for the original temperature sensor with information from Allwinner. Signed-off-by: Chen-Yu Tsai <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-26Input: serio - add support for Alwinner A10/A20 PS/2 controllerVishnu Patekar3-0/+351
This driver implements support for PS2 controller found on Allwinner A10, A20 SOCs. It has been tested on A20 Olimex-Lime2 board and also on A10. Signed-off-by: Vishnu Patekar <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-26Input: gtco - use sign_extend32() for sign extensionMartin Kepplinger1-15/+5
Signed-off-by: Martin Kepplinger <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-23Input: elan_i2c - verify firmware signature applying itDuson Lin4-14/+15
To allow for different firmware sizes let's replace the original size check with with checking the signature in the firmware data. Signed-off-by: Duson Lin <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-22Input: elantech - remove stale comment from KconfigDmitry Torokhov1-9/+2
The fixes to the X.org driver have been applied long time ago and the patch on kernel.org has long since gone so let's remove the comment. Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-22Input: i8042 - add noloop quirk for Medion Akoya E7225 (MD98857)Jochen Hein1-0/+8
Without this the aux port does not get detected, and consequently the touchpad will not work. With this patch the touchpad is detected: $ dmesg | grep -E "(SYN|i8042|serio)" pnp 00:03: Plug and Play ACPI device, IDs SYN1d22 PNP0f13 (active) i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12 serio: i8042 KBD port at 0x60,0x64 irq 1 serio: i8042 AUX port at 0x60,0x64 irq 12 input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4 psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd00123/0x840300/0x126800, board id: 2863, fw id: 1473085 input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input6 dmidecode excerpt for this laptop is: Handle 0x0001, DMI type 1, 27 bytes System Information Manufacturer: Medion Product Name: Akoya E7225 Version: 1.0 Cc: [email protected] Signed-off-by: Jochen Hein <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-22Input: cyapa - off by one in cyapa_update_fw_store()Dan Carpenter1-1/+1
If "(count == NAME_MAX)" then we could end up putting the NUL terminator one space beyond the end of the fw_name[] array. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-22Input: cyapa - fix variable being dereferenced before checkDudley Du1-1/+3
Fixes the warning regarding variable being dereferenced before check 'gen5_pip->resp_len'. Reported-by: Dan Carpenter <[email protected]> Signed-off-by: Dudley Du <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-22Input: cyapa - fix endianness issues in gen5 firmware update supportDmitry Torokhov1-39/+40
gen5_bl_metadata_row_params structure has its fields specified with explicit endianness, so we should not be trying to convert to native CPU endianness when filling the structure. Also fix firmware validation checks and misspelled field in gen5_bl_metadata_row_params. Reported-by: kbuild test robot <[email protected]> Reviewed-by: Dudley Du <[email protected]> Tested-by: Dudley Du <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-19Input: synaptics - adjust min/max for Lenovo ThinkPad X1 Carbon 2ndPeter Hutterer1-3/+4
LEN0037 found in the Lenovo ThinkPad X1 Carbon 2nd (2014 model) Cc: [email protected] Reported-and-tested-by: Bjoern Olausson <[email protected]> Signed-off-by: Peter Hutterer <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-19Merge branch 'for-linus' of ↵Linus Torvalds3-0/+55
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input subsystem fixes from Dmitry Torokhov. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: uinput - fix ioctl nr overflow for UI_GET_SYSNAME/VERSION Input: I8042 - add Acer Aspire 7738 to the nomux list Input: elantech - support new ICs types for version 4 Input: i8042 - reset keyboard to fix Elantech touchpad detection MAINTAINERS: remove Dmitry Torokhov's alternate address
2015-01-18Input: cyapa - add acpi device id supportDudley Du1-0/+11
Add acpi device tree support. acpi device id "CYAP0000" is for old gen3 trackpad devices. acpi device id "CYAP0001" is for new gen5 trackpad devices. Signed-off-by: Dudley Du <[email protected]> Tested-by: Jeremiah Mahler <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-18Input: cyapa - add gen5 trackpad force re-calibrate function supportDudley Du1-0/+65
Add force re-calibrate function support for gen5 trackpad device, it can be used through sysfs calibrate interface. Signed-off-by: Dudley Du <[email protected]> Tested-by: Jeremiah Mahler <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-18Input: cyapa - add gen5 trackpad read baseline supportDudley Du2-0/+642
Add read baseline function support for gen5 trackpad device, it can be used through sysfs baseline interface. Signed-off-by: Dudley Du <[email protected]> Tested-by: Jeremiah Mahler <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-18Input: cyapa - add gen5 trackpad firmware update supportDudley Du2-0/+392
Add firmware image update support for gen5 trackpad device, it can be used through sysfs update_fw interface. Signed-off-by: Dudley Du <[email protected]> Tested-by: Jeremiah Mahler <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-18Input: cyapa - add gen3 trackpad force re-calibrate supportDudley Du1-0/+59
Add force re-calibrate function support for gen3 trackpad device, it can be used through sysfs calibrate interface. Signed-off-by: Dudley Du <[email protected]> Tested-by: Jeremiah Mahler <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-18Input: cyapa - add gen3 trackpad read baseline supportDudley Du1-0/+72
Add read baseline function supported for gen3 trackpad device, it can be used through sysfs baseline interface. Signed-off-by: Dudley Du <[email protected]> Tested-by: Jeremiah Mahler <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-18Input: cyapa - add gen3 trackpad device firmware update supportDudley Du1-0/+309
Add support for firmware image update for gen3 trackpad devices; the firmware update is initiated by writing to update_fw sysfs attribute. Signed-off-by: Dudley Du <[email protected]> Tested-by: Jeremiah Mahler <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-18Input: cyapa - add sysfs interfaces support in the cyapa driverDudley Du1-0/+310
Introduce control interfaces that are commonly used in pre- and after production, for trackpad device state checking, managing and firmware image updating. These interfaces include mode, firmware_version and product_id interfaces for reading firmware version and trackpad device product id values, and update_fw interface to command firmware image update process. There are also baseline and calibrate interfaces for reading and checking trackpad device's sensors states. Signed-off-by: Dudley Du <[email protected]> Tested-by: Jeremiah Mahler <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2015-01-18Input: cyapa - add runtime power management supportDudley Du2-1/+189
This change implements runtime PM support in the driver and adds runtime_suspend_scanrate_ms power management interface in device's power group, so users or applications can control the runtime power management strategy of trackpad device according to their requirements. Signed-off-by: Dudley Du <[email protected]> Tested-by: Jeremiah Mahler <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>