On Wed, 03 Jun 2020 13:05:43 +0200, Jaroslav Kysela wrote:
Dne 03. 06. 20 v 11:34 Takashi Iwai napsal(a):
On Wed, 03 Jun 2020 02:36:25 +0200, Hui Wang wrote:
On 2020/6/3 上午3:39, Jaroslav Kysela wrote:
Dne 02. 06. 20 v 19:57 Mukunda, Vijendar napsal(a):
We recently up streamed ACP PDM driver for Renoir APU.
Our ACP IP has an internal PDM Decoder block where DMIC is directly connected. There are no KControls defined for PDM Driver.
Our platform supports on board DMIC and South bridge Azalia (HD Audio ) endpoint . By default, DMIC endpoint is used as audio input device. When Headset Mic jack connected, it's not switching to External Mic.
Make sure that the Headset Mic priority port in pulseaudio is is greater than the one for DMIC.
How does audio endpoint will switch in gnome when external mic is connected?
From our understanding, UCM conf file for HDA driver is also required for
configuring mixer controls for HD Audio capture device. Similarly when External Mic is removed , it has to switch to internal dmic .
An configuration example for UCM (DMIC connected to DSP, HDA codec for rest):
https://github.com/alsa-project/alsa-ucm-conf/tree/master/ucm2/sof-hda-dsp
If you need a help to create a new configuration for your hardware, show the output from the alsa-info.sh script, please.
Jaroslav
This audio design is a bit different from sof-hda-dsp, the dmic is on a standalone sound card. Please see the alsa-info.txt:
And that's an interesting case. Can we manage multiple cards in a single UCM profile?
Yes, it should work, but we need to extend pulseaudio to avoid fallback to the legacy ALSA profile when the "slave" soundcard is enumerated. PA should skip this card. We need to check if the empty UCM verb is supported.
I suppose it's not only about PA, but in general we need to define how to deal with it. I can imagine to provide a UCM profile that is mapped to some dummy ops for the slave card, for example.
Also, UCM has ${CardId} substitution (for the master card config), but we need to address the slave, too. Perhaps, we should add something like ${GetCardIdByName:STRING[:INDEX]} where STRING may be the name of the soundcard (it will be 'acp') in this case. The INDEX may refer to multiple instances (INDEX = 0 first soundcard found).
FWIW, I see a similar requirement for the recent change in USB-audio for Gigabyte Auros Master with AMD TRX40: it provides a front headphone output from a separate card while other I/Os are served by another card. It'd be handy if both can be combined.
thanks,
Takashi