> Date: Mon, 9 May 2022 17:44:29 +0100
> From: Stuart Henderson <s...@spacehopper.org>
> 
> I have a USB combi keyboard/trackpad thing which is triggering "bad
> repid 33" frequently while attached (between a couple of times a minute,
> and once every few minutes). It does work but it's annoying.
> 
> Presumably this is because it has non-contiguous report IDs?

That shouldn't be a problem.

> Anyone have an idea how to handle it?

No.  But showing dmesg output might help.

> Bus 000 Device 002: ID 045e:0800 Microsoft Corp. 
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0 
>   bDeviceProtocol         0 
>   bMaxPacketSize0        64
>   idVendor           0x045e Microsoft Corp.
>   idProduct          0x0800 
>   bcdDevice            9.44
>   iManufacturer           1 Microsoft
>   iProduct                2 Microsoft? Nano Transceiver v2.0
>   iSerial                 0 
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           84
>     bNumInterfaces          3
>     bConfigurationValue     1
>     iConfiguration          0 
>     bmAttributes         0xa0
>       (Bus Powered)
>       Remote Wakeup
>     MaxPower              100mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         3 Human Interface Device
>       bInterfaceSubClass      1 Boot Interface Subclass
>       bInterfaceProtocol      1 Keyboard
>       iInterface              0 
>         HID Device Descriptor:
>           bLength                 9
>           bDescriptorType        33
>           bcdHID               1.11
>           bCountryCode            0 Not supported
>           bNumDescriptors         1
>           bDescriptorType        34 Report
>           wDescriptorLength      57
>           Report Descriptor: (length is 57)
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x06 ] 6
>                             Keyboard
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Usage Page, data= [ 0x08 ] 8
>                             LEDs
>             Item(Local ): Usage Minimum, data= [ 0x01 ] 1
>                             NumLock
>             Item(Local ): Usage Maximum, data= [ 0x03 ] 3
>                             Scroll Lock
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Report Count, data= [ 0x03 ] 3
>             Item(Main  ): Output, 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  ): Output, data= [ 0x01 ] 1
>                             Constant Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Usage Page, data= [ 0x07 ] 7
>                             Keyboard
>             Item(Local ): Usage Minimum, data= [ 0xe0 0x00 ] 224
>                             Control Left
>             Item(Local ): Usage Maximum, data= [ 0xe7 0x00 ] 231
>                             GUI Right
>             Item(Global): Report Count, data= [ 0x08 ] 8
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x01 ] 1
>                             Constant Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Local ): Usage Minimum, data= [ 0x00 ] 0
>                             No Event
>             Item(Local ): Usage Maximum, data= [ 0x91 0x00 ] 145
>                             LANG 2 (Hanja Conversion, Korea)
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Count, data= [ 0x06 ] 6
>             Item(Main  ): Input, data= [ 0x00 ] 0
>                             Data Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             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     0x0008  1x 8 bytes
>         bInterval               4
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         3 Human Interface Device
>       bInterfaceSubClass      1 Boot Interface Subclass
>       bInterfaceProtocol      2 Mouse
>       iInterface              0 
>         HID Device Descriptor:
>           bLength                 9
>           bDescriptorType        33
>           bcdHID               1.11
>           bCountryCode            0 Not supported
>           bNumDescriptors         1
>           bDescriptorType        34 Report
>           wDescriptorLength     223
>           Report Descriptor: (length is 223)
>             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): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x02 ] 2
>                             Mouse
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Report ID, data= [ 0x1a ] 26
>             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= [ 0x05 ] 5
>                             Button 5
>             Item(Global): Report Count, data= [ 0x05 ] 5
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             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(Global): Report Size, data= [ 0x03 ] 3
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x01 ] 1
>                             Constant Array 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): Report Count, data= [ 0x02 ] 2
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Logical Minimum, data= [ 0x01 0x80 ] 32769
>             Item(Global): Logical Maximum, data= [ 0xff 0x7f ] 32767
>             Item(Main  ): Input, data= [ 0x06 ] 6
>                             Data Variable Relative No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Report ID, data= [ 0x12 ] 18
>             Item(Local ): Usage, data= [ 0x48 ] 72
>                             (null)
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x02 ] 2
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Global): Physical Minimum, data= [ 0x01 ] 1
>             Item(Global): Physical Maximum, data= [ 0x10 ] 16
>             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= [ 0x1a ] 26
>             Item(Local ): Usage, data= [ 0x38 ] 56
>                             Wheel
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Logical Minimum, data= [ 0x01 0x80 ] 32769
>             Item(Global): Logical Maximum, data= [ 0xff 0x7f ] 32767
>             Item(Main  ): Input, data= [ 0x06 ] 6
>                             Data Variable Relative No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Report ID, data= [ 0x12 ] 18
>             Item(Local ): Usage, data= [ 0x48 ] 72
>                             (null)
>             Item(Global): Report Size, data= [ 0x02 ] 2
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Global): Physical Minimum, data= [ 0x01 ] 1
>             Item(Global): Physical Maximum, data= [ 0x10 ] 16
>             Item(Main  ): Feature, 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): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Report Size, data= [ 0x04 ] 4
>             Item(Main  ): Feature, data= [ 0x01 ] 1
>                             Constant Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Report ID, data= [ 0x1a ] 26
>             Item(Global): Usage Page, data= [ 0x0c ] 12
>                             Consumer
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Logical Minimum, data= [ 0x01 0x80 ] 32769
>             Item(Global): Logical Maximum, data= [ 0xff 0x7f ] 32767
>             Item(Local ): Usage, data= [ 0x38 0x02 ] 568
>                             AC Pan
>             Item(Main  ): Input, data= [ 0x06 ] 6
>                             Data Variable Relative No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Main  ): End Collection, data=none
>             Item(Main  ): End Collection, data=none
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0c ] 12
>                             Consumer
>             Item(Local ): Usage, data= [ 0x01 ] 1
>                             Consumer Control
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Usage Page, data= [ 0x01 ] 1
>                             Generic Desktop Controls
>             Item(Local ): Usage, data= [ 0x02 ] 2
>                             Mouse
>             Item(Main  ): Collection, data= [ 0x02 ] 2
>                             Logical
>             Item(Global): Report ID, data= [ 0x1f ] 31
>             Item(Global): Usage Page, data= [ 0x0c ] 12
>                             Consumer
>             Item(Local ): Usage, data= [ 0x38 0x02 ] 568
>                             AC Pan
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Logical Minimum, data= [ 0x01 0x80 ] 32769
>             Item(Global): Logical Maximum, data= [ 0xff 0x7f ] 32767
>             Item(Main  ): Input, data= [ 0x06 ] 6
>                             Data Variable Relative No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Report ID, data= [ 0x17 ] 23
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Local ): Usage, data= [ 0x06 0xff ] 65286
>                             (null)
>             Item(Local ): Usage, data= [ 0x0f 0xff ] 65295
>                             (null)
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Global): Physical Minimum, data= [ 0x01 ] 1
>             Item(Global): Physical Maximum, data= [ 0x10 ] 16
>             Item(Global): Report Count, data= [ 0x02 ] 2
>             Item(Global): Report Size, data= [ 0x02 ] 2
>             Item(Main  ): Feature, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Local ): Usage, data= [ 0x04 0xff ] 65284
>                             (null)
>             Item(Global): Physical Minimum, data= [ 0x00 ] 0
>             Item(Global): Physical Maximum, data= [ 0x00 ] 0
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, 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 Size, data= [ 0x03 ] 3
>             Item(Main  ): Feature, data= [ 0x01 ] 1
>                             Constant Array 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     0x82  EP 2 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x000a  1x 10 bytes
>         bInterval               1
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        2
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         3 Human Interface Device
>       bInterfaceSubClass      0 No Subclass
>       bInterfaceProtocol      0 None
>       iInterface              0 
>         HID Device Descriptor:
>           bLength                 9
>           bDescriptorType        33
>           bcdHID               1.11
>           bCountryCode            0 Not supported
>           bNumDescriptors         1
>           bDescriptorType        34 Report
>           wDescriptorLength     319
>           Report Descriptor: (length is 319)
>             Item(Global): Usage Page, data= [ 0x0c ] 12
>                             Consumer
>             Item(Local ): Usage, data= [ 0x01 ] 1
>                             Consumer Control
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x20 ] 32
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Global): Report Count, data= [ 0x12 ] 18
>             Item(Local ): Usage, data= [ 0x0a 0xfa ] 64010
>                             (null)
>             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= [ 0x21 ] 33
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Report Count, data= [ 0x10 ] 16
>             Item(Local ): Usage Minimum, data= [ 0x10 0xfa ] 64016
>                             (null)
>             Item(Local ): Usage Maximum, data= [ 0x1f 0xfa ] 64031
>                             (null)
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Report ID, data= [ 0x28 ] 40
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Local ): Usage Minimum, data= [ 0x10 0xfa ] 64016
>                             (null)
>             Item(Local ): Usage Maximum, data= [ 0x1f 0xfa ] 64031
>                             (null)
>             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= [ 0x22 ] 34
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Global): Report Count, data= [ 0x1a ] 26
>             Item(Local ): Usage, data= [ 0x0a 0xfa ] 64010
>                             (null)
>             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= [ 0x23 ] 35
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Local ): Usage, data= [ 0x0a 0xfa ] 64010
>                             (null)
>             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= [ 0x24 ] 36
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Global): Report Count, data= [ 0x1f ] 31
>             Item(Local ): Usage, data= [ 0x0a 0xfa ] 64010
>                             (null)
>             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= [ 0x25 ] 37
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Local ): Usage, data= [ 0x0a 0xfa ] 64010
>                             (null)
>             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= [ 0x26 ] 38
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Local ): Usage, data= [ 0x0a 0xfa ] 64010
>                             (null)
>             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= [ 0x27 ] 39
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Local ): Usage, data= [ 0x0a 0xfa ] 64010
>                             (null)
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Report ID, data= [ 0x14 ] 20
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0x03 ] 3
>             Item(Global): Report Size, data= [ 0x02 ] 2
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Local ): Usage, data= [ 0x01 0xfe ] 65025
>                             (null)
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Report Size, data= [ 0x06 ] 6
>             Item(Main  ): Input, data= [ 0x01 ] 1
>                             Constant Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Report ID, data= [ 0x04 ] 4
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0x03 ] 3
>             Item(Global): Report Size, data= [ 0x02 ] 2
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Local ): Usage, data= [ 0x01 0xfe ] 65025
>                             (null)
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Report Size, data= [ 0x06 ] 6
>             Item(Main  ): Input, data= [ 0x01 ] 1
>                             Constant Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Main  ): End Collection, data=none
>             Item(Global): Usage Page, data= [ 0x0c ] 12
>                             Consumer
>             Item(Local ): Usage, data= [ 0x01 ] 1
>                             Consumer Control
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x07 ] 7
>             Item(Global): Usage Page, data= [ 0x0c ] 12
>                             Consumer
>             Item(Local ): Usage Minimum, data= [ 0x00 ] 0
>                             Unassigned
>             Item(Local ): Usage Maximum, data= [ 0xff 0x03 ] 1023
>                             (null)
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x10 ] 16
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0xff 0x03 ] 1023
>             Item(Main  ): Input, data= [ 0x00 ] 0
>                             Data Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Usage Page, data= [ 0x07 ] 7
>                             Keyboard
>             Item(Local ): Usage Minimum, data= [ 0x00 ] 0
>                             No Event
>             Item(Local ): Usage Maximum, data= [ 0xff ] 255
>                             (null)
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Main  ): Input, data= [ 0x00 ] 0
>                             Data Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Main  ): Input, data= [ 0x01 ] 1
>                             Constant Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
>                             (null)
>             Item(Local ): Usage, data= [ 0x03 0xfe ] 65027
>                             (null)
>             Item(Local ): Usage, data= [ 0x04 0xfe ] 65028
>                             (null)
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Global): Report Count, data= [ 0x02 ] 2
>             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(Local ): Usage, data= [ 0x05 0xff ] 65285
>                             (null)
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x05 ] 5
>             Item(Global): Logical Maximum, data= [ 0x1f ] 31
>             Item(Main  ): Input, data= [ 0x02 ] 2
>                             Data Variable Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Global): Report Size, data= [ 0x01 ] 1
>             Item(Main  ): Input, data= [ 0x01 ] 1
>                             Constant Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Local ): Usage Minimum, data= [ 0x01 0xfd ] 64769
>                             (null)
>             Item(Local ): Usage Maximum, data= [ 0xff 0xfd ] 65023
>                             (null)
>             Item(Global): Logical Minimum, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Main  ): Input, data= [ 0x00 ] 0
>                             Data Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Local ): Usage, data= [ 0x02 0xff ] 65282
>                             (null)
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             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): Usage Page, data= [ 0xbc 0xff ] 65468
>                             (null)
>             Item(Local ): Usage, data= [ 0x88 ] 136
>                             (null)
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x08 ] 8
>             Item(Local ): Usage Minimum, data= [ 0x01 ] 1
>                             (null)
>             Item(Local ): Usage Maximum, data= [ 0xff ] 255
>                             (null)
>             Item(Global): Logical Minimum, data= [ 0x01 ] 1
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Global): Report Count, data= [ 0x01 ] 1
>             Item(Global): Report Size, data= [ 0x08 ] 8
>             Item(Main  ): Input, data= [ 0x00 ] 0
>                             Data Array 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= [ 0x80 ] 128
>                             System Control
>             Item(Main  ): Collection, data= [ 0x01 ] 1
>                             Application
>             Item(Global): Report ID, data= [ 0x03 ] 3
>             Item(Local ): Usage Minimum, data= [ 0x00 ] 0
>                             Undefined
>             Item(Local ): Usage Maximum, data= [ 0xff ] 255
>                             (null)
>             Item(Global): Logical Minimum, data= [ 0x00 ] 0
>             Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>             Item(Main  ): Input, data= [ 0x00 ] 0
>                             Data Array Absolute No_Wrap Linear
>                             Preferred_State No_Null_Position Non_Volatile 
> Bitfield
>             Item(Main  ): End Collection, data=none
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x83  EP 3 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0020  1x 32 bytes
>         bInterval               1
> Device Status:     0x0000
>   (Bus Powered)
> 
> 

Reply via email to