18 May, 2011
5 commits
-
These new platform-specific values can be used to set the fuzz parameter
passed to the input_set_abs_params() function for the ABS_X, ABS_Y and
ABS_PRESSURE axes.Signed-off-by: Thierry Reding
Signed-off-by: Dmitry Torokhov -
This new parameter allows the polling frequency to be configured while
keeping the default of once every millisecond.Signed-off-by: Thierry Reding
Signed-off-by: Dmitry Torokhov -
Depending on the quality of the touch panel, the time for the X-, X+, Y-
and Y+ inputs to settle may vary. The poll_delay parameter can be used
to override the default of 1 millisecond.Cc: Dmitry Torokhov
Cc: Kwangwoo Lee
Signed-off-by: Thierry Reding
Signed-off-by: Dmitry Torokhov -
Finger touch events or very quick stylus events on low-quality panels
can cause the tsc2007 to read bogus values. Looking at oscilloscope
snapshots, this seems to be caused by the touch event disappearing
during the measurements. These bogus values result in misclicks, where
the X and Y values deviate from the real position.Most of these misclicks can be filtered out by setting a low enough
threshold for the maximum resistance (which is loosely the inverse of
the pressure) allowed to consider a set of values valid. Since this
behaviour is largely dependent on the type and quality of the panel,
this commit introduces the max_rt parameter. The default value is kept
at MAX_12BIT.Signed-off-by: Thierry Reding
Signed-off-by: Dmitry Torokhov -
When the controller signals a pen-down event via the platform-specific
GPIO, while the sample values indicate an invalid measurement, the
measurement needs to be repeated.Signed-off-by: Thierry Reding
Signed-off-by: Dmitry Torokhov
17 May, 2011
8 commits
-
As reported by Jean-Francois Dagenais, the wheel algorithm caused a
divide by zero exception due to missing variable pre-initialization.
In fact it turned out that the whole algorithm had several problems.
It is therefore replaced with something that is known working.Signed-off-by: Michael Hennerich
Tested-by: Jean-Francois Dagenais
Signed-off-by: Dmitry Torokhov -
Add option to specify irqflags in platfrom data.
Also update copyright notice.Signed-off-by: Michael Hennerich
Tested-by: Jean-Francois Dagenais
Signed-off-by: Dmitry Torokhov -
Fix two issues in the threshold and completion interrupt mask and unmask
functions. According to the AD714x datasheets the highest stage completion
interrupt should be enabled. Fix mask computation.Signed-off-by: Michael Hennerich
Tested-by: Jean-Francois Dagenais
Signed-off-by: Dmitry Torokhov -
Add missing input name and set up parent devices so input devices will
show in proper places in sysfs tree.Signed-off-by: Michael Hennerich
Tested-by: Jean-Francois Dagenais
Signed-off-by: Dmitry Torokhov -
Apparently somewhere someone had a proprietary X driver. To get the
multitouch info, it uses some hack on the normal API instead of using
the multitouch protocol. Now that the multitouch info is transmitted
correctly it makes not much sense to keep it. Especially because it's
impossible to find this proprietary X driver anywhere, so the number of
users must be very low.Signed-off-by: Éric Piel
Reviewed-by: Henrik Rydberg
Signed-off-by: Dmitry Torokhov -
Multitouch info was reported only via a old protocol used by the
proprietary X driver from elantech. Let's report the multitouch info
also following the official MT protocol. It's semi-mt because the device
only reports the lowest/highest coordinates.This was done following the multi-touch-protocol.txt documentation, and
inspired by the bcm5974 and elantech implementations. Testing was light
as there is not many applications using this protocol yet, but the X
synaptics driver didn't complain and the X multitouch driver behaved
correctly.Signed-off-by: Éric Piel
Reviewed-by: Henrik Rydberg
Signed-off-by: Dmitry Torokhov -
Using the info of the Dell/Ubuntu driver, described in the protocol
document, report both width and pressure when pressing 1 and 3
fingers, for the versions of the touchpad which support it.Signed-off-by: Éric Piel
Reviewed-by: Henrik Rydberg
Signed-off-by: Dmitry Torokhov -
For some Dell laptops, Ubuntu had a special version of the elantech
driver with more knowledge on the devices. It can be found there:
http://zinc.ubuntu.com/git?p=mid-team/hardy-netbook.git;a=blob;f=drivers/input/mouse/elantech.c;h=d0e2cafed162428f72e3654f4dda85e08ea486b3;hb=refs/heads/abi-22By inspecting the source code, and doing some test on a real hardware, I
have completed the protocol specification (especially for the 6 bytes
protocol). It also adds information about the mapping between the
version reported by the device and the protocol to use.Signed-off-by: Éric Piel
Reviewed-by: Henrik Rydberg
Signed-off-by: Dmitry Torokhov
15 May, 2011
1 commit
-
This error handling code can be reached before ts_dev->input is
initialized, so it is safer to always use the original name,
input_dev.Signed-off-by: Julia Lawall
Signed-off-by: Dmitry Torokhov
12 May, 2011
7 commits
-
This patch adds basic support for Freescale MPR121 capacitive touch
sensor. It's an i2c controller with up to 12 capacitance sensing inputs.Product information (data sheet, application notes) can be found here:
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPR121Signed-off-by: Zhang Jiejing
Signed-off-by: Dmitry Torokhov -
There is no need to call synchronize_rcu() after a list insertion,
or a NULL->ptr assignment.However, the reverse operations do need this call.
Signed-off-by: Eric Dumazet
Signed-off-by: Dmitry Torokhov -
The pendown gpio was requested but not configured for input.
Configure it for input.Signed-off-by: Igor Grinberg
Signed-off-by: Dmitry Torokhov -
Just set vref_mv in your platform config to use external vref. Otherwise
the internal one is used.Signed-off-by: Alexander Stein
Signed-off-by: Dmitry Torokhov -
Add support for encoders that have two detents per input signal period.
Signed-off-by: Johan Hovold
Acked-by: Daniel Mack
Signed-off-by: Dmitry Torokhov -
Refactor state retrieval and event reporting in interrupt handler.
Remove a few empty lines.Signed-off-by: Johan Hovold
Reviewed-by: H Hartley Sweeten
Acked-by: Daniel Mack
Signed-off-by: Dmitry Torokhov -
Tegra hardware design cannot reliably support an arbitrary set of keys
waking up the system. Modify wakeup logic so either any key wakes the
system up or none will do.Signed-off-by: Rakesh Iyer
Signed-off-by: Dmitry Torokhov
05 May, 2011
2 commits
-
If the channel_mask setup fails when configuring it through sysfs,
return the error code to the caller instead of claiming success.Signed-off-by: Ville Syrjala
Signed-off-by: Dmitry Torokhov -
Signed-off-by: Dmitry Torokhov
04 May, 2011
2 commits
-
Make sure we are passing the same cookie in all calls to request_irq() and
free_irq().Signed-off-by: Axel Lin
Signed-off-by: Dmitry Torokhov -
This variable is not used outside of the module so we should mark it
as static.Signed-off-by: Dmitry Torokhov
29 Apr, 2011
2 commits
-
Update the KEYSC driver to make use of threaded IRQs with IRQF_ONESHOT
to improve interrupt latency. The driver is using udelay() in the ISR
to make sure the hardware has stabilized. Without using interrupt threads
this delay may affect the latency of the rest of the system.Also pass dev_name() as string for /proc/interrupts.
Signed-off-by: Magnus Damm
Signed-off-by: Dmitry Torokhov -
Convert the KEYSC driver from MSTP bit control through a magic clock
string to making use of Runtime PM.Also, update the system suspend/resume callbacks to drop the Runtime
PM reference in the case of wakeup disabled.Signed-off-by: Magnus Damm
Signed-off-by: Dmitry Torokhov
28 Apr, 2011
5 commits
-
With introduction of concurrency-managed work queues there is rarely
a point in creating private workqueues.Signed-off-by: Dmitry Torokhov
-
Add ghost key filtering support for the Nvidia Tegra matrix keyboard.
Signed-off-by: Rakesh Iyer
Reviewed-by: Henrik Rydberg
Signed-off-by: Dmitry Torokhov -
In twl4030_pwrbutton_probe error path, free_irq() was using NULL rather than
the driver data as the data pointer so free_irq() wouldn't have matched.Signed-off-by: Axel Lin
Signed-off-by: Dmitry Torokhov -
In current implementation, free_irq() was using NULL rather than the
driver data as the data pointer so free_irq() wouldn't have matched.Signed-off-by: Axel Lin
Signed-off-by: Dmitry Torokhov -
Adding the necessary MODULE_DEVICE_TABLE() information allows the
driver to be automatically loaded by udevSigned-off-by: Axel Lin
Signed-off-by: Dmitry Torokhov
27 Apr, 2011
1 commit
-
This patch modifies evdev so that it only becomes readable when
the buffer contains an EV_SYN/SYN_REPORT event.On SMP systems, it is possible for an evdev client blocked on poll()
to wake up and read events from the evdev ring buffer at the same
rate as they are enqueued. This can result in high CPU usage,
particularly for MT devices, because the client ends up reading
events one at a time instead of reading complete packets.We eliminate this problem by making the device readable only when
the buffer contains at least one complete packet. This causes
clients to block until the entire packet is available.Signed-off-by: Jeff Brown
Signed-off-by: Dmitry Torokhov
23 Apr, 2011
1 commit
19 Apr, 2011
6 commits
-
* 'for-39-rc4' of git://codeaurora.org/quic/kernel/davidb/linux-msm:
msm: timer: fix missing return value
msm: Remove extraneous ffa device check -
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: xen-kbdfront - fix mouse getting stuck after save/restore
Input: estimate number of events per packet
Input: evdev - indicate buffer overrun with SYN_DROPPED
Input: document event types and codes and their intended use
Input: add KEY_IMAGES specifically for AL Image Browser
Input: twl4030_keypad - fix potential NULL dereference in twl4030_kp_probe()
Input: h3600_ts - fix error handling at connect
Input: twl4030_keypad - avoid potential NULL-pointer dereference -
* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
block: add blk_run_queue_async
block: blk_delay_queue() should use kblockd workqueue
md: fix up raid1/raid10 unplugging.
md: incorporate new plugging into raid5.
md: provide generic support for handling unplug callbacks.
md - remove old plugging code.
md/dm - remove remains of plug_fn callback.
md: use new plugging interface for RAID IO.
block: drop queue lock before calling __blk_run_queue() for kblockd punt
Revert "block: add callback function for unplug notification"
block: Enhance new plugging support to support general callbacks -
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
powerpc/powermac: Build fix with SMP and CPU hotplug
powerpc/perf_event: Skip updating kernel counters if register value shrinks
powerpc: Don't write protect kernel text with CONFIG_DYNAMIC_FTRACE enabled
powerpc: Fix oops if scan_dispatch_log is called too early
powerpc/pseries: Use a kmem cache for DTL buffers
powerpc/kexec: Fix regression causing compile failure on UP
powerpc/85xx: disable Suspend support if SMP enabled
powerpc/e500mc: Remove CPU_FTR_MAYBE_CAN_NAP/CPU_FTR_MAYBE_CAN_DOZE
powerpc/book3e: Fix CPU feature handling on 64-bit e5500
powerpc: Check device status before adding serial device
powerpc/85xx: Don't add disabled PCIe devices -
* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (24 commits)
Btrfs: fix free space cache leak
Btrfs: avoid taking the chunk_mutex in do_chunk_alloc
Btrfs end_bio_extent_readpage should look for locked bits
Btrfs: don't force chunk allocation in find_free_extent
Btrfs: Check validity before setting an acl
Btrfs: Fix incorrect inode nlink in btrfs_link()
Btrfs: Check if btrfs_next_leaf() returns error in btrfs_real_readdir()
Btrfs: Check if btrfs_next_leaf() returns error in btrfs_listxattr()
Btrfs: make uncache_state unconditional
btrfs: using cached extent_state in set/unlock combinations
Btrfs: avoid taking the trans_mutex in btrfs_end_transaction
Btrfs: fix subvolume mount by name problem when default mount subvolume is set
fix user annotation in ioctl.c
Btrfs: check for duplicate iov_base's when doing dio reads
btrfs: properly handle overlapping areas in memmove_extent_buffer
Btrfs: fix memory leaks in btrfs_new_inode()
Btrfs: check for duplicate iov_base's when doing dio reads
Btrfs: reuse the extent_map we found when calling btrfs_get_extent
Btrfs: do not use async submit for small DIO io's
Btrfs: don't split dio bios if we don't have to
...