Bug 7409

Summary: Wacom Volito2 stopped working from kernel version 2.6.15-r7 (Gentoo Distro)
Product: Drivers Reporter: Alan Edwards (alg.edwards)
Component: USBAssignee: Andi Kleen (andi-bz)
Status: CLOSED CODE_FIX    
Severity: normal CC: dmitry.torokhov, kernel
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.16-r7 thro 2.6.18-r1 Subsystem:
Regression: --- Bisected commit-id:

Description Alan Edwards 2006-10-24 12:48:07 UTC
Most recent kernel where this bug did not occur:2.6.15-r7

Distribution: Gentoo 2005.0 upgraded to 2006.1

Hardware Environment: AMD 64 3500+

Software Environment:Portage 2.1.1-r1 (default-linux/amd64/2005.0, gcc-4.1.1,
glibc-2.4-r3, 2.6.17-gentoo-r8 x86_64)

Problem Description:

I am running a Gentoo Linux distribution and have successfully used the Wacom
Volito2 
tablet upto and including the 2.6.15-r7 kernel by following the steps at
http://forums.gentoo.org/viewtopic-p-2478951.html#2478951.  After upgrading to
successive kernels (2.6.16-r7, 2.6.17-r4 and currently 2.6.17-r8), the tablet
does not work.  In all cases, I have copied my kernel config and have the
following options set in the kernel config file:
 
CONFIG_USB_WACOM=m
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=m
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y
CONFIG_USB_SERIAL=m

Reproducible: Always
Steps to Reproduce:

When I run kernel 2.6.15-r7, dmesg produces:
usb 3-2: new low speed USB device using uhci_hcd and address 2
input Wacom Volito2 4x5 as /class/input/input2

wacdump /dev/input/wacom also works ok.
 
When I run kernel 2.6.17-r8, dmesg produces:
usb 3-2: new low speed USB device using uhci_hcd and address 2
usb 3-2: configuration #1 chosen from 1 choice
input Wacom Volito2 4x5 as /class/input/input2
 
wacdump /dev/input/wacom does not work.
 
