linux-yocto/drivers/hid
Daniel J. Ogorchock 7b4a026313 HID: nintendo: avoid bluetooth suspend/resume stalls
[ Upstream commit 4a03810803 ]

Ensure we don't stall or panic the kernel when using bluetooth-connected
controllers. This was reported as an issue on android devices using
kernel 6.6 due to the resume hook which had been added for usb joycons.

First, set a new state value to JOYCON_CTLR_STATE_SUSPENDED in a
newly-added nintendo_hid_suspend. This makes sure we will not stall out
the kernel waiting for input reports during led classdev suspend. The
stalls could happen if connectivity is unreliable or lost to the
controller prior to suspend.

Second, since we lose connectivity during suspend, do not try
joycon_init() for bluetooth controllers in the nintendo_hid_resume path.

Tested via multiple suspend/resume flows when using the controller both
in USB and bluetooth modes.

Signed-off-by: Daniel J. Ogorchock <djogorchock@gmail.com>
Reviewed-by: Silvan Jegen <s.jegen@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-07-17 18:37:23 +02:00
..
amd-sfh-hid HID: amd_sfh: Switch to device-managed dmam_alloc_coherent() 2024-10-09 17:18:57 +02:00
bpf HID: bpf: abort dispatch if device destroyed 2025-05-22 14:29:44 +02:00
i2c-hid HID: i2c-hid: improve i2c_hid_get_report error message 2025-04-10 14:39:29 +02:00
intel-ish-hid HID: intel-ish-hid: ipc: Add Panther Lake PCI device IDs 2025-03-22 12:54:16 -07:00
surface-hid move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
usbhid HID: usbhid: Eliminate recurrent out-of-bounds bug in usbhid_parse() 2025-06-19 15:32:34 +02:00
.kunitconfig
hid-a4tech.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-accutouch.c
hid-alps.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hid-apple.c HID: apple: disable Fn key handling on the Omoton KB066 2025-03-22 12:54:28 -07:00
hid-appleir.c HID: appleir: Fix potential NULL dereference at raw event handle 2025-03-13 13:01:50 +01:00
hid-asus.c hid-asus: check ROG Ally MCU version and warn 2025-06-27 11:11:32 +01:00
hid-aureal.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-axff.c
hid-belkin.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-betopff.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-bigbenff.c HID: bigbenff: constify fixed up report descriptor 2024-09-05 16:20:56 +02:00
hid-cherry.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-chicony.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-cmedia.c HID: cmedia: constify fixed up report descriptor 2024-08-27 16:30:43 +02:00
hid-core.c HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections 2025-02-08 09:56:55 +01:00
hid-corsair.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-cougar.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-cp2112.c hid: cp2112: Use irq_get_trigger_type() helper 2024-09-13 15:39:37 +02:00
hid-creative-sb0540.c
hid-cypress.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-debug.c input: Add support for "Do Not Disturb" 2024-06-07 11:08:07 +02:00
hid-dr.c HID: dr: constify fixed up report descriptor 2024-09-05 16:20:56 +02:00
hid-elan.c
hid-elecom.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-elo.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-emsff.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-evision.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-ezkey.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-ft260.c
hid-gaff.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-gembird.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-generic.c HID: add per device quirk to force bind to hid-generic 2024-12-14 20:03:39 +01:00
hid-gfrm.c
hid-glorious.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-goodix-spi.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hid-google-hammer.c HID: google: fix unused variable warning under !CONFIG_ACPI 2025-03-13 13:02:00 +01:00
hid-google-stadiaff.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-gt683r.c
hid-gyration.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-holtek-kbd.c HID: holtek-kbd: constify fixed up report descriptor 2024-09-05 16:20:56 +02:00
hid-holtek-mouse.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-holtekff.c
hid-hyperv.c HID: usbhid: Eliminate recurrent out-of-bounds bug in usbhid_parse() 2025-06-19 15:32:34 +02:00
hid-icade.c
hid-ids.h HID: quirks: Add quirk for 2 Chicony Electronics HP 5MP Cameras 2025-07-17 18:37:23 +02:00
hid-input-test.c
hid-input.c HID: fix generic desktop D-Pad controls 2025-02-08 09:57:11 +01:00
hid-ite.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-jabra.c
hid-kensington.c HID: Fix spelling mistakes "Kensigton" -> "Kensington" 2024-07-12 18:28:03 +02:00
hid-keytouch.c HID: keytouch: constify fixed up report descriptor 2024-09-05 16:20:56 +02:00
hid-kye.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hid-lcpower.c HID: add more missing MODULE_DESCRIPTION() macros 2024-07-10 09:11:27 +02:00
hid-led.c
hid-lenovo.c HID: lenovo: Add support for ThinkPad X1 Tablet Thin Keyboard Gen2 2025-07-17 18:37:22 +02:00
hid-letsketch.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hid-lg-g15.c HID: lg-g15: add missing MODULE_DESCRIPTION() macro 2024-06-06 10:52:09 +02:00
hid-lg.c HID: lg: constify fixed up report descriptor 2024-09-06 10:06:02 +02:00
hid-lg.h
hid-lg2ff.c
hid-lg3ff.c HID: hid-lg3ff: remove unused struct lg3ff_device 2024-02-13 11:43:55 +01:00
hid-lg4ff.c
hid-lg4ff.h
hid-lgff.c
hid-logitech-dj.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hid-logitech-hidpp.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hid-macally.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-magicmouse.c HID: magicmouse: Apple Magic Trackpad 2 USB-C driver support 2024-12-14 20:03:41 +01:00
hid-maltron.c HID: maltron: constify fixed up report descriptor 2024-09-05 16:20:56 +02:00
hid-mcp2200.c HID: mcp2200: added driver for GPIOs of MCP2200 2023-11-21 09:27:18 +01:00
hid-mcp2221.c HID: mcp2221: Remove unnecessary semicolon 2024-07-12 18:30:11 +02:00
hid-megaworld.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-mf.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-microsoft.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-monterey.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-multitouch.c HID: lenovo: Add support for ThinkPad X1 Tablet Thin Keyboard Gen2 2025-07-17 18:37:22 +02:00
hid-nintendo.c HID: nintendo: avoid bluetooth suspend/resume stalls 2025-07-17 18:37:23 +02:00
hid-nti.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-ntrig.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-nvidia-shield.c HID: nvidia-shield: Add missing check for input_ff_create_memless 2024-05-23 14:17:22 +02:00
hid-ortek.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-penmount.c
hid-petalynx.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-picolcd_backlight.c HID: picoLCD: Use backlight power constants 2024-09-05 10:55:15 +02:00
hid-picolcd_cir.c
hid-picolcd_core.c - Fix-ups 2024-05-22 10:45:12 -07:00
hid-picolcd_debugfs.c
hid-picolcd_fb.c - Fix-ups 2024-05-22 10:45:12 -07:00
hid-picolcd_lcd.c HID: picoLCD: Constify lcd_ops 2024-05-03 10:45:34 +01:00
hid-picolcd_leds.c
hid-picolcd.h
hid-pl.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-plantronics.c HID: hid-plantronics: Add mic mute mapping and generalize quirks 2025-04-07 10:08:35 +02:00
hid-playstation.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hid-primax.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-prodikeys.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-pxrc.c HID: pxrc: constify fixed up report descriptor 2024-09-05 16:20:57 +02:00
hid-quirks.c HID: quirks: Add quirk for 2 Chicony Electronics HP 5MP Cameras 2025-07-17 18:37:23 +02:00
hid-razer.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-redragon.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-retrode.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-rmi.c HID: rmi: remove #ifdef CONFIG_PM 2023-10-25 18:33:42 +02:00
hid-roccat-arvo.c
hid-roccat-arvo.h
hid-roccat-common.c
hid-roccat-common.h
hid-roccat-isku.c HID: roccat: Convert sprintf() family to sysfs_emit() family 2024-04-03 13:42:04 +02:00
hid-roccat-isku.h
hid-roccat-kone.c HID: roccat: Convert sprintf() family to sysfs_emit() family 2024-04-03 13:42:04 +02:00
hid-roccat-kone.h
hid-roccat-koneplus.c HID: roccat: Convert sprintf() family to sysfs_emit() family 2024-04-03 13:42:04 +02:00
hid-roccat-koneplus.h
hid-roccat-konepure.c
hid-roccat-kovaplus.c HID: roccat: Convert sprintf() family to sysfs_emit() family 2024-04-03 13:42:04 +02:00
hid-roccat-kovaplus.h
hid-roccat-lua.c
hid-roccat-lua.h
hid-roccat-pyra.c HID: roccat: Convert sprintf() family to sysfs_emit() family 2024-04-03 13:42:04 +02:00
hid-roccat-pyra.h
hid-roccat-ryos.c
hid-roccat-savu.c
hid-roccat-savu.h
hid-roccat.c
hid-saitek.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-samsung.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-semitek.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-sensor-custom.c HID: hid-sensor-custom: Convert comma to semicolon 2024-09-03 14:00:05 +02:00
hid-sensor-hub.c HID: hid-sensor-hub: don't use stale platform-data on remove 2025-02-17 10:05:13 +01:00
hid-sigmamicro.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-sjoy.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-sony.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hid-speedlink.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-steam.c HID: hid-steam: Fix issues with disabling both gamepad mode and lizard mode 2025-03-22 12:54:16 -07:00
hid-steelseries.c HID: steelseries: constify fixed up report descriptor 2024-09-05 16:20:57 +02:00
hid-sunplus.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hid-thrustmaster.c HID: thrustmaster: fix memory leak in thrustmaster_interrupts() 2025-05-22 14:29:38 +02:00
hid-tivo.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-tmff.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-topre.c HID: topre: Fix n-key rollover on Realforce R3S TKL boards 2025-03-22 12:54:16 -07:00
hid-topseed.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-twinhan.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-u2fzero.c
hid-uclogic-core-test.c HID: uclogic: Fix a work->entry not empty bug in __queue_work() 2023-10-25 16:25:47 +02:00
hid-uclogic-core.c HID: uclogic: Add NULL check in uclogic_input_configured() 2025-05-22 14:29:38 +02:00
hid-uclogic-params-test.c HID: uclogic: Fix user-memory-access bug in uclogic_params_ugee_v2_init_event_hooks() 2023-10-25 16:25:47 +02:00
hid-uclogic-params.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hid-uclogic-params.h HID: uclogic: constify fixed up report descriptor 2024-09-05 16:20:57 +02:00
hid-uclogic-rdesc-test.c HID: uclogic: Avoid linking common code into multiple modules 2024-06-19 16:33:10 +02:00
hid-uclogic-rdesc.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hid-uclogic-rdesc.h HID: uclogic: constify fixed up report descriptor 2024-09-05 16:20:57 +02:00
hid-udraw-ps3.c
hid-universal-pidff.c HID: hid-universal-pidff: Add Asetek wheelbases support 2025-04-20 10:15:30 +02:00
hid-viewsonic.c HID: viewsonic: constify fixed up report descriptor 2024-09-05 16:20:57 +02:00
hid-vivaldi-common.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-vivaldi-common.h
hid-vivaldi.c
hid-vrc2.c HID: vrc2: constify fixed up report descriptor 2024-09-05 16:20:57 +02:00
hid-waltop.c HID: waltop: constify fixed up report descriptor 2024-09-05 16:20:57 +02:00
hid-wiimote-core.c
hid-wiimote-debug.c
hid-wiimote-modules.c
hid-wiimote.h
hid-winwing.c HID: winwing: Add NULL check in winwing_init_led() 2025-02-21 14:01:15 +01:00
hid-xiaomi.c HID: xiaomi: constify fixed up report descriptor 2024-09-05 16:20:57 +02:00
hid-xinmo.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-zpff.c HID: add missing MODULE_DESCRIPTION() macros 2024-06-06 10:52:48 +02:00
hid-zydacron.c HID: change return type of report_fixup() to const 2024-08-27 16:29:55 +02:00
hidraw.c HID: hidraw: add HIDIOCREVOKE ioctl 2024-08-29 10:39:37 +02:00
Kconfig HID: Add hid-universal-pidff driver and supported device ids 2025-04-20 10:15:14 +02:00
Makefile HID: Add hid-universal-pidff driver and supported device ids 2025-04-20 10:15:14 +02:00
uhid.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
wacom_sys.c HID: wacom: fix kobject reference count leak 2025-07-06 11:01:44 +02:00
wacom_wac.c HID: Wacom: Add PCI Wacom device support 2025-02-17 10:04:51 +01:00
wacom_wac.h HID: wacom: Do not warn about dropped packets for first packet 2024-09-10 23:47:03 +02:00
wacom.h move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00