Hi Ben,
In answer to your logging request, this is the output after running
echo 'file drivers/hid/usbhid/hid-core.c +p' | sudo tee /sys/kernel/debug/dynamic_debug/control
and plugging in the device (with the debian kernel, not my patched one)
[ 371.897694] usb 1-2: new full-speed USB device number 8 using xhci_hcd
[ 372.036133] usb 1-2: New USB device found, idVendor=03c3, idProduct=1f01, bcdDevice= 0.00
[ 372.036145] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 372.036149] usb 1-2: Product: ZWO EFW
[ 372.036152] usb 1-2: Manufacturer: ZW0
[ 372.043375] drivers/hid/usbhid/hid-core.c: HID probe called for ifnum 0
[ 372.043404] drivers/hid/usbhid/hid-core.c: hid descriptor invalid, bLen=9 bNum=2
[ 372.043409] usbhid 1-2:1.0: can't add hid device: -22
[ 372.043422] usbhid 1-2:1.0: probe with driver usbhid failed with error -22
Also here is a more detailed lsusb output
Bus 001 Device 008: ID 03c3:1f01 ZWO ZWO EFW
Negotiated speed: Full Speed (12Mbps)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 [unknown]
bDeviceSubClass 0 [unknown]
bDeviceProtocol 0
bMaxPacketSize0 16
idVendor 0x03c3 ZWO
idProduct 0x1f01 ZWO EFW
bcdDevice 0.00
iManufacturer 1 ZW0
iProduct 2 ZWO EFW
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0029
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 64mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 [unknown]
bInterfaceProtocol 0
iInterface 0
Warning: Descriptor too short
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.01
bCountryCode 0 Not supported
bNumDescriptors 2
bDescriptorType 34 (null)
wDescriptorLength 68
bDescriptorType 0 (null)
wDescriptorLength 0
Report Descriptor: (length is 68)
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): (null), data= [ 0x01 ] 1
(null)
Item(Main ): (null), data= [ 0x01 ] 1
Application
Item(Global): (null), data= [ 0x01 ] 1
Item(Global): (null), data= [ 0x0f ] 15
Item(Global): (null), data= [ 0x08 ] 8
Item(Global): (null), data= [ 0xff 0x00 ] 255
Item(Global): (null), data= [ 0x00 ] 0
Item(Local ): (null), data= [ 0x01 ] 1
(null)
Item(Main ): (null), data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): (null), data= [ 0x02 ] 2
Item(Global): (null), data= [ 0x0f ] 15
Item(Global): (null), data= [ 0x08 ] 8
Item(Global): (null), data= [ 0xff 0x00 ] 255
Item(Global): (null), data= [ 0x00 ] 0
Item(Local ): (null), data= [ 0x01 ] 1
(null)
Item(Main ): (null), data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): (null), data= [ 0x03 ] 3
Item(Global): (null), data= [ 0x0f ] 15
Item(Global): (null), data= [ 0x08 ] 8
Item(Global): (null), data= [ 0xff 0x00 ] 255
Item(Global): (null), data= [ 0x00 ] 0
Item(Local ): (null), data= [ 0x01 ] 1
(null)
Item(Main ): (null), data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): (null), data= [ 0x04 ] 4
Item(Global): (null), data= [ 0x0f ] 15
Item(Global): (null), data= [ 0x08 ] 8
Item(Global): (null), data= [ 0xff 0x00 ] 255
Item(Global): (null), data= [ 0x00 ] 0
Item(Local ): (null), data= [ 0x01 ] 1
(null)
Item(Main ): (null), data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): (null), data=""> Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 10
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)