Alsa-devel
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
February 2018
- 118 participants
- 262 discussions
[alsa-devel] Adding support for CMEDIA USB2.0 High-Speed True HD Audio
by Jean-Philippe Guillemin 08 Feb '18
by Jean-Philippe Guillemin 08 Feb '18
08 Feb '18
Hi,
CMEDIA USB2.0 High-Speed True HD Audio has iec958 output on device 2 and
iec958 input on device 0.
root[~]# cat /proc/asound/cards
0 [Audio ]: USB-Audio - USB2.0 High-Speed True HD Audio
CMEDIA USB2.0 High-Speed True HD Audio at
usb-0000:00:12.2-2, high speed
I'm trying to create a mapping in USB-Audio.conf :
# If a device does not use the first PCM device for digital data, the
device
# number for the iec958 device can be changed here.
USB-Audio.pcm.iec958_device {
# "NoiseBlaster 3000" 42
"USB Sound Blaster HD" 1
"USB2.0 High-Speed True HD Audio" 2
...
But I never got a match on "USB2.0 High-Speed True HD Audio".
Please could you provide me correct config ? I will test it and report
results so that you can append this card to ALSA.
Thanks
(below lsusb output)
root[~]# lsusb -v
Bus 001 Device 009: ID 147a:e055 Formosa Industrial Computing, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x147a Formosa Industrial Computing, Inc.
idProduct 0xe055
bcdDevice 1.08
iManufacturer 1 CMEDIA
iProduct 2 USB2.0 High-Speed True HD Audio
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 1170
bNumInterfaces 6
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 5
bFunctionClass 1 Audio
bFunctionSubClass 0
bFunctionProtocol 32
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 32
iInterface 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 2.00
bCategory 10
wTotalLength 378
bmControl 0x00
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bCSourceID 22
bNrChannels 0
bmChannelConfig 0x00000000
bmControls 0x0040
Cluster Control (read-only)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 2
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bCSourceID 23
bNrChannels 0
bmChannelConfig 0x00000000
bmControls 0x0040
Cluster Control (read-only)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bCSourceID 24
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
bmControls 0x0040
Cluster Control (read-only)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 4
wTerminalType 0x0603 Line Connector
bAssocTerminal 0
bCSourceID 24
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
bmControls 0x0040
Cluster Control (read-only)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 5
wTerminalType 0x0605 SPDIF interface
bAssocTerminal 0
bCSourceID 25
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
bmControls 0x0040
Cluster Control (read-only)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 6
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 11
bCSourceID 22
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 7
wTerminalType 0x0605 SPDIF interface
bAssocTerminal 0
bSourceID 12
bCSourceID 23
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 8
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 10
bCSourceID 24
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 9
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 5
bCSourceID 25
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 5 (SELECTOR_UNIT)
bUnitID 10
bNrInPins 3
baSource( 0) 13
baSource( 1) 14
baSource( 2) 15
bmControls 0x03
Selector Control (read/write)
iSelector 0
AudioControl Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 11
bSourceID 18
bmaControls( 0) 0x00000003
Mute Control (read/write)
bmaControls( 1) 0x0000000c
Volume Control (read/write)
bmaControls( 2) 0x0000000c
Volume Control (read/write)
bmaControls( 3) 0x0000000c
Volume Control (read/write)
bmaControls( 4) 0x0000000c
Volume Control (read/write)
bmaControls( 5) 0x0000000c
Volume Control (read/write)
bmaControls( 6) 0x0000000c
Volume Control (read/write)
bmaControls( 7) 0x0000000c
Volume Control (read/write)
bmaControls( 8) 0x0000000c
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 12
bSourceID 2
bmaControls( 0) 0x00000003
Mute Control (read/write)
bmaControls( 1) 0x00000000
bmaControls( 2) 0x00000000
iFeature 0
AudioControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 13
bSourceID 3
bmaControls( 0) 0x00003003
Mute Control (read/write)
Automatic Gain Control (read/write)
bmaControls( 1) 0x0000000c
Volume Control (read/write)
bmaControls( 2) 0x0000000c
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 14
bSourceID 4
bmaControls( 0) 0x00000003
Mute Control (read/write)
bmaControls( 1) 0x0000000c
Volume Control (read/write)
bmaControls( 2) 0x0000000c
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 15
bSourceID 19
bmaControls( 0) 0x00000003
Mute Control (read/write)
bmaControls( 1) 0x0000000c
Volume Control (read/write)
bmaControls( 2) 0x0000000c
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 16
bSourceID 3
bmaControls( 0) 0x00000003
Mute Control (read/write)
bmaControls( 1) 0x0000000c
Volume Control (read/write)
bmaControls( 2) 0x0000000c
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 17
bSourceID 4
bmaControls( 0) 0x00000003
Mute Control (read/write)
bmaControls( 1) 0x0000000c
Volume Control (read/write)
bmaControls( 2) 0x0000000c
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 28
bDescriptorType 36
bDescriptorSubtype 4 (MIXER_UNIT)
bUnitID 18
bNrPins 3
baSourceID( 0) 1
baSourceID( 1) 16
baSourceID( 2) 17
bNrChannels 8
bmChannelConfig 0x0000063f
Front Left (FL)
Front Right (FR)
Front Center (FC)
Low Frequency Effects (LFE)
Back Left (BL)
Back Right (BR)
Side Left (SL)
Side Right (SR)
iChannelNames 0
00 00 00 00 00 00 00 00 00 00 00 00
bmControls 01
Cluster Control (read-only)
iMixer 0
AudioControl Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 4 (MIXER_UNIT)
bUnitID 19
bNrPins 2
baSourceID( 0) 3
baSourceID( 1) 4
bNrChannels 2
bmChannelConfig 0x00000003
Front Left (FL)
Front Right (FR)
iChannelNames 0
00
bmControls 01
Cluster Control (read-only)
iMixer 0
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 22
bmAttributes 0x07 Internal programmable Clock (synced to
SOF)
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 0
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 23
bmAttributes 0x07 Internal programmable Clock (synced to
SOF)
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 0
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 24
bmAttributes 0x03 Internal programmable Clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 0
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 25
bmAttributes 0x00 External Clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8f EP 15 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0006 1x 6 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4 Output
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
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 8
bmChannelConfig 0x0000063f
Front Left (FL)
Front Right (FR)
Front Center (FC)
Low Frequency Effects (LFE)
Back Left (BL)
Back Right (BR)
Side Left (SL)
Side Right (SR)
iChannelNames 0
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 0x05 EP 5 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x01a0 1x 416 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 1
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 8
bmChannelConfig 0x0000063f
Front Left (FL)
Front Right (FR)
Front Center (FC)
Low Frequency Effects (LFE)
Back Left (BL)
Back Right (BR)
Side Left (SL)
Side Right (SR)
iChannelNames 0
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 0x05 EP 5 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x0340 1x 832 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 1
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 2
bBitResolution 16
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x0068 1x 104 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 1
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 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x00d0 1x 208 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 1
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 6
bmChannelConfig 0x0000003f
Front Left (FL)
Front Right (FR)
Front Center (FC)
Low Frequency Effects (LFE)
Back Left (BL)
Back Right (BR)
iChannelNames 0
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 0x05 EP 5 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x0138 1x 312 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 6
bNumEndpoints 1
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 6
bmChannelConfig 0x0000003f
Front Left (FL)
Front Right (FR)
Front Center (FC)
Low Frequency Effects (LFE)
Back Left (BL)
Back Right (BR)
iChannelNames 0
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 0x05 EP 5 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x0270 1x 624 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 7
bNumEndpoints 1
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 4
bmChannelConfig 0x00000033
Front Left (FL)
Front Right (FR)
Back Left (BL)
Back Right (BR)
iChannelNames 0
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 0x05 EP 5 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x00d0 1x 208 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 8
bNumEndpoints 1
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 4
bmChannelConfig 0x00000033
Front Left (FL)
Front Right (FR)
Back Left (BL)
Back Right (BR)
iChannelNames 0
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 0x05 EP 5 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x01a0 1x 416 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5 SPDIF Output
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
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 2
bBitResolution 16
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x0068 1x 104 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
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 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x00d0 1x 208 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bmControls 0x05
Active Alternate Setting Control (read-only)
Valid Alternate Setting Control (read-only)
bFormatType 3
bmFormats 0x00001381
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 3 (FORMAT_TYPE_III)
bSubslotSize 2
bBitResolution 16
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x0068 1x 104 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 6 Input
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 8
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 2
bBitResolution 16
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x88 EP 8 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0068 1x 104 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 8
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 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x88 EP 8 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x00d0 1x 208 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 7 SPDIF Input
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 9
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 2
bBitResolution 16
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8a EP 10 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0068 1x 104 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 0
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 9
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 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x8a EP 10 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x00d0 1x 208 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 5
bInterfaceCount 1
bFunctionClass 3 Human Interface Device
bFunctionSubClass 0
bFunctionProtocol 0
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 5
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.00
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 50
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 0x0010 1x 16 bytes
bInterval 4
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
I'm trying to create a mapping in
2
6
[alsa-devel] [PATCH v2] ASoC: use seq_file to dump the contents of dai_list, platform_list and codec_list
by Donglin Peng 08 Feb '18
by Donglin Peng 08 Feb '18
08 Feb '18
Now the debugfs files dais/platforms/codecs have a size limit PAGE_SIZE and
the user can not see the whole contents of dai_list/platform_list/codec_list
when they are larger than this limit.
This patch uses seq_file instead to make sure dais/platforms/codecs show the
full contents of dai_list/platform_list/codec_list.
Signed-off-by: Donglin Peng <dolinux.peng(a)gmail.com>
---
Changelog
v2
-fix commit log error
sound/soc/soc-core.c | 111 +++++++++++++++++----------------------------------
1 file changed, 37 insertions(+), 74 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index c0edac80df34..7b582112e3fc 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -349,120 +349,84 @@ static void soc_init_codec_debugfs(struct snd_soc_component *component)
"ASoC: Failed to create codec register debugfs file\n");
}
-static ssize_t codec_list_read_file(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
+static int codec_list_seq_show(struct seq_file *m, void *v)
{
- char *buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
- ssize_t len, ret = 0;
struct snd_soc_codec *codec;
- if (!buf)
- return -ENOMEM;
-
mutex_lock(&client_mutex);
- list_for_each_entry(codec, &codec_list, list) {
- len = snprintf(buf + ret, PAGE_SIZE - ret, "%s\n",
- codec->component.name);
- if (len >= 0)
- ret += len;
- if (ret > PAGE_SIZE) {
- ret = PAGE_SIZE;
- break;
- }
- }
+ list_for_each_entry(codec, &codec_list, list)
+ seq_printf(m, "%s\n", codec->component.name);
mutex_unlock(&client_mutex);
- if (ret >= 0)
- ret = simple_read_from_buffer(user_buf, count, ppos, buf, ret);
-
- kfree(buf);
+ return 0;
+}
- return ret;
+static int codec_list_seq_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, codec_list_seq_show, NULL);
}
static const struct file_operations codec_list_fops = {
- .read = codec_list_read_file,
- .llseek = default_llseek,/* read accesses f_pos */
+ .open = codec_list_seq_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
};
-static ssize_t dai_list_read_file(struct file *file, char __user *user_buf,
- size_t count, loff_t *ppos)
+static int dai_list_seq_show(struct seq_file *m, void *v)
{
- char *buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
- ssize_t len, ret = 0;
struct snd_soc_component *component;
struct snd_soc_dai *dai;
- if (!buf)
- return -ENOMEM;
-
mutex_lock(&client_mutex);
- list_for_each_entry(component, &component_list, list) {
- list_for_each_entry(dai, &component->dai_list, list) {
- len = snprintf(buf + ret, PAGE_SIZE - ret, "%s\n",
- dai->name);
- if (len >= 0)
- ret += len;
- if (ret > PAGE_SIZE) {
- ret = PAGE_SIZE;
- break;
- }
- }
- }
+ list_for_each_entry(component, &component_list, list)
+ list_for_each_entry(dai, &component->dai_list, list)
+ seq_printf(m, "%s\n", dai->name);
mutex_unlock(&client_mutex);
- ret = simple_read_from_buffer(user_buf, count, ppos, buf, ret);
-
- kfree(buf);
+ return 0;
+}
- return ret;
+static int dai_list_seq_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, dai_list_seq_show, NULL);
}
static const struct file_operations dai_list_fops = {
- .read = dai_list_read_file,
- .llseek = default_llseek,/* read accesses f_pos */
+ .open = dai_list_seq_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
};
-static ssize_t platform_list_read_file(struct file *file,
- char __user *user_buf,
- size_t count, loff_t *ppos)
+static int platform_list_seq_show(struct seq_file *m, void *v)
{
- char *buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
- ssize_t len, ret = 0;
struct snd_soc_platform *platform;
- if (!buf)
- return -ENOMEM;
-
mutex_lock(&client_mutex);
- list_for_each_entry(platform, &platform_list, list) {
- len = snprintf(buf + ret, PAGE_SIZE - ret, "%s\n",
- platform->component.name);
- if (len >= 0)
- ret += len;
- if (ret > PAGE_SIZE) {
- ret = PAGE_SIZE;
- break;
- }
- }
+ list_for_each_entry(platform, &platform_list, list)
+ seq_printf(m, "%s\n", platform->component.name);
mutex_unlock(&client_mutex);
- ret = simple_read_from_buffer(user_buf, count, ppos, buf, ret);
-
- kfree(buf);
+ return 0;
+}
- return ret;
+static int platform_list_seq_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, platform_list_seq_show, NULL);
}
static const struct file_operations platform_list_fops = {
- .read = platform_list_read_file,
- .llseek = default_llseek,/* read accesses f_pos */
+ .open = platform_list_seq_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
};
static void soc_init_card_debugfs(struct snd_soc_card *card)
@@ -491,7 +455,6 @@ static void soc_cleanup_card_debugfs(struct snd_soc_card *card)
debugfs_remove_recursive(card->debugfs_card_root);
}
-
static void snd_soc_debugfs_init(void)
{
snd_soc_debugfs_root = debugfs_create_dir("asoc", NULL);
--
2.15.1
3
8
[alsa-devel] [PATCH] ASoC: samsung: Add the DT binding files entry to MAINTAINERS
by Sylwester Nawrocki 08 Feb '18
by Sylwester Nawrocki 08 Feb '18
08 Feb '18
This patch adds missing DT binding files to the Samsung ASoC
drivers entry.
Signed-off-by: Sylwester Nawrocki <s.nawrocki(a)samsung.com>
---
MAINTAINERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 5046003ea162..da2df3194d72 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11921,6 +11921,7 @@ M: Sylwester Nawrocki <s.nawrocki(a)samsung.com>
L: alsa-devel(a)alsa-project.org (moderated for non-subscribers)
S: Supported
F: sound/soc/samsung/
+F: Documentation/devicetree/bindings/sound/samsung*
SAMSUNG EXYNOS PSEUDO RANDOM NUMBER GENERATOR (RNG) DRIVER
M: Krzysztof Kozlowski <krzk(a)kernel.org>
--
2.14.2
3
2
This is a v4l2 subdev driver supporting the TDA1997x HDMI video receiver.
I've tested this on a Gateworks GW54xx/GW551x with an IMX6Q/IMX6DL which
uses the TDA19971 with 16bits connected to the IMX6 CSI and single-lane
I2S audio providing 2-channel audio.
For this configuration I've tested both 16bit YUV422 and 8bit
BT656 parallel video bus modes.
While the driver should support the TDA1993 I do not have one for testing.
Further potential development efforts include:
- CEC support
- HDCP support
- TDA19972 support (2 inputs)
Media graphs can be found at http://dev.gateworks.com/docs/linux/media
History:
v8:
- support full range of input modes based on timings_cap
- add patch to fix clearing pad for VIDIOC_DV_TIMIGINGS
- fix available formats for tda19971 bt656 bus width >12
- fix set_format (compliance)
- fixed get/set edid (compliance)
- add init_cfg to setup default pad config (compliance)
- added missing pad checks to get_dv_timings_cap/enum_dv_timings (compliance)
- fix alignment of if statement and whitespace in comment (Hans)
- move regs to tda1997x_regs.h to clean up (Hans)
- add define and sanity check for num of mbus_codes (Hans)
v7:
- fix interlaced mode
- support no AVI infoframe (ie DVI) (Hans)
- add support for multiple output formats (Hans)
v6:
- tda1997x: fix return on regulator enablei in tda1997x_set_power() (Fabio)
- tda1997x: fix colorspace handling (Hans)
- bindings: added Robs's ack (Rob)
- replace copyright with SPDX tag (Philippe)
v5:
- added v4l2_hdmi_colorimetry() patch from Hans to series
- bindings: added Sakari's ack
- tda1997x: uppercase string constants
- tda1997x: use v4l2_hdmi_rx_coloriemtry to fill format
- tda1997x: fix V4L2_CID_DV_RX_RGB_RANGE
- tda1997x: fix interlaced mode format
- dts: remove leading 0 from unit address
- dts: add newline between property list and child node
- dts: added missing audmux in GW551x dts
v4:
- move include/dt-bindings/media/tda1997x.h to bindings patch
- clarify port node details in bindings
- fix typos
- fix default quant range for VGA
- fix quant range handling and conv matrix
- add additional standards and capabilities to timings_cap
v3:
- fix typo in dt bindings
- added dt bindings for GW551x
- use V4L2_DV_BT_FRAME_WIDTH/HEIGHT macros
- fixed missing break
- use only hdmi_infoframe_log for infoframe logging
- simplify tda1997x_s_stream error handling
- add delayed work proc to handle hotplug enable/disable
- fix set_edid (disable HPD before writing, enable after)
- remove enabling edid by default
- initialize timings
- take quant range into account in colorspace conversion
- remove vendor/product tracking (we provide this in log_status via
infoframes)
- add v4l_controls
- add more detail to log_status
- calculate vhref generator timings
- timing detection fixes (rounding errors, hswidth errors)
- rename configure_input/configure_conv functions
v2:
- encorporate feedback into dt bindings
- change audio dt bindings
- implement dv timings enum/cap
- remove deprecated g_mbus_config op
- fix dv_query_timings
- add EDID get/set handling
- remove max-pixel-rate support
- add audio codec DAI support
- added media-ctl and v4l2-compliance details
v1:
- initial RFC
Media device topology:
# media-ctl -d /dev/media0 -p
Media controller API version 4.13.0
Media device information
------------------------
driver imx-media
model imx-media
serial
bus info
hw revision 0x0
driver version 4.13.0
Device topology
- entity 1: adv7180 2-0020 (1 pad, 1 link)
type V4L2 subdev subtype Unknown flags 20004
device node name /dev/v4l-subdev0
pad0: Source
[fmt:UYVY8_2X8/720x480 field:interlaced colorspace:smpte170m]
-> "ipu2_csi1_mux":1 []
- entity 3: tda19971 2-0048 (1 pad, 1 link)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev1
pad0: Source
[fmt:UYVY8_1X16/640x480 field:none colorspace:srgb]
[dv.caps:BT.656/1120 min:640x480@13000000 max:1920x1080@165000000 stds:CEA-861,DMT caps:progressive]
[dv.detect:BT.656/1120 640x480p59 (800x525) stds:CEA-861,DMT flags:has-cea861-vic]
[dv.current:BT.656/1120 1920x1080p60 (2200x1125) stds:CEA-861,DMT flags:can-reduce-fps,CE-video,has-cea861-vic]
-> "ipu1_csi0_mux":1 []
- entity 5: ipu1_vdic (3 pads, 3 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev2
pad0: Sink
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
<- "ipu1_csi0":1 []
<- "ipu1_csi1":1 []
pad1: Sink
[fmt:UYVY8_2X8/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
pad2: Source
[fmt:AYUV8_1X32/640x480@1/60 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu1_ic_prp":0 []
- entity 9: ipu2_vdic (3 pads, 3 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev3
pad0: Sink
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
<- "ipu2_csi0":1 []
<- "ipu2_csi1":1 []
pad1: Sink
[fmt:UYVY8_2X8/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
pad2: Source
[fmt:AYUV8_1X32/640x480@1/60 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu2_ic_prp":0 []
- entity 13: ipu1_ic_prp (3 pads, 5 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev4
pad0: Sink
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
<- "ipu1_vdic":2 []
<- "ipu1_csi0":1 []
<- "ipu1_csi1":1 []
pad1: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu1_ic_prpenc":0 []
pad2: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu1_ic_prpvf":0 []
- entity 17: ipu1_ic_prpenc (2 pads, 2 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev5
pad0: Sink
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
<- "ipu1_ic_prp":1 []
pad1: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu1_ic_prpenc capture":0 []
- entity 20: ipu1_ic_prpenc capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: Sink
<- "ipu1_ic_prpenc":1 []
- entity 26: ipu1_ic_prpvf (2 pads, 2 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev6
pad0: Sink
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
<- "ipu1_ic_prp":2 []
pad1: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu1_ic_prpvf capture":0 []
- entity 29: ipu1_ic_prpvf capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video1
pad0: Sink
<- "ipu1_ic_prpvf":1 []
- entity 35: ipu2_ic_prp (3 pads, 5 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev7
pad0: Sink
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
<- "ipu2_vdic":2 []
<- "ipu2_csi0":1 []
<- "ipu2_csi1":1 []
pad1: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu2_ic_prpenc":0 []
pad2: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu2_ic_prpvf":0 []
- entity 39: ipu2_ic_prpenc (2 pads, 2 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev8
pad0: Sink
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
<- "ipu2_ic_prp":1 []
pad1: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu2_ic_prpenc capture":0 []
- entity 42: ipu2_ic_prpenc capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video2
pad0: Sink
<- "ipu2_ic_prpenc":1 []
- entity 48: ipu2_ic_prpvf (2 pads, 2 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev9
pad0: Sink
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
<- "ipu2_ic_prp":2 []
pad1: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu2_ic_prpvf capture":0 []
- entity 51: ipu2_ic_prpvf capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video3
pad0: Sink
<- "ipu2_ic_prpvf":1 []
- entity 57: ipu1_csi0 (3 pads, 4 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev10
pad0: Sink
[fmt:UYVY8_2X8/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range
crop.bounds:(0,0)/640x480
crop:(0,0)/640x480
compose.bounds:(0,0)/640x480
compose:(0,0)/640x480]
<- "ipu1_csi0_mux":2 []
pad1: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu1_ic_prp":0 []
-> "ipu1_vdic":0 []
pad2: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu1_csi0 capture":0 []
- entity 61: ipu1_csi0 capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video4
pad0: Sink
<- "ipu1_csi0":2 []
- entity 67: ipu1_csi1 (3 pads, 3 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev11
pad0: Sink
[fmt:UYVY8_2X8/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range
crop.bounds:(0,0)/640x480
crop:(0,0)/640x480
compose.bounds:(0,0)/640x480
compose:(0,0)/640x480]
pad1: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu1_ic_prp":0 []
-> "ipu1_vdic":0 []
pad2: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu1_csi1 capture":0 []
- entity 71: ipu1_csi1 capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video5
pad0: Sink
<- "ipu1_csi1":2 []
- entity 77: ipu2_csi0 (3 pads, 3 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev12
pad0: Sink
[fmt:UYVY8_2X8/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range
crop.bounds:(0,0)/640x480
crop:(0,0)/640x480
compose.bounds:(0,0)/640x480
compose:(0,0)/640x480]
pad1: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu2_ic_prp":0 []
-> "ipu2_vdic":0 []
pad2: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu2_csi0 capture":0 []
- entity 81: ipu2_csi0 capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video6
pad0: Sink
<- "ipu2_csi0":2 []
- entity 87: ipu2_csi1 (3 pads, 4 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev13
pad0: Sink
[fmt:UYVY8_2X8/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range
crop.bounds:(0,0)/640x480
crop:(0,0)/640x480
compose.bounds:(0,0)/640x480
compose:(0,0)/640x480]
<- "ipu2_csi1_mux":2 []
pad1: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu2_ic_prp":0 []
-> "ipu2_vdic":0 []
pad2: Source
[fmt:AYUV8_1X32/640x480@1/30 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
-> "ipu2_csi1 capture":0 []
- entity 91: ipu2_csi1 capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video7
pad0: Sink
<- "ipu2_csi1":2 []
- entity 97: ipu1_csi0_mux (3 pads, 2 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev14
pad0: Sink
[fmt:unknown/0x0]
pad1: Sink
[fmt:unknown/0x0]
<- "tda19971 2-0048":0 []
pad2: Source
[fmt:unknown/0x0]
-> "ipu1_csi0":0 []
- entity 101: ipu2_csi1_mux (3 pads, 2 links)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev15
pad0: Sink
[fmt:unknown/0x0]
pad1: Sink
[fmt:unknown/0x0]
<- "adv7180 2-0020":0 []
pad2: Source
[fmt:unknown/0x0]
-> "ipu2_csi1":0 []
v4l2-compliance test results:
- with the following kernel patches:
v4l2-subdev: clear reserved fields
. v4l2-subdev: without controls return -ENOTTY
v4l2-compliance SHA : b2f8f9049056eb6f9e028927dacb2c715a062df8
Media Driver Info:
Driver name : imx-media
Model : imx-media
Serial :
Bus info :
Media version : 4.15.0
Hardware revision: 0x00000000 (0)
Driver version : 4.15.0
Interface Info:
ID : 0x0300008f
Type : V4L Sub-Device
Entity Info:
ID : 0x00000003 (3)
Name : tda19971 2-0048
Function : Unknown
Pad 0x01000004 : Source
Link 0x0200006f: to remote pad 0x1000063 of entity 'ipu1_csi0_mux': Data
Compliance test for device /dev/v4l-subdev1:
Allow for multiple opens:
test second /dev/v4l-subdev1 open: OK
test for unlimited opens: OK
Debug ioctls:
test VIDIOC_LOG_STATUS: OK
Input ioctls:
test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 0 Audio Inputs: 0 Tuners: 0
Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0
Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK
test VIDIOC_DV_TIMINGS_CAP: OK
test VIDIOC_G/S_EDID: OK
Sub-Device ioctls (Source Pad 0):
test Try VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/FRAME_INTERVAL: OK
test Try VIDIOC_SUBDEV_G/S_FMT: OK
test Try VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
test Active VIDIOC_SUBDEV_ENUM_MBUS_CODE/FRAME_SIZE/FRAME_INTERVAL: OK
test Active VIDIOC_SUBDEV_G/S_FMT: OK
test Active VIDIOC_SUBDEV_G/S_SELECTION/CROP: OK (Not Supported)
test VIDIOC_SUBDEV_G/S_FRAME_INTERVAL: OK (Not Supported)
Control ioctls:
test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported)
test VIDIOC_QUERYCTRL: OK (Not Supported)
test VIDIOC_G/S_CTRL: OK (Not Supported)
test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 0 Private Controls: 0
Format ioctls:
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK (Not Supported)
test VIDIOC_G/S_PARM: OK (Not Supported)
test VIDIOC_G_FBUF: OK (Not Supported)
test VIDIOC_G_FMT: OK (Not Supported)
test VIDIOC_TRY_FMT: OK (Not Supported)
test VIDIOC_S_FMT: OK (Not Supported)
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
test Cropping: OK (Not Supported)
test Composing: OK (Not Supported)
test Scaling: OK (Not Supported)
Codec ioctls:
test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
Buffer ioctls:
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK (Not Supported)
test VIDIOC_EXPBUF: OK (Not Supported)
Total: 46, Succeeded: 46, Failed: 0, Warnings: 0
Hans Verkuil (1):
v4l2-dv-timings: add v4l2_hdmi_colorimetry()
Tim Harvey (6):
media: v4l-ioctl: fix clearing pad for VIDIOC_DV_TIMIGNS_CAP
MAINTAINERS: add entry for NXP TDA1997x driver
media: dt-bindings: Add bindings for TDA1997X
media: i2c: Add TDA1997x HDMI receiver driver
ARM: dts: imx: Add TDA19971 HDMI Receiver to GW54xx
ARM: dts: imx: Add TDA19971 HDMI Receiver to GW551x
.../devicetree/bindings/media/i2c/tda1997x.txt | 179 ++
MAINTAINERS | 8 +
arch/arm/boot/dts/imx6q-gw54xx.dts | 105 +
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 29 +-
arch/arm/boot/dts/imx6qdl-gw551x.dtsi | 138 +
drivers/media/i2c/Kconfig | 9 +
drivers/media/i2c/Makefile | 1 +
drivers/media/i2c/tda1997x.c | 2845 ++++++++++++++++++++
drivers/media/i2c/tda1997x_regs.h | 641 +++++
drivers/media/v4l2-core/v4l2-dv-timings.c | 141 +
drivers/media/v4l2-core/v4l2-ioctl.c | 2 +-
include/dt-bindings/media/tda1997x.h | 74 +
include/media/i2c/tda1997x.h | 42 +
include/media/v4l2-dv-timings.h | 21 +
14 files changed, 4231 insertions(+), 4 deletions(-)
create mode 100644 Documentation/devicetree/bindings/media/i2c/tda1997x.txt
create mode 100644 drivers/media/i2c/tda1997x.c
create mode 100644 drivers/media/i2c/tda1997x_regs.h
create mode 100644 include/dt-bindings/media/tda1997x.h
create mode 100644 include/media/i2c/tda1997x.h
--
2.7.4
4
21
[alsa-devel] [PATCH - JACK PCM plugin] jack: Write only valid values to the internal hw_ptr
by twischer@de.adit-jv.com 08 Feb '18
by twischer@de.adit-jv.com 08 Feb '18
08 Feb '18
From: Timo Wischer <twischer(a)de.adit-jv.com>
Otherwise the ALSA thread could for example read a hw_ptr >
buffer_size
Signed-off-by: Timo Wischer <twischer(a)de.adit-jv.com>
diff --git a/jack/pcm_jack.c b/jack/pcm_jack.c
index 4468ede..3aed332 100644
--- a/jack/pcm_jack.c
+++ b/jack/pcm_jack.c
@@ -137,6 +137,7 @@ static int
snd_pcm_jack_process_cb(jack_nframes_t nframes, snd_pcm_ioplug_t *io)
{
snd_pcm_jack_t *jack = io->private_data;
+ snd_pcm_uframes_t hw_ptr;
const snd_pcm_channel_area_t *areas;
snd_pcm_uframes_t xfer = 0;
unsigned int channel;
@@ -155,12 +156,13 @@ snd_pcm_jack_process_cb(jack_nframes_t nframes, snd_pcm_ioplug_t *io)
return 0;
}
}
-
+
+ hw_ptr = jack->hw_ptr;
areas = snd_pcm_ioplug_mmap_areas(io);
while (xfer < nframes) {
snd_pcm_uframes_t frames = nframes - xfer;
- snd_pcm_uframes_t offset = jack->hw_ptr;
+ snd_pcm_uframes_t offset = hw_ptr;
snd_pcm_uframes_t cont = io->buffer_size - offset;
if (cont < frames)
@@ -173,10 +175,11 @@ snd_pcm_jack_process_cb(jack_nframes_t nframes, snd_pcm_ioplug_t *io)
snd_pcm_area_copy(&areas[channel], offset, &jack->areas[channel], xfer, frames, io->format);
}
- jack->hw_ptr += frames;
- jack->hw_ptr %= io->buffer_size;
+ hw_ptr += frames;
+ hw_ptr %= io->buffer_size;
xfer += frames;
}
+ jack->hw_ptr = hw_ptr;
pcm_poll_unblock_check(io); /* unblock socket for polling if needed */
--
2.7.4
3
2
This pull request is for things that arrived in the last week of the
v4.15 cycle, I'm sending it directly since Takashi still seems to be on
holiday (I'd thought he'd be back this week). There's some random new
development in here and also a bunch of bugfixes.
The I/O fix mentioned in the tag below is pretty important and would be
especially good to have fixed in -rc1, it was reported right at the end
of the v4.15 cycle so didn't make Takashi's early pull request and
causes a power regression on some of the OMAP platforms. If this
request is a problem I can do a smaller one with just that in it.
Unfortunately I can't figure out how to generate a sensible git pull
request for this since it ended up containing both v4.15-rc9 and my
prior pull requests. When I use your tree as the reference git pull
goes with your -rc9 tag so the diffstat contains way more stuff than
you'll actually get but that seems to be the best alternative.
The following changes since commit 0c5b9b5d9adbad4b60491f9ba0d2af38904bb4b9:
Linux 4.15-rc9 (2018-01-21 13:51:26 -0800)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git tags/asoc-v4.16-4
for you to fetch changes up to e0a663f24d532c7ad9ff34cc1aa96bf94c75ef44:
Merge remote-tracking branch 'asoc/topic/wm8998' into asoc-next (2018-01-26 15:27:56 +0000)
----------------------------------------------------------------
ASoC: Updates for v4.16
With the merge window having been delayed for another week here's
another batch of updates that came in during that week. There's a few
important fixes in here, mainly a fix for I/O on a number of devices
caused by some of the component rework and a fix for a potential issue
if more than one component in a link provides compressed operations.
----------------------------------------------------------------
Charles Keepax (3):
ASoC: compress: Correct handling of copy callback
ASoC: compress: Remove some extraneous blank lines
ASoC: compress: Fixup error messages
Fabio Estevam (1):
ASoC: sgtl5000: Clarify a bit about the ER1 meaning
Harsha Priya (1):
ASoC: Intel: kbl: Enable mclk and ssp sclk early
Jeffy Chen (1):
ASoC: rockchip: Use dummy_dai for rt5514 dsp dailink
Kuninori Morimoto (4):
ASoC: soc-core: snd_soc_rtdcom_lookup() cares component driver name
ASoC: soc-pcm: don't call flush_delayed_work() many times in soc_pcm_private_free()
ASoC: ak4613: call dummy write for PW_MGMT1/3 when Playback
ASoC: soc-pcm: rename .pmdown_time to .use_pmdown_time for Component
Ladislav Michl (2):
ASoC: sam9g20_wm8731: use dev_*() logging functions
ASoC: sam9x5_wm8731: Drop 'ASoC' prefix from error messages
Mark Brown (35):
Merge branches 'topic/twl4030' and 'topic/twl6040' of https://git.kernel.org/.../broonie/sound into asoc-twl-breakage
Merge branch 'fix/compress' of https://git.kernel.org/.../broonie/sound into asoc-compress
Merge remote-tracking branch 'asoc/fix/core' into asoc-linus
Merge remote-tracking branch 'asoc/fix/intel' into asoc-linus
Merge remote-tracking branch 'asoc/fix/rockchip' into asoc-linus
Merge remote-tracking branches 'asoc/fix/compress' and 'asoc/fix/mtk' into asoc-linus
Merge remote-tracking branch 'asoc/topic/core' into asoc-next
Merge remote-tracking branch 'asoc/topic/intel' into asoc-next
Merge remote-tracking branch 'asoc/topic/pcm' into asoc-next
Merge remote-tracking branch 'asoc/topic/pcm186x' into asoc-next
Merge remote-tracking branch 'asoc/topic/pcm512x' into asoc-next
Merge remote-tracking branch 'asoc/topic/qcom' into asoc-next
Merge remote-tracking branch 'asoc/topic/rcar' into asoc-next
Merge remote-tracking branch 'asoc/topic/rockchip' into asoc-next
Merge remote-tracking branch 'asoc/topic/twl-breakage' into asoc-next
Merge remote-tracking branches 'asoc/topic/88pm860x', 'asoc/topic/ak4613', 'asoc/topic/amd', 'asoc/topic/atmel' and 'asoc/topic/au1x' into asoc-next
Merge remote-tracking branches 'asoc/topic/bcm2835', 'asoc/topic/codecs', 'asoc/topic/compress' and 'asoc/topic/cq93vc' into asoc-next
Merge remote-tracking branches 'asoc/topic/cs35l32', 'asoc/topic/cs35l34', 'asoc/topic/cs42l52', 'asoc/topic/cs42l56' and 'asoc/topic/cs42l73' into asoc-next
Merge remote-tracking branches 'asoc/topic/cs47l24', 'asoc/topic/cx20442', 'asoc/topic/da7213', 'asoc/topic/da7218' and 'asoc/topic/dai-drv' into asoc-next
Merge remote-tracking branches 'asoc/topic/davinci', 'asoc/topic/debugfs', 'asoc/topic/disconnect', 'asoc/topic/dmic' and 'asoc/topic/ep93xx' into asoc-next
Merge remote-tracking branches 'asoc/topic/eukrea-tlv320', 'asoc/topic/fsl', 'asoc/topic/fsl-ssi' and 'asoc/topic/fsl_asrc' into asoc-next
Merge remote-tracking branches 'asoc/topic/hdac_hdmi', 'asoc/topic/hisilicon', 'asoc/topic/iio' and 'asoc/topic/max98373' into asoc-next
Merge remote-tracking branches 'asoc/topic/max98926', 'asoc/topic/max98927', 'asoc/topic/mc13783', 'asoc/topic/msm8916' and 'asoc/topic/mt8173' into asoc-next
Merge remote-tracking branches 'asoc/topic/mtk', 'asoc/topic/mxs', 'asoc/topic/mxs-sgtl5000', 'asoc/topic/nau8540' and 'asoc/topic/nau8824' into asoc-next
Merge remote-tracking branches 'asoc/topic/nau8825' and 'asoc/topic/nuc900' into asoc-next
Merge remote-tracking branches 'asoc/topic/rl6231' and 'asoc/topic/rt5514' into asoc-next
Merge remote-tracking branches 'asoc/topic/rt5645', 'asoc/topic/sam9g20_wm8731', 'asoc/topic/sam9x5_wm8731', 'asoc/topic/samsung' and 'asoc/topic/sgtl5000' into asoc-next
Merge remote-tracking branches 'asoc/topic/si476x', 'asoc/topic/simple', 'asoc/topic/spdif', 'asoc/topic/st-dfsdm' and 'asoc/topic/stm32' into asoc-next
Merge remote-tracking branches 'asoc/topic/sun4i-i2s', 'asoc/topic/sun8i-codec', 'asoc/topic/sunxi', 'asoc/topic/symmetry' and 'asoc/topic/tas5720' into asoc-next
Merge remote-tracking branches 'asoc/topic/tas6424', 'asoc/topic/tfa9879', 'asoc/topic/tlv320aic31xx', 'asoc/topic/tlv320aic32x4' and 'asoc/topic/tlv320aic3x' into asoc-next
Merge remote-tracking branches 'asoc/topic/tlv320dac33', 'asoc/topic/ts3a227e' and 'asoc/topic/tscs42xx' into asoc-next
Merge remote-tracking branches 'asoc/topic/uda1380', 'asoc/topic/uniphier' and 'asoc/topic/utils' into asoc-next
Merge remote-tracking branches 'asoc/topic/ux500', 'asoc/topic/wm0010', 'asoc/topic/wm2000', 'asoc/topic/wm5102' and 'asoc/topic/wm5110' into asoc-next
Merge remote-tracking branches 'asoc/topic/wm8350', 'asoc/topic/wm8400', 'asoc/topic/wm8903', 'asoc/topic/wm8994' and 'asoc/topic/wm8997' into asoc-next
Merge remote-tracking branch 'asoc/topic/wm8998' into asoc-next
Matthias Kaehlcke (1):
ASoC: dmic: Fix check of return value from read of 'num-channels'
Mylene JOSSERAND (1):
ASoC: sun8i-codec: Add ADC support for a33
Ryan Lee (1):
ASoC: max98373 Changed SPDX header in C++ comments style
Ryder Lee (1):
ASoC: mediatek: fix double free in mt2701_afe_pcm_dev_probe()
Sriram Periyasamy (2):
ASoC: Intel: Skylake: Add ssp clock driver
ASoC: Intel: Skylake: Add extended I2S config blob support in Clock driver
Tony Lindgren (1):
ASoC: Fix twl4030 and 6040 regression by adding back read and write
.../ABI/testing/sysfs-bus-iio-dfsdm-adc-stm32 | 16 +
.../bindings/iio/adc/sigma-delta-modulator.txt | 13 +
.../bindings/iio/adc/st,stm32-dfsdm-adc.txt | 128 +
Documentation/devicetree/bindings/sound/dmic.txt | 2 +
.../devicetree/bindings/sound/max98373.txt | 40 +
.../devicetree/bindings/sound/mt2701-afe-pcm.txt | 266 +-
.../bindings/sound/mxs-audio-sgtl5000.txt | 33 +-
.../devicetree/bindings/sound/nau8825.txt | 4 +-
.../devicetree/bindings/sound/pcm186x.txt | 42 +
.../devicetree/bindings/sound/renesas,rsnd.txt | 15 +-
.../devicetree/bindings/sound/simple-card.txt | 3 +
.../devicetree/bindings/sound/st,stm32-adfsdm.txt | 63 +
.../devicetree/bindings/sound/st,stm32-sai.txt | 12 +-
.../devicetree/bindings/sound/sun4i-i2s.txt | 2 +
.../devicetree/bindings/sound/tas5720.txt | 4 +-
.../devicetree/bindings/sound/tfa9879.txt | 8 +-
.../devicetree/bindings/sound/ti,tas6424.txt | 20 +
.../devicetree/bindings/sound/tlv320aic31xx.txt | 9 +-
.../devicetree/bindings/sound/tlv320aic3x.txt | 10 +-
.../devicetree/bindings/sound/tscs42xx.txt | 16 +
.../devicetree/bindings/sound/uniphier,evea.txt | 26 +
.../devicetree/bindings/vendor-prefixes.txt | 1 +
Documentation/driver-api/iio/hw-consumer.rst | 51 +
Documentation/driver-api/iio/index.rst | 1 +
MAINTAINERS | 14 +
drivers/acpi/utils.c | 41 +-
drivers/gpio/gpio-merrifield.c | 11 +-
drivers/iio/adc/Kconfig | 37 +
drivers/iio/adc/Makefile | 3 +
drivers/iio/adc/sd_adc_modulator.c | 68 +
drivers/iio/adc/stm32-dfsdm-adc.c | 1205 +++++++++
drivers/iio/adc/stm32-dfsdm-core.c | 302 +++
drivers/iio/adc/stm32-dfsdm.h | 310 +++
drivers/iio/buffer/Kconfig | 10 +
drivers/iio/buffer/Makefile | 1 +
drivers/iio/buffer/industrialio-buffer-cb.c | 11 +
drivers/iio/buffer/industrialio-hw-consumer.c | 247 ++
drivers/iio/inkern.c | 17 +-
include/acpi/acpi_bus.h | 3 +
include/linux/acpi.h | 6 +
include/linux/iio/adc/stm32-dfsdm-adc.h | 18 +
include/linux/iio/consumer.h | 37 +
include/linux/iio/hw-consumer.h | 21 +
include/linux/iio/iio.h | 28 -
include/linux/iio/types.h | 28 +
include/sound/hdaudio_ext.h | 4 +-
include/sound/pcm.h | 8 +
include/sound/rt5514.h | 2 +
include/sound/rt5645.h | 3 +
include/sound/soc-acpi-intel-match.h | 1 +
include/sound/soc-acpi.h | 14 +-
include/sound/soc-dai.h | 5 +-
include/sound/soc.h | 11 +-
include/uapi/sound/asound.h | 9 +
include/uapi/sound/snd_sst_tokens.h | 17 +-
sound/core/pcm_misc.c | 19 +-
sound/hda/ext/hdac_ext_bus.c | 2 +-
sound/soc/Kconfig | 1 +
sound/soc/Makefile | 1 +
sound/soc/amd/acp-pcm-dma.c | 35 +-
sound/soc/atmel/atmel-classd.c | 6 -
sound/soc/atmel/sam9g20_wm8731.c | 17 +-
sound/soc/atmel/sam9x5_wm8731.c | 12 +-
sound/soc/au1x/ac97c.c | 6 +-
sound/soc/bcm/bcm2835-i2s.c | 20 +-
sound/soc/cirrus/ep93xx-ac97.c | 6 +-
sound/soc/codecs/88pm860x-codec.c | 9 +-
sound/soc/codecs/Kconfig | 46 +-
sound/soc/codecs/Makefile | 13 +-
sound/soc/codecs/ak4613.c | 78 +
sound/soc/codecs/cq93vc.c | 10 +-
sound/soc/codecs/cs35l32.c | 18 +-
sound/soc/codecs/cs35l34.c | 19 +-
sound/soc/codecs/cs42l52.c | 13 +-
sound/soc/codecs/cs42l56.c | 13 +-
sound/soc/codecs/cs42l73.c | 15 +-
sound/soc/codecs/cs47l24.c | 12 +-
sound/soc/codecs/cx20442.c | 46 +-
sound/soc/codecs/da7213.c | 7 +-
sound/soc/codecs/da7218.c | 9 +-
sound/soc/codecs/dmic.c | 24 +-
sound/soc/codecs/hdac_hdmi.c | 358 ++-
sound/soc/codecs/max98373.c | 976 +++++++
sound/soc/codecs/max98373.h | 213 ++
sound/soc/codecs/max98926.c | 2 +-
sound/soc/codecs/max98927.c | 1 -
sound/soc/codecs/mc13783.c | 9 +-
sound/soc/codecs/msm8916-wcd-analog.c | 8 +-
sound/soc/codecs/nau8540.c | 98 +-
sound/soc/codecs/nau8540.h | 20 +
sound/soc/codecs/nau8824.c | 18 +-
sound/soc/codecs/nau8825.c | 101 +-
sound/soc/codecs/nau8825.h | 3 +-
sound/soc/codecs/pcm186x-i2c.c | 69 +
sound/soc/codecs/pcm186x-spi.c | 69 +
sound/soc/codecs/pcm186x.c | 719 ++++++
sound/soc/codecs/pcm186x.h | 220 ++
sound/soc/codecs/pcm512x-spi.c | 4 +
sound/soc/codecs/rl6231.c | 93 +-
sound/soc/codecs/rt5514-spi.c | 1 +
sound/soc/codecs/rt5514.c | 85 +
sound/soc/codecs/rt5514.h | 5 +-
sound/soc/codecs/rt5645.c | 187 +-
sound/soc/codecs/rt5645.h | 6 +
sound/soc/codecs/sgtl5000.c | 7 +-
sound/soc/codecs/si476x.c | 9 +-
sound/soc/codecs/sn95031.c | 936 -------
sound/soc/codecs/sn95031.h | 133 -
sound/soc/codecs/spdif_receiver.c | 5 +-
sound/soc/codecs/spdif_transmitter.c | 5 +-
sound/soc/codecs/tas5720.c | 61 +-
sound/soc/codecs/tas5720.h | 31 +
sound/soc/codecs/tas6424.c | 707 +++++
sound/soc/codecs/tas6424.h | 144 ++
sound/soc/codecs/tfa9879.c | 1 +
sound/soc/codecs/tlv320aic31xx.c | 310 +--
sound/soc/codecs/tlv320aic31xx.h | 335 +--
sound/soc/codecs/tlv320aic32x4.c | 182 +-
sound/soc/codecs/tlv320aic32x4.h | 308 ++-
sound/soc/codecs/tlv320aic3x.c | 15 +-
sound/soc/codecs/tlv320dac33.c | 32 +-
sound/soc/codecs/ts3a227e.c | 2 +-
sound/soc/codecs/tscs42xx.c | 1456 +++++++++++
sound/soc/codecs/tscs42xx.h | 2693 ++++++++++++++++++++
sound/soc/codecs/twl4030.c | 9 +-
sound/soc/codecs/twl6040.c | 18 +-
sound/soc/codecs/uda1380.c | 42 +-
sound/soc/codecs/wm0010.c | 5 +-
sound/soc/codecs/wm2000.c | 6 +-
sound/soc/codecs/wm2200.c | 9 +-
sound/soc/codecs/wm5102.c | 11 +-
sound/soc/codecs/wm5110.c | 12 +-
sound/soc/codecs/wm8350.c | 10 +-
sound/soc/codecs/wm8400.c | 9 +-
sound/soc/codecs/wm8903.c | 12 +-
sound/soc/codecs/wm8994.c | 10 +-
sound/soc/codecs/wm8997.c | 11 +-
sound/soc/codecs/wm8998.c | 12 +-
sound/soc/davinci/davinci-mcasp.c | 19 +
sound/soc/fsl/eukrea-tlv320.c | 1 -
sound/soc/fsl/fsl-asoc-card.c | 4 +-
sound/soc/fsl/fsl_asrc.h | 2 +-
sound/soc/fsl/fsl_dma.c | 4 +-
sound/soc/fsl/fsl_ssi.c | 1367 +++++-----
sound/soc/fsl/fsl_ssi.h | 427 ++--
sound/soc/fsl/fsl_ssi_dbg.c | 59 +-
sound/soc/hisilicon/hi6210-i2s.c | 1 -
sound/soc/intel/Kconfig | 118 +-
sound/soc/intel/Makefile | 2 +-
sound/soc/intel/atom/sst/sst_acpi.c | 3 +
sound/soc/intel/atom/sst/sst_stream.c | 8 +-
sound/soc/intel/boards/Kconfig | 196 +-
sound/soc/intel/boards/bytcht_da7213.c | 4 +-
sound/soc/intel/boards/bytcht_es8316.c | 26 +-
sound/soc/intel/boards/bytcr_rt5640.c | 4 +-
sound/soc/intel/boards/bytcr_rt5651.c | 50 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 13 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 4 +-
sound/soc/intel/boards/haswell.c | 2 +-
sound/soc/intel/boards/kbl_rt5663_max98927.c | 97 +-
.../soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 2 +-
sound/soc/intel/boards/mfld_machine.c | 428 ----
sound/soc/intel/common/sst-dsp.c | 4 +-
sound/soc/intel/skylake/Makefile | 5 +
sound/soc/intel/skylake/bxt-sst.c | 2 +-
sound/soc/intel/skylake/cnl-sst.c | 2 +-
sound/soc/intel/skylake/skl-i2s.h | 95 +
sound/soc/intel/skylake/skl-messages.c | 23 +
sound/soc/intel/skylake/skl-nhlt.c | 175 +-
sound/soc/intel/skylake/skl-pcm.c | 14 +-
sound/soc/intel/skylake/skl-ssp-clk.c | 429 ++++
sound/soc/intel/skylake/skl-ssp-clk.h | 117 +
sound/soc/intel/skylake/skl-sst-dsp.c | 14 +-
sound/soc/intel/skylake/skl-sst-dsp.h | 4 +
sound/soc/intel/skylake/skl-sst-utils.c | 6 +-
sound/soc/intel/skylake/skl-sst.c | 2 +-
sound/soc/intel/skylake/skl-topology.c | 45 +-
sound/soc/intel/skylake/skl.c | 150 +-
sound/soc/intel/skylake/skl.h | 28 +
sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c | 552 ++--
sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.h | 15 +-
sound/soc/mediatek/mt2701/mt2701-afe-common.h | 87 +-
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 215 +-
sound/soc/mediatek/mt2701/mt2701-reg.h | 42 +-
sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 6 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 2 -
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 2 -
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 2 -
sound/soc/mxs/mxs-sgtl5000.c | 25 +-
sound/soc/nuc900/nuc900-ac97.c | 11 +-
sound/soc/omap/ams-delta.c | 4 +-
sound/soc/qcom/apq8016_sbc.c | 10 +-
sound/soc/rockchip/rk3399_gru_sound.c | 22 +-
sound/soc/rockchip/rockchip_i2s.c | 11 +-
sound/soc/samsung/bells.c | 40 +-
sound/soc/sh/rcar/core.c | 143 +-
sound/soc/sh/rcar/dma.c | 18 -
sound/soc/sh/rcar/rsnd.h | 15 +-
sound/soc/sh/rcar/ssi.c | 163 +-
sound/soc/soc-acpi.c | 73 +-
sound/soc/soc-compress.c | 81 +-
sound/soc/soc-core.c | 155 +-
sound/soc/soc-io.c | 6 +
sound/soc/soc-ops.c | 4 +-
sound/soc/soc-pcm.c | 7 +-
sound/soc/soc-utils.c | 2 +-
sound/soc/stm/Kconfig | 12 +
sound/soc/stm/Makefile | 3 +
sound/soc/stm/stm32_adfsdm.c | 347 +++
sound/soc/stm/stm32_sai.c | 114 +-
sound/soc/sunxi/sun4i-codec.c | 29 +-
sound/soc/sunxi/sun4i-i2s.c | 57 +-
sound/soc/sunxi/sun8i-codec.c | 82 +-
sound/soc/uniphier/Kconfig | 19 +
sound/soc/uniphier/Makefile | 3 +
sound/soc/uniphier/evea.c | 567 +++++
sound/soc/ux500/mop500.c | 4 +
sound/soc/ux500/ux500_pcm.c | 5 +
218 files changed, 16235 insertions(+), 5223 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-dfsdm-adc-stm32
create mode 100644 Documentation/devicetree/bindings/iio/adc/sigma-delta-modulator.txt
create mode 100644 Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.txt
create mode 100644 Documentation/devicetree/bindings/sound/max98373.txt
create mode 100644 Documentation/devicetree/bindings/sound/pcm186x.txt
create mode 100644 Documentation/devicetree/bindings/sound/st,stm32-adfsdm.txt
create mode 100644 Documentation/devicetree/bindings/sound/ti,tas6424.txt
create mode 100644 Documentation/devicetree/bindings/sound/tscs42xx.txt
create mode 100644 Documentation/devicetree/bindings/sound/uniphier,evea.txt
create mode 100644 Documentation/driver-api/iio/hw-consumer.rst
create mode 100644 drivers/iio/adc/sd_adc_modulator.c
create mode 100644 drivers/iio/adc/stm32-dfsdm-adc.c
create mode 100644 drivers/iio/adc/stm32-dfsdm-core.c
create mode 100644 drivers/iio/adc/stm32-dfsdm.h
create mode 100644 drivers/iio/buffer/industrialio-hw-consumer.c
create mode 100644 include/linux/iio/adc/stm32-dfsdm-adc.h
create mode 100644 include/linux/iio/hw-consumer.h
create mode 100644 sound/soc/codecs/max98373.c
create mode 100644 sound/soc/codecs/max98373.h
create mode 100644 sound/soc/codecs/pcm186x-i2c.c
create mode 100644 sound/soc/codecs/pcm186x-spi.c
create mode 100644 sound/soc/codecs/pcm186x.c
create mode 100644 sound/soc/codecs/pcm186x.h
delete mode 100644 sound/soc/codecs/sn95031.c
delete mode 100644 sound/soc/codecs/sn95031.h
create mode 100644 sound/soc/codecs/tas6424.c
create mode 100644 sound/soc/codecs/tas6424.h
create mode 100644 sound/soc/codecs/tscs42xx.c
create mode 100644 sound/soc/codecs/tscs42xx.h
delete mode 100644 sound/soc/intel/boards/mfld_machine.c
create mode 100644 sound/soc/intel/skylake/skl-i2s.h
create mode 100644 sound/soc/intel/skylake/skl-ssp-clk.c
create mode 100644 sound/soc/intel/skylake/skl-ssp-clk.h
create mode 100644 sound/soc/stm/stm32_adfsdm.c
create mode 100644 sound/soc/uniphier/Kconfig
create mode 100644 sound/soc/uniphier/Makefile
create mode 100644 sound/soc/uniphier/evea.c
3
6
[alsa-devel] [RESEND PATCH v2 00/15] ASoC: qcom: Add support to QDSP6 based audio
by srinivas.kandagatla@linaro.org 07 Feb '18
by srinivas.kandagatla@linaro.org 07 Feb '18
07 Feb '18
From: Srinivas Kandagatla <srinivas.kandagatla(a)linaro.org>
This patchset aims to provide a very basic version of QCOM DSP based
audio support which is available in downstream andriod kernels.
This patchset only support Digital audio based for HDMI-RX and will
add support to other features as we move on.
QDSP has both static and dynamic modules. static modules like AFE
(Audio FrontEnd), ADM (Audio Device Manager), ASM(Audio Stream Manager)
and CORE to provide this audio services.
All these services use APR (Asynchronous Packet Router) protocol
via smd/glink transport to communicate with Application processor.
More details on each module is availble in there respective patch.
This patchset is tested on DB820c, with HDMI audio playback
on top of mainline, also tested slimbus analog audio using wcd9355
with an additional small patch.
Here is block diagram to give a quick overview of the components
+---------+ +---------+ +---------+
| q6asm | |q6routing| | q6afe |
| fedai | <------> | mixers | <-----> | bedai |
+---------+ +---------+ +---------+
^ ^ ^
| | |
| +------------------+----------------+ |
| | | | |
v v v v v
+---------+ +---------+ +---------+
| q6ASM | | q6ADM | | q6AFE |
+---------+ +---------+ +---------+
^ ^ ^ ^
| | | CPU Side |
------+---------------------+-------------------+--------
| | |
| |APR(smd/glink) |
| | |
| +------------------+----------------+ |
| | | | |
+-----+--+-----------------------------------+--+-------
| | | | | QDSP Side |
v v v v v v
+---------+ +---------+ +---------+
| ASM | <------> | ADM | <-----> | AFE |
+---------+ +---------+ +---------+
^
|
+-------------------+
|
---------------------------+--------------------------
| Audio I/O |
v v
+--------------------------------------------------+
| Audio devices |
| CODEC | HDMI-TX | PCM | SLIMBUS | I2S |MI2S |...|
| |
+--------------------------------------------------+
Changes since RFC:
- Converted APR driver to proper bus driver
- Added API version info to apr devices
- Added q6core driver.
- Fixed various issues spotted by Banajit and Kasam.
- Added kernel doc to exported symbols.
- renamed qdsp6v2 to qdsp6 as api version info can be
used from apr device.
- removed unnecessary dt bindings for apr devices.
Srinivas Kandagatla (15):
dt-bindings: soc: qcom: Add bindings for APR bus
soc: qcom: add support to APR bus driver
ASoC: qcom: qdsp6: Add common qdsp6 helper functions
ASoC: qcom: qdsp6: Add support to Q6AFE
ASoC: qcom: qdsp6: Add support to Q6ADM
ASoC: qcom: qdsp6: Add support to Q6ASM
ASoC: qcom: q6asm: Add support to memory map and unmap
ASoC: qcom: q6asm: add support to audio stream apis
ASoC: qcom: qdsp6: Add support to Q6CORE
ASoC: qcom: qdsp6: Add support to q6routing driver
ASoC: qcom: qdsp6: Add support to q6afe dai driver
ASoC: qcom: qdsp6: Add support to q6asm dai driver
dt-bindings: sound: qcom: Add devicetree bindings for apq8096
ASoC: qcom: apq8096: Add db820c machine driver
arm64: dts: msm8996: db820c: Add sound card support
.../devicetree/bindings/soc/qcom/qcom,apr.txt | 28 +
.../devicetree/bindings/sound/qcom,apq8096.txt | 22 +
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 5 +
arch/arm64/boot/dts/qcom/msm8996.dtsi | 33 +
drivers/soc/qcom/Kconfig | 8 +
drivers/soc/qcom/Makefile | 1 +
drivers/soc/qcom/apr.c | 395 +++++++
include/linux/mod_devicetable.h | 13 +
include/linux/soc/qcom/apr.h | 174 +++
sound/soc/qcom/Kconfig | 51 +
sound/soc/qcom/Makefile | 5 +
sound/soc/qcom/apq8096.c | 124 +++
sound/soc/qcom/qdsp6/Makefile | 7 +
sound/soc/qcom/qdsp6/common.h | 225 ++++
sound/soc/qcom/qdsp6/q6adm.c | 602 +++++++++++
sound/soc/qcom/qdsp6/q6adm.h | 24 +
sound/soc/qcom/qdsp6/q6afe-dai.c | 241 +++++
sound/soc/qcom/qdsp6/q6afe.c | 503 +++++++++
sound/soc/qcom/qdsp6/q6afe.h | 30 +
sound/soc/qcom/qdsp6/q6asm-dai.c | 534 ++++++++++
sound/soc/qcom/qdsp6/q6asm.c | 1119 ++++++++++++++++++++
sound/soc/qcom/qdsp6/q6asm.h | 61 ++
sound/soc/qcom/qdsp6/q6core.c | 227 ++++
sound/soc/qcom/qdsp6/q6routing.c | 386 +++++++
sound/soc/qcom/qdsp6/q6routing.h | 9 +
25 files changed, 4827 insertions(+)
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,apr.txt
create mode 100644 Documentation/devicetree/bindings/sound/qcom,apq8096.txt
create mode 100644 drivers/soc/qcom/apr.c
create mode 100644 include/linux/soc/qcom/apr.h
create mode 100644 sound/soc/qcom/apq8096.c
create mode 100644 sound/soc/qcom/qdsp6/Makefile
create mode 100644 sound/soc/qcom/qdsp6/common.h
create mode 100644 sound/soc/qcom/qdsp6/q6adm.c
create mode 100644 sound/soc/qcom/qdsp6/q6adm.h
create mode 100644 sound/soc/qcom/qdsp6/q6afe-dai.c
create mode 100644 sound/soc/qcom/qdsp6/q6afe.c
create mode 100644 sound/soc/qcom/qdsp6/q6afe.h
create mode 100644 sound/soc/qcom/qdsp6/q6asm-dai.c
create mode 100644 sound/soc/qcom/qdsp6/q6asm.c
create mode 100644 sound/soc/qcom/qdsp6/q6asm.h
create mode 100644 sound/soc/qcom/qdsp6/q6core.c
create mode 100644 sound/soc/qcom/qdsp6/q6routing.c
create mode 100644 sound/soc/qcom/qdsp6/q6routing.h
--
2.15.0
7
65
Re: [alsa-devel] [PATCH 00/20] Remove references to undefined symbols and fix two potential bugs
by Robert Jarzmik 07 Feb '18
by Robert Jarzmik 07 Feb '18
07 Feb '18
Ulf Magnusson <ulfalizer(a)gmail.com> writes:
> The symbol AC97_BUS_NEW in sound/ac97/Kconfig selects the globally
> undefined symbol AC97.
>
> It doesn't seem to simply be a misspelling of AC97_BUS, because then
> the dependencies of AC97_BUS_COMPAT would be impossible to satisfy.
You're correct.
I don't know what happened to me when coding this, but you can safely remove
this useless select statement.
Cheers.
--
Robert
1
0
07 Feb '18
Hello Mark,
This is the resend of patchset passed 3 weeks.
https://lkml.org/lkml/2018/1/19/122
This series adds support for Socionext audio system for
UniPhier LD11/LD20 SoCs. This driver supports I2S output
for Line-In, Line-Out and S/PDIF output.
UniPhier AIO DAI driver provides sound devices such as I2S, S/PDIF.
Since the AIO has mixed register map for those I/Os, it is hard to
split register areas for each sound devices.
---
Changes in v2:
- Add comments to aiodma_irq()
- Add members to struct uniphier_aio_sub and add methods
for compress audio
- Expose clocking to userspace
- Fix bad name 'srcport' to 'src'
- Split DMA, DAI patches from large one
- Validate parameters in hw_params()
- Add error checks
- Fix typo in error messages
- Change license comment style to C++ from C
Katsuhiro Suzuki (9):
ASoC: uniphier: add DT bindings documentation for UniPhier AIO
ASoC: uniphier: add support for UniPhier AIO common driver
ASoC: uniphier: add support for UniPhier AIO DMA driver
ASoC: uniphier: add support for UniPhier AIO CPU DAI driver
ASoC: uniphier: add support for UniPhier AIO compress audio
ASoC: uniphier: add support for UniPhier LD11/LD20 AIO driver
arm64: dts: uniphier: add sound node for UniPhier
arm64: dts: uniphier: add speaker out for UniPhier LD11/LD20 boards
arm64: dts: uniphier: add compress audio out for UniPhier LD11/LD20
.../devicetree/bindings/sound/uniphier,aio.txt | 36 +
.../boot/dts/socionext/uniphier-ld11-global.dts | 120 +++
arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi | 31 +
.../boot/dts/socionext/uniphier-ld20-global.dts | 120 +++
arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi | 35 +
sound/soc/uniphier/Kconfig | 22 +
sound/soc/uniphier/Makefile | 6 +
sound/soc/uniphier/aio-compress.c | 440 ++++++++
sound/soc/uniphier/aio-core.c | 1104 ++++++++++++++++++++
sound/soc/uniphier/aio-cpu.c | 570 ++++++++++
sound/soc/uniphier/aio-dma.c | 318 ++++++
sound/soc/uniphier/aio-ld11.c | 431 ++++++++
sound/soc/uniphier/aio-reg.h | 462 ++++++++
sound/soc/uniphier/aio.h | 355 +++++++
14 files changed, 4050 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/uniphier,aio.txt
create mode 100644 sound/soc/uniphier/aio-compress.c
create mode 100644 sound/soc/uniphier/aio-core.c
create mode 100644 sound/soc/uniphier/aio-cpu.c
create mode 100644 sound/soc/uniphier/aio-dma.c
create mode 100644 sound/soc/uniphier/aio-ld11.c
create mode 100644 sound/soc/uniphier/aio-reg.h
create mode 100644 sound/soc/uniphier/aio.h
--
2.15.0
1
9
Re: [alsa-devel] [PATCH] ALSA: usb-audio: Fix UAC2 get_ctl request with a RANGE attribute
by Takashi Iwai 07 Feb '18
by Takashi Iwai 07 Feb '18
07 Feb '18
On Mon, 29 Jan 2018 06:37:55 +0100,
Kirill Marinushkin wrote:
>
> The layout of the UAC2 Control request and response varies depending on
> the request type. With the current implementation, only the Layout 2
> Parameter Block (with the 2-byte sized RANGE attribute) is handled
> properly. For the Control requests with the 1-byte sized RANGE attribute
> (Bass Control, Mid Control, Tremble Control), the response is parsed
> incorrectly.
>
> This commit:
> * fixes the wLength field value in the request
> * fixes parsing the range values from the response
>
> Fixes: 23caaf19b11e ("ALSA: usb-mixer: Add support for Audio Class v2.0")
> Signed-off-by: Kirill Marinushkin <k.marinushkin(a)gmail.com>
> Cc: Jaroslav Kysela <perex(a)perex.cz>
> Cc: Takashi Iwai <tiwai(a)suse.com>
> Cc: Jaejoong Kim <climbbb.kim(a)gmail.com>
> Cc: Bhumika Goyal <bhumirks(a)gmail.com>
> Cc: Stephen Barber <smbarber(a)chromium.org>
> Cc: Julian Scheel <julian(a)jusst.de>
> Cc: alsa-devel(a)alsa-project.org
> Cc: linux-kernel(a)vger.kernel.org
Sorry for the late reply, as I've been (and still) off.
Does this bug actually hit on any real devices, or is it only a
logical error so far? In the former case, a Cc to stable is
mandatory.
In anyway, I'll review and merge it properly once after I back to
work.
thanks,
Takashi
1
0