summaryrefslogtreecommitdiffstats
path: root/drivers (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'for-linus' of ↵Linus Torvalds2012-01-10118-1576/+4647
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (64 commits) Input: tc3589x-keypad - add missing kerneldoc Input: ucb1400-ts - switch to using dev_xxx() for diagnostic messages Input: ucb1400_ts - convert to threaded IRQ Input: ucb1400_ts - drop inline annotations Input: usb1400_ts - add __devinit/__devexit section annotations Input: ucb1400_ts - set driver owner Input: ucb1400_ts - convert to use dev_pm_ops Input: psmouse - make sure we do not use stale methods Input: evdev - do not block waiting for an event if fd is nonblock Input: evdev - if no events and non-block, return EAGAIN not 0 Input: evdev - only allow reading events if a full packet is present Input: add driver for pixcir i2c touchscreens Input: samsung-keypad - implement runtime power management support Input: tegra-kbc - report wakeup key for some platforms Input: tegra-kbc - add device tree bindings Input: add driver for AUO In-Cell touchscreens using pixcir ICs Input: mpu3050 - configure the sampling method Input: mpu3050 - ensure we enable interrupts Input: mpu3050 - add of_match table for device-tree probing Input: sentelic - document the latest hardware ... Fix up fairly trivial conflicts (device tree matching conflicting with some independent cleanups) in drivers/input/keyboard/samsung-keypad.c
| * Merge branch 'next' into for-linusDmitry Torokhov2012-01-095453-285133/+415966
| |\
| | * Input: tc3589x-keypad - add missing kerneldocNaga Radhesh2012-01-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds two missing kerneldoc entries for the TC3589x keypad driver. Signed-off-by: Naga Radhesh <naga.radheshy@stericsson.com> Reviewed-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: ucb1400-ts - switch to using dev_xxx() for diagnostic messagesDmitry Torokhov2012-01-051-8/+9
| | | | | | | | | | | | | | | Acked-by: Marek Vasut <marek.vasut@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: ucb1400_ts - convert to threaded IRQDmitry Torokhov2012-01-051-122/+113
| | | | | | | | | | | | | | | | | | | | | | | | Instead of manually create and handler kernel thread switch to threaded IRQ and let kernel IRQ core manage thread for us. Acked-by: Marek Vasut <marek.vasut@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: ucb1400_ts - drop inline annotationsDmitry Torokhov2012-01-051-9/+9
| | | | | | | | | | | | | | | | | | | | | Let compiler figure out which ones makes most sense to inline. Acked-by: Marek Vasut <marek.vasut@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: usb1400_ts - add __devinit/__devexit section annotationsDmitry Torokhov2012-01-051-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | Add __devinit/__devexit sections annotations so parts of code could be discarded after completing driver initialization. Acked-by: Marek Vasut <marek.vasut@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: ucb1400_ts - set driver ownerDmitry Torokhov2012-01-051-0/+1
| | | | | | | | | | | | | | | | | | | | | So that it has proper symlink to the containing module in sysfs. Acked-by: Marek Vasut <marek.vasut@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: ucb1400_ts - convert to use dev_pm_opsDmitry Torokhov2012-01-051-6/+6
| | | | | | | | | | | | | | | | | | | | | Instead of using legacy PM interfaces switch to using dev_pm_ops. Acked-by: Marek Vasut <marek.vasut@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: psmouse - make sure we do not use stale methodsDmitry Torokhov2011-12-311-69/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several protocol initialization routines can fail after they set up psmouse methods, such as reconnect and disconnect. This may lead to these stale methods used with different protocol that they were intended to be used for and may cause unpredictavle behavior and/or crashes. Make sure we start with a clean slate before executing each and every protocol detection and/or initialization routine. Reported-by: Paul Fox <pgf@laptop.org> Acked-by: Tai-hwa Liang <avatar@sentelic.com> Acked-by: Paul Fox <pgf@laptop.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: evdev - do not block waiting for an event if fd is nonblockDima Zavin2011-12-311-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If there is a full packet in the buffer, and we overflow that buffer right after checking for that condition, it would have been possible for us to block indefinitely (rather, until the next full packet) even if the file was marked as O_NONBLOCK. Cc: Jeff Brown <jeffbrown@android.com> Signed-off-by: Dima Zavin <dima@android.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: evdev - if no events and non-block, return EAGAIN not 0Dima Zavin2011-12-311-0/+3
| | | | | | | | | | | | | | | Signed-off-by: Dima Zavin <dima@android.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: evdev - only allow reading events if a full packet is presentDima Zavin2011-12-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this, it was possible for the reader to get ahead of packet_head. If the input device generated a partial packet *right* after the reader got ahead, then we can get into a situation where the device is marked readable, but read always returns 0 until the next packet is finished (i.e a SYN is generated by the input driver). This situation can also happen if we overflow the buffer while a reader is trying to read an event out. Signed-off-by: Dima Zavin <dima@android.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: add driver for pixcir i2c touchscreensJianchun Bian2011-12-313-0/+252
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds a driver for PIXCIR's I2C connected touchscreens. Signed-off-by: Jianchun <jcbian@pixcir.com.cn> Acked-by: Henrik Rydberg <rydberg@euromail.se> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: samsung-keypad - implement runtime power management supportMark Brown2011-12-301-7/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When runtime power management is enabled put the Samsung keypad driver into suspend mode with wakeups disabled whenever the device is open but a key is not actually been pressed. As well as saving a trivial amount of power this will support the use of SoC wide idle modes which put the entire device into a retention mode and use explicit wakeup sources to exit. Since not all of the interrupt controllers used with the driver support set_irq_wake() (though they all do the right thing) and there's a nasty WARN() when we disable wake after failing to enable it keep track of the current wake status from runtime PM and only disable wake if we managed to enable it; I'm not entirely sure why this doesn't affect the existing uses of the API in the driver. System suspend is unaffected as the driver core will runtime resume any suspended devices prior to system suspend. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Conflicts: drivers/input/keyboard/samsung-keypad.c
| | * Input: tegra-kbc - report wakeup key for some platformsRakesh Iyer2011-12-301-3/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | Tegra kbc cannot detect exact keypress causing wakeup in interrupt mode. Allow wakeup keypress to be reported for certain platforms. Signed-off-by: Rakesh Iyer <riyer@nvidia.com> Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: tegra-kbc - add device tree bindingsOlof Johansson2011-12-301-8/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a simple device tree binding to the tegra keyboard controller. Also, mark the default keymap as __devinitdata since it is not referenced after boot. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: add driver for AUO In-Cell touchscreens using pixcir ICsHeiko Stübner2011-12-283-0/+666
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some displays from AUO have a so called in-cell touchscreen, meaning it is built directly into the display unit. Touchdata is gathered through PIXCIR Tango-ICs and processed in an Atmel ATmega168P with custom firmware. Communication between the host system and ATmega is done via I2C. Devices using this touch solution include the Dell Streak5 and the family of Qisda ebook readers. The driver reports single- and multi-touch events including touch area values. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: mpu3050 - configure the sampling methodHeikki Krogerus2011-12-241-5/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | This will improve the output of the sensor. Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: mpu3050 - ensure we enable interruptsHeikki Krogerus2011-12-241-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also changes the devname parameter delivered to request_threaded_irq() from "mpu_int" to "mpu3050". Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: mpu3050 - add of_match table for device-tree probingOlof Johansson2011-12-241-0/+7
| | | | | | | | | | | | | | | | | | | | | Adding invn,mpu3050 as the initial id. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: wacom - add LED support for Cintiq 24HDJason Gerecke2011-12-121-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Cintiq 24HD has three LEDs on the left side of the tablet and three LEDs on the right side of the tablet. Switching to LED 0, 1, or 2 will enable the top, middle, or bottom LED for the respective side. Switching to LED 3 turns off the LEDs on the respective side. Signed-off-by: Jason Gerecke <killertofu@gmail.com> Reviewed-by: Ping Cheng <pingc@wacom.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: wacom - add support for Cintiq 24HDJason Gerecke2011-12-122-1/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds support for the Cintiq 24HD. There are two quirks about this model that haven't been seen in prior tablets. First, a second touch ring is present on this display; it is being exposed via the ABS_THROTTLE axis. Second, three capacitive buttons at the top of the unit are available; though physically a touch strip, we report the use of these buttons with generic KEY_ events. Signed-off-by: Jason Gerecke <killertofu@gmail.com> Reviewed-by: Ping Cheng <pingc@wacom.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: add driver for Sharp gp2ap002a00f proximity sensorCourtney Cavin2011-12-123-1/+312
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This driver adds support for Sharp's GP2AP002A00F proximity sensor. The proximity is measured as a binary switch, i.e. an object is either detected or not detected. Hence, this driver is implemented as a switch that reports SW_FRONT_PROXIMITY. Reviewed-by: Datta Shubhrajyoti <shubhrajyoti@ti.com> Signed-off-by: Courtney Cavin <courtney.cavin@sonyericsson.com> Signed-off-by: Oskar Andero <oskar.andero@sonyericsson.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: keyboard - staticise non-exported symbolsAxel Lin2011-12-122-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These symbols are not used outside it's driver so no need to make the symbol global. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Michael Hennerich <michael.hennerich@analog.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: mc13783-pwrbutton - convert to use module_platform_driver()Axel Lin2011-12-121-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch converts mc13783-pwrbutton to use the module_platform_driver() macro which makes the code smaller and a bit simpler. Also staticise mc13783_pwrbutton_driver which is not used outside this driver so no need to make the symbol global. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: migor-ts - rework probe() to simplify error pathDmitry Torokhov2011-12-121-25/+18
| | | | | | | | | | | | | | | | | | | | | Register input device last so that we do not have to reset input device pointer after calling input_unregister_device(). Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: migor-ts - use proper client data accessor functionsDmitry Torokhov2011-12-121-5/+4
| | | | | | | | | | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: migor-ts - convert to a threaded IRQDmitry Torokhov2011-12-121-41/+24
| | | | | | | | | | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: htcpen - switch to DMI-based autoloadingDmitry Torokhov2011-12-011-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having module device table based on PNP id produces the following warning: CC drivers/input/touchscreen/htcpen.o drivers/input/touchscreen/htcpen.c:50: warning: 'pnp_ids' defined but not used This happens because it is not a PNP driver, bit rather ISA driver and pnp_ids table is not used anywhere. To fix this issue let's switch to DMI-based module table instead, Reported-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: ad7879-i2c - use swapped variant of i2c_smbus_read_word_dataJonathan Cameron2011-12-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This variant was introduced in i2c: boilerplate function for byte swapped smbus_write/read_word_data This also has the side effect of ensuring any errors from the i2c read and no longer mangled. Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk> Acked-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: touchscreen - use macro module_platform_driver()JJ Ding2011-12-0118-228/+18
| | | | | | | | | | | | | | | | | | | | | | | | Commit 940ab88962bc1aff3273a8356d64577a6e386736 introduced a new macro to save some platform_driver boilerplate code. Use it. Signed-off-by: JJ Ding <dgdunix@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: serio - use macro module_platform_driver()JJ Ding2011-12-014-51/+4
| | | | | | | | | | | | | | | | | | | | | | | | Commit 940ab88962bc1aff3273a8356d64577a6e386736 introduced a new macro to save some platform_driver boilerplate code. Use it. Signed-off-by: JJ Ding <dgdunix@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: mouse - use macro module_platform_driver()JJ Ding2011-12-013-39/+4
| | | | | | | | | | | | | | | | | | | | | | | | Commit 940ab88962bc1aff3273a8356d64577a6e386736 introduced a new macro to save some platform_driver boilerplate code. Use it. Signed-off-by: JJ Ding <dgdunix@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: misc - use macro module_platform_driver()JJ Ding2011-12-0120-247/+21
| | | | | | | | | | | | | | | | | | | | | | | | Commit 940ab88962bc1aff3273a8356d64577a6e386736 introduced a new macro to save some platform_driver boilerplate code. Use it. Signed-off-by: JJ Ding <dgdunix@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: keyboard - use macro module_platform_driver()JJ Ding2011-12-0126-327/+26
| | | | | | | | | | | | | | | | | | | | | | | | Commit 940ab88962bc1aff3273a8356d64577a6e386736 introduced a new macro to save some platform_driver boilerplate code. Use it. Signed-off-by: JJ Ding <dgdunix@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: add generic GPIO-tilt driverHeiko Stübner2011-12-013-0/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There exist tilt switches that simply report their tilt-state via some gpios. The number and orientation of their axes can vary depending on the switch used and the build of the device. Also two or more one-axis switches could be combined to provide multi-dimensional orientation. One example of a device using such a switch is the family of Qisda ebook readers, where the switch provides information about the landscape / portrait orientation of the device. The example in Documentation/input/gpio-tilt.txt documents exactly this one-axis device. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: remove redundant spi driver bus initializationLars-Peter Clausen2011-11-294-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In ancient times it was necessary to manually initialize the bus field of an spi_driver to spi_bus_type. These days this is done in spi_driver_register(), so we can drop the manual assignment. The patch was generated using the following coccinelle semantic patch: // <smpl> @@ identifier _driver; @@ struct spi_driver _driver = { .driver = { - .bus = &spi_bus_type, }, }; // </smpl> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: samsung-keypad - remove redundant MODULE_ALIASAxel Lin2011-11-291-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | MODULE_DEVICE_TABLE will setup the module alias for us, thus adding MODULE_ALIAS for an entry already in MODULE_DEVICE_TABLE is redundant. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Input: ad7879-i2c - remove redundant MODULE_ALIASAxel Lin2011-11-291-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | MODULE_DEVICE_TABLE will setup the module alias for us, thus adding MODULE_ALIAS for an entry already in MODULE_DEVICE_TABLE is redundant. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * Merge commit 'v3.2-rc3' into nextDmitry Torokhov2011-11-295361-283607/+411424
| | |\
| | * | Input: elantech - add resolution query support for v4 hardwareJJ Ding2011-11-212-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out that v4's firmware provides a command so we can query the resolution. Let's use it. Signed-off-by: JJ Ding <jj_ding@emc.com.tw> Reviewed-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: elantech - add support for elantech fast commandJJ Ding2011-11-212-8/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Starting with v3 hardware, the firmware supports this shorter elantech_send_cmd. Teach the driver to use it. Signed-off-by: JJ Ding <jj_ding@emc.com.tw> Reviewed-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: ad7879 - consolidate PM methodsDmitry Torokhov2011-11-164-56/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PM methods are basically the same for SPI and I2C busses, so let's use the same dev_pm_ops for both of them. Acked-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: add EETI eGalax I2C capacitive multi touch driverZhang Jiejing2011-11-153-0/+314
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the EETI eGalax serial multi touch controller driver. EETI eGalax serial touch screen controller is a I2C based multiple capacitive touch screen controller, it can support 5 touch events maximum. Signed-off-by: Zhang Jiejing <jiejing.zhang@freescale.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: synaptics - update OLPC XO exclusionDaniel Drake2011-11-151-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have determined that the jumpiness previously seen when using the synaptics kernel mouse driver on OLPC XO was due to not using the synaptics X11 userspace driver - the xf86-input-evdev driver was interpreting 'finger near pad' signals as movements. Newer versions of xf86-input-evdev fix this issue. Additionally, the synaptics kernel driver is now usable on this platform, but only when run in relative mode. Update the comment and refine the check to allow the synaptics driver to run on OLPC XO in relative mode. We will continue investigating the EC issue as time becomes available. Signed-off-by: Daniel Drake <dsd@laptop.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: samsung-keypad - enable compiling on other platformsDmitry Torokhov2011-11-152-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is nothing in keypad platform definitions that requires the driver be complied on Samsung platform only, so let's move them out of the platform subdirectory and relax the dependencies. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: samsung-keypad - switch to using SIMPLE_DEV_PM_OPSDmitry Torokhov2011-11-101-8/+4
| | | | | | | | | | | | | | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: synaptics - add support for Relative modeDaniel Drake2011-11-104-48/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the synaptics driver puts the device into Absolute mode. As explained in the synaptics documentation section 3.2, in this mode, the device sends a continuous stream of packets at the maximum rate to the host when the user's fingers are near or on the pad or pressing buttons, and continues streaming for 1 second afterwards. These packets are even sent when there is no new information to report, even when they are duplicates of the previous packet. For embedded systems this is a bit much - it results in a huge and uninterrupted stream of interrupts at high rate. This patch adds support for Relative mode, which can be selected as a new psmouse protocol. In this mode, the device does not send duplicate packets and acts like a standard PS/2 mouse. However, synaptics-specific functionality is still available, such as the ability to set the packet rate, and rather than disabling gestures and taps at the hardware level unconditionally, a 'synaptics_disable_gesture' sysfs attribute has been added to allow control of this functionality. This solves a long standing OLPC issue: synaptics hardware enables tap to click by default (even in the default relative mode), but we have found this to be inappropriate for young children and first time computer users. Enabling the synaptics driver disables tap-to-click, but we have previously been unable to use this because it also enables Absolute mode, which is too "spammy" for our desires and actually overloads our EC with its continuous stream of packets. Now we can enable the synaptics driver, disabling tap to click while retaining the less noisy Relative mode. Signed-off-by: Daniel Drake <dsd@laptop.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| | * | Input: convert obsolete strict_strtox to kstrtoxJJ Ding2011-11-1015-104/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With commit 67d0a0754455f89ef3946946159d8ec9e45ce33a we mark strict_strtox as obsolete. Convert all remaining such uses in drivers/input/. Also change long to appropriate types, and return error conditions from kstrtox separately, as Dmitry sugguests. Signed-off-by: JJ Ding <dgdunix@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>