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

Yuan, Perry Perry.Yuan at dell.com
Wed Jan 13 02:44:48 CET 2021


> -----Original Message-----
> From: Limonciello, Mario <Mario_Limonciello at Dell.com>
> Sent: 2021年1月12日 22:48
> To: Yuan, Perry; Pierre-Louis Bossart; oder_chiou at realtek.com;
> perex at perex.cz; tiwai at suse.com
> Cc: alsa-devel at alsa-project.org; lgirdwood at gmail.com; linux-
> kernel at vger.kernel.org; broonie at kernel.org
> Subject: RE: [PATCH v2 2/2] ASoC: rt715:add Mic Mute LED control support
> 
> > > -----Original Message-----
> > > From: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> > > Sent: 2021年1月12日 2:07
> > > To: Yuan, Perry; oder_chiou at realtek.com; perex at perex.cz;
> > > tiwai at suse.com
> > > Cc: alsa-devel at alsa-project.org; Limonciello, Mario;
> > > lgirdwood at gmail.com; linux-kernel at vger.kernel.org;
> > > broonie at kernel.org
> > > 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?





More information about the Alsa-devel mailing list