Discussion:
[Alsa-user] S32_LE Missing for Hardware
Ed Stark
2017-05-08 10:56:21 UTC
Permalink
I have a sound card with a CM6631A audio chip running UAC 2.0.

There are 2 analogue sub devices on the chip both of which should support S32_LE, however I do not see the S32_LE alt setting for one of the outputs.

lsusb -v, I see the following for each output:

Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 1
bmControls 0x05
Active Alternate Setting Control (read-only)
Valid Alternate Setting Control (read-only)
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 0
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 32


and

Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 3
bmControls 0x05
Active Alternate Setting Control (read-only)
Valid Alternate Setting Control (read-only)
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 0
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 32

Both of the above have an entry for bit resolution of 32 for bAlternateSetting 3.

Output of alsa-capabilities

0) USB Audio Class Digital alsa audio output interface `hw:0,0'
- device name = USB2.0 High-Speed True HD Audio
- interface name = USB Audio
- usb audio class = 2 - isochronous asynchronous
- character device = /dev/snd/pcmC0D0p
- encoding formats = S24_3LE, S16_LE
- monitor file = /proc/asound/card0/pcm0p/sub0/hw_params
- stream file = /proc/asound/card0/stream0

1) USB Audio Class Digital alsa audio output interface `hw:0,1'
- device name = USB2.0 High-Speed True HD Audio
- interface name = USB Audio #1
- usb audio class = 2 - isochronous asynchronous
- character device = /dev/snd/pcmC0D1p
- encoding formats = S24_3LE, S32_LE, S16_LE
- monitor file = /proc/asound/card0/pcm1p/sub0/hw_params
- stream file = /proc/asound/card0/stream1

Sub device 0 is missing the S32_LE alt setting.

When I plug this into OSX, I see 32bit support on both outputs.

uname -a
Linux ubuntu 4.4.0-72-lowlatency #93-Ubuntu SMP PREEMPT Fri Mar 31 15:25:21 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version k4.4.0-72-lowlatency.
(reporting v1.1.0 in alsamixer)


Any guidance is appreciated.

Ed Stark

Loading...