Quantcast

Support for Panasonic CF-C2CCAZXCM Touchscreen

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Support for Panasonic CF-C2CCAZXCM Touchscreen

Funt, Zachary A.

Hello,

 

I am trying to get support for a touchscreen included in a Panasonic CF-C2 (CF-C2CCAZXCM). After some research and the changes below, the initial touch seems to work as expected. However, subsequent touches don’t seem to release the left mouse click. Is this expected behavior? Have I missed any changes below that should be made to add a new device?

 

 

 

The output of lsusb  -vvv shows the following information.

 

Bus 002 Device 003: ID 056a:0117 Wacom Co., Ltd

Device Descriptor:

  bLength                18

  bDescriptorType         1

  bcdUSB               2.01

  bDeviceClass            0 (Defined at Interface level)

  bDeviceSubClass         0

  bDeviceProtocol         0

  bMaxPacketSize0        64

  idVendor           0x056a Wacom Co., Ltd

  idProduct          0x0117

  bcdDevice            0.35

  iManufacturer           1 Wacom Co.,Ltd.     

  iProduct                2 MultiTouch Sensor 

  iSerial                 5        

  bNumConfigurations      1

  Configuration Descriptor:

    bLength                 9

    bDescriptorType         2

    wTotalLength           59

    bNumInterfaces          2

    bConfigurationValue     1

    iConfiguration          0

    bmAttributes         0xe0

      Self Powered

      Remote Wakeup

    MaxPower               12mA

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           1

      bInterfaceClass         3 Human Interface Device

      bInterfaceSubClass      0 No Subclass

      bInterfaceProtocol      0 None

      iInterface              3 MultiTouch

        HID Device Descriptor:

          bLength                 9

          bDescriptorType        33

          bcdHID               1.11

          bCountryCode            0 Not supported

          bNumDescriptors         1

          bDescriptorType        34 Report

          wDescriptorLength     588

         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     0x0040  1x 64 bytes

        bInterval               2

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        1

      bAlternateSetting       0

      bNumEndpoints           1

      bInterfaceClass         3 Human Interface Device

      bInterfaceSubClass      0 No Subclass

      bInterfaceProtocol      0 None

      iInterface              4 Pen

        HID Device Descriptor:

          bLength                 9

          bDescriptorType        33

          bcdHID               1.11

          bCountryCode            0 Not supported

          bNumDescriptors         1

          bDescriptorType        34 Report

          wDescriptorLength     127

         Report Descriptors:

           ** UNAVAILABLE **

      Endpoint Descriptor:

        bLength                 7

        bDescriptorType         5

        bEndpointAddress     0x83  EP 3 IN

        bmAttributes            3

          Transfer Type            Interrupt

          Synch Type               None

          Usage Type               Data

        wMaxPacketSize     0x0040  1x 64 bytes

        bInterval               2

Device Status:     0x0000

  (Bus Powered)

 

 

 

I’ve downloaded the input-wacom-0.31.0.tar.bz2 package, extracted, modified 2.6.30/wacom_wac.c (uname –r is 2.6.32-573.8.1.el6.x86_64), and added the following prior to compiling and loading.

 

@2154

static const struct wacom_features wacom_features_0x117 =

       { "Wacom ISDv4 117",       WACOM_PKGLEN_MTTPC,  26202, 16325,  255,  0,  MTTPC };

@2292

                { USB_DEVICE_WACOM(0x117) },

 

 

 

I’ve also downloaded xf86-input-wacom-0.33.0.tar.bz2, extracted, modifed the following before compiling and loading.

 

src/wcmUSB.c@307

                { WACOM_VENDOR_ID, 0x117,100000, 100000, &usbTabletPC,   "TabletPC 0x117"             },

src/wcmValidateDevice.c@286

                                case 0x117: /* TPC with 1FGT */

 

 

I’ve also created a /usr/share/X11/xorg.conf.d/50-wacom.conf as explained in the following refrence.

 

http://askubuntu.com/questions/484226/toughbook-cf-c2-touch-screen-not-detected

 

Section "InputClass"

        Identifier "Wacom touch options"

        MatchDriver "wacom"

        MatchProduct "Finger"

 

        Option “Gesture” “off”

 

        Option "TopX" "80"

        Option "TopY" "-111"

        Option "BottomX" "11067"

        Option "BottomY" "6170"

EndSection


------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Linuxwacom-discuss mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-discuss
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Support for Panasonic CF-C2CCAZXCM Touchscreen

Jason Gerecke
Zachary,

Could you please run lsusb again as root so that the report descriptors
can be retrieved? The device might be a type other than "MTTPC" (for
example, "MTTPC_B") and the descriptor would give us a good idea.

Additionally, it might be useful if you could capture some USB traffic
from the device for us to analyze. If you can, after freshly rebooting
(so the device works properly) follow the instructions at [1] to record
the events and then touch the screen three or four times so that I can
see if there's any sort of difference from the first touch and later
touches.

[1]: https://www.kernel.org/doc/Documentation/usb/usbmon.txt

Jason
---
Now instead of four in the eights place /
you’ve got three, ‘Cause you added one /
(That is to say, eight) to the two, /
But you can’t take seven from three, /
So you look at the sixty-fours....

On 06/06/2016 11:12 AM, Funt, Zachary A. wrote:

> Hello,
>
>  
>
> I am trying to get support for a touchscreen included in a Panasonic
> CF-C2 (CF-C2CCAZXCM). After some research and the changes below, the
> initial touch seems to work as expected. However, subsequent touches
> don’t seem to release the left mouse click. Is this expected behavior?
> Have I missed any changes below that should be made to add a new device?
>
>  
>
>  
>
>  
>
> The output of lsusb  -vvv shows the following information.
>
>  
>
> Bus 002 Device 003: ID 056a:0117 Wacom Co., Ltd
>
> Device Descriptor:
>
>   bLength                18
>
>   bDescriptorType         1
>
>   bcdUSB               2.01
>
>   bDeviceClass            0 (Defined at Interface level)
>
>   bDeviceSubClass         0
>
>   bDeviceProtocol         0
>
>   bMaxPacketSize0        64
>
>   idVendor           0x056a Wacom Co., Ltd
>
>   idProduct          0x0117
>
>   bcdDevice            0.35
>
>   iManufacturer           1 Wacom Co.,Ltd.    
>
>   iProduct                2 MultiTouch Sensor
>
>   iSerial                 5        
>
>   bNumConfigurations      1
>
>   Configuration Descriptor:
>
>     bLength                 9
>
>     bDescriptorType         2
>
>     wTotalLength           59
>
>     bNumInterfaces          2
>
>     bConfigurationValue     1
>
>     iConfiguration          0
>
>     bmAttributes         0xe0
>
>       Self Powered
>
>       Remote Wakeup
>
>     MaxPower               12mA
>
>     Interface Descriptor:
>
>       bLength                 9
>
>       bDescriptorType         4
>
>       bInterfaceNumber        0
>
>       bAlternateSetting       0
>
>       bNumEndpoints           1
>
>       bInterfaceClass         3 Human Interface Device
>
>       bInterfaceSubClass      0 No Subclass
>
>       bInterfaceProtocol      0 None
>
>       iInterface              3 MultiTouch
>
>         HID Device Descriptor:
>
>           bLength                 9
>
>           bDescriptorType        33
>
>           bcdHID               1.11
>
>           bCountryCode            0 Not supported
>
>           bNumDescriptors         1
>
>           bDescriptorType        34 Report
>
>           wDescriptorLength     588
>
>          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     0x0040  1x 64 bytes
>
>         bInterval               2
>
>     Interface Descriptor:
>
>       bLength                 9
>
>       bDescriptorType         4
>
>       bInterfaceNumber        1
>
>       bAlternateSetting       0
>
>       bNumEndpoints           1
>
>       bInterfaceClass         3 Human Interface Device
>
>       bInterfaceSubClass      0 No Subclass
>
>       bInterfaceProtocol      0 None
>
>       iInterface              4 Pen
>
>         HID Device Descriptor:
>
>           bLength                 9
>
>           bDescriptorType        33
>
>           bcdHID               1.11
>
>           bCountryCode            0 Not supported
>
>           bNumDescriptors         1
>
>           bDescriptorType        34 Report
>
>           wDescriptorLength     127
>
>          Report Descriptors:
>
>            ** UNAVAILABLE **
>
>       Endpoint Descriptor:
>
>         bLength                 7
>
>         bDescriptorType         5
>
>         bEndpointAddress     0x83  EP 3 IN
>
>         bmAttributes            3
>
>           Transfer Type            Interrupt
>
>           Synch Type               None
>
>           Usage Type               Data
>
>         wMaxPacketSize     0x0040  1x 64 bytes
>
>         bInterval               2
>
> Device Status:     0x0000
>
>   (Bus Powered)
>
>  
>
>  
>
>  
>
> I’ve downloaded the input-wacom-0.31.0.tar.bz2 package, extracted,
> modified 2.6.30/wacom_wac.c (uname –r is 2.6.32-573.8.1.el6.x86_64), and
> added the following prior to compiling and loading.
>
>  
>
> @2154
>
> static const struct wacom_features wacom_features_0x117 =
>
>        { "Wacom ISDv4 117",       WACOM_PKGLEN_MTTPC,  26202, 16325,
> 255,  0,  MTTPC };
>
> @2292
>
>                 { USB_DEVICE_WACOM(0x117) },
>
>  
>
>  
>
>  
>
> I’ve also downloaded xf86-input-wacom-0.33.0.tar.bz2, extracted, modifed
> the following before compiling and loading.
>
>  
>
> src/wcmUSB.c@307
>
>                 { WACOM_VENDOR_ID, 0x117,100000, 100000, &usbTabletPC,  
> "TabletPC 0x117"             },
>
> src/wcmValidateDevice.c@286
>
>                                 case 0x117: /* TPC with 1FGT */
>
>  
>
>  
>
> I’ve also created a /usr/share/X11/xorg.conf.d/50-wacom.conf as
> explained in the following refrence.
>
>  
>
> http://askubuntu.com/questions/484226/toughbook-cf-c2-touch-screen-not-detected
>
>  
>
> Section "InputClass"
>
>         Identifier "Wacom touch options"
>
>         MatchDriver "wacom"
>
>         MatchProduct "Finger"
>
>  
>
>         Option “Gesture” “off”
>
>  
>
>         Option "TopX" "80"
>
>         Option "TopY" "-111"
>
>         Option "BottomX" "11067"
>
>         Option "BottomY" "6170"
>
> EndSection
>

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Linuxwacom-discuss mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-discuss
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Support for Panasonic CF-C2CCAZXCM Touchscreen

Funt, Zachary A.
Jason,

I was able to unbind it and run lsusb again. It seems to list the report descriptors this time. Any help is appreciated. I'll get the usbmon data as soon as I can. Thanks.


