* Ignored USB-audio implicit feedback in kernel 5.8rc3
@ 2020-06-29 11:28 Pavel Hofman
2020-06-29 15:08 ` Pavel Hofman
0 siblings, 1 reply; 9+ messages in thread
From: Pavel Hofman @ 2020-06-29 11:28 UTC (permalink / raw)
To: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 3773 bytes --]
Hi,
Audio analyzer RTX6001 (XMOS-based) is using implicit feedback, yet the
feedback is not used by the latest kernel 5.8 rc3 (i.e. already with the
latest implicit-feedback patches).
Two analyzers on two different PCs are getting clicks in duplex-mode
loobpack, one every 10 secs, the other one every 50 secs.
While running aplay/arecord loopback I captured USB packets with
tcpdump/tshark. The dump contained 931484 IN packets with 48bytes
payload, and 684 IN packets with 40 bytes payload. Packet interval
125us (bInterval = 1), 32bits, 2ch => precise samplerate 47,994.1298Hz.
Clearly the incoming stream works OK. Yet stream0 file states for Capture:
Momentary freq = 48000 Hz (0x6.0000)
But ONLY 48bytes packets were sent by the host in OUT packets, i.e.
exactly 48kHz output rate. 6 frames OUT/IN difference per second, the
incoming FIFO in the device overflows after several seconds.
Please may I ask for help with making the driver respect the implicit
feedback stream?
Best regards,
Pavel.
5.8.0-050800-generic #202006282330 SMP Sun Jun 28 23:35:41 UTC 2020
x86_64 GNU/Linux
cat /proc/asound/card4/stream0
RTX A/S RTX6001 USB Audio 2.0 at usb-0000:00:13.2-4, high speed : USB Audio
Playback:
Status: Running
Interface = 1
Altset = 1
Packet Size = 72
Momentary freq = 48000 Hz (0x6.0000)
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 32
Channel map: FL FR
Interface 1
Altset 2
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 24
Channel map: FL FR
Interface 1
Altset 3
Format: S16_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 16
Channel map: FL FR
Capture:
Status: Stop
Interface 2
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 IN (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 32
Channel map: FL FR
Interface 2
Altset 2
Format: S32_LE
Channels: 2
Endpoint: 1 IN (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 24
Channel map: FL FR
Interface 2
Altset 3
Format: S16_LE
Channels: 2
Endpoint: 1 IN (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 16
Channel map: FL FR
lsusb:
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer
Bus 002 Device 003: ID 0d9a:00df RTX AS RTX6001 USB Audio 2.0 <----
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 008: ID 2047:0301 Texas Instruments Arduino Micro
Bus 004 Device 007: ID 18f8:0f97 [Maxxter] Elo TouchSystems 2216
AccuTouch® USB Touchmonitor Interface
Bus 004 Device 006: ID 413c:2001 Dell Computer Corp. Keyboard HID Support
Bus 004 Device 005: ID 413c:1001 Dell Computer Corp. Keyboard Hub
Bus 004 Device 004: ID 0bd9:0001 Liberty Instruments, Inc. Liberty
Praxis AudPod 1.1
Bus 004 Device 003: ID 2341:8037 Arduino SA Arduino Micro
Bus 004 Device 002: ID 04e7:0050 Elo TouchSystems 2216 AccuTouch®
Touchmonitor Interface
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 002: ID 18a5:0422 Verbatim, Ltd Portable SSD
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lsusb -v see the attachment
[-- Attachment #2: lsusb.txt --]
[-- Type: text/plain, Size: 36003 bytes --]
Bus 002 Device 003: ID 0d9a:00df RTX AS RTX6001 USB Audio 2.0
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x0d9a RTX AS
idProduct 0x00df
bcdDevice 1.19
iManufacturer 1
iProduct 3
iSerial 2
bNumConfigurations 2
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x01c5
bNumInterfaces 5
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 3
bFunctionClass 1 Audio
bFunctionSubClass 0
bFunctionProtocol 32
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 32
iInterface 3
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 2.00
bCategory 8
wTotalLength 0x0053
bmControls 0x00
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 41
bmAttributes 3 Internal programmable clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 9
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 11 (CLOCK_SELECTOR)
bClockID 40
bNrInPins 1
baCSourceID(0) 41
bmControls 0x03
Clock Selector Control (read/write)
iClockSelector 8
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 2
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bCSourceID 40
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 11
bmControls 0x0000
iTerminal 6
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 20
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 2
bCSourceID 40
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bCSourceID 40
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 13
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 22
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 2
bCSourceID 40
bmControls 0x0000
iTerminal 7
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 11
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 11
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 11
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 2
bBitResolution 16
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0184 1x 388 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 22
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 13
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 22
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 13
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 22
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 13
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 2
bBitResolution 16
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 254 Application Specific Interface
bInterfaceSubClass 1 Device Firmware Update
bInterfaceProtocol 1
iInterface 10
Device Firmware Upgrade Interface Descriptor:
bLength 9
bDescriptorType 33
bmAttributes 7
Will Not Detach
Manifestation Tolerant
Upload Supported
Download Supported
wDetachTimeout 250 milliseconds
wTransferSize 64 bytes
bcdDFUVersion 1.10
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 202
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 8
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 8
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x01c5
bNumInterfaces 5
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 3
bFunctionClass 1 Audio
bFunctionSubClass 0
bFunctionProtocol 32
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 32
iInterface 3
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 2.00
bCategory 8
wTotalLength 0x0053
bmControls 0x00
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 41
bmAttributes 3 Internal programmable clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 9
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 11 (CLOCK_SELECTOR)
bClockID 40
bNrInPins 1
baCSourceID(0) 41
bmControls 0x03
Clock Selector Control (read/write)
iClockSelector 8
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 2
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bCSourceID 40
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 11
bmControls 0x0000
iTerminal 6
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 20
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 2
bCSourceID 40
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bCSourceID 40
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 13
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 22
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 2
bCSourceID 40
bmControls 0x0000
iTerminal 7
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 11
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 11
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 11
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 2
bBitResolution 16
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0184 1x 388 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 22
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 13
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 22
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 13
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 22
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 13
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 2
bBitResolution 16
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0308 1x 776 bytes
bInterval 1
AudioStreaming Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 0x0008
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 254 Application Specific Interface
bInterfaceSubClass 1 Device Firmware Update
bInterfaceProtocol 1
iInterface 10
Device Firmware Upgrade Interface Descriptor:
bLength 9
bDescriptorType 33
bmAttributes 7
Will Not Detach
Manifestation Tolerant
Upload Supported
Download Supported
wDetachTimeout 250 milliseconds
wTransferSize 64 bytes
bcdDFUVersion 1.10
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 202
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 8
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 8
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignored USB-audio implicit feedback in kernel 5.8rc3
2020-06-29 11:28 Ignored USB-audio implicit feedback in kernel 5.8rc3 Pavel Hofman
@ 2020-06-29 15:08 ` Pavel Hofman
2020-07-02 11:28 ` Pavel Hofman
0 siblings, 1 reply; 9+ messages in thread
From: Pavel Hofman @ 2020-06-29 15:08 UTC (permalink / raw)
To: alsa-devel
Dne 29. 06. 20 v 13:28 Pavel Hofman napsal(a):
>
> Audio analyzer RTX6001 (XMOS-based) is using implicit feedback, yet the
> feedback is not used by the latest kernel 5.8 rc3 (i.e. already with the
> latest implicit-feedback patches).
>
> Two analyzers on two different PCs are getting clicks in duplex-mode
> loobpack, one every 10 secs, the other one every 50 secs.
>
I am sorry, correct stream0 for duplex operation (kernel 5.4, the same
behaviour as in 5.8-rc3):
RTX A/S RTX6001 USB Audio 2.0 at usb-0000:00:13.2-4, high speed : USB Audio
Playback:
Status: Running
Interface = 1
Altset = 1
Packet Size = 72
Momentary freq = 48000 Hz (0x6.0000)
Interface 1
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 32
Interface 1
Altset 2
Format: S32_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 24
Interface 1
Altset 3
Format: S16_LE
Channels: 2
Endpoint: 1 OUT (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 16
Capture:
Status: Running
Interface = 2
Altset = 1
Packet Size = 72
Momentary freq = 48000 Hz (0x6.0000)
Interface 2
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 1 IN (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 32
Interface 2
Altset 2
Format: S32_LE
Channels: 2
Endpoint: 1 IN (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 24
Interface 2
Altset 3
Format: S16_LE
Channels: 2
Endpoint: 1 IN (ASYNC)
Rates: 44100, 48000, 88200, 96000, 176400, 192000
Data packet interval: 125 us
Bits: 16
Thanks a lot.
Pavel.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignored USB-audio implicit feedback in kernel 5.8rc3
2020-06-29 15:08 ` Pavel Hofman
@ 2020-07-02 11:28 ` Pavel Hofman
2020-07-03 10:17 ` Pavel Hofman
2020-07-07 10:34 ` Alexander Tsoy
0 siblings, 2 replies; 9+ messages in thread
From: Pavel Hofman @ 2020-07-02 11:28 UTC (permalink / raw)
To: alsa-devel
Dne 29. 06. 20 v 17:08 Pavel Hofman napsal(a):
> Dne 29. 06. 20 v 13:28 Pavel Hofman napsal(a):
>>
>> Audio analyzer RTX6001 (XMOS-based) is using implicit feedback, yet the
>> feedback is not used by the latest kernel 5.8 rc3 (i.e. already with the
>> latest implicit-feedback patches).
>>
>> Two analyzers on two different PCs are getting clicks in duplex-mode
>> loobpack, one every 10 secs, the other one every 50 secs.
>>
I am very sure the problem is identical to that for MOTU M2/4, Solid
State Logic SSL2+, Fractal Audio Axe-Fx III etc.
https://github.com/torvalds/linux/commit/e7585db1b0b5b4e4eb1967bb1472df308f7ffcbf
. I will try the simple quirk, IMO it will work OK. BTW if I understand
correctly all these devices use the XMOS.
However, I would like to ask, why a quirk for these devices is required.
The comment explanation in this interesting patch
https://lore.kernel.org/patchwork/patch/1174179/ talks about the same EP
numbers, but in the different direction. 0x01 EP OUT + 0x81 EP IN
implicit feedback data. All the devices mentioned above have this
numbering, just the EP IN is in a different interface than the EP OUT.
But please are there actually any duplex implicit feedback devices
having EP OUT and implicit-feedback EP IN in the same interface? The
explicit feedback EP IN is clear, they are in the same interface. E-MU
0404 USB has EP OUT + EP IN explicit feedback in interface 1, together,
EP IN implicit feedback data in interface 2. My other soundcards,
adaptive OUT and async IN again each in a different interface (though
there is no feedback to solve).
Please is the requirement that EP OUT + EP IN implicit feedback data
must be in the same interface really necessary? If such a requirement
was dropped, IMO many devices could be removed from the existing
set_sync_ep_implicit_fb_quirk and many devices would work out of the
box, as they require no other quirk (unlike the MOTUs, but that's a
different issue).
Thank you very much for comments. Very likely I am missing something
important, I just do not see what :-)
Best regards,
Pavel.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignored USB-audio implicit feedback in kernel 5.8rc3
2020-07-02 11:28 ` Pavel Hofman
@ 2020-07-03 10:17 ` Pavel Hofman
2020-07-07 9:40 ` Takashi Iwai
2020-07-07 10:34 ` Alexander Tsoy
1 sibling, 1 reply; 9+ messages in thread
From: Pavel Hofman @ 2020-07-03 10:17 UTC (permalink / raw)
To: alsa-devel
Dne 02. 07. 20 v 13:28 Pavel Hofman napsal(a):
>
>
> Please is the requirement that EP OUT + EP IN implicit feedback data
> must be in the same interface really necessary? If such a requirement
> was dropped, IMO many devices could be removed from the existing
> set_sync_ep_implicit_fb_quirk and many devices would work out of the
> box,
I am still thinking about the single-interface requirement. If both
endpoints were to be part of a single interface, could they use
different altsettings for different sample lengths for capture and
playback? E.g. to save USB bandwidth when the capture is used only for
implicit feedback - capturing at 16bits, playback at 32bits.
In the quirked XMOS devices the common clock for both directions is
defined by the clock feature, the altsettings for each direction (in
separate interfaces) are used for setting sample length.
Thank you very much for any insight into the issue. IMO not having to
add quirks before a device starts working would be advantageous for all
involved.
Best regards,
Pavel.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignored USB-audio implicit feedback in kernel 5.8rc3
2020-07-03 10:17 ` Pavel Hofman
@ 2020-07-07 9:40 ` Takashi Iwai
2020-07-07 10:03 ` Pavel Hofman
0 siblings, 1 reply; 9+ messages in thread
From: Takashi Iwai @ 2020-07-07 9:40 UTC (permalink / raw)
To: Pavel Hofman; +Cc: alsa-devel
On Fri, 03 Jul 2020 12:17:14 +0200,
Pavel Hofman wrote:
>
>
> Dne 02. 07. 20 v 13:28 Pavel Hofman napsal(a):
> >
> >
> > Please is the requirement that EP OUT + EP IN implicit feedback data
> > must be in the same interface really necessary? If such a requirement
> > was dropped, IMO many devices could be removed from the existing
> > set_sync_ep_implicit_fb_quirk and many devices would work out of the
> > box,
>
> I am still thinking about the single-interface requirement. If both
> endpoints were to be part of a single interface, could they use
> different altsettings for different sample lengths for capture and
> playback? E.g. to save USB bandwidth when the capture is used only for
> implicit feedback - capturing at 16bits, playback at 32bits.
>
> In the quirked XMOS devices the common clock for both directions is
> defined by the clock feature, the altsettings for each direction (in
> separate interfaces) are used for setting sample length.
>
> Thank you very much for any insight into the issue. IMO not having to
> add quirks before a device starts working would be advantageous for all
> involved.
Could you check for-linus branch of my sound git tree?
Just to be sure whether you're hitting the issue that has been already
addressed.
thanks,
Takashi
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignored USB-audio implicit feedback in kernel 5.8rc3
2020-07-07 9:40 ` Takashi Iwai
@ 2020-07-07 10:03 ` Pavel Hofman
2020-07-07 10:18 ` Takashi Iwai
0 siblings, 1 reply; 9+ messages in thread
From: Pavel Hofman @ 2020-07-07 10:03 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
Hi Takashi,
Dne 07. 07. 20 v 11:40 Takashi Iwai napsal(a):
> On Fri, 03 Jul 2020 12:17:14 +0200,
> Pavel Hofman wrote:
>>
>>
>> Dne 02. 07. 20 v 13:28 Pavel Hofman napsal(a):
>>>
>>>
>>> Please is the requirement that EP OUT + EP IN implicit feedback data
>>> must be in the same interface really necessary? If such a requirement
>>> was dropped, IMO many devices could be removed from the existing
>>> set_sync_ep_implicit_fb_quirk and many devices would work out of the
>>> box,
>>
>> I am still thinking about the single-interface requirement. If both
>> endpoints were to be part of a single interface, could they use
>> different altsettings for different sample lengths for capture and
>> playback? E.g. to save USB bandwidth when the capture is used only for
>> implicit feedback - capturing at 16bits, playback at 32bits.
>>
>> In the quirked XMOS devices the common clock for both directions is
>> defined by the clock feature, the altsettings for each direction (in
>> separate interfaces) are used for setting sample length.
>
> Could you check for-linus branch of my sound git tree?
> Just to be sure whether you're hitting the issue that has been already
> addressed.
>
I developed the RTX6001 patch on 5.8-rc3 kernel, and commits since that
tag in
https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/log/?h=for-linus
do not seem to address the issue.
I think the generic code searching for the implicit-feedback endpoint
works only on the current interface (alts)
https://github.com/tiwai/sound/blob/master/sound/usb/pcm.c#L491
I do not know if searching for IN endpoints with the same number and
USB_ENDPOINT_USAGE_IMPLICIT_FB mask in other interfaces is correct. But
it seems to me it would yield correct results for a number of existing
quirks in set_sync_ep_implicit_fb_quirk (typically those setting ep=0x81).
Thanks a lot,
Pavel.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignored USB-audio implicit feedback in kernel 5.8rc3
2020-07-07 10:03 ` Pavel Hofman
@ 2020-07-07 10:18 ` Takashi Iwai
0 siblings, 0 replies; 9+ messages in thread
From: Takashi Iwai @ 2020-07-07 10:18 UTC (permalink / raw)
To: Pavel Hofman; +Cc: alsa-devel
On Tue, 07 Jul 2020 12:03:25 +0200,
Pavel Hofman wrote:
>
> Hi Takashi,
>
> Dne 07. 07. 20 v 11:40 Takashi Iwai napsal(a):
> > On Fri, 03 Jul 2020 12:17:14 +0200,
> > Pavel Hofman wrote:
> >>
> >>
> >> Dne 02. 07. 20 v 13:28 Pavel Hofman napsal(a):
> >>>
> >>>
> >>> Please is the requirement that EP OUT + EP IN implicit feedback data
> >>> must be in the same interface really necessary? If such a requirement
> >>> was dropped, IMO many devices could be removed from the existing
> >>> set_sync_ep_implicit_fb_quirk and many devices would work out of the
> >>> box,
> >>
> >> I am still thinking about the single-interface requirement. If both
> >> endpoints were to be part of a single interface, could they use
> >> different altsettings for different sample lengths for capture and
> >> playback? E.g. to save USB bandwidth when the capture is used only for
> >> implicit feedback - capturing at 16bits, playback at 32bits.
> >>
> >> In the quirked XMOS devices the common clock for both directions is
> >> defined by the clock feature, the altsettings for each direction (in
> >> separate interfaces) are used for setting sample length.
> >
> > Could you check for-linus branch of my sound git tree?
> > Just to be sure whether you're hitting the issue that has been already
> > addressed.
> >
>
> I developed the RTX6001 patch on 5.8-rc3 kernel, and commits since
> that tag in
> https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/log/?h=for-linus
> do not seem to address the issue.
>
> I think the generic code searching for the implicit-feedback endpoint
> works only on the current interface (alts)
> https://github.com/tiwai/sound/blob/master/sound/usb/pcm.c#L491
>
> I do not know if searching for IN endpoints with the same number and
> USB_ENDPOINT_USAGE_IMPLICIT_FB mask in other interfaces is
> correct. But it seems to me it would yield correct results for a
> number of existing quirks in set_sync_ep_implicit_fb_quirk (typically
> those setting ep=0x81).
Yeah I found your patch later. Now it's in for-linus branch, too.
Takashi
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignored USB-audio implicit feedback in kernel 5.8rc3
2020-07-02 11:28 ` Pavel Hofman
2020-07-03 10:17 ` Pavel Hofman
@ 2020-07-07 10:34 ` Alexander Tsoy
2020-07-07 17:14 ` Pavel Hofman
1 sibling, 1 reply; 9+ messages in thread
From: Alexander Tsoy @ 2020-07-07 10:34 UTC (permalink / raw)
To: Pavel Hofman, alsa-devel
В Чт, 02/07/2020 в 13:28 +0200, Pavel Hofman пишет:
> Dne 29. 06. 20 v 17:08 Pavel Hofman napsal(a):
> > Dne 29. 06. 20 v 13:28 Pavel Hofman napsal(a):
> > > Audio analyzer RTX6001 (XMOS-based) is using implicit feedback,
> > > yet the
> > > feedback is not used by the latest kernel 5.8 rc3 (i.e. already
> > > with the
> > > latest implicit-feedback patches).
> > >
> > > Two analyzers on two different PCs are getting clicks in duplex-
> > > mode
> > > loobpack, one every 10 secs, the other one every 50 secs.
> > >
>
> I am very sure the problem is identical to that for MOTU M2/4, Solid
> State Logic SSL2+, Fractal Audio Axe-Fx III etc.
> https://github.com/torvalds/linux/commit/e7585db1b0b5b4e4eb1967bb1472df308f7ffcbf
> . I will try the simple quirk, IMO it will work OK. BTW if I
> understand
> correctly all these devices use the XMOS.
>
> However, I would like to ask, why a quirk for these devices is
> required.
> The comment explanation in this interesting patch
> https://lore.kernel.org/patchwork/patch/1174179/ talks about the same
> EP
> numbers, but in the different direction. 0x01 EP OUT + 0x81 EP IN
> implicit feedback data. All the devices mentioned above have this
> numbering, just the EP IN is in a different interface than the EP
> OUT.
> But please are there actually any duplex implicit feedback devices
> having EP OUT and implicit-feedback EP IN in the same interface? The
> explicit feedback EP IN is clear, they are in the same interface. E-
> MU
> 0404 USB has EP OUT + EP IN explicit feedback in interface 1,
> together,
> EP IN implicit feedback data in interface 2. My other soundcards,
> adaptive OUT and async IN again each in a different interface (though
> there is no feedback to solve).
>
> Please is the requirement that EP OUT + EP IN implicit feedback data
> must be in the same interface really necessary? If such a requirement
> was dropped, IMO many devices could be removed from the existing
> set_sync_ep_implicit_fb_quirk and many devices would work out of the
> box, as they require no other quirk (unlike the MOTUs, but that's a
> different issue).
USB Audio Class specs are pretty clear about it: only one isochronous
endpoint is allowed per interface. And it can be accompanied by the
*explicit* feedback endpoint.
I have patches that implement autodetection of implicit feedback, but I
need to clean them up and be careful not to break Scarlett 18i8/18i20
3rd Gen (these devices have 3 altsettings per interface and probably
require some additional sample rates filtering, so that each sample
rate uniquely match one single altsetting).
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignored USB-audio implicit feedback in kernel 5.8rc3
2020-07-07 10:34 ` Alexander Tsoy
@ 2020-07-07 17:14 ` Pavel Hofman
0 siblings, 0 replies; 9+ messages in thread
From: Pavel Hofman @ 2020-07-07 17:14 UTC (permalink / raw)
To: Alexander Tsoy, alsa-devel
Dne 07. 07. 20 v 12:34 Alexander Tsoy napsal(a):
> В Чт, 02/07/2020 в 13:28 +0200, Pavel Hofman пишет:
>
> USB Audio Class specs are pretty clear about it: only one isochronous
> endpoint is allowed per interface. And it can be accompanied by the
> *explicit* feedback endpoint.
>
> I have patches that implement autodetection of implicit feedback, but I
> need to clean them up and be careful not to break Scarlett 18i8/18i20
> 3rd Gen (these devices have 3 altsettings per interface and probably
> require some additional sample rates filtering, so that each sample
> rate uniquely match one single altsetting).
>
Alexander, thanks for the clarification. If I understand correctly the
existing single-interface condition is incorrect and no
implicit-feedback device can work without a quirk now.
Thanks for your WIP patches, very much appreciated.
Best regards,
Pavel.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-07-07 17:15 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-29 11:28 Ignored USB-audio implicit feedback in kernel 5.8rc3 Pavel Hofman
2020-06-29 15:08 ` Pavel Hofman
2020-07-02 11:28 ` Pavel Hofman
2020-07-03 10:17 ` Pavel Hofman
2020-07-07 9:40 ` Takashi Iwai
2020-07-07 10:03 ` Pavel Hofman
2020-07-07 10:18 ` Takashi Iwai
2020-07-07 10:34 ` Alexander Tsoy
2020-07-07 17:14 ` Pavel Hofman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.