[PATCH] ASoC: rt711-sdca: remove capture switch controls

Yang, Libin libin.yang at intel.com
Mon Apr 19 09:17:36 CEST 2021


Hi Jaroslav,

> -----Original Message-----
> From: Jaroslav Kysela <perex at perex.cz>
> Sent: 2021年4月19日 14:57
> To: Yang, Libin <libin.yang at intel.com>; Pierre-Louis Bossart <pierre-
> louis.bossart at linux.intel.com>; shumingf at realtek.com; broonie at kernel.org;
> lgirdwood at gmail.com
> Cc: oder_chiou at realtek.com; jack.yu at realtek.com; alsa-devel at alsa-
> project.org; lars at metafoo.de; derek.fang at realtek.com; flove at realtek.com
> Subject: Re: [PATCH] ASoC: rt711-sdca: remove capture switch controls
> 
> Dne 19. 04. 21 v 8:50 Yang, Libin napsal(a):
> > Hi Jaroslav,
> >
> >> -----Original Message-----
> >> From: Jaroslav Kysela <perex at perex.cz>
> >> Sent: 2021年4月19日 14:32
> >> To: Yang, Libin <libin.yang at intel.com>; Pierre-Louis Bossart <pierre-
> >> louis.bossart at linux.intel.com>; shumingf at realtek.com;
> >> broonie at kernel.org; lgirdwood at gmail.com
> >> Cc: oder_chiou at realtek.com; jack.yu at realtek.com; alsa-devel at alsa-
> >> project.org; lars at metafoo.de; derek.fang at realtek.com;
> >> flove at realtek.com
> >> Subject: Re: [PATCH] ASoC: rt711-sdca: remove capture switch controls
> >>
> >> Dne 19. 04. 21 v 7:14 Yang, Libin napsal(a):
> >>> Hi Pierre,
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> >>>> Sent: 2021年4月15日 19:26
> >>>> To: shumingf at realtek.com; broonie at kernel.org;
> lgirdwood at gmail.com
> >>>> Cc: oder_chiou at realtek.com; jack.yu at realtek.com; alsa-devel at alsa-
> >>>> project.org; lars at metafoo.de; Yang, Libin <libin.yang at intel.com>;
> >>>> derek.fang at realtek.com; flove at realtek.com
> >>>> Subject: Re: [PATCH] ASoC: rt711-sdca: remove capture switch
> >>>> controls
> >>>>
> >>>>
> >>>>
> >>>> On 4/15/21 4:16 AM, shumingf at realtek.com wrote:
> >>>>> From: Shuming Fan <shumingf at realtek.com>
> >>>>>
> >>>>> The settings of the switch control already set by DAPM event.
> >>>>> These switch controls might the user confused why it can't disable
> >>>>> the
> >>>> capture.
> >>>>
> >>>> Sorry, not following. This control is used in the alsa-ucm-conf
> >>>> that was just merged
> >>>>
> >>>> https://github.com/alsa-project/alsa-ucm-
> >>>> conf/commit/197025656ec456331d1a34357b113913ec3b187f#diff-
> >>>>
> >>
> 0e1c627ea89ee148fdb41aa6b3ba7851ba9c20eb43c1b87b9e0ce92164273dc3R
> >>>> 7
> >>>>
> >>>> Is this saying this commit needs to be fixed with a follow-up PR?
> >>>> Libin, are you working on this?
> >>>
> >>> Yes, I will submit a patch for UCM after this patch is merged.
> >>>
> >>> The background is Jaroslav requires using codec HW kcontrol for
> >>> capture volume/switch. Shuming and I worked on it. At first we
> >>> wanted to use FU0F to replace PGA kcontrol. But Shuming found FU0F
> >>> is used in
> >> DAPM.
> >>> So it is not proper for the capture volume/switch. And Shuming will
> >>> remove the FU0F kcontrol.
> >>
> >> Is switch control name aligned with the volume control name after
> >> this change?
> >
> > This patch is removing "FU0F Capture Switch". Before this patch, there
> > is "FU0F Capture Switch" and "FU0F Capture Volume". After this patch
> > is applied, "FU0F Capture Switch" is removed. So the UCM
> > https://github.com/alsa-project/alsa-ucm-
> conf/blob/57ead84278f641d411e
> > 3ccbb5c8a4b64141904ba/ucm2/codecs/rt711-sdca/init.conf#L7
> > of "FU0F Capture Switch" setting needs to be removed.
> >
> >> I mean "A Capture Switch" + "A Capture Volume" not "A Capture Switch"
> >> + "B Capture Volume".
> >
> > We couldn't find a proper codec kcontrol for RT711 capture. So we have
> > to continue using PGA kcontrol.
> 
> It's really confusing then. What does "FU0F Capture Volume" ? It's really
> difficult to judge something when I don't know the codec diagram.