Bus 001 Device 003: ID 056a:0117 Wacom Co., Ltd
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.01
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x056a Wacom Co., Ltd
  idProduct          0x0117
  bcdDevice            0.35
  iManufacturer           1 Wacom Co.,Ltd.      
  iProduct                2 MultiTouch Sensor  
  iSerial                 5        
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower               12mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              3 MultiTouch
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     588
          Report Descriptor: (length is 588)
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x04 ] 4
                            Touch Screen
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x0c ] 12
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x54 ] 84
                            Contact Count
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x22 ] 34
                            Finger
            Item(Main  ): Collection, data= [ 0x02 ] 2
                            Logical
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Local ): Usage, data= [ 0x42 ] 66
                            Tip Switch
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x47 ] 71
                            Confidence
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x05 ] 5
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x51 ] 81
                            Contact ID
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Report Size, data= [ 0x10 ] 16
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Physical Minimum, data= [ 0x00 ] 0
            Item(Global): Unit, data= [ 0x11 ] 17
                            System: SI Linear, Unit: Centimeter
            Item(Global): Unit Exponent, data= [ 0x0e ] 14
                            Unit Exponent: 14
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Direction-X
            Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
            Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
            Item(Main  ): Input, data= [ 0x42 ] 66
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State Null_State Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x31 ] 49
                            Direction-Y
            Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
            Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
            Item(Main  ): Input, data= [ 0x42 ] 66
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State Null_State Non_Volatile Bitfield
            Item(Global): Physical Maximum, data= [ 0x00 ] 0
            Item(Global): Unit, data= [ 0x00 ] 0
                            System: None, Unit: (None)
            Item(Global): Unit Exponent, data= [ 0x00 ] 0
                            Unit Exponent: 0
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x22 ] 34
                            Finger
            Item(Main  ): Collection, data= [ 0x02 ] 2
                            Logical
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x42 ] 66
                            Tip Switch
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x47 ] 71
                            Confidence
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x05 ] 5
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x51 ] 81
                            Contact ID
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Report Size, data= [ 0x10 ] 16
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Physical Minimum, data= [ 0x00 ] 0
            Item(Global): Unit, data= [ 0x11 ] 17
                            System: SI Linear, Unit: Centimeter
            Item(Global): Unit Exponent, data= [ 0x0e ] 14
                            Unit Exponent: 14
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Direction-X
            Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
            Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x31 ] 49
                            Direction-Y
            Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
            Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Physical Maximum, data= [ 0x00 ] 0
            Item(Global): Unit, data= [ 0x00 ] 0
                            System: None, Unit: (None)
            Item(Global): Unit Exponent, data= [ 0x00 ] 0
                            Unit Exponent: 0
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x22 ] 34
                            Finger
            Item(Main  ): Collection, data= [ 0x02 ] 2
                            Logical
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x42 ] 66
                            Tip Switch
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x47 ] 71
                            Confidence
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x05 ] 5
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x51 ] 81
                            Contact ID
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Report Size, data= [ 0x10 ] 16
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Physical Minimum, data= [ 0x00 ] 0
            Item(Global): Unit, data= [ 0x11 ] 17
                            System: SI Linear, Unit: Centimeter
            Item(Global): Unit Exponent, data= [ 0x0e ] 14
                            Unit Exponent: 14
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Direction-X
            Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
            Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x31 ] 49
                            Direction-Y
            Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
            Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Physical Maximum, data= [ 0x00 ] 0
            Item(Global): Unit, data= [ 0x00 ] 0
                            System: None, Unit: (None)
            Item(Global): Unit Exponent, data= [ 0x00 ] 0
                            Unit Exponent: 0
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x22 ] 34
                            Finger
            Item(Main  ): Collection, data= [ 0x02 ] 2
                            Logical
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x42 ] 66
                            Tip Switch
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x47 ] 71
                            Confidence
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x05 ] 5
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x51 ] 81
                            Contact ID
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Report Size, data= [ 0x10 ] 16
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Physical Minimum, data= [ 0x00 ] 0
            Item(Global): Unit, data= [ 0x11 ] 17
                            System: SI Linear, Unit: Centimeter
            Item(Global): Unit Exponent, data= [ 0x0e ] 14
                            Unit Exponent: 14
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Direction-X
            Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
            Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x31 ] 49
                            Direction-Y
            Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
            Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Physical Maximum, data= [ 0x00 ] 0
            Item(Global): Unit, data= [ 0x00 ] 0
                            System: None, Unit: (None)
            Item(Global): Unit Exponent, data= [ 0x00 ] 0
                            Unit Exponent: 0
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x22 ] 34
                            Finger
            Item(Main  ): Collection, data= [ 0x02 ] 2
                            Logical
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x42 ] 66
                            Tip Switch
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x47 ] 71
                            Confidence
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x05 ] 5
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x51 ] 81
                            Contact ID
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Report Size, data= [ 0x10 ] 16
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Physical Minimum, data= [ 0x00 ] 0
            Item(Global): Unit, data= [ 0x11 ] 17
                            System: SI Linear, Unit: Centimeter
            Item(Global): Unit Exponent, data= [ 0x0e ] 14
                            Unit Exponent: 14
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Direction-X
            Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
            Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x31 ] 49
                            Direction-Y
            Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
            Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Physical Maximum, data= [ 0x00 ] 0
            Item(Global): Unit, data= [ 0x00 ] 0
                            System: None, Unit: (None)
            Item(Global): Unit Exponent, data= [ 0x00 ] 0
                            Unit Exponent: 0
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Global): Logical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535
            Item(Local ): Usage, data= [ 0x56 ] 86
                            (null)
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x55 ] 85
                            Maximum Contact Number
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x0a ] 10
            Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
                            (null)
            Item(Local ): Usage, data= [ 0xc5 ] 197
                            (null)
            Item(Global): Report Count, data= [ 0x00 0x01 ] 256
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x0e ] 14
                            (null)
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x0e ] 14
            Item(Local ): Usage, data= [ 0x23 ] 35
                            (null)
            Item(Main  ): Collection, data= [ 0x02 ] 2
                            Logical
            Item(Local ): Usage, data= [ 0x52 ] 82
                            Input Mode
            Item(Local ): Usage, data= [ 0x53 ] 83
                            Device Index
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x0a ] 10
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Report Count, data= [ 0x02 ] 2
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x09 0xff ] 65289
                            (null)
            Item(Local ): Usage, data= [ 0x11 ] 17
                            (null)
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x03 ] 3
            Item(Main  ): Collection, data= [ 0x02 ] 2
                            Logical
            Item(Local ): Usage, data= [ 0x00 ] 0
                            (null)
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Report Count, data= [ 0x27 0x00 ] 39
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Global): Report ID, data= [ 0x03 ] 3
            Item(Local ): Usage, data= [ 0x00 ] 0
                            (null)
            Item(Global): Report Count, data= [ 0x03 ] 3
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x09 ] 9
            Item(Local ): Usage, data= [ 0x00 ] 0
                            (null)
            Item(Global): Report Count, data= [ 0x3f ] 63
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x02 ] 2
            Item(Local ): Usage, data= [ 0x00 ] 0
                            (null)
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x04 ] 4
            Item(Local ): Usage, data= [ 0x00 ] 0
                            (null)
            Item(Global): Report Count, data= [ 0x0f ] 15
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x07 ] 7
            Item(Local ): Usage, data= [ 0x00 ] 0
                            (null)
            Item(Global): Report Count, data= [ 0x07 0x02 ] 519
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x08 ] 8
            Item(Local ): Usage, data= [ 0x00 ] 0
                            (null)
            Item(Global): Report Count, data= [ 0x87 0x00 ] 135
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x0d ] 13
            Item(Local ): Usage, data= [ 0x00 ] 0
                            (null)
            Item(Global): Report Count, data= [ 0x03 ] 3
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x02 ] 2
                            Mouse
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x01 ] 1
            Item(Local ): Usage, data= [ 0x01 ] 1
                            Pointer
            Item(Main  ): Collection, data= [ 0x00 ] 0
                            Physical
            Item(Global): Usage Page, data= [ 0x09 ] 9
                            Buttons
            Item(Local ): Usage Minimum, data= [ 0x01 ] 1
                            Button 1 (Primary)
            Item(Local ): Usage Maximum, data= [ 0x02 ] 2
                            Button 2 (Secondary)
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x02 ] 2
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x06 ] 6
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Direction-X
            Item(Local ): Usage, data= [ 0x31 ] 49
                            Direction-Y
            Item(Global): Logical Maximum, data= [ 0xff 0x7f ] 32767
            Item(Global): Report Size, data= [ 0x10 ] 16
            Item(Global): Report Count, data= [ 0x02 ] 2
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Main  ): End Collection, data=none
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               2
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              4 Pen
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     127
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               2
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           33
  bNumDeviceCaps          1
  ** UNRECOGNIZED:  1c 10 05 00 df 60 dd d8 89 45 c7 4c 9c d2 65 9d 9e 64 8a 9f 00 00 03 06 48 00 04 00
Device Status:     0x0000
  (Bus Powered)

Zachary Funt
Force Projection Sector/KIT
240-228-6788 (office)
240-381-9031 (cell)

KIT Hotline: x89999


-----Original Message-----
From: Jason Gerecke [mailto:[hidden email]]
Sent: Monday, June 06, 2016 6:36 PM
To: Funt, Zachary A.; [hidden email]
Subject: Re: [Linuxwacom-discuss] Support for Panasonic CF-C2CCAZXCM Touchscreen

Zachary,

Could you please run lsusb again as root so that the report descriptors can be retrieved? The device might be a type other than "MTTPC" (for example, "MTTPC_B") and the descriptor would give us a good idea.

Additionally, it might be useful if you could capture some USB traffic from the device for us to analyze. If you can, after freshly rebooting (so the device works properly) follow the instructions at [1] to record the events and then touch the screen three or four times so that I can see if there's any sort of difference from the first touch and later touches.

[1]: https://www.kernel.org/doc/Documentation/usb/usbmon.txt

Jason
---
Now instead of four in the eights place / you've got three, 'Cause you added one / (That is to say, eight) to the two, / But you can't take seven from three, / So you look at the sixty-fours....

On 06/06/2016 11:12 AM, Funt, Zachary A. wrote:

