RE: [PATCH v2 2/2] ASoC: rt715:add Mic Mute LED control support

From: Yuan, Perry
Date: Tue Jan 12 2021 - 20:47:04 EST



> -----Original Message-----
> From: Limonciello, Mario <Mario_Limonciello@xxxxxxxx>
> Sent: 2021年1月12日 22:48
> To: Yuan, Perry; Pierre-Louis Bossart; oder_chiou@xxxxxxxxxxx;
> perex@xxxxxxxx; tiwai@xxxxxxxx
> Cc: alsa-devel@xxxxxxxxxxxxxxxx; lgirdwood@xxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; broonie@xxxxxxxxxx
> Subject: RE: [PATCH v2 2/2] ASoC: rt715:add Mic Mute LED control support
>
> > > -----Original Message-----
> > > From: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
> > > Sent: 2021年1月12日 2:07
> > > To: Yuan, Perry; oder_chiou@xxxxxxxxxxx; perex@xxxxxxxx;
> > > tiwai@xxxxxxxx
> > > Cc: alsa-devel@xxxxxxxxxxxxxxxx; Limonciello, Mario;
> > > lgirdwood@xxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > > broonie@xxxxxxxxxx
> > > Subject: Re: [PATCH v2 2/2] ASoC: rt715:add Mic Mute LED control
> > > support
> > >
> > >
> > > [EXTERNAL EMAIL]
> > >
> > >
> > >
> > >
> > > > @@ -268,6 +269,7 @@ static int rt715_sdca_put_volsw(struct
> > > > snd_kcontrol
> > > *kcontrol,
> > > > unsigned int reg2 = mc->rreg;
> > > > unsigned int reg = mc->reg;
> > > > unsigned int max = mc->max;
> > > > + unsigned int val0, val1;
> > > > int err;
> > > >
> > > > val = ucontrol->value.integer.value[0]; @@ -286,7 +288,22 @@
> > > > static int rt715_sdca_put_volsw(struct snd_kcontrol *kcontrol,
> > > > if (err < 0)
> > > > return err;
> > > > }
> > > > -
> > > > +#if IS_ENABLED(CONFIG_DELL_PRIVACY)
> > > > + /* Privacy LED Trigger State Changed by muted/unmute switch */
> > > > + if (mc->invert) {
> > > > + val0 = ucontrol->value.integer.value[0];
> > > > + val1 = ucontrol->value.integer.value[1];
> > > > + if (val0 == 1 && val1 == 1) {
> > > > + rt715->micmute_led = LED_OFF;
> > > > + ledtrig_audio_set(LED_AUDIO_MICMUTE,
> > > > + rt715->micmute_led ? LED_ON :
> > > LED_OFF);
> > > > + } else if (val0 == 0 && val1 == 0) {
> > > > + rt715->micmute_led = LED_ON;
> > > > + ledtrig_audio_set(LED_AUDIO_MICMUTE,
> > > > + rt715->micmute_led ? LED_ON :
> > > LED_OFF);
> > > > + }
> > > > + }
> > > > +#endif
> > >
> > > Should this be activated for specific DMI quirks? This driver is
> > > used in
> > non-Dell
> > > platforms (I am thinking of Intel RVPs or Realtek daughterboards), I
> > > am not sure if a build-time behavior change makes sense.
> > >
> > > Or conversely could we just set the LEDs unconditionally if doing so
> > > is harmless?
> >
> > The current mic mute led setting path is not common used for other
> > vendors, just Dell platform support this mic mute led set operation.
> >
> > Do you think that I need to add one DMI quirk in the next version ?
> > If so, I can add that.
> >
> >
>
>
> In the HDA audio case this is modeled off of, the code runs whether or not a
> vendor has support for a mic mute LED. The calls to ledtrig_audio_set should
> be a no-op. I agree with @Pierre-Louis Bossart in this case, we should just be
> running it whether or not dell-privacy is compiled in. If another vendor
> chooses to add LED support they'll just need to set up their ledtrig supported
> backend and not change codec code.

Hi @Pierre-Louis Bossart
Seems like that we have two way to go.
* DMI quirks,seems like that it needs to maintain the quirk list when vendors have new system to support.
* We just set the mic mute led state unconditionally .

Which way would you prefer for next patch review?