Bug 208357 - snd-usb-audio broken for 06f8:b000 since 4.9.189
Summary: snd-usb-audio broken for 06f8:b000 since 4.9.189
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: USB (show other bugs)
Hardware: All Linux
: P1 blocking
Assignee: Default virtual assignee for Drivers/USB
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-28 20:22 UTC by Alexander Chalikiopoulos
Modified: 2020-11-19 17:03 UTC (History)
2 users (show)

See Also:
Kernel Version: 4.9.189 and onwards
Subsystem:
Regression: No
Bisected commit-id:


Attachments
patch for Hercules audio card (1011 bytes, patch)
2020-07-10 16:08 UTC, Alan Stern
Details | Diff

Description Alexander Chalikiopoulos 2020-06-28 20:22:35 UTC
Some time ago I tried to use a usb-audio card on my new system and encountered some odd behaviour. The device appears in aplay -L but not in aplay -l. The controls are available in amixer/alsamixer, but changing settings does not have any effects. The device does not seem to be available to any other programs on the system.

With some help from folks in #debian-next I managed to do a git bisect of
the kernel and found the culprit.

This is the commit that breaks this device for me:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=ecaaef6b50a7873d495f9cc69fc4c4edfc792635

This device has been used successfully for nearly a decade without issues, but right now it is not functional at all.