"FU0F Capture Volume" will still control the volume of rt711 capture.
But "FU0F Capture Switch" will be removed. Because DAPM is using
this the same node. These is a conflict when we do below:
1. mute "FU0F Capture Switch". And the kcontrol will mute the
    Corresponding node in codec.
2. use arecord to capture from the rt711-sdca headset
3. DAPM will auto unmute the node which "FU0F Capture Switch" has 
     muted.
4. So we will capture the sound, even "FU0F Capture Switch" shows the 
    state is "muted" (this is wrong)

So Shuming decided to remove the "FU0F Capture Switch" kcontrol.

> 
> Anyway, the switch and volume for the given I/O should have identical name
> and they should differ only in the suffix describing the stream and
> functionality.

We won't touch "CaptureSwitch" and "CaptureVolume" for rt711-sdca.

The patch will be like what I submitted just now:
https://github.com/alsa-project/alsa-ucm-conf/pull/89

Regards,
Libin

> 
> 						Jaroslav
> 
> >
> > Regards,
> > Libin
> >
> >>
> >> 						Jaroslav
> >>
> >>>
> >>> Regards,
> >>> Libin
> >>>
> >>>>
> >>>>
> >>>>>
> >>>>> Signed-off-by: Shuming Fan <shumingf at realtek.com>
> >>>>> ---
> >>>>>   sound/soc/codecs/rt711-sdca.c | 8 --------
> >>>>>   1 file changed, 8 deletions(-)
> >>>>>
> >>>>> diff --git a/sound/soc/codecs/rt711-sdca.c
> >>>>> b/sound/soc/codecs/rt711-
> >>>> sdca.c
> >>>>> index bfb7f1c8ec8f..2a09c305f4e4 100644
> >>>>> --- a/sound/soc/codecs/rt711-sdca.c
> >>>>> +++ b/sound/soc/codecs/rt711-sdca.c
> >>>>> @@ -652,14 +652,6 @@ static const struct snd_kcontrol_new
> >>>> rt711_sdca_snd_controls[] = {
> >>>>>   		SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC,
> >>>> RT711_SDCA_ENT_USER_FU05, RT711_SDCA_CTL_FU_VOLUME, CH_R),
> >>>>>   		0x57, 0x57, 0,
> >>>>>   		rt711_sdca_set_gain_get, rt711_sdca_set_gain_put,
> >>>> out_vol_tlv),
> >>>>> -	SOC_DOUBLE_R("FU1E Capture Switch",
> >>>>> -		SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY,
> >>>> RT711_SDCA_ENT_USER_FU1E, RT711_SDCA_CTL_FU_MUTE, CH_L),
> >>>>> -		SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY,
> >>>> RT711_SDCA_ENT_USER_FU1E, RT711_SDCA_CTL_FU_MUTE, CH_R),
> >>>>> -		0, 1, 1),
> >>>>> -	SOC_DOUBLE_R("FU0F Capture Switch",
> >>>>> -		SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC,
> >>>> RT711_SDCA_ENT_USER_FU0F, RT711_SDCA_CTL_FU_MUTE, CH_L),
> >>>>> -		SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC,
> >>>> RT711_SDCA_ENT_USER_FU0F, RT711_SDCA_CTL_FU_MUTE, CH_R),
> >>>>> -		0, 1, 1),
> >>>>>   	SOC_DOUBLE_R_EXT_TLV("FU1E Capture Volume",
> >>>>>   		SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY,
> >>>> RT711_SDCA_ENT_USER_FU1E, RT711_SDCA_CTL_FU_VOLUME, CH_L),
> >>>>>   		SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY,
> >>>> RT711_SDCA_ENT_USER_FU1E, RT711_SDCA_CTL_FU_VOLUME, CH_R),
> >>>>>
> >>
> >>
> >> --
> >> Jaroslav Kysela <perex at perex.cz>
> >> Linux Sound Maintainer; ALSA Project; Red Hat, Inc.
> 
> 
> --
> Jaroslav Kysela <perex at perex.cz>
> Linux Sound Maintainer; ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list