[alsa-devel] How to specify data format if playback/capture were different ?

Lars-Peter Clausen lars at metafoo.de
Wed May 22 13:41:09 CEST 2013


On 05/22/2013 10:54 AM, Kuninori Morimoto wrote:
> 
> Hi Lars
> 
>>> struct snd_soc_dai_driver ak4554_playback_dai = {
>>> 	.name = "ak4554-playback",
>>> 	.playback = {
>>> 		...
>>> 	},
>>> }
>>>
>>> struct snd_soc_dai_driver ak4554_captrure_dai = {
>>> 	.name = "ak4554-captrure",
>>> 	.capture = {
>>> 		...
>>> 	},
>>> };
>>
>> You'll want to put both DAIs into an array which you can pass to
>> snd_soc_register_codec, but otherwise it looks ok.
>>
>>>
>>> But, ak4554 needs .symmetric_rates between playback <--> capture.
>>> Is it possible ?
>>> Or, am I misunderstanding ?
>>
>> Yes, that won't work, you'd have to implement this by hand.
> 
> OK, I understand, thank you.
> 
> But do you know why snd_soc_dai_set_fmt() doesn't support
> "setting for playback/capture only" ?
> Historical reason or system reason ?

I think it is rather unusual that you want or need to set different formats
for capture and playback. Especially when BCLK and LRCLK are shared. That's
probably why it isn't supported yet.

- Lars


More information about the Alsa-devel mailing list