Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

HID: sensor-hub: add sensor hub quirk for ThinkPad Helix

Just like some of the other laptops/tablets on the market with ultrabook
sensors, the ThinkPad Helix's sensor hub requires a special quirk in
order for it to power on properly. Without it the sensors are detected
by the kernel and set up as usual, but they won't output any data. This
will also fix the sensors on any other laptops with the same model of
sensor hub.

Signed-off-by: Stephen Chandler Paul <thatslyude@gmail.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

authored by

Stephen Chandler Paul and committed by
Jiri Kosina
30f58877 2cf8ee90

+7 -3
+2 -1
drivers/hid/hid-ids.h
··· 455 455 456 456 #define USB_VENDOR_ID_INTEL_0 0x8086 457 457 #define USB_VENDOR_ID_INTEL_1 0x8087 458 - #define USB_DEVICE_ID_INTEL_HID_SENSOR 0x09fa 458 + #define USB_DEVICE_ID_INTEL_HID_SENSOR_0 0x09fa 459 + #define USB_DEVICE_ID_INTEL_HID_SENSOR_1 0x0a04 459 460 460 461 #define USB_VENDOR_ID_STM_0 0x0483 461 462 #define USB_DEVICE_ID_STM_HID_SENSOR 0x91d1
+5 -2
drivers/hid/hid-sensor-hub.c
··· 697 697 698 698 static const struct hid_device_id sensor_hub_devices[] = { 699 699 { HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_0, 700 - USB_DEVICE_ID_INTEL_HID_SENSOR), 700 + USB_DEVICE_ID_INTEL_HID_SENSOR_0), 701 701 .driver_data = HID_SENSOR_HUB_ENUM_QUIRK}, 702 702 { HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_1, 703 - USB_DEVICE_ID_INTEL_HID_SENSOR), 703 + USB_DEVICE_ID_INTEL_HID_SENSOR_0), 704 + .driver_data = HID_SENSOR_HUB_ENUM_QUIRK}, 705 + { HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_1, 706 + USB_DEVICE_ID_INTEL_HID_SENSOR_1), 704 707 .driver_data = HID_SENSOR_HUB_ENUM_QUIRK}, 705 708 { HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_STM_0, 706 709 USB_DEVICE_ID_STM_HID_SENSOR),