> Hello,
>
>  
>
> I am trying to get support for a touchscreen included in a Panasonic
> CF-C2 (CF-C2CCAZXCM). After some research and the changes below, the
> initial touch seems to work as expected. However, subsequent touches
> don't seem to release the left mouse click. Is this expected behavior?
> Have I missed any changes below that should be made to add a new device?
>
>  
>
>  
>
>  
>
> The output of lsusb  -vvv shows the following information.
>
>  
>
> Bus 002 Device 003: ID 056a:0117 Wacom Co., Ltd
>
> Device Descriptor:
>
>   bLength                18
>
>   bDescriptorType         1
>
>   bcdUSB               2.01
>
>   bDeviceClass            0 (Defined at Interface level)
>
>   bDeviceSubClass         0
>
>   bDeviceProtocol         0
>
>   bMaxPacketSize0        64
>
>   idVendor           0x056a Wacom Co., Ltd
>
>   idProduct          0x0117
>
>   bcdDevice            0.35
>
>   iManufacturer           1 Wacom Co.,Ltd.    
>
>   iProduct                2 MultiTouch Sensor
>
>   iSerial                 5        
>
>   bNumConfigurations      1
>
>   Configuration Descriptor:
>
>     bLength                 9
>
>     bDescriptorType         2
>
>     wTotalLength           59
>
>     bNumInterfaces          2
>
>     bConfigurationValue     1
>
>     iConfiguration          0
>
>     bmAttributes         0xe0
>
>       Self Powered
>
>       Remote Wakeup
>
>     MaxPower               12mA
>
>     Interface Descriptor:
>
>       bLength                 9
>
>       bDescriptorType         4
>
>       bInterfaceNumber        0
>
>       bAlternateSetting       0
>
>       bNumEndpoints           1
>
>       bInterfaceClass         3 Human Interface Device
>
>       bInterfaceSubClass      0 No Subclass
>
>       bInterfaceProtocol      0 None
>
>       iInterface              3 MultiTouch
>
>         HID Device Descriptor:
>
>           bLength                 9
>
>           bDescriptorType        33
>
>           bcdHID               1.11
>
>           bCountryCode            0 Not supported
>
>           bNumDescriptors         1
>
>           bDescriptorType        34 Report
>
>           wDescriptorLength     588
>
>          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     0x0040  1x 64 bytes
>
>         bInterval               2
>
>     Interface Descriptor:
>
>       bLength                 9
>
>       bDescriptorType         4
>
>       bInterfaceNumber        1
>
>       bAlternateSetting       0
>
>       bNumEndpoints           1
>
>       bInterfaceClass         3 Human Interface Device
>
>       bInterfaceSubClass      0 No Subclass
>
>       bInterfaceProtocol      0 None
>
>       iInterface              4 Pen
>
>         HID Device Descriptor:
>
>           bLength                 9
>
>           bDescriptorType        33
>
>           bcdHID               1.11
>
>           bCountryCode            0 Not supported
>
>           bNumDescriptors         1
>
>           bDescriptorType        34 Report
>
>           wDescriptorLength     127
>
>          Report Descriptors:
>
>            ** UNAVAILABLE **
>
>       Endpoint Descriptor:
>
>         bLength                 7
>
>         bDescriptorType         5
>
>         bEndpointAddress     0x83  EP 3 IN
>
>         bmAttributes            3
>
>           Transfer Type            Interrupt
>
>           Synch Type               None
>
>           Usage Type               Data
>
>         wMaxPacketSize     0x0040  1x 64 bytes
>
>         bInterval               2
>
> Device Status:     0x0000
>
>   (Bus Powered)
>
>  
>
>  
>
>  
>
> I've downloaded the input-wacom-0.31.0.tar.bz2 package, extracted,
> modified 2.6.30/wacom_wac.c (uname -r is 2.6.32-573.8.1.el6.x86_64),
> and added the following prior to compiling and loading.
>
>  
>
> @2154
>
> static const struct wacom_features wacom_features_0x117 =
>
>        { "Wacom ISDv4 117",       WACOM_PKGLEN_MTTPC,  26202, 16325,
> 255,  0,  MTTPC };
>
> @2292
>
>                 { USB_DEVICE_WACOM(0x117) },
>
>  
>
>  
>
>  
>
> I've also downloaded xf86-input-wacom-0.33.0.tar.bz2, extracted,
> modifed the following before compiling and loading.
>
>  
>
> src/wcmUSB.c@307
>
>                 { WACOM_VENDOR_ID, 0x117,100000, 100000, &usbTabletPC,  
> "TabletPC 0x117"             },
>
> src/wcmValidateDevice.c@286
>
>                                 case 0x117: /* TPC with 1FGT */
>
>  
>
>  
>
> I've also created a /usr/share/X11/xorg.conf.d/50-wacom.conf as
> explained in the following refrence.
>
>  
>
> http://askubuntu.com/questions/484226/toughbook-cf-c2-touch-screen-not
> -detected
>
>  
>
> Section "InputClass"
>
>         Identifier "Wacom touch options"
>
>         MatchDriver "wacom"
>
>         MatchProduct "Finger"
>
>  
>
>         Option "Gesture" "off"
>
>  
>
>         Option "TopX" "80"
>
>         Option "TopY" "-111"
>
>         Option "BottomX" "11067"
>
>         Option "BottomY" "6170"
>
> EndSection
>

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Linuxwacom-discuss mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-discuss
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Support for Panasonic CF-C2CCAZXCM Touchscreen

Jason Gerecke
Zachary,

Thanks for the listing. I've compared it to the driver and it looks like
you probably want to have your definition of wacom_features_0x117 in
wacom_wac.c use "MTTPC_B" as the final argument instead of "MTTPC":

{ "Wacom ISDv4 117", WACOM_PKGLEN_MTTPC, 26202, 16325, 255, 0, MTTPC_B };

Its difficult to say whether that change alone would be sufficient to
fix your issue. Unload your modified driver and delete the compiled
2.6.30/wacom.ko to ensure it isn't accidentally loaded; recompile with
the change above and then load the new wacom.ko to see if it works any
better.

Jason
---
Now instead of four in the eights place /
you’ve got three, ‘Cause you added one /
(That is to say, eight) to the two, /
But you can’t take seven from three, /
So you look at the sixty-fours....

On 06/07/2016 12:53 PM, Funt, Zachary A. wrote:

