diff mbox

[v1,1/1] HID: multitouch: enable touchpad on Surface Book

Message ID 1462805821-73087-1-git-send-email-andriy.shevchenko@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Andy Shevchenko May 9, 2016, 2:57 p.m. UTC
Microsoft Surface Book has HID multitouch connected device. Enable it here.

The change has been tested on bare metal by reading raw data from
/dev/input/event4.

The patch uses HID device ID submitted earlier here:
http://marc.info/?l=linux-input&m=146280544721389&w=2

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/hid/hid-multitouch.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Benjamin Tissoires May 10, 2016, 2:21 p.m. UTC | #1
Hi Andy,

On May 09 2016 or thereabouts, Andy Shevchenko wrote:
> Microsoft Surface Book has HID multitouch connected device. Enable it here.
> 
> The change has been tested on bare metal by reading raw data from
> /dev/input/event4.
> 
> The patch uses HID device ID submitted earlier here:
> http://marc.info/?l=linux-input&m=146280544721389&w=2
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>  drivers/hid/hid-multitouch.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> index c741f5e..c3df02d 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -1377,6 +1377,11 @@ static const struct hid_device_id mt_devices[] = {
>  		MT_USB_DEVICE(USB_VENDOR_ID_ILITEK,
>  			USB_DEVICE_ID_ILITEK_MULTITOUCH) },
>  
> +	/* Microsoft Surface Book */
> +	{ .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
> +		MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> +			USB_DEVICE_ID_MS_SURFACE_BOOK) },
> +

I am a little bit lost here. In your previous patch, you unset the group
MULTITOUCH to the USB_DEVICE_ID_MS_SURFACE_BOOK. But here, you bind a
device to it which will never been present according to
http://marc.info/?l=linux-input&m=146280544721389&w=2

Also, please make sure all features are working on the keyboard (special
functions/LEDs).
The good news is I have been sent a Surface 3 with the typecover. So I
intend to work on either fixing hid-multitouch or enabling multitouch
for hid-microsoft depending on which makes more sense.

Cheers,
Benjamin

>  	/* MosArt panels */
>  	{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
>  		MT_USB_DEVICE(USB_VENDOR_ID_ASUS,
> -- 
> 2.8.1
> 
--
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
Andy Shevchenko May 10, 2016, 3:04 p.m. UTC | #2
On Tue, 2016-05-10 at 16:21 +0200, Benjamin Tissoires wrote:
> Hi Andy,
> 
> On May 09 2016 or thereabouts, Andy Shevchenko wrote:
> > 
> > Microsoft Surface Book has HID multitouch connected device. Enable
> > it here.
> > 
> > The change has been tested on bare metal by reading raw data from
> > /dev/input/event4.
> > 
> > The patch uses HID device ID submitted earlier here:
> > http://marc.info/?l=linux-input&m=146280544721389&w=2
> > 
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > ---
> >  drivers/hid/hid-multitouch.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-
> > multitouch.c
> > index c741f5e..c3df02d 100644
> > --- a/drivers/hid/hid-multitouch.c
> > +++ b/drivers/hid/hid-multitouch.c
> > @@ -1377,6 +1377,11 @@ static const struct hid_device_id
> > mt_devices[] = {
> >  		MT_USB_DEVICE(USB_VENDOR_ID_ILITEK,
> >  			USB_DEVICE_ID_ILITEK_MULTITOUCH) },
> >  
> > +	/* Microsoft Surface Book */
> > +	{ .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
> > +		MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> > +			USB_DEVICE_ID_MS_SURFACE_BOOK) },
> > +
> I am a little bit lost here. In your previous patch, you unset the
> group
> MULTITOUCH to the USB_DEVICE_ID_MS_SURFACE_BOOK. But here, you bind a
> device to it which will never been present according to
> http://marc.info/?l=linux-input&m=146280544721389&w=2

Yes, that line is redundant. So, the first hunk of that patch should be
removed.

> 
> Also, please make sure all features are working on the keyboard
> (special
> functions/LEDs).

Caps Lock LED is not functional. I have no idea yet what drives it.

> The good news is I have been sent a Surface 3 with the typecover. So I
> intend to work on either fixing hid-multitouch or enabling multitouch
> for hid-microsoft depending on which makes more sense.
> 
> Cheers,
> Benjamin
> 
> > 
> >  	/* MosArt panels */
> >  	{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
> >  		MT_USB_DEVICE(USB_VENDOR_ID_ASUS,
Andy Shevchenko May 10, 2016, 4:06 p.m. UTC | #3
On Tue, 2016-05-10 at 18:04 +0300, Andy Shevchenko wrote:
> On Tue, 2016-05-10 at 16:21 +0200, Benjamin Tissoires wrote:
> > 
> > Hi Andy,
> > 
> > On May 09 2016 or thereabouts, Andy Shevchenko wrote:
> > > 
> > > 
> > > Microsoft Surface Book has HID multitouch connected device. Enable
> > > it here.
> > > 
> > > The change has been tested on bare metal by reading raw data from
> > > /dev/input/event4.
> > > 
> > > The patch uses HID device ID submitted earlier here:
> > > http://marc.info/?l=linux-input&m=146280544721389&w=2
> > > 
> > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > ---
> > >  drivers/hid/hid-multitouch.c | 5 +++++
> > >  1 file changed, 5 insertions(+)
> > > 
> > > diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-
> > > multitouch.c
> > > index c741f5e..c3df02d 100644
> > > --- a/drivers/hid/hid-multitouch.c
> > > +++ b/drivers/hid/hid-multitouch.c
> > > @@ -1377,6 +1377,11 @@ static const struct hid_device_id
> > > mt_devices[] = {
> > >  		MT_USB_DEVICE(USB_VENDOR_ID_ILITEK,
> > >  			USB_DEVICE_ID_ILITEK_MULTITOUCH) },
> > >  
> > > +	/* Microsoft Surface Book */
> > > +	{ .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
> > > +		MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
> > > +			USB_DEVICE_ID_MS_SURFACE_BOOK) },
> > > +
> > I am a little bit lost here. In your previous patch, you unset the
> > group
> > MULTITOUCH to the USB_DEVICE_ID_MS_SURFACE_BOOK. But here, you bind
> > a
> > device to it which will never been present according to
> > http://marc.info/?l=linux-input&m=146280544721389&w=2
> Yes, that line is redundant. So, the first hunk of that patch should
> be
> removed.

Okay, it seems I have to resend these two as one without mentioned hunk.
diff mbox

Patch

diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
index c741f5e..c3df02d 100644
--- a/drivers/hid/hid-multitouch.c
+++ b/drivers/hid/hid-multitouch.c
@@ -1377,6 +1377,11 @@  static const struct hid_device_id mt_devices[] = {
 		MT_USB_DEVICE(USB_VENDOR_ID_ILITEK,
 			USB_DEVICE_ID_ILITEK_MULTITOUCH) },
 
+	/* Microsoft Surface Book */
+	{ .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
+		MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
+			USB_DEVICE_ID_MS_SURFACE_BOOK) },
+
 	/* MosArt panels */
 	{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
 		MT_USB_DEVICE(USB_VENDOR_ID_ASUS,