Skip to contentSkip to conversation

hid: Add driver to fix Speedlink VAD Cezanne support

PATCH Applied Stefan Kriwanek 2 participants 2 messages May 27, 2011 – Jun 7, 2011 HID

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 hid: Add driver to fix Speedlink VAD Cezanne support

Hello,

Speedlink VAD Cezanne have a hardware bug that makes the cursor "jump" from one place to another every now and then. The issue are relative motion events erroneously reported by the device, each having a distance value of +256. This 256 can in fact never occur due to real motion, therefore those events can safely be ignored. The driver also drops useless EV_REL events with a value of 0, that the device sends every time it sends an "real" EV_REL or EV_KEY event.

---

drivers/hid/hid-core.c +1 -0
diff -X /tmp/dontdiff -urp linux-2.6.39/drivers/hid/hid-core.c linux-2.6.39-speedlink/drivers/hid/hid-core.c
@@ -1482,6 +1482,7 @@ static const struct hid_device_id hid_ha
 	{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_SLIM_TABLET_12_1_INCH) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_MEDIA_TABLET_10_6_INCH) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_MEDIA_TABLET_14_1_INCH) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_X_TENSIONS, USB_DEVICE_ID_SPEEDLINK_VAD_CEZANNE) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0005) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0030) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ZYDACRON, USB_DEVICE_ID_ZYDACRON_REMOTE_CONTROL) },
drivers/hid/hid-ids.h +3 -0
diff -X /tmp/dontdiff -urp linux-2.6.39/drivers/hid/hid-ids.h linux-2.6.39-speedlink/drivers/hid/hid-ids.h
@@ -607,6 +607,9 @@
 #define USB_VENDOR_ID_WISEGROUP_LTD2	0x6677
 #define USB_DEVICE_ID_SMARTJOY_DUAL_PLUS 0x8802
 
+#define USB_VENDOR_ID_X_TENSIONS               0x1ae7
+#define USB_DEVICE_ID_SPEEDLINK_VAD_CEZANNE    0x9001
+
 #define USB_VENDOR_ID_YEALINK		0x6993
 #define USB_DEVICE_ID_YEALINK_P1K_P4K_B2K	0xb001
 
drivers/hid/Kconfig +6 -0
diff -X /tmp/dontdiff -urp linux-2.6.39/drivers/hid/Kconfig linux-2.6.39-speedlink/drivers/hid/Kconfig
@@ -500,6 +500,12 @@ config HID_SONY
 	---help---
 	Support for Sony PS3 controller.
 
+config HID_SPEEDLINK
+	tristate "Speedlink VAD Cezanne mouse support"
+	depends on USB_HID
+	---help---
+	Support for Speedlink Vicious and Divine Cezanne mouse.
+
 config HID_STANTUM
 	tristate "Stantum multitouch panel"
 	depends on USB_HID
drivers/hid/Makefile +1 -0
diff -X /tmp/dontdiff -urp linux-2.6.39/drivers/hid/Makefile linux-2.6.39-speedlink/drivers/hid/Makefile
@@ -66,6 +66,7 @@ obj-$(CONFIG_HID_ROCCAT_PYRA)	+= hid-roc
 obj-$(CONFIG_HID_SAMSUNG)	+= hid-samsung.o
 obj-$(CONFIG_HID_SMARTJOYPLUS)	+= hid-sjoy.o
 obj-$(CONFIG_HID_SONY)		+= hid-sony.o
+obj-$(CONFIG_HID_SPEEDLINK)	+= hid-speedlink.o
 obj-$(CONFIG_HID_STANTUM)	+= hid-stantum.o
 obj-$(CONFIG_HID_SUNPLUS)	+= hid-sunplus.o
 obj-$(CONFIG_HID_GREENASIA)	+= hid-gaff.o
drivers/hid/hid-speedlink.c new file +89 -0

89 lines not on this page · raw message

Applied
#1 lore raw
Quoted 7 lines · Stefan Kriwanek

Speedlink VAD Cezanne have a hardware bug that makes the cursor "jump" from one place to another every now and then. The issue are relative motion events erroneously reported by the device, each having a distance value of +256. This 256 can in fact never occur due to real motion, therefore those events can safely be ignored. The driver also drops useless EV_REL events with a value of 0, that the device sends every time it sends an "real" EV_REL or EV_KEY event.

Applied, thank you Stefan.

Signature · 2 lines
Jiri Kosina
SUSE Labs