linux/drivers/input
Hans de Goede ed22ad5fdb Input: soc_button_array - fix MS Surface Pro 11 probe failure
On the MS Surface Pro 11 soc_button_array probing races with the GPIO
driver probing. If soc_button_array wins the race then gpiod_get() returns
EPROBE_DEFER, which should normally take care of retrying later, but
the soc_button_array code deliberately ignores EPROBE_DEFER causing it
to fail its probe() which causes the volume and power buttons to now work.

The ignoring of EPROBE_DEFER is there to deal with a problem specific to
older Bay Trail (BYT) and Cherry Trail (CHT) tablets which often use this
driver. Modify the error handling to only ignore EPROBE_DEFER on BYT and
CHT platforms and propagate EPROBE_DEFER normally on other platforms.

Fixes: bcf0595789 ("Input: soc_button_array - partial revert of support for newer surface devices")
Cc: stable@vger.kernel.org
Reported-by: Sergey Lebedev <lsa.uz@pm.me>
Closes: https://lore.kernel.org/lkml/20260830141355.55898-1-lsa.uz@pm.me/
Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Tested-by: Sergey Lebedev <lsa.uz@pm.me>
Link: https://patch.msgid.link/20260909093934.29411-1-johannes.goede@oss.qualcomm.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2026-09-13 16:42:49 -07:00
..
gameport Input: Drop unused assignments from pnp_device_id arrays 2026-06-10 09:56:01 -07:00
joystick Input: iforce - validate input packet lengths 2026-07-24 20:49:53 -07:00
keyboard Input: atkbd - skip deactivate for Xiaomi Redmi Book Pro 16 2026 2026-08-28 05:03:22 -07:00
misc Input: soc_button_array - fix MS Surface Pro 11 probe failure 2026-09-13 16:42:49 -07:00
mouse Input: synaptics - disable InterTouch on ThinkPad T440p (board id 2722) 2026-09-13 16:13:56 -07:00
rmi4 Input: synaptics-rmi4 - fix GPF in suspend and resume when unbound 2026-08-30 14:56:26 -07:00
serio Input: i8042 - add quirk for Acer Aspire Go 15 AG15-42P 2026-09-13 16:27:45 -07:00
tablet Input: remove changelogs 2026-06-10 11:04:17 -07:00
tests
touchscreen Input: cyttsp5 - clamp the HID report size before memcpy 2026-09-01 07:40:51 -07:00
apm-power.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
evdev.c Input: evdev - zero absinfo before partial copy in EVIOCSABS 2026-09-01 07:38:07 -07:00
ff-core.c Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ff-memless.c Input: stop force-feedback timer when unregistering input devices 2026-06-22 22:33:01 -07:00
input-compat.c Input: zero ff_effect before compat copy in input_ff_effect_from_user 2026-09-01 07:38:07 -07:00
input-compat.h Input: move input_bits_to_string() to input-compat.c 2025-08-21 12:00:58 -07:00
input-core-private.h
input-leds.c Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
input-mt.c Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
input-poller.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
input-poller.h
input.c Input: reject inhibit and uninhibit requests on unregistering devices 2026-08-05 23:01:44 -07:00
joydev.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
Kconfig Input: remove evbug driver 2024-12-17 13:53:52 -08:00
Makefile Input: touch-overlay - add touchscreen overlay handling 2025-07-27 01:41:21 -07:00
matrix-keymap.c Input: matrix-keymap - switch to using __free() cleanup facility 2024-08-29 10:59:30 -07:00
mousedev.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sparse-keymap.c Input: include export.h in modules using EXPORT_SYMBOL*() 2025-08-21 12:00:59 -07:00
touch-overlay.c Input: include export.h in modules using EXPORT_SYMBOL*() 2025-08-21 12:00:59 -07:00
touchscreen.c Input: include export.h in modules using EXPORT_SYMBOL*() 2025-08-21 12:00:59 -07:00
vivaldi-fmap.c