aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-02-23Input: ALPS - update documentation for recent touchpad driver modsdave turvene1-7/+60
Updated documentation for the new ALPS touchpad support submitted in two patchsets by Kevin Cernekee. My understanding is the most recent patchset '"Dolphin V2" touchpad support' may still need some work but Future work on the ALPS driver should not impact these documentation changes. See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/606238 Signed-off-by: David Turvene <[email protected]> Acked-by: Kevin Cernekee <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-22Input: ALPS - add "Dolphin V1" touchpad supportDave Turvene2-2/+66
These touchpads use a different protocol; they have been seen on Dell N5110, Dell 17R SE, and others. The official ALPS driver identifies them by looking for an exact match on the E7 report: 73 03 50. Dolphin V1 returns an EC report of 73 01 xx (02 and 0d have been seen); Dolphin V2 returns an EC report of 73 02 xx (02 has been seen). Dolphin V2 probably needs a different initialization sequence and/or report parser, so it is left for a future commit. Signed-off-by: Dave Turvene <[email protected]> Signed-off-by: Kevin Cernekee <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-22Input: ALPS - remove unused argument to alps_enter_command_mode()Kevin Cernekee1-11/+7
Now that alps_identify() explicitly issues an EC report using alps_rpt_cmd(), we no longer need to look at the magic numbers returned by alps_enter_command_mode(). Signed-off-by: Kevin Cernekee <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-22Input: cypress_ps2 - fix trackpadi found in Dell XPS12Kamal Mostafa1-6/+13
Avoid firmware glitch in Cypress PS/2 Trackpad firmware version 11 (as observed in Dell XPS12) which prevents driver from recognizing the trackpad. BugLink: http://launchpad.net/bugs/1103594 Signed-off-by: Kamal Mostafa <[email protected]> Cc: Dudley Du <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-19Merge branch 'next' into for-linusDmitry Torokhov41-1182/+3608
Prepare first set of updates for 3.9 merge window.
2013-02-16Input: cyttsp-spi - remove duplicate MODULE_ALIAS()Dmitry Torokhov1-1/+0
Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-16Input: tsc2005 - add MODULE_ALIASPali Rohár1-0/+1
This enables autoloading of tsc2005 driver when is compiled as a module. Signed-off-by: Pali Rohár <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-15Input: tegra-kbc - require CONFIG_OF, remove platform dataStephen Warren3-166/+93
Tegra only supports, and always enables, device tree. Remove all ifdefs and runtime checks for DT support from the driver. Platform data is therefore no longer required. Delete the header that defines it, and rework the driver to parse the device tree directly into struct tegra_kbc. Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-15Input: synaptics - initialize pointer emulation usageHenrik Rydberg1-1/+1
To properly setup event parameters for emulated events, pass the appropriate flag to the slot initialization function. Also, all MT-related events should be setup before initialization. Incidentally, this solves the issue of doubly filtered pointer events. Reported-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-15Input: MT - do not apply filtering on emulated eventsHenrik Rydberg1-0/+1
The pointer emulation events are derived from contact values that have already been filtered, so send the emulated events as is. Reported-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-15Input: bma150 - make some defines public and fix some commentsMichael Trimarchi2-14/+14
Make the constants referring to range and bandwidth public so they can be used when initializing the platform data fields in the platform code. Fix also some comments regarding the unit of measurement to use for the range and bandwidth fields, the values are not actually expected to be in G or HZ, the code in bma150.c just uses the BMA150_RANGE_xxx and BMA150_BW_xxx constants like they are with no translation from actual values in G or HZ. Signed-off-by: Michael Trimarchi <[email protected]> Signed-off-by: Antonio Ospite <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-15Input: bma150 - fix checking pm_runtime_get_sync() return valueMichael Trimarchi1-1/+1
When PM_RUNTIME is not defined, pm_runtime_get_sync() returns 1, see include/linux/pm_runtime.c::__pm_runtime_resume(), and the check of the return value was overlooking this, in this case bma150_open() would return 1 which is not expected by upper layers. Maybe the check for != -ENOSYS (Function not implemented) was meant to cover this, but pm_runtime_get_sync() does not return this value. For now fix the issue locally by checking explicitly for negative return values. Signed-off-by: Michael Trimarchi <[email protected]> Signed-off-by: Antonio Ospite <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - enable trackstick on Rushmore touchpadsKevin Cernekee1-70/+115
Separate out the common trackstick probe/setup sequences, then call them from each of the v3 init functions. Credits: Emmanual Thome furnished the information on the trackstick init and how it affected the report format. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - add support for "Rushmore" touchpadsKevin Cernekee1-0/+52
Rushmore touchpads are found on Dell E6230/E6430/E6530. They use the V3 protocol with slightly tweaked init sequences and report formats. The E7 report is 73 03 0a, and the EC report is 88 08 1d Credits: Emmanuel Thome reported the MT bitmap changes. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - make the V3 packet field decoder "pluggable"Kevin Cernekee2-44/+95
A number of different ALPS touchpad protocols can reuse alps_process_touchpad_packet_v3() with small tweaks to the bitfield decoding. Create a new priv->decode_fields() callback that handles the per-model differences. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - move pixel and bitmap info into alps_data structKevin Cernekee2-22/+33
Newer touchpads use different constants, so make them runtime- configurable. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - fix command mode checkKevin Cernekee1-1/+1
Pinnacle class devices should return "88 07 xx" or "88 08 xx" when entering command mode. If either the first byte or the second byte is invalid, return an error. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - rework detection of Pinnacle AGx touchpadsKevin Cernekee1-3/+12
The official ALPS driver uses the EC report, not the E7 report, to detect these devices. Also, they check for a range of values; the original table-based code only checked for two specific ones. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - move {addr,nibble}_command settings into alps_set_defaults()Kevin Cernekee1-8/+4
This allows alps_identify() to override these settings based on the device characteristics, if it is ever necessary. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - use function pointers for different protocol handlersKevin Cernekee2-54/+54
In anticipation of adding more ALPS protocols and more per-device quirks, use function pointers instead of switch statements to call functions that differ from one device to the next. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - rework detection sequenceKevin Cernekee2-76/+56
If the E6 report test passes, get the E7 and EC reports right away and then try to match an entry in the table. Pass in the alps_data struct, so that the detection code will be able to set operating parameters based on information found during detection. Change the version (psmouse->model) to report the protocol version only, in preparation for supporting models that do not show up in the ID table. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - introduce helper function for repeated commandsKevin Cernekee1-41/+30
Several ALPS driver init sequences repeat a command three times, then issue PSMOUSE_CMD_GETINFO to read the result. Move this into a helper function to simplify the code. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - move alps_get_model() down below hw_init codeKevin Cernekee1-93/+93
This will minimize the number of forward declarations needed when alps_get_model() starts assigning function pointers. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - copy "model" info into alps_data structKevin Cernekee2-34/+43
Not every type of ALPS touchpad is well-suited to table-based detection. Start moving the various alps_model_data attributes into the alps_data struct so that we don't need a unique table entry for every possible permutation of protocol version, flags, byte0/mask0, etc. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-14Input: ALPS - document the alps.h data structuresKevin Cernekee1-13/+61
Add kernel-doc markup. Signed-off-by: Kevin Cernekee <[email protected]> Tested-by: Dave Turvene <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-13Input: wacom - add support for DTH-2242Ping Cheng2-1/+25
It is a pen with 10 finger touch device. Signed-off-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-13Input: cyapa - add support for smbus protocolBenson Leung1-5/+174
This patch adds support for the Cypress APA Smbus Trackpad type, which uses a modified register map that fits within the limitations of the smbus protocol. Devices that use this protocol include: CYTRA-116001-00 - Samsung Series 5 550 Chromebook trackpad CYTRA-103002-00 - Acer C7 Chromebook trackpad CYTRA-101003-00 - HP Pavilion 14 Chromebook trackpad Signed-off-by: Dudley Du <[email protected]> Signed-off-by: Benson Leung <[email protected]> Reviewed-by: Daniel Kurtz <[email protected]> Reviewed-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-13Input: synaptics - fix 1->3 contact transition reportingDaniel Kurtz1-3/+27
Investigating the following gesture highlighted two slight implementation errors with choosing which slots to report in which slot when multiple contacts are present: Action SGM AGM (MTB slot:Contact) 1. Touch contact 0 (0:0) 2. Touch contact 1 (0:0, 1:1) 3. Lift contact 0 (1:1) 4. Touch contacts 2,3 (0:2, 1:3) In step 4, slot 1 was not being cleared first, which means the same tracking ID was being used for reporting both the old contact 1 and the new contact 3. This could result in "drumroll", where the old contact 1 would appear to suddenly jump to new finger 3 position. Similarly, if contacts 2 & 3 are not detected at the same sample, step 4 is split into two: Action SGM AGM (MTB slot:contact) 1. Touch contact 0 (0:0) 2. Touch contact 1 (0:0, 1:1) 3. Lift contact 0 (1:1) 4. Touch contact 2 (0:2, 1:1) 5. Touch contact 3 (0:2, 1:3) In this case, there was also a bug. In step 4, when contact 1 moves from SGM to AGM and contact 2 is first reported in SGM, slot 0 was actually empty. So slot 0 can be used to report the new SGM (contact 0), immediately. Since it was empty, contact 2 in slot 0 will get a new tracking ID. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-02-13Input: add couple of missing GENERIC_HARDIRQS dependenciesHeiko Carstens4-4/+5
When removing the !S390 dependency from drivers/input/Kconfig a couple of drivers don't compile because they have a dependency on GENERIC_HARDIRQS. So add the missing dependencies. Fixes e.g. this one: drivers/input/keyboard/lm8323.c: In function ‘lm8323_suspend’: drivers/input/keyboard/lm8323.c:801:2: error: implicit declaration of function ‘irq_set_irq_wake’ [-Werror=implicit-function-declaration] Signed-off-by: Heiko Carstens <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-25Input: twl6040-vibra - use system workqueuePeter Ujfalusi1-10/+1
It is time to switch to system wq instead creating a queue for the driver. Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-25Input: twl6040-vibra - code cleanup in probe with devm_* conversionPeter Ujfalusi1-54/+45
Convert the probe to use devm_*. At the same time reorder the calls so we will register the input device as the last step when the driver is loaded. Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-25Input: goldfish - virtual input event driverBrian Swetland3-0/+205
This device is a direct pipe from "hardware" to the input event subsystem, allowing us to avoid having to route "keypad" style events through an AT keyboard driver (gross!). As with the other submissions this driver is cross architecture. Signed-off-by: Mike A. Chan <[email protected]> [Tided up to work on x86] Signed-off-by: Sheng Yang <[email protected]> Signed-off-by: Yunhong Jiang <[email protected]> Signed-off-by: Xiaohui Xin <[email protected]> Signed-off-by: Jun Nakajima <[email protected]> Signed-off-by: Bruce Beare <[email protected]> [Ported to 3.4] Signed-off-by: Tom Keel <[email protected]> [Cleaned up for 3.7 and submission] Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-23Input: wacom - fix wacom_set_report retry logicChris Bagwell1-3/+3
Logic sets a value and then reads it back to make sure it worked and retries write on failures. Since read and write share a buffer, it needs to be set back up before writing though. Issue is not seen a lot because 1) it doesn't need to retry for a lot of tablets and 2) a lot of failures that need a retry are from an -ETIMEDOUT and hopefully buffer is not touched in this case. At least one user has shown logs with buffer being modified during -ETIMEDOUT case with linux 3.7 kernel. Signed-off-by: Chris Bagwell <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-21Input: walkera0701 - claim parport when opening the deviceDmitry Torokhov1-10/+6
Postpone claiming the port until the device is opened, instead of doing that when the driver is loaded. Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-21Input: walkera0701 - use proper error codesDmitry Torokhov1-20/+36
We have been using -EBUSY where we should have used -EIO or -ENOMEM, so let's fix that and also add some diagnostic messages. Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-21Input: walkera0701 - switch to using pr_xxx() for messagesDmitry Torokhov1-13/+10
Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-21Input: walkera0701 - set up input device's parentDmitry Torokhov1-0/+1
This will place the joystick's input device into propoer place in sysfs hierarchy as long as th port has device assigned to it (i.e. it is not legacy port). Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-21Input: atkbd - fix multi-byte scancode handling on reconnectShawn Nematbakhsh1-21/+51
On resume from suspend there is a possibility for multi-byte scancodes to be handled incorrectly. atkbd_reconnect disables the processing of scancodes in software by calling atkbd_disable, but the keyboard may still be active because no disconnect command was sent. Later, software handling is re-enabled. If a multi-byte scancode sent from the keyboard straddles the re-enable, only the latter byte(s) will be handled. In practice, this leads to cases where multi-byte break codes (ex. "e0 4d" - break code for right-arrow) are misread as make codes ("4d" - make code for numeric 6), leading to one or more unwanted, untyped characters being interpreted. The solution implemented here involves sending command f5 (reset disable) to the keyboard prior to disabling software handling of codes. Later, the command to re-enable the keyboard is sent only after we are prepared to handle scancodes. Signed-off-by: Shawn Nematbakhsh <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-21Input: twl4030-vibra - Use system workqueuePeter Ujfalusi1-18/+1
It is time to switch to system wq instead creating a queue for the driver. Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-21Input: twl4030-vibra - switch to using managed resourcesPeter Ujfalusi1-22/+4
This simplifies error handling and eliminates the need for implementing remove() method. Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-17Input: add driver for Cypress APA I2C TrackpadBenson Leung3-0/+817
This patch introduces a driver for Cypress All Points Addressable I2C Trackpad, including the ones in 2012 Samsung Chromebooks. This device is compatible with MT protocol type B, providing identifiable contacts. Signed-off-by: Dudley Du <[email protected]> Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Benson Leung <[email protected]> Reviewed-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-17Input: atkbd - fix a typo in a messageDmitry Torokhov1-1/+1
Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-17Input: mms114 - switch to using managed resourcesSachin Kamat1-38/+16
devm_* APIs are device managed and make the exit and clean up code simpler. Signed-off-by: Sachin Kamat <[email protected]> Acked-by: Laxman Dewangan<[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-17Input: tegra-kbc - remove default keymapLaxman Dewangan1-169/+7
Tegra KBC driver have the default key mapping for 16x8 configuration. The key mapping can be provided through platform data or through DT and the mapping varies from platform to platform, hence this default mapping is not so useful. Remove the default mapping to reduce the code lines of the driver. Signed-off-by: Laxman Dewangan <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-17Input: tegra-kbc - add support for rows/columns configuration from dtLaxman Dewangan2-19/+85
The NVIDIA's Tegra KBC has maximum 24 pins to make matrix keypad. Any pin can be configured as row or column. The maximum column pin can be 8 and maximum row pin can be 16. Remove the assumption that all first 16 pins will be used as row and remaining as columns and Add the property for configuring pins to either row or column from DT. Update the devicetree binding document accordingly. Signed-off-by: Laxman Dewangan <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-17Input: tegra-kbc - use devm_* for resource allocationLaxman Dewangan1-78/+27
Use devm_* for memory, clock, irq, input device allocation. This reduces code for freeing these resources. Signed-off-by: Laxman Dewangan <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-17Input: tegra-kbc - fix build warningLaxman Dewangan1-12/+12
Fix the following build warning when building driver with CONFIG_PM_SLEEP not selected. tegra-kbc.c:360:13: warning: 'tegra_kbc_set_keypress_interrupt' defined but not used [-Wunused-function] Signed-off-by: Laxman Dewangan <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-17Input: sysrq - allow specifying alternate reset sequenceMathieu Poirier1-74/+202
This patch adds keyreset functionality to the sysrq driver. It allows certain button/key combinations to be used in order to trigger emergency reboots. Redefining the '__weak platform_sysrq_reset_seq' variable is required to trigger the feature. Alternatively keys can be passed to the driver via a module parameter. This functionality comes from the keyreset driver submitted by Arve Hjønnevåg in the Android kernel. Signed-off-by: Mathieu Poirier <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-17Input: add support for Cypress PS/2 TrackpadsDudley Du6-0/+960
This driver, submitted on behalf of Cypress Semiconductor Corporation and additional contributors, provides support for the Cypress PS/2 Trackpad. Original code contributed by Dudley Du (Cypress Semiconductor Corporation), modified by Kamal Mostafa and Kyle Fazzari. BugLink: http://launchpad.net/bugs/978807 Signed-off-by: Dudley Du <[email protected]> Signed-off-by: Kamal Mostafa <[email protected]> Signed-off-by: Kyle Fazzari <[email protected]> Signed-off-by: Mario Limonciello <[email protected]> Signed-off-by: Tim Gardner <[email protected]> Acked-by: Herton Krzesinski <[email protected]> Reviewed-by: Henrik Rydberg <[email protected]> Reviewed-by: Dudley Du <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2013-01-09Input: document that unregistering managed devices is not necessaryDmitry Torokhov1-2/+14
Apparently some users of managed input devices are confused whether input_unregister_device() is needed when working with them. Clarify this in the kernel doc for devm_input_allocate_device(): in most cases there is no need to call neither input_unregister_device() nor input_free_device() when working with managed devices. Signed-off-by: Dmitry Torokhov <[email protected]>