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