diff mbox

HID: hid-sensor-hub: Set report quirk for Microsoft Surface

Message ID 1401175750-3008-1-git-send-email-reyad.attiyat@gmail.com (mailing list archive)
State New, archived
Delegated to: Jiri Kosina
Headers show

Commit Message

Reyad Attiyat May 27, 2014, 7:29 a.m. UTC
Add the Microsoft Surface Pro 2 Type/Touch and default device hardware ID's
Set report quirk for the device in hid-sensor-hub

Signed-off-by: Reyad Attiyat <reyad.attiyat@gmail.com>
---
 drivers/hid/hid-ids.h        | 3 +++
 drivers/hid/hid-sensor-hub.c | 9 +++++++++
 2 files changed, 12 insertions(+)

Comments

Jiri Kosina May 28, 2014, 1:43 p.m. UTC | #1
On Tue, 27 May 2014, Reyad Attiyat wrote:

> Add the Microsoft Surface Pro 2 Type/Touch and default device hardware ID's
> Set report quirk for the device in hid-sensor-hub
> 
> Signed-off-by: Reyad Attiyat <reyad.attiyat@gmail.com>
> ---
>  drivers/hid/hid-ids.h        | 3 +++
>  drivers/hid/hid-sensor-hub.c | 9 +++++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index 34bb220..18e2099 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -633,6 +633,9 @@
>  #define USB_DEVICE_ID_MS_PRESENTER_8K_USB	0x0713
>  #define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K	0x0730
>  #define USB_DEVICE_ID_MS_COMFORT_MOUSE_4500	0x076c
> +#define USB_DEVICE_ID_MS_SURFACE_PRO_2   0x0799
> +#define USB_DEVICE_ID_MS_TOUCH_COVER_2   0x07a7
> +#define USB_DEVICE_ID_MS_TYPE_COVER_2    0x07a9
>  
>  #define USB_VENDOR_ID_MOJO		0x8282
>  #define USB_DEVICE_ID_RETRO_ADAPTER	0x3201
> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> index be14b56..eefaaf6 100644
> --- a/drivers/hid/hid-sensor-hub.c
> +++ b/drivers/hid/hid-sensor-hub.c
> @@ -711,6 +711,15 @@ static const struct hid_device_id sensor_hub_devices[] = {
>  	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_TEXAS_INSTRUMENTS,
>  			USB_DEVICE_ID_TEXAS_INSTRUMENTS_LENOVO_YOGA),
>  			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
> +	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
> +			USB_DEVICE_ID_MS_SURFACE_PRO_2),
> +			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
> +	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
> +			USB_DEVICE_ID_MS_TOUCH_COVER_2),
> +			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
> +	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
> +			USB_DEVICE_ID_MS_TYPE_COVER_2),
> +			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
>  	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, HID_ANY_ID,
>  		     HID_ANY_ID) },
>  	{ }

[ Benjamin added to CC]

