aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Merge branch 'next' of ↵Dmitry Torokhov2010-12-16
|\ | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/rydberg/input-mt into next Conflicts: drivers/input/Makefile
| * Input: include MT library as source for kerneldocDmitry Torokhov2010-12-16
| | | | | | | | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
| * MAINTAINERS: Update input-mt entryHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | | | The input multitouch core is now located in its own file, and maintained via a git tree. Update the maintainers entry accordingly. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
| * hid: egalax: Add support for Samsung NB30 netbookRichard Nauber2010-12-16
| | | | | | | | | | | | | | | | | | | | | | 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. [rydberg@euromail.se: rename and log message changes] Signed-off-by: Richard Nauber <Richard.Nauber@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
| * hid: egalax: Document the new devices in KconfigHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | | | Add the new supported devices to the kernel menu config help text. Signed-off-by: Jiri Kosina <jkosina@suse.cz> Cc: Stephane Chatty <chatty@enac.fr> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
| * hid: egalax: Add support for WetabHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | | | | | | | 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 <jkosina@suse.cz> Cc: Stephane Chatty <chatty@enac.fr> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
| * hid: egalax: Convert to MT slotsHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | 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 <mail@philmerk.de> Cc: Stephane Chatty <chatty@enac.fr> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
| * hid: egalax: Add event filteringHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | | | | | Use estimated signal-to-noise ratios to reduce noise and limit the amount of events emitted. Signed-off-by: Jiri Kosina <jkosina@suse.cz> Cc: Stephane Chatty <chatty@enac.fr> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
| * hid: egalax: Report zero as minimum pressureHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | | | | | | | | | | | 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 <mail@philmerk.de> Cc: Stephane Chatty <chatty@enac.fr> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
| * hid: egalax: Correct for device resolution report errorHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | | | | | 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 <jkosina@suse.cz> Cc: Stephane Chatty <chatty@enac.fr> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
| * hid: egalax: Setup input device manuallyHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | | | | | | | 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 <jkosina@suse.cz> Cc: Stephane Chatty <chatty@enac.fr> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
| * input: mt: Add hovering distance axisHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | | | | | | | 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 <rydberg@euromail.se>
| * input: mt: Move tracking and pointer emulation to input-mtHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <pingc@wacom.com> Acked-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
| * input: mt: Collect slots initialization codeHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | | | | | 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 <rydberg@euromail.se>
| * input: mt: Break out slots handlingHenrik Rydberg2010-12-16
| | | | | | | | | | | | | | 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 <rydberg@euromail.se>
* | Input: add ST1232 touchscreen controller driverTony SIM2010-12-16
| | | | | | | | | | | | | | | | | | | | | | 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 <chinyeow.sim.xt@renesas.com> Reviewed-by: Trilok Soni <tsoni@codeaurora.org> Acked-by: Henrik Rydberg <rydberg@euromail.se> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: cma3000_d0x_i2c - add MODULE_DEVICE_TABLEDmitry Torokhov2010-12-08
| | | | | | | | | | | | | | This should allow loading this module automatically on systems that have such device. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: tca6416-keypad - add support for tca6408aTony SIM2010-12-08
| | | | | | | | | | | | | | Support 8-bit tca6408a I/O expander as a keypad. Signed-off-by: Tony SIM <chinyeow.sim.xt@renesas.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: use pr_fmt and pr_<level>Joe Perches2010-12-01
| | | | | | | | | | Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: i8042 - use pr_<level>, pr_fmt, fix dbg and __FILE__ useJoe Perches2010-12-01
| | | | | | | | | | | | | | | | | | | | | | 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 <joe@perches.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: add CMA3000 accelerometer driverHemanth V2010-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | 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 <hemanthv@ti.com> Reviewed-by: Jonathan Cameron <jic23@cam.ac.uk> Reviewed-by: Sergio Aguirre <saaguirre@ti.com> Reviewed-by: Shubhrajyoti <Shubhrajyoti@ti.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: iforce - clean up MakefileDmitry Torokhov2010-11-22
| | | | | | | | | | | | | | | | | | | | 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 <dtor@mail.ru>
* | Input: clean up Makefile (use input-core-y)Dmitry Torokhov2010-11-22
| | | | | | | | | | | | | | | | 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 <dtor@mail.ru>
* | Input: ct82c710 - remove a redundant serio_register_port()Axel Lin2010-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | 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" [dtor@mail.ru: also move printk to where we register port] Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: ams_delta_serio - fix wrong kfree in ams_delta_serio_exitAxel Lin2010-11-22
| | | | | | | | | | | | | | | | | | 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 <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: ps2mult - fix wrong kfree in ps2mult_connect error pathAxel Lin2010-11-22
| | | | | | | | | | Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: serio HIL MLC - don't deref null, don't leak and return proper errorJesper Juhl2010-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <jj@chaosbits.net> Tested-by: Helge Deller <deller@gmx.de> Acked-by: Helge Deller <deller@gmx.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: add support for keyboards on ST SPEAr platformRajeev Kumar2010-11-19
| | | | | | | | | | Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: gameport - convert to use common workqueue instead of a threadDmitry Torokhov2010-11-18
| | | | | | | | | | | | | | | | | | | | 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 <dtor@mail.ru>
* | Input: serio - convert to common workqueue instead of a threadDmitry Torokhov2010-11-18
| | | | | | | | | | | | | | | | | | | | 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 <dtor@mail.ru>
* | Input: qt602240_ts - fix wrong sizeof in object table allocationChris Leech2010-11-18
| | | | | | | | | | | | | | | | | | 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 <christopher.leech@linux.intel.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: qt602240_ts - convert to using dev_pm_opsDmitry Torokhov2010-11-18
| | | | | | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - ensure xpad->bulk_out is initialized before submitting urbAxel Lin2010-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | 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 <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: hgpk - fix powersave modePaul Fox2010-11-15
| | | | | | | | | | | | | | | | 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 <dsd@laptop.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: hgpk - recalibration tweaksDaniel Drake2010-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <dsd@laptop.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: hgpk - detect simple mode overflowsDaniel Drake2010-11-15
| | | | | | | | | | | | | | Based on work by Paul Fox. Signed-off-by: Daniel Drake <dsd@laptop.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: mac mouse emulation - add lockingDmitry Torokhov2010-11-12
| | | | | | | | | | | | | | | | 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 <dtor@mail.ru>
* | Input: hgpk - extend jumpiness detectionDaniel Drake2010-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | 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 <dsd@laptop.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: hgpk - rework spew detectionDaniel Drake2010-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <dsd@laptop.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: hgpk - support GlideSensor and PenTablet modesDaniel Drake2010-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <dsd@laptop.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: pcf_keypad - convert to dev_op_opsDmitry Torokhov2010-11-12
| | | | | | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - remove useless check in xpad_removeDmitry Torokhov2010-11-12
| | | | | | | | | | | | | | ixpad can never be NULL here; if it is NULL we would not have been bound to the interface and then why would we be called? Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - fix resource reclaim in xpad_probe error pathAxel Lin2010-11-12
| | | | | | | | | | | | | | | | Properly free the resources in error path by the reverse order of resource allocation. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - fix a memory leakAxel Lin2010-11-12
| | | | | | | | | | | | | | | | In xpad_led_disconnect(), what we really want is to kfree(xpad_led). In xpad_disconnect(), add a missing kfree(xpad->bdata) to fix the memory leak. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - return proper error in error pathAxel Lin2010-11-12
| | | | | | | | | | | | | | | | | | | | | | In current implementation, xpad_probe return 0 when usb_alloc_urb failed for xpad->bulk_out and kzalloc failed for xpad->bdata. This patch removes the initialization for error variable, assign the error code at the place the error happens instead. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: do not pass injected events back to the originating handlerDmitry Torokhov2010-11-11
| | | | | | | | | | | | | | | | | | | | Sometimes input handlers (as opposed to input devices) have a need to inject (or re-inject) events back into input core. For example sysrq filter may want to inject previously suppressed Alt-SysRq so that user can take a screen print. In this case we do not want to pass such events back to the same same handler that injected them to avoid loops. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: pcf8574_keypad - fix error handling in pcf8574_kp_probeDan Carpenter2010-11-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is not allowed to call input_free_device() after calling input_unregister_device() because input devices are refcounted and unregister will free the device if we were holding he last referenc. The preferred style in input/ is to make input_register_device() the last function in the probe which can fail. That way we don't need to call input_unregister_device(). Also do not need to call input_set_drvdata() as nothing in the driver uses the data. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: acecad - fix a memory leak in usb_acecad_probe error pathAxel Lin2010-11-11
| | | | | | | | | | | | | | Add a missing usb_free_urb() in usb_acecad_probe() error path. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: atkbd - add 'terminal' parameter for IBM Terminal keyboardsBenjamin LaHaise2010-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many of the IBM Terminal keyboards from the 1980s and early 1990s communicate using a protocol similar, but not identical to the AT keyboard protocol. (Models known to be like this include 6110344, 6110668, 1390876, 1386887, and possibly others.) When the connector is rewired or adapter to an AT-DIN or PS/2 connector, they can be connected to a standard PC, with three caveats: a) They can only use scancode set 3; requests to use anything else are quietly ignored. b) The AT Command to request Make, Break and Repeat codes is not properly interpreted. c) The top function keys on a 122 key keyboard, and the arrow/edit keys in the middle of the board send non-standard scancodes. C) is easily taken care of in userspace, by use of setkeycodes B) can be taken care of by a userspace hack (that makes the kernel complain in dmesg) A) is fixable in theory, but on the keyboard i tested on (6110668), it seems to be detected unoverridably as Set 2, causing userspace oddities that make it harder to fix C). Enclosed is a small patch to the kernel that fixes A) and B) in the kernel, making it much easier to fix C) in userspace. It adds a single kernel command line parameter that overrides the detection that sets these boards as set 2, and instead of sending the Make-break-repeat command to the keyboard, it sends the make-break command, which is properly recognized by these keyboards. Software level key repeating seems to make up for the lack of hardware repeat codes perfectly. Without manually setting the command line parameter (tentatively named atkbd.terminal), this code has no effect, and the driver works exactly as before. See also: http://www.seasip.info/VintagePC/ibm_1390876.html http://www.seasip.info/VintagePC/ibm_6110344.html http://geekhack.org/showwiki.php?title=Island:7306 Signed-off-by: Erika Quinn <erikas.aubade@gmail.com> Signed-off-by: Benjamin LaHaise <bcrl@kvack.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: i8042 - add Sony VAIOs to MUX blacklistJesse Barnes2010-11-04
| | | | | | | | | | | | | | | | | | | | | | The Sony VPCZ1 doesn't support active multiplexing and trying to enable it causes keyboard to stop working. Since most (all?) VAIOs do not have external PS/2 ports nor they implement active multiplexing properly, and trying to enable MUX usually messes up keyboard/touchpad, let's simply disable MUX probing based on board name (VAIO). Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>