NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/42570: Wacom's Graphire USB tablet does not be distinguished from Graphire3 etc.
>Number: 42570
>Category: kern
>Synopsis: Wacom's Graphire USB tablet does not be distinguished from
>Graphire3 etc.
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Jan 03 00:20:00 +0000 2010
>Originator: Ryo ONODERA
>Release: NetBSD 5.99.23
>Organization:
>Environment:
System: NetBSD hydrogen.elements.tetera.org 5.99.23 NetBSD 5.99.23
(BRIGHTGIRL5) #2: Sun Jan 3 08:31:16 JST 2010
root%hydrogen.elements.tetera.org@localhost:/usr/obj/sys/arch/i386/compile/BRIGHTGIRL5
i386
Architecture: i386
Machine: i386
>Description:
Wacom's Graphire USB tablet and other Graphire series (for example
Graphire3) have same report descriptor.
With this patches and xsrc/42569, Graphire USB tablet is enabled,
and stylus and eraser are works properly with pkgsrc/graphics/gimp
including tip pressure support.
But usbtablet driver of xsrc/42569 probably does not support "cursor" (mouse).
This PR is applied, kern/42351 will be closed (duplicated).
>How-To-Repeat:
>Fix:
--- uhidev.c.orig 2010-01-03 06:27:08.000000000 +0900
+++ uhidev.c 2010-01-03 08:42:42.000000000 +0900
@@ -189,11 +189,8 @@ USB_ATTACH(uhidev)
/* The report descriptor for the Wacom Graphire is broken. */
switch (uaa->product) {
- case USB_PRODUCT_WACOM_GRAPHIRE:
- size = sizeof uhid_graphire_report_descr;
- descptr = uhid_graphire_report_descr;
- break;
+ case USB_PRODUCT_WACOM_GRAPHIRE:
case USB_PRODUCT_WACOM_GRAPHIRE3_4X5:
case USB_PRODUCT_WACOM_GRAPHIRE3_6X8:
case USB_PRODUCT_WACOM_GRAPHIRE4_4X5: /* The 6x8 too? */
--- ugraphire_rdesc.h.orig 2010-01-03 06:34:33.000000000 +0900
+++ ugraphire_rdesc.h.new 2010-01-03 09:14:53.000000000 +0900
@@ -25,72 +25,7 @@
* SUCH DAMAGE.
*/
-static const uByte uhid_graphire_report_descr[] = {
- 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */
- 0x09, 0x01, /* USAGE (Digitizer) */
- 0xa1, 0x01, /* COLLECTION (Application)
*/
- 0x85, 0x02, /* REPORT_ID (2) */
- 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */
- 0x09, 0x01, /* USAGE (Digitizer) */
- 0xa1, 0x00, /* COLLECTION (Physical) */
- 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
- 0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
- 0x09, 0x33, /* USAGE (Touch) */
- 0x95, 0x01, /* REPORT_COUNT (1) */
- 0x75, 0x01, /* REPORT_SIZE (1) */
- 0x81, 0x02, /* INPUT (Data,Var,Abs)
*/
- 0x09, 0x44, /* USAGE (Barrel Switch) */
- 0x95, 0x02, /* REPORT_COUNT (2) */
- 0x75, 0x01, /* REPORT_SIZE (1) */
- 0x81, 0x02, /* INPUT (Data,Var,Abs)
*/
- 0x09, 0x00, /* USAGE (Undefined) */
- 0x95, 0x02, /* REPORT_COUNT (2) */
- 0x75, 0x01, /* REPORT_SIZE (1) */
- 0x81, 0x03, /* INPUT (Cnst,Var,Abs)
*/
- 0x09, 0x3c, /* USAGE (Invert) */
- 0x95, 0x01, /* REPORT_COUNT (1) */
- 0x75, 0x01, /* REPORT_SIZE (1) */
- 0x81, 0x02, /* INPUT (Data,Var,Abs)
*/
- 0x09, 0x38, /* USAGE (Transducer Index) */
- 0x95, 0x01, /* REPORT_COUNT (1) */
- 0x75, 0x01, /* REPORT_SIZE (1) */
- 0x81, 0x02, /* INPUT (Data,Var,Abs)
*/
- 0x09, 0x32, /* USAGE (In Range) */
- 0x95, 0x01, /* REPORT_COUNT (1) */
- 0x75, 0x01, /* REPORT_SIZE (1) */
- 0x81, 0x02, /* INPUT (Data,Var,Abs)
*/
- 0x05, 0x01, /* USAGE_PAGE (Generic Desktop)
*/
- 0x09, 0x30, /* USAGE (X) */
- 0x15, 0x00, /* LOGICAL_MINIMUM (0) */
- 0x26, 0xde, 0x27, /* LOGICAL_MAXIMUM (10206) */
- 0x95, 0x01, /* REPORT_COUNT (1) */
- 0x75, 0x10, /* REPORT_SIZE (16) */
- 0x81, 0x02, /* INPUT (Data,Var,Abs)
*/
- 0x09, 0x31, /* USAGE (Y) */
- 0x26, 0xfe, 0x1c, /* LOGICAL_MAXIMUM (7422) */
- 0x95, 0x01, /* REPORT_COUNT (1) */
- 0x75, 0x10, /* REPORT_SIZE (16) */
- 0x81, 0x02, /* INPUT (Data,Var,Abs)
*/
- 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */
- 0x09, 0x30, /* USAGE (Tip Pressure)
*/
- 0x26, 0xff, 0x01, /* LOGICAL_MAXIMUM (511) */
- 0x95, 0x01, /* REPORT_COUNT (1) */
- 0x75, 0x10, /* REPORT_SIZE (16) */
- 0x81, 0x02, /* INPUT (Data,Var,Abs)
*/
- 0xc0, /* END_COLLECTION
*/
- 0x05, 0x0d, /* USAGE_PAGE (Digitizers) */
- 0x09, 0x00, /* USAGE (Undefined) */
- 0x85, 0x02, /* REPORT_ID (2) */
- 0x95, 0x01, /* REPORT_COUNT (1) */
- 0xb1, 0x02, /* FEATURE (Data,Var,Abs)
*/
- 0x09, 0x00, /* USAGE (Undefined) */
- 0x85, 0x03, /* REPORT_ID (3) */
- 0x95, 0x01, /* REPORT_COUNT (1) */
- 0xb1, 0x02, /* FEATURE (Data,Var,Abs)
*/
- 0xc0, /* END_COLLECTION */
-};
-
-/* Tested with Graphire3 4x5 and 6x8, and Graphire4 4x5 */
+/* Tested with Graphire, and Graphire3 4x5 and 6x8, and Graphire4 4x5 */
static const uByte uhid_graphire3_4x5_report_descr[] = {
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
0x09, 0x02, /* USAGE (Mouse) */
>Unformatted:
Home |
Main Index |
Thread Index |
Old Index