Re: alsa-project alsa-ucm : Audio endpoint is not switching when external mic connected

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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:

https://pastebin.ubuntu.com/p/4kprhDZYbg/

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.

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).

						Jaroslav



Takashi



--
Jaroslav Kysela <perex@xxxxxxxx>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux