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

Takashi Iwai tiwai at suse.de
Wed Jun 3 13:15:47 CEST 2020


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

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


More information about the Alsa-devel mailing list