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
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel