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

From: Limonciello, Mario
Date: Tue Nov 03 2020 - 13:05:14 EST


> -----Original Message-----
> From: Mark Brown <broonie@xxxxxxxxxx>
> Sent: Tuesday, November 3, 2020 12:00
> To: Pierre-Louis Bossart
> Cc: Yuan, Perry; oder_chiou@xxxxxxxxxxx; alsa-devel@xxxxxxxxxxxxxxxx;
> lgirdwood@xxxxxxxxx; Limonciello, Mario; linux-kernel@xxxxxxxxxxxxxxx;
> tiwai@xxxxxxxx
> Subject: Re: [PATCH] ASoC: rt715:add Mic Mute LED control support
>
> On Tue, Nov 03, 2020 at 10:13:03AM -0600, Pierre-Louis Bossart wrote:
> > Somehow this patch was filtered by alsa-devel servers?
>
> It'll be a post by a non-subscriber I guess, in which case it will
> appear later.
>
> > Actually thinking more about it, having two controls for 'mute LED' and
> > 'capture switch' could lead to inconsistent states where the LED is on
> > without mute being activated. we should really bolt the LED activation to
> > the capture switch, that way the mute and LED states are aligned.
>
> Yeah, it's just asking for trouble and seems to defeat the point of
> having the LED in the first place - aside from the general issues with
> it being software controlled it'll require specific userspace support to
> set it. Users won't be able to trust that the LED state accurately
> reflects if they're muted or not. Your proposal is more what I'd expect
> here, I'm not sure we can do much better with something software
> controllable.

I don't think it came through in the commit message, but I wanted to mention
in the system that prompted this software does not control the LED. The LED
is actually controlled by hardware, but has circuitry to delay the hardware
mute until software mute is complete to avoid any "popping noises".

This patch along with the platform/x86 patch:
https://patchwork.kernel.org/project/platform-driver-x86/patch/20201103125542.8572-1-Perry_Yuan@xxxxxxxx/
complete that loop.

The flow is:
User presses mute key, dell-wmi receives event, passes to dell-privacy-wmi.
This emits to userspace as KEY_MICMUTE. Userspace processes it and via UCM
switches get toggled. The codec driver (or subsystem perhaps) will use LED
trigger to notify to change LED. This gets picked up by dell-privacy-acpi.

dell-privacy-acpi doesn't actually change LED, but notifies that SW mute was
done.

If none of that flow was used the LED and mute function still work, but there
might be the popping noise.