Age | Commit message (Collapse) | Author | Files | Lines |
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
This should allow loading this module automatically on systems that
have such device.
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Support 8-bit tca6408a I/O expander as a keypad.
Signed-off-by: Tony SIM <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
Signed-off-by: Joe Perches <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
Signed-off-by: Axel Lin <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
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]>
|
|
Signed-off-by: Rajeev Kumar <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
Based on work by Paul Fox.
Signed-off-by: Daniel Drake <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|
|
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]>
|