> Jason,
>
> I was able to unbind it and run lsusb again. It seems to list the report descriptors this time. Any help is appreciated. I'll get the usbmon data as soon as I can. Thanks.
>
>
> Bus 001 Device 003: ID 056a:0117 Wacom Co., Ltd
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.01
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   idVendor           0x056a Wacom Co., Ltd
>   idProduct          0x0117
>   bcdDevice            0.35
>   iManufacturer           1 Wacom Co.,Ltd.      
>   iProduct                2 MultiTouch Sensor  
>   iSerial                 5        
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           59
>     bNumInterfaces          2
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0xe0
>       Self Powered
>       Remote Wakeup
>     MaxPower               12mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         3 Human Interface Device
>       bInterfaceSubClass      0 No Subclass
>       bInterfaceProtocol      0 None
>       iInterface              3 MultiTouch
>         HID Device Descriptor:
>           bLength                 9
>           bDescriptorType        33
>           bcdHID               1.11
>           bCountryCode            0 Not supported
>           bNumDescriptors         1
>           bDescriptorType        34 Report
>           wDescriptorLength     588
>           Report Descriptor: (length is 588)
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x04 ] 4
>                             Touch Screen
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x0c ] 12
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x54 ] 84
>                             Contact Count
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x22 ] 34
>                             Finger
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Local ): Usage, data= [ 0x42 ] 66
>                             Tip Switch
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x47 ] 71
>                             Confidence
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x05 ] 5
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x51 ] 81
>                             Contact ID
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x11 ] 17
>                             System: SI Linear, Unit: Centimeter
>             Item(Global): Unit Exponent, data= [ 0x0e ] 14
>                             Unit Exponent: 14
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
>             Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
>             Item(Main  ): Input, data= [ 0x42 ] 66
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State Null_State Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
>             Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
>             Item(Main  ): Input, data= [ 0x42 ] 66
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State Null_State Non_Volatile Bitfield
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x00 ] 0
>                             System: None, Unit: (None)
>             Item(Global): Unit Exponent, data= [ 0x00 ] 0
>                             Unit Exponent: 0
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x22 ] 34
>                             Finger
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x42 ] 66
>                             Tip Switch
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x47 ] 71
>                             Confidence
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x05 ] 5
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x51 ] 81
>                             Contact ID
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x11 ] 17
>                             System: SI Linear, Unit: Centimeter
>             Item(Global): Unit Exponent, data= [ 0x0e ] 14
>                             Unit Exponent: 14
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
>             Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
>             Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x00 ] 0
>                             System: None, Unit: (None)
>             Item(Global): Unit Exponent, data= [ 0x00 ] 0
>                             Unit Exponent: 0
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x22 ] 34
>                             Finger
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x42 ] 66
>                             Tip Switch
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x47 ] 71
>                             Confidence
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x05 ] 5
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x51 ] 81
>                             Contact ID
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x11 ] 17
>                             System: SI Linear, Unit: Centimeter
>             Item(Global): Unit Exponent, data= [ 0x0e ] 14
>                             Unit Exponent: 14
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
>             Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
>             Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x00 ] 0
>                             System: None, Unit: (None)
>             Item(Global): Unit Exponent, data= [ 0x00 ] 0
>                             Unit Exponent: 0
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x22 ] 34
>                             Finger
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x42 ] 66
>                             Tip Switch
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x47 ] 71
>                             Confidence
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x05 ] 5
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x51 ] 81
>                             Contact ID
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x11 ] 17
>                             System: SI Linear, Unit: Centimeter
>             Item(Global): Unit Exponent, data= [ 0x0e ] 14
>                             Unit Exponent: 14
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
>             Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
>             Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x00 ] 0
>                             System: None, Unit: (None)
>             Item(Global): Unit Exponent, data= [ 0x00 ] 0
>                             Unit Exponent: 0
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x22 ] 34
>                             Finger
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x42 ] 66
>                             Tip Switch
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x47 ] 71
>                             Confidence
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x05 ] 5
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x51 ] 81
>                             Contact ID
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x11 ] 17
>                             System: SI Linear, Unit: Centimeter
>             Item(Global): Unit Exponent, data= [ 0x0e ] 14
>                             Unit Exponent: 14
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
>             Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
>             Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x00 ] 0
>                             System: None, Unit: (None)
>             Item(Global): Unit Exponent, data= [ 0x00 ] 0
>                             Unit Exponent: 0
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Global): Logical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535
>             Item(Local ): Usage, data= [ 0x56 ] 86
>                             (null)
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x55 ] 85
>                             Maximum Contact Number
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x0a ] 10
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Local ): Usage, data= [ 0xc5 ] 197
>                             (null)
>             Item(Global): Report Count, data= [ 0x00 0x01 ] 256
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x0e ] 14
>                             (null)
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x0e ] 14
>             Item(Local ): Usage, data= [ 0x23 ] 35
>                             (null)
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Local ): Usage, data= [ 0x52 ] 82
>                             Input Mode
>             Item(Local ): Usage, data= [ 0x53 ] 83
>                             Device Index
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0x0a ] 10
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Global): Report Count, data= [ 0x02 ] 2
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x09 0xff ] 65289
>                             (null)
>             Item(Local ): Usage, data= [ 0x11 ] 17
>                             (null)
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x03 ] 3
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Count, data= [ 0x27 0x00 ] 39
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Global): Report ID, data= [ 0x03 ] 3
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x03 ] 3
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x09 ] 9
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x3f ] 63
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x02 ] 2
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x04 ] 4
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x0f ] 15
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x07 ] 7
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x07 0x02 ] 519
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x08 ] 8
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x87 0x00 ] 135
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x0d ] 13
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x03 ] 3
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x02 ] 2
>                             Mouse
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x01 ] 1
>             Item(Local ): Usage, data= [ 0x01 ] 1
>                             Pointer
>             Item(Main  ): Collection, data= [ 0x00 ] 0
>                             Physical
>             Item(Global): Usage Page, data= [ 0x09 ] 9
>                             Buttons
>             Item(Local ): Usage Minimum, data= [ 0x01 ] 1
>                             Button 1 (Primary)
>             Item(Local ): Usage Maximum, data= [ 0x02 ] 2
>                             Button 2 (Secondary)
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Global): Report Count, data= [ 0x02 ] 2
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x06 ] 6
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0xff 0x7f ] 32767
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x02 ] 2
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Main  ): End Collection, data=none
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               2
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         3 Human Interface Device
>       bInterfaceSubClass      0 No Subclass
>       bInterfaceProtocol      0 None
>       iInterface              4 Pen
>         HID Device Descriptor:
>           bLength                 9
>           bDescriptorType        33
>           bcdHID               1.11
>           bCountryCode            0 Not supported
>           bNumDescriptors         1
>           bDescriptorType        34 Report
>           wDescriptorLength     127
>          Report Descriptors:
>            ** UNAVAILABLE **
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x83  EP 3 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               2
> Binary Object Store Descriptor:
>   bLength                 5
>   bDescriptorType        15
>   wTotalLength           33
>   bNumDeviceCaps          1
>   ** UNRECOGNIZED:  1c 10 05 00 df 60 dd d8 89 45 c7 4c 9c d2 65 9d 9e 64 8a 9f 00 00 03 06 48 00 04 00
> Device Status:     0x0000
>   (Bus Powered)
>
> Zachary Funt
> Force Projection Sector/KIT
> 240-228-6788 (office)
> 240-381-9031 (cell)
>
> KIT Hotline: x89999
>
>
> -----Original Message-----
> From: Jason Gerecke [mailto:[hidden email]]
> Sent: Monday, June 06, 2016 6:36 PM
> To: Funt, Zachary A.; [hidden email]
> Subject: Re: [Linuxwacom-discuss] Support for Panasonic CF-C2CCAZXCM Touchscreen
>
> Zachary,
>
> Could you please run lsusb again as root so that the report descriptors can be retrieved? The device might be a type other than "MTTPC" (for example, "MTTPC_B") and the descriptor would give us a good idea.
>
> Additionally, it might be useful if you could capture some USB traffic from the device for us to analyze. If you can, after freshly rebooting (so the device works properly) follow the instructions at [1] to record the events and then touch the screen three or four times so that I can see if there's any sort of difference from the first touch and later touches.
>
> [1]: https://www.kernel.org/doc/Documentation/usb/usbmon.txt
>
> Jason
> ---
> Now instead of four in the eights place / you've got three, 'Cause you added one / (That is to say, eight) to the two, / But you can't take seven from three, / So you look at the sixty-fours....
>
> On 06/06/2016 11:12 AM, Funt, Zachary A. wrote:
>> Hello,
>>
>>  
>>
>> I am trying to get support for a touchscreen included in a Panasonic
>> CF-C2 (CF-C2CCAZXCM). After some research and the changes below, the
>> initial touch seems to work as expected. However, subsequent touches
>> don't seem to release the left mouse click. Is this expected behavior?
>> Have I missed any changes below that should be made to add a new device?
>>
>>  
>>
>>  
>>
>>  
>>
>> The output of lsusb  -vvv shows the following information.
>>
>>  
>>
>> Bus 002 Device 003: ID 056a:0117 Wacom Co., Ltd
>>
>> Device Descriptor:
>>
>>   bLength                18
>>
>>   bDescriptorType         1
>>
>>   bcdUSB               2.01
>>
>>   bDeviceClass            0 (Defined at Interface level)
>>
>>   bDeviceSubClass         0
>>
>>   bDeviceProtocol         0
>>
>>   bMaxPacketSize0        64
>>
>>   idVendor           0x056a Wacom Co., Ltd
>>
>>   idProduct          0x0117
>>
>>   bcdDevice            0.35
>>
>>   iManufacturer           1 Wacom Co.,Ltd.    
>>
>>   iProduct                2 MultiTouch Sensor
>>
>>   iSerial                 5        
>>
>>   bNumConfigurations      1
>>
>>   Configuration Descriptor:
>>
>>     bLength                 9
>>
>>     bDescriptorType         2
>>
>>     wTotalLength           59
>>
>>     bNumInterfaces          2
>>
>>     bConfigurationValue     1
>>
>>     iConfiguration          0
>>
>>     bmAttributes         0xe0
>>
>>       Self Powered
>>
>>       Remote Wakeup
>>
>>     MaxPower               12mA
>>
>>     Interface Descriptor:
>>
>>       bLength                 9
>>
>>       bDescriptorType         4
>>
>>       bInterfaceNumber        0
>>
>>       bAlternateSetting       0
>>
>>       bNumEndpoints           1
>>
>>       bInterfaceClass         3 Human Interface Device
>>
>>       bInterfaceSubClass      0 No Subclass
>>
>>       bInterfaceProtocol      0 None
>>
>>       iInterface              3 MultiTouch
>>
>>         HID Device Descriptor:
>>
>>           bLength                 9
>>
>>           bDescriptorType        33
>>
>>           bcdHID               1.11
>>
>>           bCountryCode            0 Not supported
>>
>>           bNumDescriptors         1
>>
>>           bDescriptorType        34 Report
>>
>>           wDescriptorLength     588
>>
>>          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     0x0040  1x 64 bytes
>>
>>         bInterval               2
>>
>>     Interface Descriptor:
>>
>>       bLength                 9
>>
>>       bDescriptorType         4
>>
>>       bInterfaceNumber        1
>>
>>       bAlternateSetting       0
>>
>>       bNumEndpoints           1
>>
>>       bInterfaceClass         3 Human Interface Device
>>
>>       bInterfaceSubClass      0 No Subclass
>>
>>       bInterfaceProtocol      0 None
>>
>>       iInterface              4 Pen
>>
>>         HID Device Descriptor:
>>
>>           bLength                 9
>>
>>           bDescriptorType        33
>>
>>           bcdHID               1.11
>>
>>           bCountryCode            0 Not supported
>>
>>           bNumDescriptors         1
>>
>>           bDescriptorType        34 Report
>>
>>           wDescriptorLength     127
>>
>>          Report Descriptors:
>>
>>            ** UNAVAILABLE **
>>
>>       Endpoint Descriptor:
>>
>>         bLength                 7
>>
>>         bDescriptorType         5
>>
>>         bEndpointAddress     0x83  EP 3 IN
>>
>>         bmAttributes            3
>>
>>           Transfer Type            Interrupt
>>
>>           Synch Type               None
>>
>>           Usage Type               Data
>>
>>         wMaxPacketSize     0x0040  1x 64 bytes
>>
>>         bInterval               2
>>
>> Device Status:     0x0000
>>
>>   (Bus Powered)
>>
>>  
>>
>>  
>>
>>  
>>
>> I've downloaded the input-wacom-0.31.0.tar.bz2 package, extracted,
>> modified 2.6.30/wacom_wac.c (uname -r is 2.6.32-573.8.1.el6.x86_64),
>> and added the following prior to compiling and loading.
>>
>>  
>>
>> @2154
>>
>> static const struct wacom_features wacom_features_0x117 =
>>
>>        { "Wacom ISDv4 117",       WACOM_PKGLEN_MTTPC,  26202, 16325,
>> 255,  0,  MTTPC };
>>
>> @2292
>>
>>                 { USB_DEVICE_WACOM(0x117) },
>>
>>  
>>
>>  
>>
>>  
>>
>> I've also downloaded xf86-input-wacom-0.33.0.tar.bz2, extracted,
>> modifed the following before compiling and loading.
>>
>>  
>>
>> src/wcmUSB.c@307
>>
>>                 { WACOM_VENDOR_ID, 0x117,100000, 100000, &usbTabletPC,  
>> "TabletPC 0x117"             },
>>
>> src/wcmValidateDevice.c@286
>>
>>                                 case 0x117: /* TPC with 1FGT */
>>
>>  
>>
>>  
>>
>> I've also created a /usr/share/X11/xorg.conf.d/50-wacom.conf as
>> explained in the following refrence.
>>
>>  
>>
>> http://askubuntu.com/questions/484226/toughbook-cf-c2-touch-screen-not
>> -detected
>>
>>  
>>
>> Section "InputClass"
>>
>>         Identifier "Wacom touch options"
>>
>>         MatchDriver "wacom"
>>
>>         MatchProduct "Finger"
>>
>>  
>>
>>         Option "Gesture" "off"
>>
>>  
>>
>>         Option "TopX" "80"
>>
>>         Option "TopY" "-111"
>>
>>         Option "BottomX" "11067"
>>
>>         Option "BottomY" "6170"
>>
>> EndSection
>>

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Linuxwacom-discuss mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-discuss
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Support for Panasonic CF-C2CCAZXCM Touchscreen

