Skip to contentSkip to conversation

Wacom Bluetooth mode-2 activation

PATCH In review Bastien Nocera 2 participants 3 messages Mar 14, 2009 – Mar 23, 2009 Bluetooth drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Wacom Bluetooth mode-2 activation

Heya,

Patch is necessary to make the Wacom Bluetooth driver I posted to linux-input work as expected. I've tested this successfully with my tablet[1].

Cheers

[1]: For Marcel, if you want a funky new device, look for CTE-630BT:
http://www.wacom-europe.com/index2.asp?pid=163&lang=en
http://www.wacom-shop.net/cgi-bin/wacom.storefront/49c0379700eeee24273f4ddcef2606ba/Product/View/CTE&2D630BT3

Quoted 1 line

From 7446ea0afdbdb602261c3d43efc4f29bac47cc4b Mon Sep 17 00:00:00 2001

From: Bastien Nocera <[email protected]>
Date: Tue, 17 Mar 2009 23:44:44 +0000
Subject: [PATCH] Add Mode-2 activation for the Wacom BT tablet

Otherwise the device shows up as a simple mouse, and extended events aren't being pushed to the kernel.

---
 input/device.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
input/device.c +13 -0
index 0090bd4..8d65148 100644
@@ -658,6 +658,19 @@ static int hidp_add_connection(const struct input_device *idev,
 		err = write(sk, buf, sizeof(buf));
 	}
 
+	if (req->vendor == 0x056a && req->product == 0x81) {
+		unsigned char buf[3];
+		int sk = g_io_channel_unix_get_fd(iconn->ctrl_io);
+
+		buf[0] = 0x53; /* HIDP_TRANS_SET_REPORT | HIDP_DATA_RTYPE_FEATURE */
+		buf[1] = 0x03; buf[2] = 0x00;
+		write(sk, buf, sizeof(buf));
+
+		buf[0] = 0x71; /* HIDP_TRANS_SET_REPORT | HIDP_DATA_RTYPE_FEATURE */
+		/* 0x06 - high reporting speed, 0x05 - low speed */
+		buf[1] = 0x06; buf[2] = 0x00;
+		write(sk, buf, sizeof(buf));
+	}
 	err = ioctl_connadd(req);
 
 cleanup:
Signature · 1 line
1.6.2
maintainer
#1 lore raw

Hi Bastien,

Quoted 3 lines

Patch is necessary to make the Wacom Bluetooth driver I posted to linux-input work as expected. I've tested this successfully with my tablet[1].

this maybe sound like a nit-pick, but please add an extra empty line between the if-statement and the ioctl.

+ write(sk, buf, sizeof(buf));
+ }

        err = ioctl_connadd(req);

The original code had one and so should have the new one with this extra quirk.

Also can we please check at least the return value of write().

+ write(sk, buf, sizeof(buf));

Check the return value and at minimum have an error message printed.

Regards

Marcel

#2 lore raw
Quoted 13 lines · Marcel Holtmann

Hi Bastien,

Quoted 3 lines

Patch is necessary to make the Wacom Bluetooth driver I posted to linux-input work as expected. I've tested this successfully with my tablet[1].

this maybe sound like a nit-pick, but please add an extra empty line between the if-statement and the ioctl.

input/device.c +2 -0
+               write(sk, buf, sizeof(buf));
+       }
        err = ioctl_connadd(req);
Quoted 2 lines

The original code had one and so should have the new one with this extra quirk.

OK.

Quoted 5 lines

Also can we please check at least the return value of write().

+ write(sk, buf, sizeof(buf));

Check the return value and at minimum have an error message printed.

The writes actually fail, from what I've seen, but it works... I'll try to get some details about what fails.