I had submitted a bug report at debian kernel team, but didn't get a response. So I 'escalated' it to this list.
Any further information that is required I can of course provide.
Comment 1 Takashi Iwai 2020-07-09 14:08:45 UTC
I thought the fix is on its way.  Reassigned the component to USB.
Comment 2 Alan Stern 2020-07-09 15:04:13 UTC
Alexander, can you attach the output from "lsusb -v" for this audio device?
Comment 3 Alexander Chalikiopoulos 2020-07-09 15:31:46 UTC
Sure, here goes (I hope the formatting doesn't break):


Bus 001 Device 006: ID 06f8:b000 Guillemot Corp. Hercules DJ Console
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x06f8 Guillemot Corp.
  idProduct          0xb000 Hercules DJ Console
  bcdDevice            1.00
  iManufacturer           1 Hercules
  iProduct                2 Hercules DJ Console
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x018c
    bNumInterfaces          9
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              300mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x07  EP 7 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      95
         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     0x0014  1x 20 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      56
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      41
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x06  EP 6 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        5
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        5
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x0240  1x 576 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        5
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
          Usage Type               Data
        wMaxPacketSize     0x0120  1x 288 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        5
      bAlternateSetting       3
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x0240  1x 576 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
          Usage Type               Data
        wMaxPacketSize     0x0120  1x 288 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        6
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength       0x0058
        bInCollection           2
        baInterfaceNr(0)        7
        baInterfaceNr(1)        8
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             5
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bNrChannels             6
        wChannelConfig     0x003f
          Left Front (L)
          Right Front (R)
          Center Front (C)
          Low Frequency Enhancement (LFE)
          Left Surround (LS)
          Right Surround (RS)
        iChannelNames           0 
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                14
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                 6
        bSourceID               5
        bControlSize            1
        bmaControls(0)       0x00
        bmaControls(1)       0x03
          Mute Control
          Volume Control
        bmaControls(2)       0x03
          Mute Control
          Volume Control
        bmaControls(3)       0x03
          Mute Control
          Volume Control
        bmaControls(4)       0x03
          Mute Control
          Volume Control
        bmaControls(5)       0x03
          Mute Control
          Volume Control
        bmaControls(6)       0x03
          Mute Control
          Volume Control
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             7
        wTerminalType      0x0301 Speaker
        bAssocTerminal          0
        bSourceID               6
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0603 Line Connector
        bAssocTerminal          0
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0 
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                 2
        bSourceID               1
        bControlSize            1
        bmaControls(0)       0x80
          Delay Control
        bmaControls(1)       0x00
        bmaControls(2)       0x00
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      4 (MIXER_UNIT)
        bUnitID                 3
        bNrInPins               1
        baSourceID(0)           2
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0 
        bmControls(0)        0x00
        iMixer                  0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             4
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               3
        iTerminal               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        7
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        7
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           5
        bDelay                  1 frames
        wFormatTag         0x0001 PCM
      AudioStreaming Interface Descriptor:
        bLength                11
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             6
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            1 Discrete
        tSamFreq[ 0]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x0240  1x 576 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioStreaming Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        8
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        8
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           4
        bDelay                  1 frames
        wFormatTag         0x0001 PCM
      AudioStreaming Interface Descriptor:
        bLength                11
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            1 Discrete
        tSamFreq[ 0]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           13
          Transfer Type            Isochronous
          Synch Type               Synchronous
          Usage Type               Data
        wMaxPacketSize     0x00c0  1x 192 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioStreaming Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
Device Status:     0x0000
  (Bus Powered)
Comment 4 Alan Stern 2020-07-09 16:47:19 UTC
Well, the problem is clear enough:

   Interface 5 uses endpoint 1-OUT in alternate setting 1, 1-IN in
   alternate setting 2, and both 1-OUT and 1-IN in alternate setting 3.

   At the same time, interface 7 alternate setting 1 uses endpoint 1-OUT
   and interface 8 alternate setting 1 uses endpoint 1-IN.

According to the USB spec, different interfaces are not allowed to use the same endpoints.  (The exact statement, in section 9.6.3 of the USB-2.0 specification, is: "An endpoint is not shared among interfaces within a single configuration unless the endpoint is used by alternate settings of the same interface."  IMO the word "unless" should have been "except when".)

This device would never pass the USB validation suite and would not be allowed to use the USB logo.

Under the circumstances, it looks like interface 5 is not intended for general use, since it is described as Vendor-Specific.  Does it get used in your system?  The answer can be found in the /sys/kernel/debug/usb/devices file (with the device plugged in under an earlier kernel where it works okay).

It may turn out that the way to deal with this problem is to add ENDPOINT_IGNORE quirks for interface 5 on this device.
Comment 5 Alexander Chalikiopoulos 2020-07-09 17:57:46 UTC
In the current kernel, in /sys/kernel/debug/usb/devices, I see for this device:

T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  6 Spd=12   MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=06f8 ProdID=b000 Rev= 1.00
S:  Manufacturer=Hercules
S:  Product=Hercules DJ Console
C:* #Ifs= 9 Cfg#= 1 Atr=80 MxPwr=300mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=07(O) Atr=02(Bulk) MxPS=  16 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=83(I) Atr=03(Int.) MxPS=  20 Ivl=10ms
I:* If#= 2 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=84(I) Atr=03(Int.) MxPS=   4 Ivl=10ms
I:* If#= 3 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=85(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=snd-usb-audio
E:  Ad=06(O) Atr=02(Bulk) MxPS=   8 Ivl=0ms
E:  Ad=86(I) Atr=02(Bulk) MxPS=   8 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
I:  If#= 5 Alt= 1 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=01(O) Atr=09(Isoc) MxPS= 576 Ivl=1ms
I:  If#= 5 Alt= 2 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=0d(Isoc) MxPS= 288 Ivl=1ms
I:  If#= 5 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=01(O) Atr=09(Isoc) MxPS= 576 Ivl=1ms
E:  Ad=81(I) Atr=0d(Isoc) MxPS= 288 Ivl=1ms
I:* If#= 6 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:* If#= 7 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 7 Alt= 1 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:* If#= 8 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 8 Alt= 1 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

I will try to find (or build) a kernel where this device works and document the same.
Comment 6 Alan Stern 2020-07-09 19:26:57 UTC
No need, this is good enough.  We can see that there is no driver attached to If 5, so the quirk should work.  I'll write it and attach it to the bug report soon.
Comment 7 Alan Stern 2020-07-10 16:08:09 UTC
Created attachment 290223 [details]
patch for Hercules audio card

Okay, this is the patch.  It should prevent the kernel from paying attention to the endpoints in the vendor-specific interface, thereby removing the interference with the normal audio interface.
Comment 8 Alexander Chalikiopoulos 2020-07-10 18:06:42 UTC
I will test this asap (early coming week).

There is also another audio interface that has been giving issues since a recent kernel, but I will make a separate report about that.
Comment 9 Alexander Chalikiopoulos 2020-07-14 19:07:51 UTC
Hmm, I tried this patch on the v5.6 tag of the stable repository (which is most similar to my current backports kernel I think) and it certainly does not work.

I see the following in dmesg:

[   42.239255] usb 2-1.2: new full-speed USB device number 4 using ehci-pci
[   42.374832] usb 2-1.2: config 1 interface 7 altsetting 1 has a duplicate endpoint with address 0x1, skipping
[   42.374837] usb 2-1.2: config 1 interface 8 altsetting 1 has a duplicate endpoint with address 0x81, skipping
[   42.379986] usb 2-1.2: New USB device found, idVendor=06f8, idProduct=b000, bcdDevice= 1.00
[   42.379990] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   42.379993] usb 2-1.2: Product: Hercules DJ Console
[   42.379996] usb 2-1.2: Manufacturer: Hercules
[   42.402543] mc: Linux media interface: v0.10
[   42.410269] hid: raw HID events driver (C) Jiri Kosina
[   42.433713] usbcore: registered new interface driver usbhid
[   42.433716] usbhid: USB HID core driver
[   42.442887] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.449509] usb 2-1.2: 2:4: cannot get min/max values for control 8 (id 2)
[   42.449656] usbcore: registered new interface driver snd-usb-audio
[   42.462588] input: Hercules Hercules DJ Console as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.1/0003:06F8:B000.0001/input/input15
[   42.483904] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.490524] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.497270] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.503843] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.510498] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.517260] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.519928] hid-generic 0003:06F8:B000.0001: input,hidraw0: USB HID v1.10 Joystick [Hercules Hercules DJ Console] on usb-0000:00:1d.0-1.2/input1
[   42.520268] input: Hercules Hercules DJ Console as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.2/0003:06F8:B000.0002/input/input16
[   42.520568] hid-generic 0003:06F8:B000.0002: input,hidraw1: USB HID v1.10 Mouse [Hercules Hercules DJ Console] on usb-0000:00:1d.0-1.2/input2
[   42.520822] input: Hercules Hercules DJ Console as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.3/0003:06F8:B000.0003/input/input17
[   42.523870] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.530509] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.537259] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.543908] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.550493] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.557242] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.563862] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.570484] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.577221] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.579585] hid-generic 0003:06F8:B000.0003: input,hidraw2: USB HID v1.10 Keyboard [Hercules Hercules DJ Console] on usb-0000:00:1d.0-1.2/input3
[   42.587227] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.597243] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.624244] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[   42.637479] usb 2-1.2: 2:4: cannot get min/max values for control 8 (id 2)


