Commit 58c9bf33 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'hid-for-linus-2025021001' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid

Pull HID fixes from Jiri Kosina:

 - build/dependency fixes for hid-lenovo and hid-intel-thc (Arnd
   Bergmann)

 - functional fixes for hid-corsair-void (Stuart Hayhurst)

 - workqueue handling and ordering fix for hid-steam (Vicki Pfau)

 - Gamepad mode vs. Lizard mode fix for hid-steam (Vicki Pfau)

 - OOB read fix for hid-thrustmaster (Tulio Fernandes)

 - fix for very long timeout on certain firmware in intel-ish-hid (Zhang
   Lixu)

 - other assorted small code fixes and device ID additions

* tag 'hid-for-linus-2025021001' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
  HID: hid-steam: Don't use cancel_delayed_work_sync in IRQ context
  HID: hid-steam: Move hidraw input (un)registering to work
  HID: hid-thrustmaster: fix stack-out-of-bounds read in usb_check_int_endpoints()
  HID: apple: fix up the F6 key on the Omoton KB066 keyboard
  HID: hid-apple: Apple Magic Keyboard a3203 USB-C support
  samples/hid: fix broken vmlinux path for VMLINUX_BTF
  samples/hid: remove unnecessary -I flags from libbpf EXTRA_CFLAGS
  HID: topre: Fix n-key rollover on Realforce R3S TKL boards
  HID: intel-ish-hid: ipc: Add Panther Lake PCI device IDs
  HID: multitouch: Add NULL check in mt_input_configured
  HID: winwing: Add NULL check in winwing_init_led()
  HID: hid-steam: Fix issues with disabling both gamepad mode and lizard mode
  HID: ignore non-functional sensor in HP 5MP Camera
  HID: intel-thc: fix CONFIG_HID dependency
  HID: lenovo: select CONFIG_ACPI_PLATFORM_PROFILE
  HID: intel-ish-hid: Send clock sync message immediately after reset
  HID: intel-ish-hid: fix the length of MNG_SYNC_FW_CLOCK in doorbell
  HID: corsair-void: Initialise memory for psy_cfg
  HID: corsair-void: Add missing delayed work cancel for headset status
parents c581f8c2 b051ffa2
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -570,6 +570,8 @@ config HID_LED

config HID_LENOVO
	tristate "Lenovo / Thinkpad devices"
	depends on ACPI
	select ACPI_PLATFORM_PROFILE
	select NEW_LEDS
	select LEDS_CLASS
	help
@@ -1167,7 +1169,8 @@ config HID_TOPRE
	tristate "Topre REALFORCE keyboards"
	depends on HID
	help
	  Say Y for N-key rollover support on Topre REALFORCE R2 108/87 key keyboards.
	  Say Y for N-key rollover support on Topre REALFORCE R2 108/87 key and
          Topre REALFORCE R3S 87 key keyboards.

config HID_THINGM
	tristate "ThingM blink(1) USB RGB LED"
@@ -1374,10 +1377,6 @@ endmenu

source "drivers/hid/bpf/Kconfig"

endif # HID

source "drivers/hid/usbhid/Kconfig"

source "drivers/hid/i2c-hid/Kconfig"

source "drivers/hid/intel-ish-hid/Kconfig"
@@ -1388,4 +1387,10 @@ source "drivers/hid/surface-hid/Kconfig"

source "drivers/hid/intel-thc-hid/Kconfig"

endif # HID

# USB support may be used with HID disabled

source "drivers/hid/usbhid/Kconfig"

endif # HID_SUPPORT
+0 −1
Original line number Diff line number Diff line
@@ -5,7 +5,6 @@ menu "AMD SFH HID Support"

config AMD_SFH_HID
	tristate "AMD Sensor Fusion Hub"
	depends on HID
	depends on X86
	help
	  If you say yes to this option, support will be included for the
+8 −0
Original line number Diff line number Diff line
@@ -474,6 +474,7 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
			 hid->product == USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2015)
			table = magic_keyboard_2015_fn_keys;
		else if (hid->product == USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 ||
			 hid->product == USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024 ||
			 hid->product == USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 ||
			 hid->product == USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021)
			table = apple2021_fn_keys;
@@ -545,6 +546,9 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
		}
	}

	if (usage->hid == 0xc0301) /* Omoton KB066 quirk */
		code = KEY_F6;

	if (usage->code != code) {
		input_event_with_scancode(input, usage->type, code, usage->hid, value);

@@ -1150,6 +1154,10 @@ static const struct hid_device_id apple_devices[] = {
		.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY },
	{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021),
		.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK },
	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024),
		.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY },
	{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024),
		.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK },
	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021),
		.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY },
	{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021),
+2 −1
Original line number Diff line number Diff line
@@ -553,7 +553,7 @@ static void corsair_void_battery_remove_work_handler(struct work_struct *work)
static void corsair_void_battery_add_work_handler(struct work_struct *work)
{
	struct corsair_void_drvdata *drvdata;
	struct power_supply_config psy_cfg;
	struct power_supply_config psy_cfg = {};
	struct power_supply *new_supply;

	drvdata = container_of(work, struct corsair_void_drvdata,
@@ -726,6 +726,7 @@ static void corsair_void_remove(struct hid_device *hid_dev)
	if (drvdata->battery)
		power_supply_unregister(drvdata->battery);

	cancel_delayed_work_sync(&drvdata->delayed_status_work);
	cancel_delayed_work_sync(&drvdata->delayed_firmware_work);
	sysfs_remove_group(&hid_dev->dev.kobj, &corsair_void_attr_group);
}
+3 −0
Original line number Diff line number Diff line
@@ -184,6 +184,7 @@
#define USB_DEVICE_ID_APPLE_IRCONTROL4	0x8242
#define USB_DEVICE_ID_APPLE_IRCONTROL5	0x8243
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021   0x029c
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024   0x0320
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021   0x029a
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021   0x029f
#define USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT 0x8102
@@ -1095,6 +1096,7 @@
#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001		0x3001
#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3003		0x3003
#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008		0x3008
#define USB_DEVICE_ID_QUANTA_HP_5MP_CAMERA_5473		0x5473

#define I2C_VENDOR_ID_RAYDIUM		0x2386
#define I2C_PRODUCT_ID_RAYDIUM_4B33	0x4b33
@@ -1301,6 +1303,7 @@
#define USB_VENDOR_ID_TOPRE			0x0853
#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_108			0x0148
#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_87			0x0146
#define USB_DEVICE_ID_TOPRE_REALFORCE_R3S_87			0x0313

#define USB_VENDOR_ID_TOPSEED		0x0766
#define USB_DEVICE_ID_TOPSEED_CYBERLINK	0x0204
Loading