aboutsummaryrefslogtreecommitdiff
path: root/drivers/input
AgeCommit message (Collapse)AuthorFilesLines
2012-07-07Input: spear-keyboard - fix disable device_init_wakeup in removeVipul Kumar Samar1-1/+1
This patch is to disable device wakeup while removing keyboard. Signed-off-by: Vipul Kumar Samar <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-07-07Input: wacom_i2c - fix compiler warningDmitry Torokhov1-1/+1
Apparently GCC can't figure out that we bail if we fail to query device and will not try to use 'features': drivers/input/touchscreen/wacom_i2c.c: In function ‘wacom_i2c_probe’: drivers/input/touchscreen/wacom_i2c.c:177:20: warning: ‘features.fw_version’ may be used uninitialized in this function [-Wmaybe-uninitialized] Signed-off-by: Dmitry Torokhov <[email protected]>
2012-07-07Pull input changes from Henrik Rydberg, including large update toDmitry Torokhov2-223/+242
atmel_mxt_ts driver by Daniel and MT protocol addition for win8 devices. Conflicts: drivers/input/touchscreen/atmel_mxt_ts.c
2012-07-07Merge branch 'for-linus' to bring in change ensuring that drivers thatDmitry Torokhov18-25/+38
use threaded IRQs use IRQF_ONESHOT.
2012-07-06Input: imx_keypad - check error returned by clk_prepare_enable()Fabio Estevam1-5/+14
Check error returned by clk_prepare_enable(). Signed-off-by: Fabio Estevam <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-07-06Input: imx_keypad - adapt the new kpp clock nameFabio Estevam1-1/+1
With the new i.mx clock framework we should pass NULL as the keypad clock name. Signed-off-by: Fabio Estevam <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-07-06Input: imx_keypad - use clk_prepare_enable/clk_disable_unprepare()Fabio Estevam1-4/+4
Adapt clock handling to the new i.mx clock framework and fix the following warning: input: imx-keypad as /devices/platform/imx-keypad/input/input0 ------------[ cut here ]------------ WARNING: at drivers/clk/clk.c:511 __clk_enable+0x98/0xa8() Modules linked in: [<c001a680>] (unwind_backtrace+0x0/0xf4) from [<c002452c>] (warn_slowpath_commo) [<c002452c>] (warn_slowpath_common+0x48/0x60) from [<c0024560>] (warn_slowpath_) [<c0024560>] (warn_slowpath_null+0x1c/0x24) from [<c02c4ec4>] (__clk_enable+0x9) [<c02c4ec4>] (__clk_enable+0x98/0xa8) from [<c02c4ef8>] (clk_enable+0x24/0x5c) [<c02c4ef8>] (clk_enable+0x24/0x5c) from [<c027ac6c>] (imx_keypad_open+0x28/0xc) [<c027ac6c>] (imx_keypad_open+0x28/0xc8) from [<c0274b14>] (input_open_device+0) [<c0274b14>] (input_open_device+0x78/0xa8) from [<c01ec884>] (kbd_connect+0x60/) [<c01ec884>] (kbd_connect+0x60/0x80) from [<c0273b94>] (input_attach_handler+0x) [<c0273b94>] (input_attach_handler+0x220/0x258) from [<c02755d4>] (input_regist) [<c02755d4>] (input_register_device+0x31c/0x390) from [<c038da1c>] (imx_keypad_) [<c038da1c>] (imx_keypad_probe+0x2e4/0x3b8) from [<c020326c>] (platform_drv_pro) [<c020326c>] (platform_drv_probe+0x18/0x1c) from [<c0201f64>] (driver_probe_dev) [<c0201f64>] (driver_probe_device+0x84/0x210) from [<c020217c>] (__driver_attac) [<c020217c>] (__driver_attach+0x8c/0x90) from [<c02008f8>] (bus_for_each_dev+0x) [<c02008f8>] (bus_for_each_dev+0x68/0x90) from [<c0201064>] (bus_add_driver+0xa) [<c0201064>] (bus_add_driver+0xa4/0x23c) from [<c020275c>] (driver_register+0x7) [<c020275c>] (driver_register+0x78/0x12c) from [<c00087c0>] (do_one_initcall+0x) [<c00087c0>] (do_one_initcall+0x34/0x188) from [<c04b9310>] (kernel_init+0xe4/0) [<c04b9310>] (kernel_init+0xe4/0x1a8) from [<c0015bd8>] (kernel_thread_exit+0x0) ---[ end trace 1d550e891d03d7ce ]--- Signed-off-by: Fabio Estevam <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-07-06Input: ad7879 - add option to correct xy axisMichael Hennerich1-0/+5
Sebastian Zenker reported that driver swaps x and y samples when the touchscreen leads are connected in accordance with the datasheet specification. Transposed axis can be typically corrected by touch screen calibration however this bug also negatively influences touch pressure measurements. Add an option to correct x and y axis. Signed-off-by: Michael Hennerich <[email protected]> Reported-and-tested-by: Sebastian Zenker <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-07-06Input: synaptics_usb - Remove TrackPoint name trailing whitespaceBob Ross1-1/+1
The USB TrackPoint name string contains a space at the trailing end that can cause confusion/difficulty when creating udev rules. Example: "Synaptics Inc. Composite TouchPad / TrackPoint (Stick) " This patch removes the trailing space. Signed-off-by: Bob Ross <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-07-06Merge branch 'for-linus' of ↵Linus Torvalds18-25/+38
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input layer fixes from Dmitry Torokhov: "Two fixes for regressions in Wacom driver and fixes for drivers using threaded IRQ framework without specifying IRQF_ONESHOT." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: request threaded-only IRQs with IRQF_ONESHOT Input: wacom - don't retrieve touch_max when it is predefined Input: wacom - fix retrieving touch_max bug Input: fix input.h kernel-doc warning
2012-07-05Revert "Input: atmel_mxt_ts - warn if sysfs could not be created"Henrik Rydberg1-1/+4
Dmitry: I understand that I am a bit late to the party :) but I do not agree with this change. Failure to create attributes is not sometihng that user could cause (at least not easily) and thus would not be a setup issue but something more severe. I believe we should fail loading the driver so sysfs attribute breakage will be noticed as soon as possible, instead of discovering it much much later in the process. This reverts commit 639900380062ecd78ee8b265ea23929c565469b4. Requested-by: Dmitry Torokhov <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-07-04Merge commit 'v3.5-rc5' into nextDmitry Torokhov25-310/+363
2012-07-04Input: request threaded-only IRQs with IRQF_ONESHOTLars-Peter Clausen17-23/+34
Since commit 1c6c69525b ("genirq: Reject bogus threaded irq requests") threaded IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise the request will fail. This patch adds the IRQF_ONESHOT to input drivers where it is missing. Not modified by this patch are those drivers where the requested IRQ will always be a nested IRQ (e.g. because it's part of an MFD), since for this special case IRQF_ONESHOT is not required to be specified when requesting the IRQ. Signed-off-by: Lars-Peter Clausen <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-06-29Input: atmel_mxt_ts - parse T6 reportsDaniel Kurtz1-4/+19
The normal messages sent after boot or NVRAM update are T6 reports, containing a status, and the config memory checksum. Parse them and dump a useful info message. This patch tested on an MXT224E. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - send all MT-B slots in one input reportDaniel Kurtz1-5/+10
Each interrupt contains information for all contacts with changing properties. Process all of this information at once, and send it all in a a single input report (ie input events ending in EV_SYN/SYN_REPORT). This patch was tested using an MXT224E. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - use T9 reportid range to init number of mt slotsDaniel Kurtz1-8/+8
Atmel mxt devices can report one finger for each T9 reportid. Therefore, this range can be used to report the max number of MT-B slots to userspace instead of assuming a fixed 10. Note that mxt_initialized() must complete early, since the input_dev properties now depend on values in the object table. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - refactor reportid checking in mxt_interruptDaniel Kurtz1-6/+8
This small refactor is in preparation for checking more report types in the mxt_interrupt message processing loop. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - cache T9 reportid range when reading object tableDaniel Kurtz1-35/+41
Streamline interrupt processing by caching the T9 reportid range when first reading the object table. In the process, refactor reading the object descriptor table. First, since the object_table entries are now exactly the same layout in device memory and in the driver, allocate an appropriately sized array and fetch the entire table directly into it in a single i2c transaction. Since a 6 byte table object requires 10 bytes to read, doing this dramatically reduces overhead. Note: The cached T9 reportid's are initialized to 0, which is an invalid reportid. Thus, the checks in the interrupt handler will always fail for devices that do not support the T9 object. Therefore, after doing a firmware update, the old object table is destroyed and all cached object values are reset to 0, before reading the new object table, in case the new firmware does not have the old objects. This patch tested on an MXT224E. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - refactor when and how object table is freedDaniel Kurtz1-7/+16
The Object Table is freed in three cases: 1) When the driver is being removed. 2) In the error path of mxt_initialize(). 3) Just after a firmware update, when a new object table is about to be read. For cases 2 & 3, the driver is not immediately unloaded, so this patch refactors these cases to use a common cleanup function. It also refactors the mxt_initialize error paths to ensure that this cleanup happens. Note: mxt_update_fw_store() does not handle errors during mxt_initialize(). A proposed fix for this is in a subsequent patchset. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - add detail to touchevent debug messageDaniel Kurtz1-3/+14
Update the debug message: * print inidividual status bits * print the pressure value * use '%u' for unsigned quantities Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - simplify event reportingDaniel Kurtz1-76/+13
Instead of carrying around per-finger state in the driver instance, just report each finger as it arrives to the input layer, and let the input layer (evdev) hold the event state (which it does anyway). Note: this driver does not really do MT-B properly. Each input report (a group of input events followed by a SYN_REPORT) only contains data for a single contact. When multiple fingers are present on a device, each is properly reported in its own MT_SLOT. However, there is only ever one MT_SLOT per SYN_REPORT. This is fixed in a subsequent patch. This patch was tested with an mXT224E. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - add sysfs entries to read fw and hw versionDaniel Kurtz1-0/+24
Make firmware and hardware version strings available to userspace. This is useful, for example, to allow a userspace program to implement a firwmare update policy. Change-Id: I1eddb4bbf5f3f9ae6947a8528598973ddead18cf Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - update driver ID info loggingDaniel Kurtz1-4/+4
Print unsigned values as '%u'. Also, parse and print the firmware version in its canonical format, as suggested by Nick Dyer. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - read ID information block in one i2c transactionDaniel Kurtz1-23/+3
Reading the whole info block in one i2c transaction speeds up driver probe significantly, especially on slower i2c busses. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - optimize writing of object table entriesDaniel Kurtz1-12/+12
Write each object using a single bulk i2c write transfer. Signed-off-by: Daniel Kurtz <[email protected]> Reviewed-by: Joonyoung Shim <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - add variable length __mxt_write_regDaniel Kurtz1-5/+18
The i2c bus requires 4 bytes to do a 1-byte write (1 byte i2c address + 2 byte offset + 1 byte data). By taking a length with writes, the driver can amortize transaction overhead by performing larger transactions where appropriate. This patch just sets up the new API. Later patches refactor writes to take advantage of the larger transactions. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - return errors from i2c layerDaniel Kurtz1-8/+20
The i2c layer can report a variety of errors, including -ENXIO for an i2c NAK. Instead of treating them all as -EIO, pass the actual i2c layer error up to the caller. However, still report as -EIO the unlikely case that a transaction was partially completed, and no error message was returned from i2c_*(). Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - print all instances when dumping objectsDaniel Kurtz1-10/+26
For objects with multiple instances, dump them all, prepending each with its "Instance #". [[email protected]: break out mxt_show_instance()] Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - print less overhead when dumping objectsDaniel Kurtz1-8/+4
Conserve limited (PAGE_SIZE) sysfs output buffer space by only showing readable objects and not printing the object's index, which is not useful to userspace. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - optimize reading objects in object sysfs entryDaniel Kurtz1-20/+15
Read each object in a single i2c transaction instead of byte-by-byte Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - use scnprintf for object sysfs entryDaniel Kurtz1-12/+4
Using scnprintf() is a cleaner way to ensure that we don't overwrite the PAGE_SIZE sysfs output buffer. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - don't read T5 when dumping objectsDaniel Kurtz1-1/+0
T5 is the message processor object. Reading it will only have two outcomes, neither of which is particularly useful: 1) the message count decrements, and a valid message will be lost 2) an invalid message will be read (reportid == 0xff) Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - warn if sysfs could not be createdDaniel Kurtz1-4/+1
If sysfs entry creation fails, the driver is still usable, so don't just abort probe. Just warn and continue. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - detect OOM when creating mt slotsDaniel Kurtz1-1/+3
Hopefully this new code path will never be used, but better safe than sorry... Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - use client name for irqDaniel Kurtz1-1/+1
The atmel_mxt_ts driver can support multiple devices simultaneously. Use the i2c_client name instead of the driver name when requesting an interrupt to make the different interrupts distinguishable in /proc/interrupts and top. Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Input: atmel_mxt_ts - derive phys from i2c client adapterDaniel Kurtz1-0/+5
This allows userspace to more easily distinguish which bus a particular atmel_mxt_ts device is attached to. The resulting phys will be something like: i2c-1-0067/input0 Signed-off-by: Daniel Kurtz <[email protected]> Signed-off-by: Henrik Rydberg <[email protected]>
2012-06-29Merge branch 'master' into for-nextJiri Kosina2-5/+6
Conflicts: include/linux/mmzone.h Synced with Linus' tree so that trivial patch can be applied on top of up-to-date code properly. Reported-by: Stephen Rothwell <[email protected]>
2012-06-28Input: wacom - don't retrieve touch_max when it is predefinedPing Cheng1-1/+3
Some models, such as 0xE6, report more fingers than we process. Reported-by: Jonathan Nieder <[email protected]> Signed-off-by: Ping Cheng <[email protected]> Tested-by: Nils Kanning <[email protected]> Tested-by: Rafi Rubin <[email protected]> Reviewed-by: Jason Gerecke <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-06-28Input: wacom - fix retrieving touch_max bugPing Cheng1-1/+1
rep_data is not an array anymore, so taking it's address when passing to wacom_get_report() is wrong. Signed-off-by: Ping Cheng <[email protected]> Tested-by: Rafi Rubin <[email protected]> Reviewed-by: Jason Gerecke <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-06-28Input: wacom - TPC2FG doesn't store touch id for slotsPing Cheng1-2/+4
Signed-off-by: Ping Cheng <[email protected]> Tested-by: Rafi Rubin <[email protected]> Reviewed-by: Jason Gerecke <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-06-28Input: wacom - BTN_TOOL_DOUBLETAP is not a valid device_typePing Cheng1-1/+1
It is replaced by BTN_TOOL_FINGER. Signed-off-by: Ping Cheng <[email protected]> Tested-by: Rafi Rubin <[email protected]> Reviewed-by: Jason Gerecke <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-06-27lm8333: Fix check orderingAlan Cox1-1/+1
Fix harmless reference off end of array Reported-by: <[email protected]> Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?43861 Signed-off-by: Alan Cox <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
2012-06-25Input: nomadik-ske-keypad - get rid of multiple interruptsNaveen Kumar Gaddipati1-3/+8
The keypad could cause multiple interrupts to be fired in succession since we weren't waiting for the IRQs to clear properly in the interrupt handler. We wait for a number of bus iterations (the readl():s from the peripheral bus will stall, so these are quite long) before giving up on getting keys ready to read, then we sleep until the IRQ is deasserted (this is OK since the interrupt is threaded). Also use the debounce platform data for another hardcoded wait loop. Signed-off-by: Naveen Kumar Gaddipati <[email protected]> Reviewed-by: Rikard Olsson <[email protected]> Reviewed-by: Srinidhi Kasagar <[email protected]> Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-06-25Input: nomadik-ske-keypad - add multi key press supportNaveen Kumar Gaddipati1-25/+40
Added the multi key press support for SKE keypad by modifying the irq function for handling the two different keys on the same column and also pressing the two different keys of different columns on the same ASR register. Signed-off-by: Naveen Kumar Gaddipati <[email protected]> Reviewed-by: Srinidhi Kasagar <[email protected]> Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-06-12Input: tegra-kbc - add clk_prepare/clk_unpreparePrashant Gaikwad1-2/+2
Use clk_prepare/clk_unprepare as required by the generic clk framework. Signed-off-by: Prashant Gaikwad <[email protected]> Signed-off-by: Stephen Warren <[email protected]> Acked-by: Dmitry Torokhov <[email protected]>
2012-06-12Input: twl6040-vibra - update for device tree supportPeter Ujfalusi1-18/+24
The twl6040 DT support implementation has been changed from the originally planned. None of the child devices going to have compatible_of property which means that the child devices of twl6040 will be created as traditional MFD devices. The mfd core driver will decide (based on the DT blob) to create a device for the twl6040-vibra or not. If the DT blob has 'vibra' section the device will be created without pdata. In this case the vibra driver will reach up to the parent node to get the needed properties. With DT booted kernel we no longer be able to link the regulators to the vibra driver, they can be only linked to the MFD device (probed via DT). From the vibra driver we ned to use pdev->dev.parent to get the regulators. Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-06-12Input: wacom - remove code duplicationJason Gerecke1-4/+1
Replaces code to calculate Intuos5 physical dimensions with a call to an existing function that performs the same task. Signed-off-by: Jason Gerecke <[email protected]> Reviewed-by: Chris Bagwell <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-06-12Input: wacom - initialize and destroy LEDs for Intuos4 S tabletsJason Gerecke1-0/+2
This case appears to have been missed in the original commit. Signed-off-by: Jason Gerecke <[email protected]> Reviewed-by: Chris Bagwell <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-06-12Input: wacom - Bamboo One 1024 pressure fixChris Bagwell1-1/+1
Bamboo One's with ID of 0x6a and 0x6b were added with correct indication of 1024 pressure levels but the Graphire packet routine was only looking at 9 bits. Increased to 10 bits. This bug caused these devices to roll over to zero pressure at half way mark. The other devices using this routine only support 256 or 512 range and look to fix unused bits at zero. Signed-off-by: Chris Bagwell <[email protected]> Reported-by: Tushant Mirchandani <[email protected]> Reviewed-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2012-06-12Input: wacom - battery reporting improvementsChris Bagwell1-29/+53
Do not register battery device until connected to a tablet. This prevents an empty battery icon from being shown when tablet is connected using USB cable. Also, call power_supply_powers() for apps that can make use of that info. And stop ignoring input registration failures. Signed-off-by: Chris Bagwell <[email protected]> Reviewed-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>