Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1364689 > unrolled thread

[PATCH] HID: wacom: fix Bamboo ONE oops

Started byBenjamin Tissoires <benjamin.tissoires@redhat.com>
First post2016-03-25 15:30 +0100
Last post2016-03-29 15:50 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] HID: wacom: fix Bamboo ONE oops Benjamin Tissoires <benjamin.tissoires@redhat.com> - 2016-03-25 15:30 +0100
    Re: [PATCH] HID: wacom: fix Bamboo ONE oops Ping Cheng <pinglinux@gmail.com> - 2016-03-28 19:00 +0200
      Re: [PATCH] HID: wacom: fix Bamboo ONE oops Jiri Kosina <jikos@kernel.org> - 2016-03-29 15:50 +0200

#1364689 — [PATCH] HID: wacom: fix Bamboo ONE oops

FromBenjamin Tissoires <benjamin.tissoires@redhat.com>
Date2016-03-25 15:30 +0100
Subject[PATCH] HID: wacom: fix Bamboo ONE oops
Message-ID<rgAUp-2VM-5@gated-at.bofh.it>
Looks like recent changes in the Wacom driver made the Bamboo ONE crashes.
The tablet behaves as if it was a regular Bamboo device with pen, touch
and pad, but there is no physical pad connected to it.
The weird part is that the pad is still sending events and given that
there is no input node connected to it, we get  anull pointer exception.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=1317116

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---
Hi Jiri,

This fixes the oopses we saw on the Bamboo ONE.
The fedora user is fine, and it appears the sourceforge user too, as the
problems were due to misconfigurations on his end.

Cheers,
Benjamin

 drivers/hid/wacom_wac.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
index bd198bb..02c4efe 100644
--- a/drivers/hid/wacom_wac.c
+++ b/drivers/hid/wacom_wac.c
@@ -2426,6 +2426,17 @@ void wacom_setup_device_quirks(struct wacom *wacom)
 	}
 
 	/*
+	 * Hack for the Bamboo One:
+	 * the device presents a PAD/Touch interface as most Bamboos and even
+	 * sends ghosts PAD data on it. However, later, we must disable this
+	 * ghost interface, and we can not detect it unless we set it here
+	 * to WACOM_DEVICETYPE_PAD or WACOM_DEVICETYPE_TOUCH.
+	 */
+	if (features->type == BAMBOO_PEN &&
+	    features->pktlen == WACOM_PKGLEN_BBTOUCH3)
+		features->device_type |= WACOM_DEVICETYPE_PAD;
+
+	/*
 	 * Raw Wacom-mode pen and touch events both come from interface
 	 * 0, whose HID descriptor has an application usage of 0xFF0D
 	 * (i.e., WACOM_VENDORDEFINED_PEN). We route pen packets back
-- 
2.5.0

[toc] | [next] | [standalone]


#1365585

FromPing Cheng <pinglinux@gmail.com>
Date2016-03-28 19:00 +0200
Message-ID<rhIGf-1ja-21@gated-at.bofh.it>
In reply to#1364689
On Fri, Mar 25, 2016 at 7:26 AM, Benjamin Tissoires
<benjamin.tissoires@redhat.com> wrote:
>
> Looks like recent changes in the Wacom driver made the Bamboo ONE crashes.
> The tablet behaves as if it was a regular Bamboo device with pen, touch
> and pad, but there is no physical pad connected to it.
> The weird part is that the pad is still sending events and given that
> there is no input node connected to it, we get  anull pointer exception.
>
> Link: https://bugzilla.redhat.com/show_bug.cgi?id=1317116
>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>

Acked-by: Ping Cheng <pingc@wacom.com>

Thank you Benjamin for the fix.

> ---
> Hi Jiri,

As Benjamin mentioned, both users tested the patch. Since their
testing was on kernel 4.4, we need to backport the patch to 4.4. Do
you need us to make a patch for 4.4 or will you take care of stable as
well?

Thanks,

Ping

>
> This fixes the oopses we saw on the Bamboo ONE.
> The fedora user is fine, and it appears the sourceforge user too, as the
> problems were due to misconfigurations on his end.
>
> Cheers,
> Benjamin
>
>  drivers/hid/wacom_wac.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
> index bd198bb..02c4efe 100644
> --- a/drivers/hid/wacom_wac.c
> +++ b/drivers/hid/wacom_wac.c
> @@ -2426,6 +2426,17 @@ void wacom_setup_device_quirks(struct wacom *wacom)
>         }
>
>         /*
> +        * Hack for the Bamboo One:
> +        * the device presents a PAD/Touch interface as most Bamboos and even
> +        * sends ghosts PAD data on it. However, later, we must disable this
> +        * ghost interface, and we can not detect it unless we set it here
> +        * to WACOM_DEVICETYPE_PAD or WACOM_DEVICETYPE_TOUCH.
> +        */
> +       if (features->type == BAMBOO_PEN &&
> +           features->pktlen == WACOM_PKGLEN_BBTOUCH3)
> +               features->device_type |= WACOM_DEVICETYPE_PAD;
> +
> +       /*
>          * Raw Wacom-mode pen and touch events both come from interface
>          * 0, whose HID descriptor has an application usage of 0xFF0D
>          * (i.e., WACOM_VENDORDEFINED_PEN). We route pen packets back
> --
> 2.5.0
>

[toc] | [prev] | [next] | [standalone]


#1366302

FromJiri Kosina <jikos@kernel.org>
Date2016-03-29 15:50 +0200
Message-ID<ri2bU-6YI-25@gated-at.bofh.it>
In reply to#1365585
On Mon, 28 Mar 2016, Ping Cheng wrote:

> > Looks like recent changes in the Wacom driver made the Bamboo ONE crashes.
> > The tablet behaves as if it was a regular Bamboo device with pen, touch
> > and pad, but there is no physical pad connected to it.
> > The weird part is that the pad is still sending events and given that
> > there is no input node connected to it, we get  anull pointer exception.
> >
> > Link: https://bugzilla.redhat.com/show_bug.cgi?id=1317116
> >
> > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> 
> Acked-by: Ping Cheng <pingc@wacom.com>
> 
> Thank you Benjamin for the fix.

Queued for 4.6-rc, thanks.

> As Benjamin mentioned, both users tested the patch. Since their
> testing was on kernel 4.4, we need to backport the patch to 4.4. Do
> you need us to make a patch for 4.4 or will you take care of stable as
> well?

I've added -stable tag to the patch.

-- 
Jiri Kosina
SUSE Labs

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web