How does this combine with f3b0cbce01 and e24d0d399b2f in Linus' tree?
Benjamin Tissoires May 28, 2014, 1:53 p.m. UTC | #2
On May 28 2014 or thereabouts, Jiri Kosina wrote:
> On Tue, 27 May 2014, Reyad Attiyat wrote:
> 
> > Add the Microsoft Surface Pro 2 Type/Touch and default device hardware ID's
> > Set report quirk for the device in hid-sensor-hub
> > 
> > Signed-off-by: Reyad Attiyat <reyad.attiyat@gmail.com>
> > ---
> >  drivers/hid/hid-ids.h        | 3 +++
> >  drivers/hid/hid-sensor-hub.c | 9 +++++++++
> >  2 files changed, 12 insertions(+)
> > 
> > diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> > index 34bb220..18e2099 100644
> > --- a/drivers/hid/hid-ids.h
> > +++ b/drivers/hid/hid-ids.h
> > @@ -633,6 +633,9 @@
> >  #define USB_DEVICE_ID_MS_PRESENTER_8K_USB	0x0713
> >  #define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K	0x0730
> >  #define USB_DEVICE_ID_MS_COMFORT_MOUSE_4500	0x076c
> > +#define USB_DEVICE_ID_MS_SURFACE_PRO_2   0x0799
> > +#define USB_DEVICE_ID_MS_TOUCH_COVER_2   0x07a7
> > +#define USB_DEVICE_ID_MS_TYPE_COVER_2    0x07a9
> >  
> >  #define USB_VENDOR_ID_MOJO		0x8282
> >  #define USB_DEVICE_ID_RETRO_ADAPTER	0x3201
> > diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> > index be14b56..eefaaf6 100644
> > --- a/drivers/hid/hid-sensor-hub.c
> > +++ b/drivers/hid/hid-sensor-hub.c
> > @@ -711,6 +711,15 @@ static const struct hid_device_id sensor_hub_devices[] = {
> >  	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_TEXAS_INSTRUMENTS,
> >  			USB_DEVICE_ID_TEXAS_INSTRUMENTS_LENOVO_YOGA),
> >  			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
> > +	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
> > +			USB_DEVICE_ID_MS_SURFACE_PRO_2),
> > +			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
> > +	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
> > +			USB_DEVICE_ID_MS_TOUCH_COVER_2),
> > +			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
> > +	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
> > +			USB_DEVICE_ID_MS_TYPE_COVER_2),
> > +			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
> >  	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, HID_ANY_ID,
> >  		     HID_ANY_ID) },
> >  	{ }
> 
> [ Benjamin added to CC]
> 
> How does this combine with f3b0cbce01 and e24d0d399b2f in Linus' tree?

I guess this should be fine:
f3b0cbce01 has no more impact (there is no USB_DEVICE_ID_MS_*_2
anymore)

e24d0d399b2f will properly add the HID_GROUP_SENSOR_HUB to the sensors
if the report descriptor is properly set.

Given that the group SENSOR_HUB will be set, no other hid driver will
pick them, so this patch just adds the HID_SENSOR_HUB_ENUM_QUIRK to the
actual sensors in the surface 2.

So:

Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>

Cheers,
Benjamin
--
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 May 28, 2014, 2:29 p.m. UTC | #3
On Wed, 28 May 2014, Benjamin Tissoires wrote:

> I guess this should be fine:
> f3b0cbce01 has no more impact (there is no USB_DEVICE_ID_MS_*_2
> anymore)
> 
> e24d0d399b2f will properly add the HID_GROUP_SENSOR_HUB to the sensors
> if the report descriptor is properly set.
> 
> Given that the group SENSOR_HUB will be set, no other hid driver will
> pick them, so this patch just adds the HID_SENSOR_HUB_ENUM_QUIRK to the
> actual sensors in the surface 2.
> 
> So:
> 
> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>

Applied, thanks.
diff mbox

Patch

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 34bb220..18e2099 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -633,6 +633,9 @@ 
 #define USB_DEVICE_ID_MS_PRESENTER_8K_USB	0x0713
 #define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K	0x0730
 #define USB_DEVICE_ID_MS_COMFORT_MOUSE_4500	0x076c
+#define USB_DEVICE_ID_MS_SURFACE_PRO_2   0x0799
+#define USB_DEVICE_ID_MS_TOUCH_COVER_2   0x07a7
+#define USB_DEVICE_ID_MS_TYPE_COVER_2    0x07a9
 
 #define USB_VENDOR_ID_MOJO		0x8282
 #define USB_DEVICE_ID_RETRO_ADAPTER	0x3201
diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
index be14b56..eefaaf6 100644
--- a/drivers/hid/hid-sensor-hub.c
+++ b/drivers/hid/hid-sensor-hub.c
@@ -711,6 +711,15 @@  static const struct hid_device_id sensor_hub_devices[] = {
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_TEXAS_INSTRUMENTS,
 			USB_DEVICE_ID_TEXAS_INSTRUMENTS_LENOVO_YOGA),
 			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
+	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
+			USB_DEVICE_ID_MS_SURFACE_PRO_2),
+			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
+	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
+			USB_DEVICE_ID_MS_TOUCH_COVER_2),
+			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
+	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_MICROSOFT,
+			USB_DEVICE_ID_MS_TYPE_COVER_2),
+			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, HID_ANY_ID,
 		     HID_ANY_ID) },
 	{ }