[alsa-devel] [alsa-lib][PATCH] conf: SOF-Intel: map pcm device for sof driver

Hui Wang hui.wang at canonical.com
Fri Dec 20 02:30:18 CET 2019


On 2019/12/17 上午5:00, Jaroslav Kysela wrote:
> Dne 16. 12. 19 v 13:51 Hui Wang napsal(a):
>> On the machines with HDA codec, the sof driver will use the legacy hda
>> codec driver, as a result, most mixer controls are same as before.
>>
>> There are only 2 difference:
>>   - HDMI pcm index is 3, 4 and 5 instead of 3, 7, 8...
>>   - dmic is on device 6, 7 instead of 0
>>
>> After applying this patch, we will get (aplay -L):
>> hdmi:CARD=sofsklhdacard,DEV=0
>>      sof-skl_hda_card,
>>      HDMI Audio Output
>> hdmi:CARD=sofsklhdacard,DEV=1
>>      sof-skl_hda_card,
>>      HDMI Audio Output
>> hdmi:CARD=sofsklhdacard,DEV=2
>>      sof-skl_hda_card,
>>      HDMI Audio Output
>>
>> and (arecord -L):
>> dmic:CARD=sofsklhdacard,DEV=0
>>      sof-skl_hda_card,
>>      Digital Mic connected to the PCH directly
>> dmic:CARD=sofsklhdacard,DEV=1
>>      sof-skl_hda_card,
>>      Digital Mic connected to the PCH directly
>>
>> Then we could add minor changes in the pulseaudio configuration, after
>> that, all output and input devices will work under pulseaudio.
>>
>> This is a supplement for ucm, the ucm for sof driver has higher
>> priority than this conf, if there is no ucm for sof driver, this conf
>> will take effect.
>
> Exactly. The dmic definitions should not be a standard in my eyes. I 
> would not like to accept this. I can accept the standard definitions 
> for the playback devices for this driver, but UCM will replace 
> everything. It's better to define the special PA config for now until 
> we resolve all the UCM issues like:
>
> http://people.redhat.com/~jkysela/sof/carbon-x1-pulse.tar.gz2
>
> The 2nd PA UCM patchset which is working with the current UCM in 
> ALSA's repos for this hardware:
>
> https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/217
>
> But it is just a start. There are plenty unresolved abstraction issues 
> with this.

Yes, ucm is more powerful and should be the default choice for users 
with sof driver+hda codec. But there are 2 issues:

    1.  too complicated, not easy to backport all patches to old version 
linux distribution, like ubuntu 18.04 LTS (with alsa-lib 1.1.3 and PA v11.1)

    2. no generic ucm confs for most machines, need to write ucm confs 
machine by machine (existing PA can runtime decide/build  a machine's 
conf, no need to write conf machine by machine)


After we have sth like below: (if the name dmic is not good, we could 
change it to be a more reasonable name)

dmic:CARD=sofsklhdacard,DEV=0
      sof-skl_hda_card,
      Digital Mic connected to the PCH directly
dmic:CARD=sofsklhdacard,DEV=1
      sof-skl_hda_card,
      Digital Mic connected to the PCH directly

We just need to do a simple change in the PA's conf, the audio basically 
could work (include the audio-device-selection-popup-dialogue and 
mic-mute led on Lenovo machine). Of course it doesn't work perfectly so 
far, because dmic is not connected to the codec, so it is in a 
standalone source in the PA, we need to write some code to handle it.

This is the simple change in the PA's conf: 
https://pastebin.ubuntu.com/p/Tnmkr6D2Kv/


Thanks,

Hui.


>
>                         Jaroslav
>


More information about the Alsa-devel mailing list