Funt, Zachary A.
Jason,

I appreciate the support. As requested, I  removed the 2.6.30/wacom.ko, modified the 2.6.30/wacom_wac.c, make, make install, rebooted. However, it is showing a similar behavior as before. I may have incorrectly described the initial touch as "working as expected". Previously, the mouse was merely tracking the finger. Now, the initial touch is only moving the mouse when I lift the finger from the initial touch. Then, each consecutive touch is holding the left mouse click and tracking my finger. I can reset this behavior by moving the synaptic touchpad of the laptop, moving an external mouse, restarting X, sliding the finger off the screen, or touching with another finger.

You had previously asked for some usbmon debug output. Unfortunately, the file sizes seem large for an email blast. I've uploaded them to Dropbox.


Here is the initial touch after a reboot. https://dl.dropboxusercontent.com/u/15295641/1.mon.out

The second. https://dl.dropboxusercontent.com/u/15295641/2.mon.out

And More. https://dl.dropboxusercontent.com/u/15295641/3.mon.out


- Zach


-----Original Message-----
From: Jason Gerecke [mailto:[hidden email]]
Sent: Friday, June 10, 2016 6:29 PM
To: Funt, Zachary A.; [hidden email]
Subject: Re: [Linuxwacom-discuss] Support for Panasonic CF-C2CCAZXCM Touchscreen

Zachary,

Thanks for the listing. I've compared it to the driver and it looks like you probably want to have your definition of wacom_features_0x117 in wacom_wac.c use "MTTPC_B" as the final argument instead of "MTTPC":

{ "Wacom ISDv4 117", WACOM_PKGLEN_MTTPC, 26202, 16325, 255, 0, MTTPC_B };

Its difficult to say whether that change alone would be sufficient to fix your issue. Unload your modified driver and delete the compiled 2.6.30/wacom.ko to ensure it isn't accidentally loaded; recompile with the change above and then load the new wacom.ko to see if it works any better.

Jason
---
Now instead of four in the eights place / you've got three, 'Cause you added one / (That is to say, eight) to the two, / But you can't take seven from three, / So you look at the sixty-fours....

On 06/07/2016 12:53 PM, Funt, Zachary A. wrote:

