aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-05-24Merge branch 'next' into for-linusDmitry Torokhov10803-292707/+617066
2011-05-19Input: ADP5589 - new driver for I2C Keypad Decoder and I/O ExpanderMichael Hennerich4-0/+995
From http://www.analog.com/ADP5589: The ADP5589 is an I/O port expander and keypad matrix decoder designed for QWERTY type phones that require a large keypad matrix and expanded I/O lines. Signed-off-by: Michael Hennerich <[email protected]> Signed-off-by: Mike Frysinger <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-17Input: tsc2007 - add X, Y and Z fuzz factors to platform dataThierry Reding2-3/+7
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-17Input: tsc2007 - add poll_period parameter to platform dataThierry Reding2-3/+4
This new parameter allows the polling frequency to be configured while keeping the default of once every millisecond. Signed-off-by: Thierry Reding <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-17Input: tsc2007 - add poll_delay parameter to platform dataThierry Reding2-2/+5
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 <[email protected]> Cc: Kwangwoo Lee <[email protected]> Signed-off-by: Thierry Reding <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-17Input: tsc2007 - add max_rt parameter to platform dataThierry Reding2-1/+4
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-17Input: tsc2007 - debounce pressure measurementThierry Reding1-1/+3
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-16Input: ad714x - fix captouch wheel option algorithmMichael Hennerich1-90/+19
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 <[email protected]> Tested-by: Jean-Francois Dagenais <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-16Input: ad714x - allow platform code to specify irqflagsMichael Hennerich2-2/+5
Add option to specify irqflags in platfrom data. Also update copyright notice. Signed-off-by: Michael Hennerich <[email protected]> Tested-by: Jean-Francois Dagenais <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-16Input: ad714x - fix threshold and completion interrupt masksMichael Hennerich1-4/+4
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 <[email protected]> Tested-by: Jean-Francois Dagenais <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-16Input: ad714x - fix up input configurationMichael Hennerich1-0/+8
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 <[email protected]> Tested-by: Jean-Francois Dagenais <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-16Input: elantech - remove support for proprietary X driverÉric Piel1-12/+0
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 <[email protected]> Reviewed-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-16Input: elantech - report multitouch with proper ABS_MT messagesÉric Piel1-5/+34
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 <[email protected]> Reviewed-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-16Input: elantech - export pressure and width when supportedÉric Piel2-1/+28
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 <[email protected]> Reviewed-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-16Input: elantech - describe further the protocolÉric Piel1-23/+100
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-22 By 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 <[email protected]> Reviewed-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-14Input: atmel_tsadcc - correct call to input_free_deviceJulia Lawall1-1/+1
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-12Input: add driver FSL MPR121 capacitive touch sensorZhang Jiejing4-0/+372
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=MPR121 Signed-off-by: Zhang Jiejing <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-12Input: remove useless synchronize_rcu() callsEric Dumazet4-5/+0
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-12Input: ads7846 - fix gpio_pendown configurationIgor Grinberg1-0/+7
The pendown gpio was requested but not configured for input. Configure it for input. Signed-off-by: Igor Grinberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-12Input: ads7846 - add possibility to use external vref on ads7846Alexander Stein2-9/+13
Just set vref_mv in your platform config to use external vref. Otherwise the internal one is used. Signed-off-by: Alexander Stein <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-12Input: rotary-encoder - add support for half-period encodersJohan Hovold3-3/+53
Add support for encoders that have two detents per input signal period. Signed-off-by: Johan Hovold <[email protected]> Acked-by: Daniel Mack <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-11Input: rotary-encoder - refactor and clean upJohan Hovold1-33/+44
Refactor state retrieval and event reporting in interrupt handler. Remove a few empty lines. Signed-off-by: Johan Hovold <[email protected]> Reviewed-by: H Hartley Sweeten <[email protected]> Acked-by: Daniel Mack <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-11Input: tegra-kbc - change wakeup logic to be all or nothingRakesh Iyer2-25/+2
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-05Input: ads7846 - remove unused variable from struct ads7845_ser_reqAlexander Stein1-1/+0
Signed-off-by: Alexander Stein <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-05Input: ads7846 - make transfer buffers DMA safeAlexander Stein1-2/+10
req.sample needs its own cacheline otherwise accessing req.msg fetches it in again. Note: This effect doesn't occur if the underlying SPI driver doesn't use DMA at all. Signed-off-by: Alexander Stein <[email protected]> Acked-by: Jonathan Cameron <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-05Input: ati_remote2 - return the error code from sysfs channel_mask storeVille Syrjala1-3/+6
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-05Input: sh_keysc - only compile PM code if PM is enabledDmitry Torokhov1-4/+4
Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-03Input: h3600_ts_input - fix a leak of the IRQ during init failureAxel Lin1-4/+4
Make sure we are passing the same cookie in all calls to request_irq() and free_irq(). Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-05-03Input: sh_keysc - make sh_keysc_device_driver staticDmitry Torokhov1-1/+1
This variable is not used outside of the module so we should mark it as static. Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-28Input: sh_keysc - switch to threaded IRQ handlerMagnus Damm1-1/+2
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-28Input: sh_keysc - implement runtime PM supportMagnus Damm1-25/+15
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-27Input: input-polldev - use system-wide freezable workqueueDmitry Torokhov1-53/+3
With introduction of concurrency-managed work queues there is rarely a point in creating private workqueues. Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-27Input: tegra-kbc - add ghost key filterRakesh Iyer2-0/+37
Add ghost key filtering support for the Nvidia Tegra matrix keyboard. Signed-off-by: Rakesh Iyer <[email protected]> Reviewed-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-27Input: wm831x-ts - move BTN_TOUCH reporting to data transferMark Brown1-3/+2
Don't report BTN_TOUCH until we've got data as some less robust applications can be confused by getting a touch event by itself and it doesn't seem unreasonable for them to expect coordinates along with a touch. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-27Input: wm831x-ts - allow IRQ flags to be specifiedMark Brown2-3/+15
This allows maximum flexibility for configuring the direct GPIO based interrupts. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-27Input: wm831x-ts - fix races with IRQ managementMark Brown1-5/+49
If the WM831x pen down and data IRQs run in parallel it is possible for the data and pen down IRQs to deadlock themselves as one is part way through disabling its operation while the other is part way through enabling. Fix this by always disabling the pen down interrupt while data is active and vice versa. When a changeover is required we disable the IRQ that is to be stopped then schedule work that will enable the new IRQ. We need to handle the data flow in the data IRQ as the readback from the device needs to be ordered correctly with the IRQ for robust operation. This also fixes an issue when using the built in IRQs due to enable_irq() not being valid from interrupt context on an interrupt controller with bus operations like the built in IRQ controller - this issue may also have affected other interrupt controllers. We can't rely on having the data and pen down IRQs available via GPIOs on the CPU on every system. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-27Input: twl4030-pwrbutton - fix a leak of the IRQ during init failureAxel Lin1-1/+1
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-27Input: omap-keypad - fix a wrong free_irq() parameterAxel Lin1-3/+3
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-27Input: qt1070 - add MODULE_DEVICE_TABLEAxel Lin1-0/+1
Adding the necessary MODULE_DEVICE_TABLE() information allows the driver to be automatically loaded by udev Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-26Input: evdev - only signal polls on full packetsJeff Brown1-6/+11
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 <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-04-22Merge commit 'v2.6.39-rc4' into nextDmitry Torokhov10794-292556/+615674
2011-04-18Linux 2.6.39-rc4Linus Torvalds1-1/+1
2011-04-18Merge branch 'for-39-rc4' of git://codeaurora.org/quic/kernel/davidb/linux-msmLinus Torvalds2-5/+2
* 'for-39-rc4' of git://codeaurora.org/quic/kernel/davidb/linux-msm: msm: timer: fix missing return value msm: Remove extraneous ffa device check
2011-04-18Merge branch 'for-linus' of ↵Linus Torvalds8-26/+361
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input * '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
2011-04-18Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-blockLinus Torvalds18-187/+186
* '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
2011-04-18Merge branch 'merge' of ↵Linus Torvalds11-26/+81
git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc * '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
2011-04-18Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstableLinus Torvalds14-233/+430
* 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 ...
2011-04-18proc: do proper range check on readdir offsetLinus Torvalds1-2/+7
Rather than pass in some random truncated offset to the pid-related functions, check that the offset is in range up-front. This is just cleanup, the previous commit fixed the real problem. Cc: [email protected] Signed-off-by: Linus Torvalds <[email protected]>
2011-04-18next_pidmap: fix overflow conditionLinus Torvalds2-2/+5
next_pidmap() just quietly accepted whatever 'last' pid that was passed in, which is not all that safe when one of the users is /proc. Admittedly the proc code should do some sanity checking on the range (and that will be the next commit), but that doesn't mean that the helper functions should just do that pidmap pointer arithmetic without checking the range of its arguments. So clamp 'last' to PID_MAX_LIMIT. The fact that we then do "last+1" doesn't really matter, the for-loop does check against the end of the pidmap array properly (it's only the actual pointer arithmetic overflow case we need to worry about, and going one bit beyond isn't going to overflow). [ Use PID_MAX_LIMIT rather than pid_max as per Eric Biederman ] Reported-by: Tavis Ormandy <[email protected]> Analyzed-by: Robert Święcki <[email protected]> Cc: Eric W. Biederman <[email protected]> Cc: Pavel Emelyanov <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-04-18Input: xen-kbdfront - fix mouse getting stuck after save/restoreIgor Mammedov1-1/+12
Mouse gets "stuck" after restore of PV guest but buttons are in working condition. If driver has been configured for ABS coordinates at start it will get XENKBD_TYPE_POS events and then suddenly after restore it'll start getting XENKBD_TYPE_MOTION events, that will be dropped later and they won't get into user-space. Regression was introduced by hunk 5 and 6 of 5ea5254aa0ad269cfbd2875c973ef25ab5b5e9db ("Input: xen-kbdfront - advertise either absolute or relative coordinates"). Driver on restore should ask xen for request-abs-pointer again if it is available. So restore parts that did it before 5ea5254. Acked-by: Olaf Hering <[email protected]> Signed-off-by: Igor Mammedov <[email protected]> [v1: Expanded the commit description] Signed-off-by: Konrad Rzeszutek Wilk <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>