Possibly I'm doing something wrong, as I'm not 100% confident in building my own kernels from source.
Comment 10 Alexander Chalikiopoulos 2020-07-14 19:11:31 UTC
I just realized that the first part of your patch says `USB_DEVICE(0x0926, 0xb000)` but that should be `USB_DEVICE(0x06f8, 0xb000)` right?
Comment 11 Alan Stern 2020-07-14 19:18:20 UTC
You are right...  It looks like I carelessly copied the value from the context line preceding the new entry in the second hunk instead of from the entry itself.

Yes, please change that value to 0x06f8.
Comment 12 Alexander Chalikiopoulos 2020-07-14 19:31:52 UTC
Ok, after correcting the vendor id the patch works!
Or at least I can use the audio device.

This is what dmesg looks like after this:

[  659.958338] usb 2-1.2: new full-speed USB device number 5 using ehci-pci
[  660.094151] usb 2-1.2: config 1 interface 5 altsetting 1 has a blacklisted endpoint with address 0x1, skipping
[  660.094156] usb 2-1.2: config 1 interface 5 altsetting 2 has a blacklisted endpoint with address 0x81, skipping
[  660.094159] usb 2-1.2: config 1 interface 5 altsetting 3 has a blacklisted endpoint with address 0x1, skipping
[  660.094163] usb 2-1.2: config 1 interface 5 altsetting 3 has a blacklisted endpoint with address 0x81, skipping
[  660.099333] usb 2-1.2: New USB device found, idVendor=06f8, idProduct=b000, bcdDevice= 1.00
[  660.099337] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  660.099340] usb 2-1.2: Product: Hercules DJ Console
[  660.099342] usb 2-1.2: Manufacturer: Hercules
[  660.112369] input: Hercules Hercules DJ Console as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.1/0003:06F8:B000.0004/input/input18
[  660.170829] hid-generic 0003:06F8:B000.0004: input,hidraw0: USB HID v1.10 Joystick [Hercules Hercules DJ Console] on usb-0000:00:1d.0-1.2/input1
[  660.175755] input: Hercules Hercules DJ Console as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.2/0003:06F8:B000.0005/input/input19
[  660.175968] hid-generic 0003:06F8:B000.0005: input,hidraw1: USB HID v1.10 Mouse [Hercules Hercules DJ Console] on usb-0000:00:1d.0-1.2/input2
[  660.180114] input: Hercules Hercules DJ Console as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.3/0003:06F8:B000.0006/input/input20
[  660.238640] hid-generic 0003:06F8:B000.0006: input,hidraw2: USB HID v1.10 Keyboard [Hercules Hercules DJ Console] on usb-0000:00:1d.0-1.2/input3
[  660.249693] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.256389] usb 2-1.2: 2:4: cannot get min/max values for control 8 (id 2)
[  660.310086] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.316769] usb 2-1.2: 2:4: cannot get min/max values for control 8 (id 2)
[  660.323753] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.330373] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.337108] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.343735] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.350710] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.357459] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.364130] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.370791] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.377350] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.384164] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.390845] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.397335] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.404081] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.410711] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.417318] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.424073] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.430710] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.457353] usb 2-1.2: 6:4: cannot get min/max values for control 2 (id 6)
[  660.470711] usb 2-1.2: 2:4: cannot get min/max values for control 8 (id 2)
Comment 13 Alexander Chalikiopoulos 2020-10-01 09:01:10 UTC
I've been using this version of the kernel on my laptop for a while now. The device works great again.

Can we get this into mainline any time soon?
Comment 14 Alan Stern 2020-11-19 17:03:56 UTC
Sorry it took a while -- I lost track of this bug report until now.  The patch has been submitted, so I think the bug report can be closed out.

Note You need to log in before you can comment on or make changes to this bug.