> Jason,
>
> I was able to unbind it and run lsusb again. It seems to list the report descriptors this time. Any help is appreciated. I'll get the usbmon data as soon as I can. Thanks.
>
>
> Bus 001 Device 003: ID 056a:0117 Wacom Co., Ltd Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.01
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   idVendor           0x056a Wacom Co., Ltd
>   idProduct          0x0117
>   bcdDevice            0.35
>   iManufacturer           1 Wacom Co.,Ltd.      
>   iProduct                2 MultiTouch Sensor  
>   iSerial                 5        
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           59
>     bNumInterfaces          2
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0xe0
>       Self Powered
>       Remote Wakeup
>     MaxPower               12mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         3 Human Interface Device
>       bInterfaceSubClass      0 No Subclass
>       bInterfaceProtocol      0 None
>       iInterface              3 MultiTouch
>         HID Device Descriptor:
>           bLength                 9
>           bDescriptorType        33
>           bcdHID               1.11
>           bCountryCode            0 Not supported
>           bNumDescriptors         1
>           bDescriptorType        34 Report
>           wDescriptorLength     588
>           Report Descriptor: (length is 588)
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x04 ] 4
>                             Touch Screen
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x0c ] 12
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x54 ] 84
>                             Contact Count
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x22 ] 34
>                             Finger
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Local ): Usage, data= [ 0x42 ] 66
>                             Tip Switch
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x47 ] 71
>                             Confidence
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x05 ] 5
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x51 ] 81
>                             Contact ID
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x11 ] 17
>                             System: SI Linear, Unit: Centimeter
>             Item(Global): Unit Exponent, data= [ 0x0e ] 14
>                             Unit Exponent: 14
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
>             Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
>             Item(Main  ): Input, data= [ 0x42 ] 66
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State Null_State Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
>             Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
>             Item(Main  ): Input, data= [ 0x42 ] 66
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State Null_State Non_Volatile Bitfield
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x00 ] 0
>                             System: None, Unit: (None)
>             Item(Global): Unit Exponent, data= [ 0x00 ] 0
>                             Unit Exponent: 0
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x22 ] 34
>                             Finger
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x42 ] 66
>                             Tip Switch
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x47 ] 71
>                             Confidence
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x05 ] 5
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x51 ] 81
>                             Contact ID
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x11 ] 17
>                             System: SI Linear, Unit: Centimeter
>             Item(Global): Unit Exponent, data= [ 0x0e ] 14
>                             Unit Exponent: 14
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
>             Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
>             Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x00 ] 0
>                             System: None, Unit: (None)
>             Item(Global): Unit Exponent, data= [ 0x00 ] 0
>                             Unit Exponent: 0
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x22 ] 34
>                             Finger
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x42 ] 66
>                             Tip Switch
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x47 ] 71
>                             Confidence
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x05 ] 5
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x51 ] 81
>                             Contact ID
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x11 ] 17
>                             System: SI Linear, Unit: Centimeter
>             Item(Global): Unit Exponent, data= [ 0x0e ] 14
>                             Unit Exponent: 14
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
>             Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
>             Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x00 ] 0
>                             System: None, Unit: (None)
>             Item(Global): Unit Exponent, data= [ 0x00 ] 0
>                             Unit Exponent: 0
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x22 ] 34
>                             Finger
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x42 ] 66
>                             Tip Switch
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x47 ] 71
>                             Confidence
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x05 ] 5
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x51 ] 81
>                             Contact ID
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x11 ] 17
>                             System: SI Linear, Unit: Centimeter
>             Item(Global): Unit Exponent, data= [ 0x0e ] 14
>                             Unit Exponent: 14
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
>             Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
>             Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x00 ] 0
>                             System: None, Unit: (None)
>             Item(Global): Unit Exponent, data= [ 0x00 ] 0
>                             Unit Exponent: 0
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x22 ] 34
>                             Finger
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x42 ] 66
>                             Tip Switch
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x47 ] 71
>                             Confidence
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x05 ] 5
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x51 ] 81
>                             Contact ID
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x11 ] 17
>                             System: SI Linear, Unit: Centimeter
>             Item(Global): Unit Exponent, data= [ 0x0e ] 14
>                             Unit Exponent: 14
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Global): Logical Maximum, data= [ 0x10 0x2b ] 11024
>             Item(Global): Physical Maximum, data= [ 0xc4 0x0a ] 2756
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0x34 0x18 ] 6196
>             Item(Global): Physical Maximum, data= [ 0x0d 0x06 ] 1549
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Unit, data= [ 0x00 ] 0
>                             System: None, Unit: (None)
>             Item(Global): Unit Exponent, data= [ 0x00 ] 0
>                             Unit Exponent: 0
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Global): Logical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535
>             Item(Local ): Usage, data= [ 0x56 ] 86
>                             (null)
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Local ): Usage, data= [ 0x55 ] 85
>                             Maximum Contact Number
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x0a ] 10
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Local ): Usage, data= [ 0xc5 ] 197
>                             (null)
>             Item(Global): Report Count, data= [ 0x00 0x01 ] 256
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0d ] 13
>                             Digitizer
>             Item(Local ): Usage, data= [ 0x0e ] 14
>                             (null)
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x0e ] 14
>             Item(Local ): Usage, data= [ 0x23 ] 35
>                             (null)
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Local ): Usage, data= [ 0x52 ] 82
>                             Input Mode
>             Item(Local ): Usage, data= [ 0x53 ] 83
>                             Device Index
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0x0a ] 10
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Global): Report Count, data= [ 0x02 ] 2
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x09 0xff ] 65289
>                             (null)
>             Item(Local ): Usage, data= [ 0x11 ] 17
>                             (null)
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x03 ] 3
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Count, data= [ 0x27 0x00 ] 39
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Global): Report ID, data= [ 0x03 ] 3
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x03 ] 3
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x09 ] 9
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x3f ] 63
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x02 ] 2
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x04 ] 4
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x0f ] 15
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x07 ] 7
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x07 0x02 ] 519
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x08 ] 8
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x87 0x00 ] 135
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report ID, data= [ 0x0d ] 13
>             Item(Local ): Usage, data= [ 0x00 ] 0
>                             (null)
>             Item(Global): Report Count, data= [ 0x03 ] 3
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x02 ] 2
>                             Mouse
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x01 ] 1
>             Item(Local ): Usage, data= [ 0x01 ] 1
>                             Pointer
>             Item(Main  ): Collection, data= [ 0x00 ] 0
>                             Physical
>             Item(Global): Usage Page, data= [ 0x09 ] 9
>                             Buttons
>             Item(Local ): Usage Minimum, data= [ 0x01 ] 1
>                             Button 1 (Primary)
>             Item(Local ): Usage Maximum, data= [ 0x02 ] 2
>                             Button 2 (Secondary)
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Global): Report Count, data= [ 0x02 ] 2
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x06 ] 6
>             Item(Main  ): Input, data= [ 0x03 ] 3
>                             Constant Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x30 ] 48
>                             Direction-X
>             Item(Local ): Usage, data= [ 0x31 ] 49
>                             Direction-Y
>             Item(Global): Logical Maximum, data= [ 0xff 0x7f ] 32767
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x02 ] 2
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Main  ): End Collection, data=none
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               2
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         3 Human Interface Device
>       bInterfaceSubClass      0 No Subclass
>       bInterfaceProtocol      0 None
>       iInterface              4 Pen
>         HID Device Descriptor:
>           bLength                 9
>           bDescriptorType        33
>           bcdHID               1.11
>           bCountryCode            0 Not supported
>           bNumDescriptors         1
>           bDescriptorType        34 Report
>           wDescriptorLength     127
>          Report Descriptors:
>            ** UNAVAILABLE **
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x83  EP 3 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               2
> Binary Object Store Descriptor:
>   bLength                 5
>   bDescriptorType        15
>   wTotalLength           33
>   bNumDeviceCaps          1
>   ** UNRECOGNIZED:  1c 10 05 00 df 60 dd d8 89 45 c7 4c 9c d2 65 9d 9e 64 8a 9f 00 00 03 06 48 00 04 00
> Device Status:     0x0000
>   (Bus Powered)
>
>
>
> -----Original Message-----
> From: Jason Gerecke [mailto:[hidden email]]
> Sent: Monday, June 06, 2016 6:36 PM
> To: Funt, Zachary A.; [hidden email]
> Subject: Re: [Linuxwacom-discuss] Support for Panasonic CF-C2CCAZXCM
> Touchscreen
>
> Zachary,
>
> Could you please run lsusb again as root so that the report descriptors can be retrieved? The device might be a type other than "MTTPC" (for example, "MTTPC_B") and the descriptor would give us a good idea.
>
> Additionally, it might be useful if you could capture some USB traffic from the device for us to analyze. If you can, after freshly rebooting (so the device works properly) follow the instructions at [1] to record the events and then touch the screen three or four times so that I can see if there's any sort of difference from the first touch and later touches.
>
> [1]: https://www.kernel.org/doc/Documentation/usb/usbmon.txt
>
> Jason
> ---
> Now instead of four in the eights place / you've got three, 'Cause you added one / (That is to say, eight) to the two, / But you can't take seven from three, / So you look at the sixty-fours....
>
> On 06/06/2016 11:12 AM, Funt, Zachary A. wrote:
>> Hello,
>>
>>  
>>
>> I am trying to get support for a touchscreen included in a Panasonic
>> CF-C2 (CF-C2CCAZXCM). After some research and the changes below, the
>> initial touch seems to work as expected. However, subsequent touches
>> don't seem to release the left mouse click. Is this expected behavior?
>> Have I missed any changes below that should be made to add a new device?
>>
>>  
>>
>>  
>>
>>  
>>
>> The output of lsusb  -vvv shows the following information.
>>
>>  
>>
>> Bus 002 Device 003: ID 056a:0117 Wacom Co., Ltd
>>
>> Device Descriptor:
>>
>>   bLength                18
>>
>>   bDescriptorType         1
>>
>>   bcdUSB               2.01
>>
>>   bDeviceClass            0 (Defined at Interface level)
>>
>>   bDeviceSubClass         0
>>
>>   bDeviceProtocol         0
>>
>>   bMaxPacketSize0        64
>>
>>   idVendor           0x056a Wacom Co., Ltd
>>
>>   idProduct          0x0117
>>
>>   bcdDevice            0.35
>>
>>   iManufacturer           1 Wacom Co.,Ltd.    
>>
>>   iProduct                2 MultiTouch Sensor
>>
>>   iSerial                 5        
>>
>>   bNumConfigurations      1
>>
>>   Configuration Descriptor:
>>
>>     bLength                 9
>>
>>     bDescriptorType         2
>>
>>     wTotalLength           59
>>
>>     bNumInterfaces          2
>>
>>     bConfigurationValue     1
>>
>>     iConfiguration          0
>>
>>     bmAttributes         0xe0
>>
>>       Self Powered
>>
>>       Remote Wakeup
>>
>>     MaxPower               12mA
>>
>>     Interface Descriptor:
>>
>>       bLength                 9
>>
>>       bDescriptorType         4
>>
>>       bInterfaceNumber        0
>>
>>       bAlternateSetting       0
>>
>>       bNumEndpoints           1
>>
>>       bInterfaceClass         3 Human Interface Device
>>
>>       bInterfaceSubClass      0 No Subclass
>>
>>       bInterfaceProtocol      0 None
>>
>>       iInterface              3 MultiTouch
>>
>>         HID Device Descriptor:
>>
>>           bLength                 9
>>
>>           bDescriptorType        33
>>
>>           bcdHID               1.11
>>
>>           bCountryCode            0 Not supported
>>
>>           bNumDescriptors         1
>>
>>           bDescriptorType        34 Report
>>
>>           wDescriptorLength     588
>>
>>          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     0x0040  1x 64 bytes
>>
>>         bInterval               2
>>
>>     Interface Descriptor:
>>
>>       bLength                 9
>>
>>       bDescriptorType         4
>>
>>       bInterfaceNumber        1
>>
>>       bAlternateSetting       0
>>
>>       bNumEndpoints           1
>>
>>       bInterfaceClass         3 Human Interface Device
>>
>>       bInterfaceSubClass      0 No Subclass
>>
>>       bInterfaceProtocol      0 None
>>
>>       iInterface              4 Pen
>>
>>         HID Device Descriptor:
>>
>>           bLength                 9
>>
>>           bDescriptorType        33
>>
>>           bcdHID               1.11
>>
>>           bCountryCode            0 Not supported
>>
>>           bNumDescriptors         1
>>
>>           bDescriptorType        34 Report
>>
>>           wDescriptorLength     127
>>
>>          Report Descriptors:
>>
>>            ** UNAVAILABLE **
>>
>>       Endpoint Descriptor:
>>
>>         bLength                 7
>>
>>         bDescriptorType         5
>>
>>         bEndpointAddress     0x83  EP 3 IN
>>
>>         bmAttributes            3
>>
>>           Transfer Type            Interrupt
>>
>>           Synch Type               None
>>
>>           Usage Type               Data
>>
>>         wMaxPacketSize     0x0040  1x 64 bytes
>>
>>         bInterval               2
>>
>> Device Status:     0x0000
>>
>>   (Bus Powered)
>>
>>  
>>
>>  
>>
>>  
>>
>> I've downloaded the input-wacom-0.31.0.tar.bz2 package, extracted,
>> modified 2.6.30/wacom_wac.c (uname -r is 2.6.32-573.8.1.el6.x86_64),
>> and added the following prior to compiling and loading.
>>
>>  
>>
>> @2154
>>
>> static const struct wacom_features wacom_features_0x117 =
>>
>>        { "Wacom ISDv4 117",       WACOM_PKGLEN_MTTPC,  26202, 16325,
>> 255,  0,  MTTPC };
>>
>> @2292
>>
>>                 { USB_DEVICE_WACOM(0x117) },
>>
>>  
>>
>>  
>>
>>  
>>
>> I've also downloaded xf86-input-wacom-0.33.0.tar.bz2, extracted,
>> modifed the following before compiling and loading.
>>
>>  
>>
>> src/wcmUSB.c@307
>>
>>                 { WACOM_VENDOR_ID, 0x117,100000, 100000, &usbTabletPC,  
>> "TabletPC 0x117"             },
>>
>> src/wcmValidateDevice.c@286
>>
>>                                 case 0x117: /* TPC with 1FGT */
>>
>>  
>>
>>  
>>
>> I've also created a /usr/share/X11/xorg.conf.d/50-wacom.conf as
>> explained in the following refrence.
>>
>>  
>>
>> http://askubuntu.com/questions/484226/toughbook-cf-c2-touch-screen-no
>> t
>> -detected
>>
>>  
>>
>> Section "InputClass"
>>
>>         Identifier "Wacom touch options"
>>
>>         MatchDriver "wacom"
>>
>>         MatchProduct "Finger"
>>
>>  
>>
>>         Option "Gesture" "off"
>>
>>  
>>
>>         Option "TopX" "80"
>>
>>         Option "TopY" "-111"
>>
>>         Option "BottomX" "11067"
>>
>>         Option "BottomY" "6170"
>>
>> EndSection
>>

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://pubads.g.doubleclick.net/gampad/clk?id=1444514421&iu=/41014381
_______________________________________________
Linuxwacom-discuss mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-discuss
Loading...