Expected Results:  
When wacdump is working (under the 2.6.15 kernel, I invoke wacdump with wacdump
/dev/input/wacom and get:

MODEL=Wacom Volito2 4x5                 ROM=2.0-0
CLS=USB  VNDR=Wacom  DEV=Volito2  SUB=CTF-420-U




TOOLTYPE=PEN                            IN_PROX=in
  BUTTON=+00000 (+00000 .. +00000)         POS_X=+04157 (+00000 .. +05104)
   POS_Y=+01572 (+00000 .. +03712)      DISTANCE=+00000 (+00000 .. +00032)
PRESSURE=+00000 (+00000 .. +00511)      RELWHEEL=+00000 (-00001 .. +00001)

    LEFT=             MIDDLE=              RIGHT=              EXTRA=
    SIDE=              TOUCH=             STYLUS=            STYLUS2=
     BT0=                BT1=                BT2=                BT3=
     BT4=                BT5=                BT6=                BT7=
     BT8=                BT9=               BT10=               BT11=
    BT12=               BT13=               BT14=               BT15=
    BT16=               BT17=               BT18=               BT19=
    BT20=               BT21=               BT22=               BT23=


When I invoke the same command under the later kernels, I get:

MODEL=Wacom Volito2 4x5                 ROM=2.0-0
CLS=USB  VNDR=Wacom  DEV=Volito2  SUB=CTF-420-U




TOOLTYPE=NONE                            IN_PROX=out
  BUTTON=+00000 (+00000 .. +00000)         POS_X=+00000 (+00000 .. +05104)
   POS_Y=+00000 (+00000 .. +03712)      DISTANCE=+00000 (+00000 .. +00032)
PRESSURE=+00000 (+00000 .. +00511)      RELWHEEL=+00000 (-00001 .. +00001)

    LEFT=             MIDDLE=              RIGHT=              EXTRA=
    SIDE=              TOUCH=             STYLUS=            STYLUS2=
     BT0=                BT1=                BT2=                BT3=
     BT4=                BT5=                BT6=                BT7=
     BT8=                BT9=               BT10=               BT11=
    BT12=               BT13=               BT14=               BT15=
    BT16=               BT17=               BT18=               BT19=
    BT20=               BT21=               BT22=               BT23=

Note: the pen is not recognised and there is no co-ordinate information.

Here is ls -l /dev/input (under 2.6.18-r1):

crw------- 1 root root 13, 64 Oct 21 12:15 event0
crw------- 1 root root 13, 65 Oct 21 12:15 event1
crw-rw---- 1 root root 13, 66 Oct 21 12:21 event2
crw-r--r-- 1 root root 13, 63 Oct 21 12:15 mice
crw-r--r-- 1 root root 13, 32 Oct 21 12:15 mouse0
crw-r--r-- 1 root root 13, 33 Oct 21 12:21 mouse1
lrwxrwxrwx 1 root root      6 Oct 21 12:21 wacom -> event2

And here is cat /proc/bus/input/devices (under 2.6.18-r1):

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/class/input/input0
H: Handlers=kbd event0
B: EV=120013
B: KEY=402000000 3802078f840d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0011 Vendor=0002 Product=0005 Version=0000
N: Name="ImPS/2 Generic Wheel Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input1
H: Handlers=mouse0 event1
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=103

I: Bus=0003 Vendor=056a Product=0062 Version=0200
N: Name="Wacom Volito2 4x5"
P: Phys=
S: Sysfs=/class/input/input2
H: Handlers=mouse1 event2
B: EV=f
B: KEY=1c43 70000 0 0 0 0
B: REL=100
B: ABS=10003000003

Searching the Gentoo forums, I have discovered that there is a workaround which
consists of copying the following two files from the
/usr/portage/distfiles/linuxwacom-0.7.4-3 to /usr/src/linux/drivers/usb/input
and recompiling the modules:

hid-core.c
wacom.c

I have put the original versions (which don't work) at the following link
with .old extensions and the files which do work with the original .c extension
http://homepage.ntlworld.com/alan.edwards793/Linux/

Here is my lsusb output on the currently running 2.6.17-r8 kernel:

# lsusb -v

Bus 005 Device 002: ID 0424:20fc Standard Microsystems Corp. 6-in-1 Card Reader
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0424 Standard Microsystems Corp.
  idProduct          0x20fc 6-in-1 Card Reader
  bcdDevice            1.25
  iManufacturer           1 SMSC
  iProduct                2 USB 2 Flash Media Device
  iSerial                 3 0301297000E5
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
    MaxPower               96mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
        UNRECOGNIZED:  07 21 07 e8 03 fe ff
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1

Bus 005 Device 001: ID 0000:0000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x0000
  idProduct          0x0000
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.17-gentoo-r8 ehci_hcd
  iProduct                2 EHCI Host Controller
  iSerial                 1 0000:00:10.4
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval              12
Hub Descriptor:
  bLength              11
  bDescriptorType      41
  nNbrPorts             8
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
    TT think time 8 FS bits
  bPwrOn2PwrGood       10 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00 0x0a
  PortPwrCtrlMask    0x00  0x00
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0503 highspeed power enable connect
   Port 3: 0000.0100 power
   Port 4: 0000.0100 power
   Port 5: 0000.0000
   Port 6: 0000.0100 power
   Port 7: 0000.0100 power
   Port 8: 0000.0100 power

Bus 004 Device 001: ID 0000:0000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed hub
  bMaxPacketSize0        64
  idVendor           0x0000
  idProduct          0x0000
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.17-gentoo-r8 uhci_hcd
  iProduct                2 UHCI Host Controller
  iSerial                 1 0000:00:10.3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             2
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood        1 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0x0a
 Hub Port Status:
   Port 1: 0000.0300 lowspeed power
   Port 2: 0000.0300 lowspeed power

Bus 003 Device 002: ID 056a:0062 Wacom Co., Ltd
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x056a Wacom Co., Ltd
  idProduct          0x0062
  bcdDevice            2.00
  iManufacturer           1 WACOM
  iProduct                2 CTF-420 V2.0-0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
    MaxPower               40mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Devices
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     110
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10

Bus 003 Device 001: ID 0000:0000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed hub
  bMaxPacketSize0        64
  idVendor           0x0000
  idProduct          0x0000
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.17-gentoo-r8 uhci_hcd
  iProduct                2 UHCI Host Controller
  iSerial                 1 0000:00:10.2
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             2
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood        1 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0x0a
 Hub Port Status:
   Port 1: 0000.0303 lowspeed power enable connect
   Port 2: 0000.0300 lowspeed power

Bus 002 Device 001: ID 0000:0000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed hub
  bMaxPacketSize0        64
  idVendor           0x0000
  idProduct          0x0000
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.17-gentoo-r8 uhci_hcd
  iProduct                2 UHCI Host Controller
  iSerial                 1 0000:00:10.1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             2
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood        1 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0x0a
 Hub Port Status:
   Port 1: 0000.0300 lowspeed power
   Port 2: 0000.0100 power

Bus 001 Device 001: ID 0000:0000
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed hub
  bMaxPacketSize0        64
  idVendor           0x0000
  idProduct          0x0000
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.17-gentoo-r8 uhci_hcd
  iProduct                2 UHCI Host Controller
  iSerial                 1 0000:00:10.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             2
  wHubCharacteristic 0x000a
    No power switching (usb 1.0)
    Per-port overcurrent protection
  bPwrOn2PwrGood        1 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0x0a
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0100 power
#
Comment 1 Daniel Drake 2006-10-24 14:00:31 UTC
This appears to be a 2.6.16 regression
Original report http://bugs.gentoo.org/150084
Gentoo do not modify the wacom driver
Comment 2 Alan Edwards 2007-02-18 07:37:53 UTC
Bug corrected within kernel version 2.6.19-r5