diff mbox

Trouble with an HP stylus

Message ID alpine.LNX.2.00.1407291147190.16390@pobox.suse.cz (mailing list archive)
State New, archived
Headers show

Commit Message

Jiri Kosina July 29, 2014, 9:50 a.m. UTC
On Thu, 24 Jul 2014, Éric Brunet wrote:

> I have a HP EliteBook Revolve 810 (which is a hybrid laptop/tablet) with
> the HP active pen that goes with it. I have installed fedora 20 (kernel
> 3.15.6-200.fc20.x86_64) on this, and the pen does not work out of the box.
> Playing with evtest, it appears that the kernel reports the X coordinate in
> ABS_X and in ABS_Y, while the Y coordinate goes into ABS_Z and ABS_RX; here
> are a few lines of output:
> 
> Event: time 1406153996.865044, -------------- SYN_REPORT ------------
> Event: time 1406153996.873047, type 3 (EV_ABS), code 0 (ABS_X), value 1087
> Event: time 1406153996.873047, type 3 (EV_ABS), code 1 (ABS_Y), value 1087
> Event: time 1406153996.873047, type 3 (EV_ABS), code 2 (ABS_Z), value 1599
> Event: time 1406153996.873047, type 3 (EV_ABS), code 3 (ABS_RX), value 1599
> 
> Of course, XOrg's evdev driver is confused and the pointer is stuck on the
> diagonal X=Y.
> 
> I guess this hardware needs a new quirk to usbhid, unless there is already
> a way to correct it ?
> 
> Here is the content of /sys/class/input/event8/device/uevent:
> 
> PRODUCT=3/3eb/840b/111
> NAME="Atmel Atmel maXTouch Digitizer Pen"
> PHYS="usb-0000:00:1a.0-1.1/input0"
> UNIQ=""
> PROP=0
> EV=1b
> KEY=c01 1 0 0 0 0
> ABS=100000f
> MSC=10
> MODALIAS=input:b0003v03EBp840Be0111-
> e0,1,3,4,k100,140,14A,14B,ra0,1,2,3,18,m4,lsfw
> 
> I hope I gave enough information on this. I don't read the mailing list,
> please CC any answer.

Does the patch below fix the problem for you please?

Comments

Jiri Kosina July 29, 2014, 2:41 p.m. UTC | #1
On Tue, 29 Jul 2014, Jiri Kosina wrote:

> Does the patch below fix the problem for you please?
> 
> 
> 
> 
> diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
> index 31e6727..d48574d 100644
> --- a/drivers/hid/usbhid/hid-quirks.c
> +++ b/drivers/hid/usbhid/hid-quirks.c
> @@ -97,6 +97,7 @@ static const struct hid_blacklist {
>  	{ USB_VENDOR_ID_SYMBOL, USB_DEVICE_ID_SYMBOL_SCANNER_2, HID_QUIRK_NOGET },
>  	{ USB_VENDOR_ID_TPV, USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN, HID_QUIRK_NOGET },
>  	{ USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_TURBOX_KEYBOARD, HID_QUIRK_NOGET },
> +	{ 0x03EB, 0x840B, HID_QUIRK_MULTI_INPUT },
>  	{ USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_PF1209, HID_QUIRK_MULTI_INPUT },
>  	{ USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_WP4030U, HID_QUIRK_MULTI_INPUT },
>  	{ USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_KNA5, HID_QUIRK_MULTI_INPUT },

Alternatively, if you don't want to recompile your kernel, you can achieve 
the equivalent result by modprobing the 'usbhid' module with 
'quirks=0x03EB:0x840B:0x40' module parameter.
diff mbox

Patch

diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index 31e6727..d48574d 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -97,6 +97,7 @@  static const struct hid_blacklist {
 	{ USB_VENDOR_ID_SYMBOL, USB_DEVICE_ID_SYMBOL_SCANNER_2, HID_QUIRK_NOGET },
 	{ USB_VENDOR_ID_TPV, USB_DEVICE_ID_TPV_OPTICAL_TOUCHSCREEN, HID_QUIRK_NOGET },
 	{ USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_TURBOX_KEYBOARD, HID_QUIRK_NOGET },
+	{ 0x03EB, 0x840B, HID_QUIRK_MULTI_INPUT },
 	{ USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_PF1209, HID_QUIRK_MULTI_INPUT },
 	{ USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_WP4030U, HID_QUIRK_MULTI_INPUT },
 	{ USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_TABLET_KNA5, HID_QUIRK_MULTI_INPUT },