| Age | Commit message (Collapse) | Author | Files | Lines |
|
Clocks must be prepared before enabling and unprepared
after disabling. Use appropriate functions to do this
in one go.
Signed-off-by: Pawel Moll <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
On Toshiba Satellite C850D, the touchpad and the keyboard might randomly
not work at boot. Preventing MUX mode activation solves this issue.
Signed-off-by: Anisse Astier <[email protected]>
Cc: [email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Use of the in-kernel tracking code to convert the driver to MT-B.
With ten fingers on the pad, the in-kernel tracking adds approximately
25 us to the maximum irqsoff latency. Under normal workloads, however,
the tracking has no measurable effect.
Tested-by: Benjamin Tissoires <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
The logical scale is used to produce special finger width values to
userspace, but has become an unnecessary restriction for everything
else. Also, the bcm5974 trackpads are very accurate and work well
without hysteresis.
This patch simplifies the driver and device data by removing the
logical scale, and by moving the special synaptics code out of the
main path. Also add the orientation range, needed in a subsequent
patch, to the device configuration.
Tested-by: Benjamin Tissoires <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
Rename touch properties to match established nomenclature, and define
the maximum number of fingers.
Tested-by: Benjamin Tissoires <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
The early generations with this trackpad used the separate mouse
interface to produce button events. With the introduction of the
button pads, this information was moved to the trackpad interface,
leaving the mouse interface unused. The driver is still setting up
both interfaces, which has not caused any problems - until now.
It turns out that without the CONFIG_USB_EHCI_TT_NEWSCHED option, the
driver may return an ENOSPC upon bt_urb submission, resulting in a
failure to open the device. This happens everytime on the MacBookPro
Retina (and likely on other mid-2012 models), but earlier MacBook
models seem to work fine.
This patch skips the bt_urb setup for TYPE2 devices, which arguably
should have been done in the first place.
Tested-by: Benjamin Tissoires <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
Some drivers like to report ABS_PRESSURE in a special way.
Allow this when ABS_MT_PRESSURE is not defined.
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
Some devices use an internal key for tracking which cannot be directly
mapped to slots. This patch provides a key-to-slot mapping, which can
be used by drivers of such devices.
Reviewed-and-tested-by: Benjamin Tissoires <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
With the INPUT_MT_TRACK flag set, the function input_mt_assign_slots()
can be used to match a new set of contacts against the currently used
slots. The algorithm used is based on Lagrange relaxation, and performs
very well in practice; slower than mtdev for a few corner cases, but
faster in most commonly occuring cases.
Tested-by: Benjamin Tissoires <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
Most MT drivers perform the same actions on frame synchronization.
Some actions, like dropping unseen contacts, are also unnecessarily
complex. Collect common frame synchronization tasks in a new function,
input_mt_sync_frame(). Depending on the flags set, it drops unseen
contacts and performs pointer emulation.
With init flags and frame synchronization in place, most MT drivers
can be simplified. First out are the bcm5974 and hid-multitouch
drivers, following this patch.
Reviewed-and-tested-by: Benjamin Tissoires <[email protected]>
Tested-by: Ping Cheng <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
Preparing to move more repeated code into the mt core, add a flags
argument to the input_mt_slots_init() function.
Reviewed-and-tested-by: Benjamin Tissoires <[email protected]>
Tested-by: Ping Cheng <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
By sending a full frame of events at the same time, the irqsoff
latency at heavy load is brought down from 200 us to 100 us.
Cc: Daniel Kurtz <[email protected]>
Tested-by: Benjamin Tissoires <[email protected]>
Tested-by: Ping Cheng <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
On heavy event loads, such as a multitouch driver, the irqsoff latency
can be as high as 250 us. By accumulating a frame worth of data
before passing it on, the latency can be dramatically reduced. As a
side effect, the special EV_SYN handling can be removed, since the
frame is now atomic.
This patch adds the events() handler callback and uses it if it
exists. The latency is improved by 50 us even without the callback.
Cc: Daniel Kurtz <[email protected]>
Tested-by: Benjamin Tissoires <[email protected]>
Tested-by: Ping Cheng <[email protected]>
Tested-by: Sedat Dilek <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
Preparing to split event filtering and event passing, move the
autorepeat function to the point where the event is actually passed.
Tested-by: Benjamin Tissoires <[email protected]>
Tested-by: Ping Cheng <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
For some EV_KEY types, sending a larger-than-one value causes the
input state to oscillate. This patch makes sure this cannot happen,
clearing up the autorepeat bypass logic in the process.
Tested-by: Benjamin Tissoires <[email protected]>
Tested-by: Ping Cheng <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
The events-per-packet estimate has so far been used by MT devices
only. This patch adjusts the packet buffer size to also accomodate the
KEY and MSC events. Keyboards normally send one or two keys at a
time. MT devices normally send a number of button keys along with the
MT information. The buffer size chosen here covers those cases, and
matches the default buffer size in evdev. Since the input estimate is
now preferred, remove the special input-mt estimate.
Reviewed-and-tested-by: Ping Cheng <[email protected]>
Tested-by: Benjamin Tissoires <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
Move all MT-related things to a separate place. This saves some
bytes for non-mt input devices, and prepares for new MT features.
Reviewed-and-tested-by: Benjamin Tissoires <[email protected]>
Tested-by: Ping Cheng <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Henrik Rydberg <[email protected]>
|
|
This reverts commit ca3b3faf9bee4dc5df4f10eae2d1e48f7de0a8ad.
There was a plan to place ab8500_irq_get_virq() calls in each AB8500
child device prior to requesting an IRQ, but as we're no longer using
Device Tree to collect our IRQ numbers, it's actually better to allow
the core to do this during device registration time. So the IRQ number
we pull from its resource has already been converted to a virtual IRQ.
Signed-off-by: Lee Jones <[email protected]>
Acked-by: Linus Walleij <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Sync with mainline so that I can revert an input patch that came in through
another subsystem tree.
|
|
Platform data for device drivers should be defined in
include/linux/platform_data/*.h, not in the architecture
and platform specific directories.
This moves such data out of the spear include directories
Signed-off-by: Arnd Bergmann <[email protected]>
Acked-by: Mark Brown <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-by: Nicolas Pitre <[email protected]>
Cc: Viresh Kumar <[email protected]>
Cc: Shiraz Hashim <[email protected]>
Cc: [email protected]
Cc: Dmitry Torokhov <[email protected]>
|
|
Platform data for device drivers should be defined in
include/linux/platform_data/*.h, not in the architecture
and platform specific directories.
This moves such data out of the samsung include directories
Signed-off-by: Arnd Bergmann <[email protected]>
Acked-by: Mark Brown <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-by: Nicolas Pitre <[email protected]>
Acked-by: Mauro Carvalho Chehab <[email protected]>
Cc: Kukjin Kim <[email protected]>
Cc: Kyungmin Park <[email protected]>
Cc: Ben Dooks <[email protected]>
Cc: Jeff Garzik <[email protected]>
Cc: Guenter Roeck <[email protected]>
Cc: "Wolfram Sang (embedded platforms)" <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
Cc: Bryan Wu <[email protected]>
Cc: Richard Purdie <[email protected]>
Cc: Sylwester Nawrocki <[email protected]>
Cc: Chris Ball <[email protected]>
Cc: David Woodhouse <[email protected]>
Cc: Grant Likely <[email protected]>
Cc: Felipe Balbi <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Sangbeom Kim <[email protected]>
Cc: Liam Girdwood <[email protected]>
Cc: [email protected]
|
|
Platform data for device drivers should be defined in
include/linux/platform_data/*.h, not in the architecture
and platform specific directories.
This moves such data out of the omap include directories
Signed-off-by: Arnd Bergmann <[email protected]>
Acked-by: Mark Brown <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-by: Nicolas Pitre <[email protected]>
Acked-by: Tony Lindgren <[email protected]>
Cc: Kevin Hilman <[email protected]>
Cc: "Benoît Cousson" <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
Cc: David Woodhouse <[email protected]>
Cc: Kyungmin Park <[email protected]>
Cc: Ohad Ben-Cohen <[email protected]>
Cc: Grant Likely <[email protected]>
Cc: Omar Ramirez Luna <[email protected]>
Cc: Tomi Valkeinen <[email protected]>
Cc: Florian Tobias Schandinat <[email protected]>
Cc: Peter Ujfalusi <[email protected]>
Cc: Jarkko Nikula <[email protected]>
Cc: Liam Girdwood <[email protected]>
Cc: Artem Bityutskiy <[email protected]>
Cc: Jean Pihet <[email protected]>
Cc: J Keerthy <[email protected]>
Cc: [email protected]
|
|
ARM is moving to stricter checks on readl/write functions,
so we need to use the correct types everywhere.
Cc: Dmitry Torokhov <[email protected]>
Cc: [email protected]
Signed-off-by: Arnd Bergmann <[email protected]>
|
|
Add support when the kernel has been booted with DT blob. In this case the
pdata is NULL, we need to reach up to the core node and check if the codec
part has been enabled to determine if we need to coexist with the codec or
not.
Signed-off-by: Peter Ujfalusi <[email protected]>
Acked-by: Dmitry Torokhov <[email protected]>
Signed-off-by: Samuel Ortiz <[email protected]>
|
|
Platform data for device drivers should be defined in
include/linux/platform_data/*.h, not in the architecture
and platform specific directories.
This moves such data out of the nomadik include directories
Signed-off-by: Arnd Bergmann <[email protected]>
Acked-by: Mark Brown <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-by: Nicolas Pitre <[email protected]>
Acked-by: Felipe Balbi <[email protected]>
Acked-by: Alessandro Rubini <[email protected]>
Acked-by: Linus Walleij <[email protected]>
Cc: STEricsson <[email protected]>
Cc: Srinidhi Kasagar <[email protected]>
Cc: Herbert Xu <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
Cc: David Woodhouse <[email protected]>
Cc: Andreas Westin <[email protected]>
|
|
Platform data for device drivers should be defined in
include/linux/platform_data/*.h, not in the architecture
and platform specific directories.
This moves such data out of the w90x900 include directories
Signed-off-by: Arnd Bergmann <[email protected]>
Acked-by: Mark Brown <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-by: Nicolas Pitre <[email protected]>
Cc: Wan ZongShun <[email protected]>
Cc: "Ben Dooks (embedded platforms)" <[email protected]>
Cc: "Wolfram Sang (embedded platforms)" <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
Cc: Grant Likely <[email protected]>
Cc: Florian Tobias Schandinat <[email protected]>
|
|
Platform data for device drivers should be defined in
include/linux/platform_data/*.h, not in the architecture
and platform specific directories.
This moves such data out of the pxa include directories
Signed-off-by: Arnd Bergmann <[email protected]>
Acked-by: Mark Brown <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-by: Nicolas Pitre <[email protected]>
Acked-by: Mauro Carvalho Chehab <[email protected]>
Acked-by: Igor Grinberg <[email protected]>
Acked-by: Jeff Garzik <[email protected]>
Acked-by: Marek Vasut <[email protected]>
Acked-by: Robert Jarzmik <[email protected]>
Acked-by: Paul Parsons <[email protected]>
Acked-by: Vinod Koul <[email protected]>
Acked-By: Stefan Schmidt <[email protected]>
Cc: Eric Miao <[email protected]>
Cc: Haojian Zhuang <[email protected]>
Cc: Daniel Ribeiro <[email protected]>
Cc: Harald Welte <[email protected]>
Cc: Philipp Zabel <[email protected]>
Cc: Tomas Cech <[email protected]>
Cc: Sergey Lapin <[email protected]>
Cc: Jonathan Cameron <[email protected]>
Cc: Dan Williams <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
Cc: Chris Ball <[email protected]>
Cc: David Woodhouse <[email protected]>
Cc: Samuel Ortiz <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Florian Tobias Schandinat <[email protected]>
Cc: Liam Girdwood <[email protected]>
Cc: Jaroslav Kysela <[email protected]>
Cc: Takashi Iwai <[email protected]>
Cc: Guennadi Liakhovetski <[email protected]>
Cc: Artem Bityutskiy <[email protected]>
Cc: [email protected]
|
|
Platform data for device drivers should be defined in
include/linux/platform_data/*.h, not in the architecture
and platform specific directories.
This moves such data out of the ep93xx include directories
Signed-off-by: Arnd Bergmann <[email protected]>
Acked-by: Mark Brown <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-by: Nicolas Pitre <[email protected]>
Acked-by: Hartley Sweeten <[email protected]>
Acked-by: Ryan Mallon <[email protected]>
Acked-by: Vinod Koul <[email protected]>
Cc: Grant Likely <[email protected]>
Cc: Jeff Garzik <[email protected]>
Cc: Dan Williams <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
Cc: Florian Tobias Schandinat <[email protected]>
Cc: Liam Girdwood <[email protected]>
Cc: Jaroslav Kysela <[email protected]>
Cc: Takashi Iwai <[email protected]>
Cc: Mika Westerberg <[email protected]>
Cc: Axel Lin <[email protected]>
|
|
Platform data for device drivers should be defined in
include/linux/platform_data/*.h, not in the architecture
and platform specific directories.
This moves such data out of the davinci include directories
Signed-off-by: Arnd Bergmann <[email protected]>
Acked-by: Mark Brown <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-by: Nicolas Pitre <[email protected]>
Acked-by: Mauro Carvalho Chehab <[email protected]>
Acked-by: Felipe Balbi <[email protected]>
Cc: Sekhar Nori <[email protected]>
Cc: Kevin Hilman <[email protected]>
Cc: "Ben Dooks" <[email protected]>
Cc: "Wolfram Sang" <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
Cc: Chris Ball <[email protected]>
Cc: David Woodhouse <[email protected]>
Cc: Grant Likely <[email protected]>
Cc: Alan Stern <[email protected]>
Cc: Liam Girdwood <[email protected]>
Cc: [email protected]
|
|
Signed-off-by: Andy Shevchenko <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
pdata->nbuttons should be updated by the dt code.
Signed-off-by: Alexandre Pereira da Silva <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Remove support for omap2+ as it's no longer needed since
it's using matrix-keypad. This way we can remove depency
to plat and mach headers which is needed for ARM common
zImage support.
Also remove INT_KEYBOARD by using omap_kp->irq.
Note that this patch depends on an earlier patch
"ARM: OMAP: Move gpio.h to include/linux/platform_data".
Cc: Dmitry Torokhov <[email protected]>
Cc: [email protected]
Acked-by: Sourav Poddar <[email protected]>
Reviewed-by: Felipe Balbi <[email protected]>
Signed-off-by: Tony Lindgren <[email protected]>
|
|
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input subsystem updates from Dmitry Torokhov.
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: wacom - add support for EMR on Cintiq 24HD touch
Input: i8042 - add Gigabyte T1005 series netbooks to noloop table
Input: imx_keypad - reset the hardware before enabling
Input: edt-ft5x06 - fix build error when compiling wthout CONFIG_DEBUG_FS
|
|
Fixed spacing error on if statements and fixed tab error.
Signed-off-by: Josh <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Linux 3.6-rc4
# gpg: Signature made Sat 01 Sep 2012 10:40:33 AM PDT using RSA key ID 00411886
# gpg: Good signature from "Linus Torvalds <[email protected]>"
|
|
Move the Tegra KBC platform data header out of arch/arm/mach-tegra, as
a pre-requisite of single zImage.
Signed-off-by: Stephen Warren <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
commit a1e636e6d3 (Input: imx_keypad - use clk_prepare_enable/
clk_disable_unprepare()) missed to update clk_enable/clk_disable
in imx_keypad_probe().
Fix it so that we do not get clk warnings at boot.
Signed-off-by: Fabio Estevam <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Certain eGalax devices expose an interface with class HID and protocol
None. Some work with usbhid and some work with usbtouchscreen, but
there is no easy way to differentiate. Sending an eGalax diagnostic
packet seems to kick them all into using the right protocol for
usbtouchscreen, so we can continue to bind them all there (as opposed to
handing some off to usbhid).
This fixes a regression for devices that were claimed by (and worked
with) usbhid prior to commit 139ebe8dc80dd74cb2ac9f5603d18fbf5cff049f
("Input: usbtouchscreen - fix eGalax HID ignoring"), which made
usbtouchscreen claim them instead. With this patch they will still be
claimed by usbtouchscreen, but they will actually report events
usbtouchscreen can understand. Note that these devices will be limited
to the usbtouchscreen feature set so e.g. dual touch features are not
supported.
I have the distinct pleasure of needing to support devices of both types
and have tested accordingly.
Signed-off-by: Forest Bond <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Adds support for the EMR digitizer on the Cintiq 24HD touch. The
EMR digitizer should work identically to that found on the Cintiq
24HD. The touch digitizer is a separate USB device similar to how
we split apart some other devices.
Signed-off-by: Jason Gerecke <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Fixes the following warning:
WARNING: struct dev_pm_ops should normally be const
Signed-off-by: Sachin Kamat <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Use of_get_child_count() instead of custom implementation.
Signed-off-by: Tobias Klauser <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Instead of having to define the match table to NULL if CONFIG_OF isn't
set, use the of_match_ptr() macro which will do this for us.
Signed-off-by: Tobias Klauser <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Reformat the code to keep it within 80 columns.
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Switch to using __u32/__s32 instead of ordinary 'int' in structures
forming userspace API.
Also internally make request_id unsigned int.
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
If uinput_request_submit() fails after new request ID was allocated
we need to mark that request ID as free, otherwise it will always
stay occupied and we may run out of available IDs.
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Consider two threads calling read() on the same uinput-fd, both
non-blocking. Assume there is data-available so both will simultaneously
pass:
udev->head == udev->tail
Then the first thread goes to sleep and the second one pops the message
from the queue. Now assume udev->head == udev->tail. If the first thread
wakes up it will call wait_event_*() and sleep in the waitq. This
effectively turns the non-blocking FD into a blocking one.
We fix this by attempting to fetch events from the queue first and only
if we fail to retrieve any events we either return -EAGAIN (in case of
non-blocing read) or wait until there are more events.
This also fixes incorrect return code (we were returning 0 instead of
-EAGAIN for non-blocking reads) when an event is "stolen" by another
thread. Blocking reads will now continue to wait instead of returning 0
in this scenario.
Count of 0 continues to be a special case, as per spec: we will check for
device existence and whether there are events in the queue, but no events
will be actually retrieved.
Reported-by: David Herrmann <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
Let's check whether the user-supplied buffer is actually big enough and
return -EINVAL if it is not. This differs from current behavior, which
caused 0 to be returned and actually does not make any sense, as
broken application will simply repeat the read getting into endless
loop.
Note that we treat 0 as a special case, according to the standard:
"Before any action described below is taken, and if nbyte is zero,
the read() function may detect and return errors as described below.
In the absence of errors, or if error detection is not performed,
the read() function shall return zero and have no other results."
Signed-off-by: David Herrmann <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
When fetching events form device's buffer in uinput_read() we need to
take input device's event_lock to avoid racing with new event delivery.
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
MATCH_BIT() is ugly and stupid, we have much nicer bitmap_subset() which
does the same and does not hide control flow.
Reported-by: Baodong Chen <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|
|
This adds devicetree bindings to the rotary encoder driver and some
documentation about how to use them. Tested on a PXA3xx platform.
Signed-off-by: Daniel Mack <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
|