aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-12-16hid: egalax: Add support for Samsung NB30 netbookRichard Nauber3-0/+4
The Samsung NB30 touch has a DWAV dual-touch device. This patch adds the NB30 to the list of supported devices, and grabs it accordingly in hid-core. [[email protected]: rename and log message changes] Signed-off-by: Richard Nauber <[email protected]> Signed-off-by: Jiri Kosina <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-16hid: egalax: Document the new devices in KconfigHenrik Rydberg1-1/+2
Add the new supported devices to the kernel menu config help text. Signed-off-by: Jiri Kosina <[email protected]> Cc: Stephane Chatty <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-16hid: egalax: Add support for WetabHenrik Rydberg3-0/+4
The Wetab tablet dual-touch controller works the same way as the one in the Joojoo tablet. This patch adds the Wetab to the list of supported devices, and grabs it accordingly in hid-core. Signed-off-by: Jiri Kosina <[email protected]> Cc: Stephane Chatty <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-16hid: egalax: Convert to MT slotsHenrik Rydberg1-63/+23
The firmware in the joojoo reports touches sequentially, one per report, which confuses the current driver. A further complication is the absense of any indication of a touch frame. This patch converts the driver to the MT slots protocol, and outputs one full touch frame per report. This way, proper handling for both firmwares is ensured. Tested-by: Philipp Merkel <[email protected]> Cc: Stephane Chatty <[email protected]> Signed-off-by: Jiri Kosina <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-16hid: egalax: Add event filteringHenrik Rydberg1-6/+10
Use estimated signal-to-noise ratios to reduce noise and limit the amount of events emitted. Signed-off-by: Jiri Kosina <[email protected]> Cc: Stephane Chatty <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-16hid: egalax: Report zero as minimum pressureHenrik Rydberg1-0/+1
The firmware reports a logical minimum of one, but in order for userspace applications to correctly map all reported values to non-zero pressure, the driver needs to report a logical minimum of zero. Fixed with this patch. Tested-by: Philipp Merkel <[email protected]> Cc: Stephane Chatty <[email protected]> Signed-off-by: Jiri Kosina <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-16hid: egalax: Correct for device resolution report errorHenrik Rydberg1-0/+2
The firmware of both supported devices report a X/Y maximum of 4095, whereas in reality, it is eight times larger. Fixed with this patch. Signed-off-by: Jiri Kosina <[email protected]> Cc: Stephane Chatty <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-16hid: egalax: Setup input device manuallyHenrik Rydberg1-12/+22
The hid core does not yet handle input filtering. Take over the setup of the input device, so that proper signal-to-noise ratios can be used. Signed-off-by: Jiri Kosina <[email protected]> Cc: Stephane Chatty <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-16input: mt: Add hovering distance axisHenrik Rydberg2-2/+10
Touch devices capable of hovering, i.e., fingers detected a distance from the surface, are not supported by the current input MT protocol. This patch adds ABS_MT_DISTANCE, which may be used to indicate the distance between the contact and the surface. Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-16input: mt: Move tracking and pointer emulation to input-mtHenrik Rydberg7-71/+138
The drivers using the type B protocol all report tracking information the same way. The contact id is semantically equivalent to ABS_MT_SLOT, and the handling of ABS_MT_TRACKING_ID only complicates the driver. The situation can be improved upon by providing a common pointer emulation code, thereby removing the need for the tracking id in the driver. This patch moves all tracking event handling over to the input core, simplifying both the existing drivers and the ones currently in preparation. Acked-by: Ping Cheng <[email protected]> Acked-by: Jiri Kosina <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-16input: mt: Collect slots initialization codeHenrik Rydberg6-15/+18
The MT slots devices all follow the same initialization pattern of creating slots and hinting about buffer size. Let drivers call an initialization function instead, and make sure it can be called repeatedly without side effects. Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-16input: mt: Break out slots handlingHenrik Rydberg9-65/+108
In preparation for common code to handle a larger set of MT slots devices, move the slots handling over to a separate file. Signed-off-by: Henrik Rydberg <[email protected]>
2010-12-15Input: add ST1232 touchscreen controller driverTony SIM3-5/+292
This patch introduces support for Sitronix ST1232 integrated capacitive touchscreen with LCD module. The touchscreen is multitouch capable and can report coordinates of up to two contact points. Signed-off-by: Tony SIM <[email protected]> Reviewed-by: Trilok Soni <[email protected]> Acked-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-12-14Input: define separate EVIOCGKEYCODE_V2/EVIOCSKEYCODE_V2Dmitry Torokhov2-57/+62
The desire to keep old names for the EVIOCGKEYCODE/EVIOCSKEYCODE while extending them to support large scancodes was a mistake. While we tried to keep ABI intact (and we succeeded in doing that, programs compiled on older kernels will work on newer ones) there is still a problem with recompiling existing software with newer kernel headers. New kernel headers will supply updated ioctl numbers and kernel will expect that userspace will use struct input_keymap_entry to set and retrieve keymap data. But since the names of ioctls are still the same userspace will happily compile even if not adjusted to make use of the new structure and will start miraculously fail in the field. To avoid this issue let's revert EVIOCGKEYCODE/EVIOCSKEYCODE definitions and add EVIOCGKEYCODE_V2/EVIOCSKEYCODE_V2 so that userspace can explicitly select the style of ioctls it wants to employ. Reviewed-by: Henrik Rydberg <[email protected]> Acked-by: Jarod Wilson <[email protected]> Acked-by: Mauro Carvalho Chehab <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-12-10Input: wacom - add another Bamboo Pen ID (0xd4)Kevin Granade1-0/+3
Add the features struct and device table entry to enable yet another version of Wacom Bamboo Pen (CTL460, Product ID 0xD4). Signed-off-by: Kevin Granade <[email protected]> Acked-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-12-07Input: cma3000_d0x_i2c - add MODULE_DEVICE_TABLEDmitry Torokhov1-0/+2
This should allow loading this module automatically on systems that have such device. Signed-off-by: Dmitry Torokhov <[email protected]>
2010-12-07Input: tca6416-keypad - add support for tca6408aTony SIM2-7/+16
Support 8-bit tca6408a I/O expander as a keypad. Signed-off-by: Tony SIM <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-12-07Input: wacom - add new Bamboo PT (0xdb)David Foley1-0/+3
Adds new Bamboo Pen & Touch model - Bamboo P & T Special Edition Medium (CTH661/L; Product ID = 0xdb). Tested-by: Tobias Verbeke <[email protected]> Signed-off-by: David Foley <[email protected]> Acked-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-12-06Input: add input driver for polled GPIO buttonsGabor Juhos4-0/+280
The existing gpio-keys driver can be usable only for GPIO lines with interrupt support. Several devices have buttons connected to a GPIO line which is not capable to generate interrupts. This patch adds a new input driver using the generic GPIO layer and the input-polldev to support such buttons. [Ben Gardiner <[email protected]: fold code to use more of the original gpio_keys infrastructure; cleanups and other improvements.] Signed-off-by: Gabor Juhos <[email protected]> Signed-off-by: Ben Gardiner <[email protected]> Tested-by: Ben Gardiner <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-12-01Input: turbografx - fix reference countingNamhyung Kim1-0/+1
The ref-count of parport gained from parport_find_number() was not released in normal path. Signed-off-by: Namhyung Kim <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-30Input: synaptics - fix handling of 2-button ClickPadsYan Li1-1/+2
Lenovo S10-3t's ClickPad is a 2-button ClickPad that reports BTN_LEFT and BTN_RIGHT as normal touchpad, unlike the 1-button ClickPad used in HP mini 210 that reports solely BTN_MIDDLE. In 0xc0-cap response, the 1-button ClickPad has the 20-bit set while 2-button ClickPad has the 8-bit set. This patch makes the kernel only handle 1-button ClickPad specially, and treat 2-button ClickPad in the same fashion as regular touchpads. This fixes kernel bug #18122 and MeeGo bug #4807. Signed-off-by: Yan Li <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-30Input: wacom - add IDs for two new Bamboo PTsDavid Foley1-0/+6
Add two new Bamboo Pen & Touch models: Bamboo Comic Medium (CTH661/S1; Product ID = 0xd8) Bamboo P & T Special Edition Small (CTH461/L; Product ID = 0xdA) Tested-by: IRIE Shinsuke <[email protected]> Tested-by: Andrea Cadeddu <[email protected]> Signed-off-by: David Foley <[email protected]> Reviewed-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-30Input: document struct input_absinfoDmitry Torokhov1-1/+20
Add documentation for struct input_absinfo that is used in EVIOCGABS and EVIOCSABS ioctl and specify units of measure used for reporting resolution for an axis. Acked-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-30Input: add keycodes for touchpad on/off keysBastien Nocera1-0/+4
Some laptops will have a "touchpad toggle" soft button, which expects user-space to turn off the touchpad themselves, some other devices will do this in hardware, but send key events telling us that the touchpad has been turned off/on. KEY_TOUCHPAD_ON/KEY_TOUCHPAD_OFF will be used by user-space to show a popup with the status of the touchpad. Signed-off-by: Bastien Nocera <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-30Input: use pr_fmt and pr_<level>Joe Perches10-68/+72
Signed-off-by: Joe Perches <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-30Input: i8042 - use pr_<level>, pr_fmt, fix dbg and __FILE__ useJoe Perches3-73/+63
Standardized message logging prefixes. Removed \n from dbg macro, added \n to each dbg call site. Removed direct use of __FILE__ from dbg, converted to pr_fmt(fmt) Added non-debug printf argument verification of dbg calls Removed "i8042.c" from printks, converted to pr_<level> Signed-off-by: Joe Perches <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-30Input: add CMA3000 accelerometer driverHemanth V7-0/+781
Add support for CMA3000 Tri-axis accelerometer, which supports Motion detect, Measurement and Free fall modes. CMA3000 supports both I2C/SPI bus for communication, currently the driver supports I2C based communication. Signed-off-by: Hemanth V <[email protected]> Reviewed-by: Jonathan Cameron <[email protected]> Reviewed-by: Sergio Aguirre <[email protected]> Reviewed-by: Shubhrajyoti <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-22Input: iforce - clean up MakefileDmitry Torokhov1-12/+3
Use <module>-y notation to specify list of objects comprising iforce module and conditionally pull in USB and RS232 support. Also remove custom compiler flags and rely on general makefile rules for enabling warnings. Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-22Input: clean up Makefile (use input-core-y)Dmitry Torokhov1-1/+1
The proper way to specify multi-source object is to use <name>-y instead of <name>-obj (which is deprecated) as it allows conditional inclusion of modules in the list. Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-22Input: usbtouchscreen - add support for LG Flatron T1710BGlenn Sommer1-0/+1
I've recently got my hands on a LG Flatron T1710B touchscreen. As other LG products, this seems to use the ITM panel. Signed-off-by: Glenn Sommer <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-21Input: ct82c710 - remove a redundant serio_register_port()Axel Lin1-5/+3
We already call serio_register_port() in ct82c710_probe(), thus remove a redundant serio_register_port() in ct82c710_init(). Looks like this bug is introduced by 916d83cfe5da1cda454d8b0ae233f06b58bd7f91 "Input: ct82c710 - convert to the new platform device interface" [[email protected]: also move printk to where we register port] Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-21Input: ams_delta_serio - fix wrong kfree in ams_delta_serio_exitAxel Lin1-1/+0
serio_unregister_port() will call put_device() to free the memory. Thus remove kfree(ams_delta_serio) after serio_unregister_port(ams_delta_serio). Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-21Input: ps2mult - fix wrong kfree in ps2mult_connect error pathAxel Lin1-1/+1
Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-20Input: serio HIL MLC - don't deref null, don't leak and return proper errorJesper Juhl2-9/+14
While reviewing various users of kernel memory allocation functions I came across drivers/input/serio/hil_mlc.c::hil_mlc_register() and noticed that: - it calls kzalloc() but fails to check for a NULL return before use. - it makes several allocations and if one fails it doesn't free the previous ones. - It doesn't return -ENOMEM in the failed memory allocation case (it just crashes). This patch corrects all of the above and also reworks the only caller of this function that I could find (drivers/input/serio/hp_sdc_mlc.c::hp_sdc_mlc_out()) so that it now checks the return value of hil_mlc_register() and properly propagates it on failure and I also restructured the code to remove some labels and goto's to make it, IMHO nicer to read. Signed-off-by: Jesper Juhl <[email protected]> Tested-by: Helge Deller <[email protected]> Acked-by: Helge Deller <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-19Input: add support for keyboards on ST SPEAr platformRajeev Kumar4-0/+495
Signed-off-by: Rajeev Kumar <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-18Input: fix typo in keycode validation supporting large scancodesMattia Dongili1-1/+1
Check the input_keymap_entry keycode size (u32) instead of the device's (void*) when validating that keycode value can be stored in the keymap. Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=22722 Signed-off-by: Mattia Dongili <[email protected]> Tested-by: Norbert Preining <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-18Input: gameport - convert to use common workqueue instead of a threadDmitry Torokhov1-84/+68
Instead of creating an exclusive thread to handle gameport events (which happen rarely), let's switch to common workqueue. With the arrival of concurrency-managed workqueue infrastructure we are not concerned that our callers or callees also using workqueue (no deadlocks anymore) and it should reduce total number of threads in the system. Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-18Input: serio - convert to common workqueue instead of a threadDmitry Torokhov1-86/+69
Instead of creating an exclusive thread to handle serio events (which happen rarely), let's switch to using common workqueue. With the arrival of concurrency-managed workqueue infrastructure we are not concerned that our callers or callees also using workqueue (no deadlocks anymore) and it should reduce total number of threads in the system. Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-18Input: qt602240_ts - fix wrong sizeof in object table allocationChris Leech1-1/+1
The kcalloc call for the object table is using sizeof(struct qt602240_data) when it should be using sizeof(struct qt6602240_object), resulting in a larger allocation than is required. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-18Input: qt602240_ts - convert to using dev_pm_opsDmitry Torokhov1-7/+12
Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-18Input: xpad - ensure xpad->bulk_out is initialized before submitting urbAxel Lin1-16/+16
As pointed out by Oliver Neukum: xpad->irq_in is currently submitted before xpad->bulk_out is allocated. That however is a race, because the callback for irq_in can call xpad360w_process_packet(), which will in turn submit the bulk URB. This patch moves initialization for xpad->bulk_out earlier, so we can ensure xpad->bulk_out is initialized before submitting urb. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-15Input: aiptek - tighten up permissions on sysfs attributesDmitry Torokhov1-14/+14
Sysfs attributes affecting device behavior should not be, by default, world-writeable. If distributions want to allow console users access these attributes they need to employ udev and friends to adjust permissions as needed. Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-15Input: hgpk - fix powersave modePaul Fox1-9/+17
Recent testing of this codepath showed that it wasn't working, perhaps due to changes within the input layer. This fixes it. Signed-off-by: Daniel Drake <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-15Input: hgpk - recalibration tweaksDaniel Drake1-9/+22
Disable the recalibration guard where new recalibrations are triggered if we detect a packet too soon after calibrating - we found that this results in erroneous recalibrations, and if the recalibration failed then the rest of our badness-detection code will request another. Add a module option disabling all of the recalibration code, in case an OLPC deployment thinks all of the workarounds we have are doing more damage than good and wants to experiment with them all disabled. Based on work by Paul Fox. Signed-off-by: Daniel Drake <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-15Input: hgpk - detect simple mode overflowsDaniel Drake1-0/+5
Based on work by Paul Fox. Signed-off-by: Daniel Drake <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-15Input: sysrq - pass along lone Alt + SysRqDmitry Torokhov1-45/+124
When user presses and releases Alt + SysRq without pressing any of the hot keys re-inject the combination and pass it on to userspace instead of suppressing it - maybe he or she wanted to take print screen instead of invoking SysRq handler. Also pass along release events for keys that have been pressed before SysRq mode has been invoked so that keys do not appear to be "stuck". Acked-by: Jason Wessel <[email protected]> Tested-by: Jason Wessel <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-11Input: mac mouse emulation - add lockingDmitry Torokhov1-0/+8
We need to add appropriate locking when toggling mac mouse emulation on and off to ensure that input device and handler are in consistent state. Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-11Input: hgpk - extend jumpiness detectionDaniel Drake2-20/+88
In addition to forcing recalibrations upon detection of cursor jumps (and performing them quicker than before), detect and discard errant 'jump' packets caused by a firmware bug, which are then repeated with each one being approximately half the delta of the one previously (as if it is averaging out) Based on original work by Paul Fox. Signed-off-by: Daniel Drake <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-11Input: hgpk - rework spew detectionDaniel Drake2-32/+103
The old implementation of spew detection simply tracked the overall position delta of the cursor over every 100 packets. We found that this causes occasional false positives in spew detection, and also that the conditions of the spewy packets are perhaps more fixed than we once thought. Rework the spew detection to look for packets of specific small delta, and only recalibrating if the overall movement delta stays within expected bounds. Also discard duplicate packets in the advanced mode, which appear to be very common. If we don't, the spew detection kicks in far too early. If we get a large spew of duplicates, request a recalibration straight up. Based on earlier work by Paul Fox. Signed-off-by: Daniel Drake <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2010-11-11Input: hgpk - support GlideSensor and PenTablet modesDaniel Drake3-43/+441
Add a "hgpk_mode" sysfs attribute that allows selection between 3 options: Mouse (the existing option), GlideSensor and PenTablet. GlideSensor is an enhanced protocol for the regular touchpad mode that additionally reports pressure and uses absolute coordinates. We suspect that it may be more reliable than mouse mode in some environments. PenTablet mode puts the touchpad into resistive mode, you must then use a stylus as an input. We suspect this is the most reliable way to drive the touchpad. The GlideSensor and PenTablet devices expose themselves with the intention of being combined with the synaptics X11 input driver. Based on earlier work by Paul Fox. Signed-off-by: Daniel Drake <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>