- 28 5月, 2016 2 次提交
-
-
由 Cameron Gutman 提交于
After initially connecting a wired Xbox 360 controller or sending it a command to change LEDs, a status/response packet is interpreted as controller input. This causes the state of buttons represented in byte 2 of the controller data packet to be incorrect until the next valid input packet. Wireless Xbox 360 controllers are not affected. Writing a new value to the LED device while holding the Start button and running jstest is sufficient to reproduce this bug. An event will come through with the Start button released. Xboxdrv also won't attempt to read controller input from a packet where byte 0 is non-zero. It also checks that byte 1 is 0x14, but that value differs between wired and wireless controllers and this code is shared by both. I think just checking byte 0 is enough to eliminate unwanted packets. The following are some examples of 3-byte status packets I saw: 01 03 02 02 03 00 03 03 03 08 03 00 Signed-off-by: NCameron Gutman <aicommander@gmail.com> Signed-off-by: NPavel Rojtberg <rojtberg@gmail.com> Cc: stable@vger.kernel.org Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Pavel Rojtberg 提交于
otherwise we lose ff commands: https://github.com/paroj/xpad/issues/27Signed-off-by: NPavel Rojtberg <rojtberg@gmail.com> Cc: stable@vger.kernel.org Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 21 5月, 2016 1 次提交
-
-
由 Ricky Liang 提交于
When running a 32-bit userspace on a 64-bit kernel, the UI_SET_PHYS ioctl needs to be treated with special care, as it has the pointer size encoded in the command. Signed-off-by: NRicky Liang <jcliang@chromium.org> Cc: stable@vger.kernel.org Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 17 5月, 2016 1 次提交
-
-
由 Dmitry Torokhov 提交于
Prepare first round of input updates for 4.7 merge window.
-
- 10 5月, 2016 4 次提交
-
-
由 H. Nikolaus Schaller 提交于
commit e7ec014a ("Input: twl6040-vibra - update for device tree support") made the separate vibra DT node to a subnode of the twl6040. It now calls of_find_node_by_name() to locate the "vibra" subnode. This function has a side effect to call of_node_put on() for the twl6040 parent node passed in as a parameter. This causes trouble later on. Solution: we must call of_node_get() before of_find_node_by_name() Signed-off-by: NH. Nikolaus Schaller <hns@goldelico.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Clifton Barnes 提交于
fix checkpatch.pl warning about 'Prefer 'unsigned int' to bare use of 'unsigned'' Signed-off-by: NClifton Barnes <clifton.a.barnes@gmail.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Marek Szyprowski 提交于
NULL pointer derefence happens when booting with DTB because the platform data for haptic device is not set in supplied data from parent MFD device. The MFD device creates only platform data (from Device Tree) for itself, not for haptic child. Unable to handle kernel NULL pointer dereference at virtual address 0000009c pgd = c0004000 [0000009c] *pgd=00000000 Internal error: Oops: 5 [#1] PREEMPT SMP ARM (max8997_haptic_probe) from [<c03f9cec>] (platform_drv_probe+0x4c/0xb0) (platform_drv_probe) from [<c03f8440>] (driver_probe_device+0x214/0x2c0) (driver_probe_device) from [<c03f8598>] (__driver_attach+0xac/0xb0) (__driver_attach) from [<c03f67ac>] (bus_for_each_dev+0x68/0x9c) (bus_for_each_dev) from [<c03f7a38>] (bus_add_driver+0x1a0/0x218) (bus_add_driver) from [<c03f8db0>] (driver_register+0x78/0xf8) (driver_register) from [<c0101774>] (do_one_initcall+0x90/0x1d8) (do_one_initcall) from [<c0a00dbc>] (kernel_init_freeable+0x15c/0x1fc) (kernel_init_freeable) from [<c06bb5b4>] (kernel_init+0x8/0x114) (kernel_init) from [<c0107938>] (ret_from_fork+0x14/0x3c) Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com> Cc: <stable@vger.kernel.org> Fixes: 104594b0 ("Input: add driver support for MAX8997-haptic") [k.kozlowski: Write commit message, add CC-stable] Signed-off-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Chris Diamand 提交于
As pointed out by Richard, the changes to the comment got missed off the absolute mode patch somehow. Signed-off-by: NChris Diamand <chris@diamand.org> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 05 5月, 2016 2 次提交
-
-
由 Ming Lei 提交于
Complete() will be run with interrupt enabled, so change to spin_lock_irqsave(). Signed-off-by: NMing Lei <ming.lei@canonical.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Florian Euchner 提交于
The CM109 driver reported key press events of volume up / down and record / playback mute buttons, but no release events. Report those events properly by handling volume and mute keys seperately. For the record and playback mute buttons, only presses are registered by the CM109, therefore simulate press-n-release. This fixes the volume control buttons of various USB headsets. Signed-off-by: NFlorian Euchner <florian.euchner@gmail.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 30 4月, 2016 2 次提交
-
-
由 Vladimir Zapolskiy 提交于
Since memory for a private data is allocated by kzalloc() there is no need to fill it with zeroes immediately after the allocation. Signed-off-by: NVladimir Zapolskiy <vz@mleia.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Rui Teng 提交于
The bitwise shift operator has lower priority than plus operator. So the values on macros should be enclosed in parentheses. For example, "(1 << 4 + 1)" means "(1 << (4 + 1))", but it is not expected by the macros. And also fix other two coding style problems reported by scripts/checkpatch.pl. Signed-off-by: NRui Teng <rui.teng@linux.vnet.ibm.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 26 4月, 2016 4 次提交
-
-
由 Nick Dyer 提交于
If using IRQF_TRIGGER_FALLING, then there is a race here: if the reset completes before we enable the IRQ, then CHG is already low and touch will be broken. This has been seen on Chromebook Pixel 2. A workaround is to reconfig T18 COMMSCONFIG to enable the RETRIGEN bit using mxt-app: mxt-app -W -T18 44 mxt-app --backup Tested-by: NTom Rini <trini@konsulko.com> Signed-off-by: NNick Dyer <nick.dyer@itdev.co.uk> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Knut Wohlrab 提交于
A wrong decoding of the touch coordinate message causes a wrong touch ID. Touch ID for dual touch must be 0 or 1. According to the actual Neonode nine byte touch coordinate coding, the state is transported in the lower nibble and the touch ID in the higher nibble of payload byte five. Signed-off-by: NKnut Wohlrab <Knut.Wohlrab@de.bosch.com> Signed-off-by: NOleksij Rempel <linux@rempel-privat.de> Signed-off-by: NDirk Behme <dirk.behme@de.bosch.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 H. Nikolaus Schaller 提交于
The mutex does not seem to be needed. twl4030-vibra doesn't use one either. Signed-off-by: NH. Nikolaus Schaller <hns@goldelico.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 H. Nikolaus Schaller 提交于
commit c6f39257 ("mfd: twl6040: Use regmap for register cache") did remove the private cache for the vibra control registers and replaced access within twl6040_get_vibralr_status() by calls to regmap. This is OK, as long as twl6040_get_vibralr_status() uses already cached values or is not called from interrupt context. But we call this in vibra_play() for checking that the vibrator is not configured for audio mode. The result is a "BUG: scheduling while atomic" if the first use of the twl6040 is a vibra effect, because the first fetch is by reading the twl6040 registers through (blocking) i2c and not from the cache. As soon as the regmap has cached the status, further calls are fine. The solution is to move the condition to the work() function which runs in context that can block. The original code returns -EBUSY, but the return value of ->play() functions is ignored anyways. Hence, we do not loose functionality by not returning an error but just reporting the issue to INFO loglevel. Tested-on: Pyra (omap5) prototype Signed-off-by: NH. Nikolaus Schaller <hns@goldelico.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 21 4月, 2016 3 次提交
-
-
由 Geert Uytterhoeven 提交于
Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Dmitry Torokhov 提交于
For devm-managed input devices we should not modify input device's parent, otherwise automatic release of resources will not work properly. Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Dmitry Torokhov 提交于
For devm-managed input devices we should not modify input device's parent, otherwise automatic release of resources will not work properly. Tested-by: N"H. Nikolaus Schaller" <hns@goldelico.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 20 4月, 2016 2 次提交
-
-
由 H. Nikolaus Schaller 提交于
Returning ret is wrong. And checking for an error as well. User space may call multiple times until the work is really scheduled. twl4030-vibra.c also ignores the return value. Signed-off-by: NH. Nikolaus Schaller <hns@goldelico.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 H. Nikolaus Schaller 提交于
commit 21fb9f0d ("Input: twl6040-vibra - use system workqueue") says that it switches to use the system workqueue but it did neither - remove the workqueue struct variable - replace code to really use the system workqueue Instead it calls queue_work() on uninitialized info->workqueue. The result is a NULL pointer dereference in vibra_play(). Solution: use schedule_work Signed-off-by: NH. Nikolaus Schaller <hns@goldelico.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 17 4月, 2016 2 次提交
-
-
由 Stephen Boyd 提交于
The trigger delay algorithm that converts from microseconds to the register value looks incorrect. According to most of the PMIC documentation, the equation is delay (Seconds) = (1 / 1024) * 2 ^ (x + 4) except for one case where the documentation looks to have a formatting issue and the equation looks like delay (Seconds) = (1 / 1024) * 2 x + 4 Most likely this driver was written with the improper documentation to begin with. According to the downstream sources the valid delays are from 2 seconds to 1/64 second, and the latter equation just doesn't make sense for that. Let's fix the algorithm and the range check to match the documentation and the downstream sources. Reported-by: NBjorn Andersson <bjorn.andersson@linaro.org> Fixes: 92d57a73 ("input: Add support for Qualcomm PMIC8XXX power key") Signed-off-by: NStephen Boyd <sboyd@codeaurora.org> Tested-by: NJohn Stultz <john.stultz@linaro.org> Acked-by: NBjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Charles Keepax 提交于
We shouldn't assign the parent device of the input_dev to be the parent MFD device, because this will be used for devres which causes input_unregister_device to run after the haptics device has been removed, since it is itself a child of the MFD device. The default of using the haptics device itself as the parent is correct. Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 07 4月, 2016 2 次提交
-
-
由 Raveendra Padasalagi 提交于
In Cygnus SOC touch screen controller registers are shared with ADC and flex timer. Using readl/writel could lead to race condition. So touch screen driver is enhanced to support register access using syscon framework API's to take care of mutually exclusive access. Signed-off-by: NRaveendra Padasalagi <raveendra.padasalagi@broadcom.com> Reviewed-by: NRay Jui <ray.jui@broadcom.com> Reviewed-by: NScott Branden <scott.branden@broadcom.com> Acked-by: NRob Herring <robh@kernel.org> Acked-by: NFlorian Fainelli <f.fainelli@gmail.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Peter Hutterer 提交于
This explicitly states behavior we already use for some touchpads and tablet devices. Signed-off-by: NPeter Hutterer <peter.hutterer@who-t.net> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 06 4月, 2016 5 次提交
-
-
由 Dmitry Torokhov 提交于
Instead of doing the dance with macro that either resolves to a pointer or NULL, let's switch to using SIMPLE_DEV_PM_OPS(). Also let's mark suspend and resume methods as __maybe_unused instead of guarding them with an #ifdef and rely on linker to drop unused code. Doing so should allow better compile coverage. Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Dmitry Torokhov 提交于
Commit f799a3d8 ("Input: omap-keypad: Remove dependencies to mach includes") removed users of the above functions, but left them in the code. Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Dmitry Torokhov 提交于
There is no reason to have empty suspend and resume stubs. Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Dmitry Torokhov 提交于
As of 35f8679f ("Input: omap-keypad - remove dead check") we no longer declare keypresses as spurious, therefore we can use constant delay between scans. Suggested-by: NJanusz Krzysztofik <jkrzyszt@tis.icnet.pl> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Silvan Jegen 提交于
This adds the VID/PID combination for the Xbox One version of the Mad Catz FightStick TE 2. The functionality that this provides is about on par with what the Windows drivers for the stick manage to deliver. What works: - Digital stick - 6 main buttons - Xbox button - The two buttons on the back - The locking buttons (preventing accidental Xbox button press) What doesn't work: - Two of the main buttons (don't work on Windows either) - The "Haptic" button setting does not have an effect (not sure if it works on Windows) I added the MAP_TRIGGERS_TO_BUTTONS option but in my (limited) testing there was no practical difference with or without. The FightStick does not have triggers though so adding it makes sense. Signed-off-by: NSilvan Jegen <s.jegen@gmail.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 01 4月, 2016 6 次提交
-
-
由 Andreas Färber 提交于
Drop #address-cells and #size-cells, which are not required by the gpio-keys binding documentation, as button sub-nodes are not devices. Rename sub-nodes to avoid new dtc unit address warnings when copied. While at it, adopt the dashes convention for the node name. Reported-by: NJulien Chauveau <chauveau.julien@gmail.com> Signed-off-by: NAndreas Färber <afaerber@suse.de> Reviewed-by: NJavier Martinez Canillas <javier@osg.samsung.com> Reviewed-by: NJulien Chauveau <chauveau.julien@gmail.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Oliver Neukum 提交于
The device can now easily be derived from the interface. Stop leaving a private copy. Signed-off-by: NOliver Neukum <ONeukum@suse.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Oliver Neukum 提交于
The device can now easily be derived from the interface. Stop leaving a private copy. Signed-off-by: NOliver Neukum <oneukum@suse.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Oliver Neukum 提交于
The device can now easily be derived from the interface. Stop leaving a private copy. Signed-off-by: NOliver Neukum <oneukum@suse.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Oliver Neukum 提交于
The device can now easily be derived from the interface. Stop leaving a private copy. Signed-off-by: NOliver Neukum <ONeukum@suse.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Vladis Dronov 提交于
The gtco driver expects at least one valid endpoint. If given malicious descriptors that specify 0 for the number of endpoints, it will crash in the probe function. Ensure there is at least one endpoint on the interface before using it. Also let's fix a minor coding style issue. The full correct report of this issue can be found in the public Red Hat Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1283385Reported-by: NRalf Spenneberg <ralf@spenneberg.net> Signed-off-by: NVladis Dronov <vdronov@redhat.com> Cc: stable@vger.kernel.org Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 24 3月, 2016 2 次提交
-
-
由 Oliver Neukum 提交于
During the initialisation the driver uses a buffer on the stack for DMA. That violates the cache coherency rules. The fix is to allocate the buffer with kmalloc(). Signed-off-by: NOliver Neukum <ONeukum@suse.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Vladis Dronov 提交于
The ati_remote2 driver expects at least two interfaces with one endpoint each. If given malicious descriptor that specify one interface or no endpoints, it will crash in the probe function. Ensure there is at least two interfaces and one endpoint for each interface before using it. The full disclosure: http://seclists.org/bugtraq/2016/Mar/90Reported-by: NRalf Spenneberg <ralf@spenneberg.net> Signed-off-by: NVladis Dronov <vdronov@redhat.com> Cc: stable@vger.kernel.org Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
- 18 3月, 2016 2 次提交
-
-
由 Benjamin Tissoires 提交于
Looks like the fimware 8.2 still has the extra buttons spurious release bug. Link: https://bugzilla.kernel.org/show_bug.cgi?id=114321 Cc: stable@vger.kernel.org Signed-off-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-
由 Andrew Duggan 提交于
Originally the irq_mask member of rmi_function was a pointer. Then it was switched to being a zero length array. However, the checks for a NULL pointer where not removed. Signed-off-by: NAndrew Duggan <aduggan@synaptics.com> Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
-