diff mbox

Add sensor hub quirk for ThinkPad Helix

Message ID 1396556875-31108-1-git-send-email-thatslyude@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Stephen Chandler Paul April 3, 2014, 8:27 p.m. UTC
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>
---
 drivers/hid/hid-ids.h        | 3 ++-
 drivers/hid/hid-sensor-hub.c | 7 +++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

Comments

Srinivas Pandruvada April 3, 2014, 8:39 p.m. UTC | #1
On 04/03/2014 01:27 PM, Stephen Chandler Paul wrote:
> 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>
> ---
>   drivers/hid/hid-ids.h        | 3 ++-
>   drivers/hid/hid-sensor-hub.c | 7 +++++--
>   2 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index bd22126..3312f1b5 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -455,7 +455,8 @@
>   
>   #define USB_VENDOR_ID_INTEL_0		0x8086
>   #define USB_VENDOR_ID_INTEL_1		0x8087
> -#define USB_DEVICE_ID_INTEL_HID_SENSOR	0x09fa
> +#define USB_DEVICE_ID_INTEL_HID_SENSOR_0	0x09fa
> +#define USB_DEVICE_ID_INTEL_HID_SENSOR_1	0x0a04
>   
>   #define USB_VENDOR_ID_STM_0             0x0483
>   #define USB_DEVICE_ID_STM_HID_SENSOR    0x91d1
> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> index 5182031..af8244b 100644
> --- a/drivers/hid/hid-sensor-hub.c
> +++ b/drivers/hid/hid-sensor-hub.c
> @@ -697,10 +697,13 @@ static void sensor_hub_remove(struct hid_device *hdev)
>   
>   static const struct hid_device_id sensor_hub_devices[] = {
>   	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_0,
> -			USB_DEVICE_ID_INTEL_HID_SENSOR),
> +			USB_DEVICE_ID_INTEL_HID_SENSOR_0),
>   			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
>   	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_1,
> -			USB_DEVICE_ID_INTEL_HID_SENSOR),
> +			USB_DEVICE_ID_INTEL_HID_SENSOR_0),
> +			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
> +	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_1,
> +			USB_DEVICE_ID_INTEL_HID_SENSOR_1),
>   			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
>   	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_STM_0,
>   			USB_DEVICE_ID_STM_HID_SENSOR),

Acked-by: Srinivas Pandruvada<srinivas.pandruvada@linux.intel.com>


Thanks,
Srinivas

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jiri Kosina April 3, 2014, 8:54 p.m. UTC | #2
On Thu, 3 Apr 2014, Stephen Chandler Paul wrote:

> 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>

Queued for 3.15, thanks.
diff mbox

Patch

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index bd22126..3312f1b5 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -455,7 +455,8 @@ 
 
 #define USB_VENDOR_ID_INTEL_0		0x8086
 #define USB_VENDOR_ID_INTEL_1		0x8087
-#define USB_DEVICE_ID_INTEL_HID_SENSOR	0x09fa
+#define USB_DEVICE_ID_INTEL_HID_SENSOR_0	0x09fa
+#define USB_DEVICE_ID_INTEL_HID_SENSOR_1	0x0a04
 
 #define USB_VENDOR_ID_STM_0             0x0483
 #define USB_DEVICE_ID_STM_HID_SENSOR    0x91d1
diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
index 5182031..af8244b 100644
--- a/drivers/hid/hid-sensor-hub.c
+++ b/drivers/hid/hid-sensor-hub.c
@@ -697,10 +697,13 @@  static void sensor_hub_remove(struct hid_device *hdev)
 
 static const struct hid_device_id sensor_hub_devices[] = {
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_0,
-			USB_DEVICE_ID_INTEL_HID_SENSOR),
+			USB_DEVICE_ID_INTEL_HID_SENSOR_0),
 			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_1,
-			USB_DEVICE_ID_INTEL_HID_SENSOR),
+			USB_DEVICE_ID_INTEL_HID_SENSOR_0),
+			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
+	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_INTEL_1,
+			USB_DEVICE_ID_INTEL_HID_SENSOR_1),
 			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_STM_0,
 			USB_DEVICE_ID_STM_HID_SENSOR),