summaryrefslogtreecommitdiff
path: root/drivers/input
AgeCommit message (Collapse)Author
2010-02-26Merge "tegra NVEC: Bus driver architecture for nvec drivers" into ↵Gary King
android-tegra-2.6.29
2010-02-26tegra NVEC: Bus driver architecture for nvec driversNinad Malwade
- nvec_user is the bus driver - tegra-nvec [keyboard], nvec_mouse [touchpad], nvec_battery are the client drivers for nvec. - verified: suspend-resume ordering: This is synchronous now. - Issues: after few suspend-resume EC is failed to suspend. [working on this issue] - Bug 648447 - Adding device_unregister for nvec bus driver. Change-Id: I3c30ceb50a89f67d71050089766897bd7691848d
2010-02-25tegra touch: handle second finger transitionsVarun Wadekar
second finger transitions were not being handled properly and due to this apps were not able to distinguish individual finger movements. tested on whistler with MultiTouch Visualizer Bug 653317 Change-Id: I34e07fe71f20e63a5dfa23582c9066d2cd3c74e2
2010-02-22keyboard: remove suspend/resume calls from tegra nvec driverGary King
occassionally, the keyboard stops functioning after the system resumes from suspend state; this may be due to a failure enabling keyboard scanning mode during suspend. disable suspend/resume calls from nvec keyboard driver until a solution for this problem is resolved (e.g., converting nvec to a bus). Change-Id: Id9f83a41852c8fec293bd43a94acaa287c184be0
2010-02-09touchscreen: fix build break for non-early-suspend tegra driverGary King
the previous change to tegra-odm.c introduced suspend & early suspend codepaths, but the suspend code path didn't build. fix the build break, and clean up some warnings caused by not including <linux/tegra_devices.h> Change-Id: I73b40a50e508ed95bbcccac1bf5234e057c88d5d
2010-02-05tegra: Add early_suspend and late_resume hooks to touch-screen driverBharat Nihalani
Additionally normal suspend and resume hooks have also been added in case CONFIG_HAS_EARLYSUSPEND is not enabled. Tested on Whistler by invoking suspend and resume Change-Id: I13b7402d2703cc0fd3cb3070f172f4dd09f84597
2010-02-03tegra: tegra-nvec (keyboard) driver thread added into freezable stateNinad Malwade
- all the EC client threads should be freezable while going into suspend and so as the nvec keyboard thread. bug 646208 Change-Id: I95285829b229d5e482f216507210258e05de792c
2010-02-01tegra: NvEC threads are added into refrigerator for suspend/resume casesNinad Malwade
- setting set_freezable_with_signal at the start of the thread - replaced NvOsSemaphoreWaitTimeout by wait_event_freezable_timeout - marked a shutdown variable and signalled the semaphore before joining with the thread Change-Id: I06a11848cc20498b57387a0c4bb55c330065768f
2010-01-26mouse: use early suspend for mouse, freeze event threadGary King
since the mouse event thread expects to read from the embedded controller following an event, it should be frozen while the system goes into suspend additionally, on operating systems which support early_suspend, the mouse should cause the system to wake up; register an early_suspend handler for the mouse based on the blank screen state. bug 645292 Change-Id: Ib3dc161565da70893ccd1397e0a3be35f5283c3f
2010-01-21tegra: power management for mouse/keyboard driversVarun Wadekar
Added suspend and resume hooks. tested on harmony bug 642578 Change-Id: I7c5065403e1c5581fce16c6f3653baeb48af5820
2010-01-15linux kernel:Added new product id for PANJIT touch screen.Krishna Reddy
Added the new product id in the usb id table, for PANJIT touch screen to work. Enabled the PANJIT touch screen in the harmony config file. Change-Id: I9914622fb4fe697f2cb7ede0d033aa46578c7d4b
2009-12-23keyboard: add error cleanup to tegra KBC driverGary King
if the keyboard DDK failed to initialize, the keyboard driver would panic due to inadequate error handling between the KBC init and the KBC event thread. this is now fixed Change-Id: Ic0d1f66ba2294e8ea3408d5ed321195fa7454847
2009-12-23keyboard: add a keyboard driver for buttons connected to Tegra SoC GPIOsGary King
Change-Id: If8d57293b0d6ba1bbf493f4e5ea1d5cc27eb25bc
2009-12-16input: various build fixes for tegra driversGary King
drivers were originally submitted before compilation, now they compile cleanly
2009-12-15keyboard: add missing comma to tegra NvEc-based keyboard driverGary King
Change-Id: I35bf210bdb50582e38276962c6a53ef79857678a
2009-12-15mouse: include tegra_devices.h in nvec_mouse.c to get NV_DEBUG definitionGary King
Change-Id: I149c47b3537c1e81ee3d744e7af46635083896a8
2009-12-11input: add misc input device for NVIDIA Tegra ODM scrollwheelGary King
adds a miscellaneous input device for scrollwheels using the NVIDIA Tegra ODM kit adaptation interface for scrollwheels Change-Id: Ic2072010acd3f56a9a1333c90bbda4cdc935ce28
2009-12-11input: add miscellaneous Tegra accelerometer ODM input deviceGary King
adds a miscellaneous input device for accelerometers implemented using the NVIDIA Tegra ODM kit adaptation interface. Change-Id: I44c4b088ec43eae20192c0bd578e2c802449101c
2009-12-11keyboard: adds a driver for NvEc keyboard supportGary King
adds a keyboard driver for keyboards connected to NVIDIA Tegra NvEc-compliant embedded controllers Change-Id: I3426ec0de0dbdba63dfc03738f6c0c38905b0a5b
2009-12-11mouse: add mouse driver for Tegra NvEc embedded controllerGary King
adds a mouse-class input device for mice and touchpads connected to an NVIDIA Tegra NvEc-compliant embedded controller Change-Id: Ib706f9b789d2b8328bb6c1bd40d1adc882a717dd
2009-12-10touchscreen: add a touchscreen input device driver for Tegra ODM kitGary King
adds a touchscreen input device driver using the NVIDIA Tegra's ODM kit adaptation interface for touchscreen controllers
2009-12-09keyboard: add support for NVIDIA Tegra internal keyboard controllerGary King
adds a keyboard input driver based on NvDdk / NvRm APIs for the Tegra's internal matrix keyboard controller Change-Id: Iee8726317c7bf13866b8546695db0fd1647c065f
2009-10-27input: evdev: Use unique wakelock namesMike Chan
wakelock names are now contain evdev->name and pid Signed-off-by: Mike Chan <mike@android.com>
2009-07-29Input: gpio_event: Allow multiple input devices per gpio_event deviceArve Hjønnevåg
This is needed to support devices that put non-keyboard buttons in the keyboard matrix. For instance several devices put the trackball button in the keyboard matrix. In this case BTN_MOUSE should be reported from the same input device as REL_X/Y. It is also useful for devices that have multiple logical keyboard in the same matrix. The HTC dream has a menu key on the external keyboard and another menu key on the slide-out keyboard. With a single input device only one of these menu keys can be mapped to KEY_MENU. Signed-off-by: Arve Hjønnevåg <arve@android.com>
2009-07-29Input: gpio_input: Fix keys with keycode 0x100-0x1ffArve Hjønnevåg
KEY_MAX is no longer a power of 2. Signed-off-by: Arve Hjønnevåg <arve@android.com>
2009-07-29Input: synaptics_i2c_rmi: Add irqflags to platform data struct to pass them ↵Rebecca Schultz Zavin
to driver Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com> Signed-off-by: Arve Hjønnevåg <arve@android.com>
2009-07-24Input: synaptics_i2c_rmi: Send new multi touch eventsArve Hjønnevåg
Send both fingers using the new multitouch protocol in addition to the old single finger event and second finger ABS_HAT* hack. The new protocol does not specify how to report up events. To make sure the user-space frameworks can generate up events, we send at least one event where ABS_MT_TOUCH_MAJOR is zero before we stop sending events for a finger. Signed-off-by: Arve Hjønnevåg <arve@android.com>
2009-07-24Input: add detailed multi-touch finger data report protocolHenrik Rydberg
In order to utilize the full power of the new multi-touch devices, a way to report detailed finger data to user space is needed. This patch adds a multi-touch (MT) protocol which allows drivers to report details for an arbitrary number of fingers. The driver sends a SYN_MT_REPORT event via the input_mt_sync() function when a complete finger has been reported. In order to stay compatible with existing applications, the data reported in a finger packet must not be recognized as single-touch events. In addition, all finger data must bypass input filtering, since subsequent events of the same type refer to different fingers. A set of ABS_MT events with the desired properties are defined. The events are divided into categories, to allow for partial implementation. The minimum set consists of ABS_MT_TOUCH_MAJOR, ABS_MT_POSITION_X and ABS_MT_POSITION_Y, which allows for multiple fingers to be tracked. If the device supports it, the ABS_MT_WIDTH_MAJOR may be used to provide the size of the approaching finger. Anisotropy and direction may be specified with ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MINOR and ABS_MT_ORIENTATION. Devices with more granular information may specify general shapes as blobs, i.e., as a sequence of rectangular shapes grouped together by a ABS_MT_BLOB_ID. Finally, the ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a finger or a pen. Signed-off-by: Henrik Rydberg <rydberg@euromail.se> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-07-24Input: allow certain EV_ABS events to bypass all filteringHenrik Rydberg
With the upcoming multi-touch interface as an example, there is a need to make certain that all reported events actually get passed to the event handler. This patch equips the input core with the ability to bypass all filtering for certain EV_ABS events. Signed-off-by: Henrik Rydberg <rydberg@euromail.se> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-07-24Input: synaptics_i2c_rmi: Add sensitivity adjust option.Arve Hjønnevåg
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2009-07-24Input: synaptics_i2c_rmi: Add support for panels with has-no-relative-data ↵Arve Hjønnevåg
property. Signed-off-by: Arve Hjønnevåg <arve@android.com>
2009-07-24Input: synaptics_i2c_rmi: disable_irq -> disable_irq_nosyncArve Hjønnevåg
Also remove duplicate swap macro Signed-off-by: Arve Hjønnevåg <arve@android.com>
2009-04-07input: keychord: Add keychord driverMike Lockwood
This driver allows userspace to receive notification when client specified key combinations are pressed. The client opens /dev/keychord and writes a list of keychords for the driver to monitor. The client then reads or polls /dev/keychord for notifications. A client specified ID for the keychord is returned from read() when a keychord press is detected. Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-07input: Add keyreset driver.Arve Hjønnevåg
Add a platform device in the board file to specify a reset key-combo. The first time the key-combo is detected a work function that syncs the filesystems is scheduled. If all the keys are released and then pressed again, it calls panic. Reboot on panic should be set for this to work. Signed-off-by: Arve Hjønnevåg <arve@android.com>
2009-04-07Input: synaptics_i2c_rmi: Driver for Synaptics Touchscreens using RMI over I2C.Arve Hjønnevåg
Signed-off-by: Arve Hjønnevåg <arve@android.com>
2009-04-07Input: Use monotonic time for event time stamps.Arve Hjønnevåg
Since wall time can jump backwards, it cannot be used to determine if one event occured before another or for how long a key was pressed. Signed-off-by: Arve Hjønnevåg <arve@android.com>
2009-04-07Input: Hold wake lock while event queue is not empty.Arve Hjønnevåg
Allows userspace code to process input events while the device appears to be asleep. Signed-off-by: Arve Hjønnevåg <arve@android.com>
2009-04-07Input: Generic GPIO Input device.Arve Hjønnevåg
Supports keyboard matrixces, direct inputs, direct outputs and axes connected to gpios. Signed-off-by: Arve Hjønnevåg <arve@android.com> Signed-off-by: Nick Pelly <npelly@google.com>
2009-03-02Merge branch 'for-linus' of ↵Linus Torvalds
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: Input: elantech - touchpad driver miss-recognising logitech mice Input: synaptics - ensure we reset the device on resume Input: usbtouchscreen - fix eGalax HID ignoring Input: ambakmi - fix timeout handling in amba_kmi_write() Input: pxa930_trkball - fix write timeout handling Input: struct device - replace bus_id with dev_name(), dev_set_name() Input: bf54x-keys - fix debounce time validation Input: spitzkbd - mark probe function as __devinit Input: omap-keypad - mark probe function as __devinit Input: corgi_ts - mark probe function as __devinit Input: corgikbd - mark probe function as __devinit Input: uvc - the button on the camera is KEY_CAMERA Input: psmouse - make MOUSE_PS2_LIFEBOOK depend on X86 Input: atkbd - make forced_release_keys[] static Input: usbtouchscreen - allow reporting calibrated data
2009-02-28Input: elantech - touchpad driver miss-recognising logitech miceArjan Opmeer
Some Logitech mice react to the magic knock like Elantech touchpad would. This leads to those mice being misdetected as Elantech touchpads. Add a version query to elantech_detect() to distinguish the two. [dtor@mail.ru: - lower severity of some messages - when we are not sure yet if device is Elantech or not not responding to knock is not an error. ] Signed-off-by: Arjan Opmeer <arjan@opmeer.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-02-28Input: synaptics - ensure we reset the device on resumeAndy Whitcroft
When resuming from suspend newer Synaptics touchpads do not recover correctly. Analysis of the resume sequence as applied in Linux was compared to that of other operating systems. This indicated that the other OSs were resetting the mouse before attempting to detect it (for all Synaptics touchpads, old and new). Applying this same modification fixes these newer Synaptics touchpads and brings the driver into line with common OS reset behaviour. Signed-off-by: Andy Whitcroft <apw@canonical.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-02-28Input: usbtouchscreen - fix eGalax HID ignoringDaniel Ritz
Commit ec42d4481e36cbdb5b2801f957e678211a9e5ae2 broke usbtouchscreen for some eGalax/EETI devices that claim to be HID, but are not. Devices confirmed to be real HID have the class set to HID and the protocol set to 'mouse'. Some have HID class but protocol set to 'none'. Those are not HID and should be driven by usbtouchscreen. Fix the device ignoring macro by adding match for the protocol too. Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-02-01Input: ambakmi - fix timeout handling in amba_kmi_write()Roel Kluin
With a postfix decrement timeleft reaches -1 rather than 0, but after the loop it is tested to have become 0. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-02-01Input: pxa930_trkball - fix write timeout handlingRoel Kluin
With a postfix decrement i reaches -1 rather than 0, but after the loop it is tested whether it has become 0. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-01-29Input: struct device - replace bus_id with dev_name(), dev_set_name()Kay Sievers
Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-01-29Input: bf54x-keys - fix debounce time validationRoel Kluin
Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Acked-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-01-13Input: spitzkbd - mark probe function as __devinitUwe Kleine-König
A pointer to spitzkbd_probe is passed to the core via platform_driver_register and so the function must not disappear when the .init sections are discarded. Otherwise (if also having HOTPLUG=y) unbinding and binding a device to the driver via sysfs will result in an oops as does a device being registered late. An alternative to this patch is using platform_driver_probe instead of platform_driver_register plus removing the pointer to the probe function from the struct platform_driver. [dtor@mail.ru: fixed some more section markups] Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-01-13Input: omap-keypad - mark probe function as __devinitUwe Kleine-König
A pointer to omap_kp_probe is passed to the core via platform_driver_register and so the function must not disappear when the .init sections are discarded. Otherwise (if also having HOTPLUG=y) unbinding and binding a device to the driver via sysfs will result in an oops as does a device being registered late. An alternative to this patch is using platform_driver_probe instead of platform_driver_register plus removing the pointer to the probe function from the struct platform_driver. [dtor@mail.ru: fixed some more section markups] Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-01-12Input: corgi_ts - mark probe function as __devinitUwe Kleine-König
A pointer to corgits_probe is passed to the core via platform_driver_register and so the function must not disappear when the .init sections are discarded. Otherwise (if also having HOTPLUG=y) unbinding and binding a device to the driver via sysfs will result in an oops as does a device being registered late. An alternative to this patch is using platform_driver_probe instead of platform_driver_register plus removing the pointer to the probe function from the struct platform_driver. [dtor@mail.ru: fixed some more section markups] Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-01-12Input: corgikbd - mark probe function as __devinitUwe Kleine-König
A pointer to corgikbd_probe is passed to the core via platform_driver_register and so the function must not disappear when the .init sections are discarded. Otherwise (if also having HOTPLUG=y) unbinding and binding a device to the driver via sysfs will result in an oops as does a device being registered late. An alternative to this patch is using platform_driver_probe instead of platform_driver_register plus removing the pointer to the probe function from the struct platform_driver. [dtor@mail.ru: fixed some more section markups] Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>