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

From: Limonciello, Mario
Date: Tue Nov 03 2020 - 14:01:29 EST


> -----Original Message-----
> From: Mark Brown <broonie@xxxxxxxxxx>
> Sent: Tuesday, November 3, 2020 12:32
> To: Limonciello, Mario
> Cc: Pierre-Louis Bossart; Yuan, Perry; oder_chiou@xxxxxxxxxxx; alsa-
> devel@xxxxxxxxxxxxxxxx; lgirdwood@xxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> tiwai@xxxxxxxx
> Subject: Re: [PATCH] ASoC: rt715:add Mic Mute LED control support
>
> On Tue, Nov 03, 2020 at 06:04:49PM +0000, Limonciello, Mario wrote:
>
> > 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".
>
> Ah, this doesn't correspond to the description at all.
>
> > 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.
>
> With a timeout so that if things get lost somewhere then the mute button
> is still functional,

Exactly.

> or can userspace block mute? Also what happens if
> userspace tries to set the state without having done anything about
> muting, will it trigger the hardware level mute as though the key had
> been pressed?

No, the hardware level mute is tied to the actual key. If the software
mute is set, the LED won't change. In this case this is what would happen:
1) Kcontrol flips
2) Codec / Subsystem notifies dell-privacy-acpi
3) Dell-privacy-acpi notifies SW mute is done
4) Nothing happens to HW mute / LED

There is functionality in dell-privacy to track the state of the HW mute
so later on this scenario can be expanded upon to emit an event from
dell-privacy that userspace can see and show a message along the lines of

"SW was muted, but HW mute still isn't set, press FN+F2 to set it".

That's follow up stuff for after the initial patch series is landed.