[alsa-devel] [PATCH] ALSA: hda - Fixes inverted Conexant GPIO mic mute led
Jerónimo Borque
jeronimo at borque.com.ar
Fri Aug 16 01:08:34 CEST 2019
El jue., 15 de ago. de 2019 a la(s) 14:06, Takashi Iwai (tiwai at suse.de)
escribió:
> On Thu, 15 Aug 2019 18:33:50 +0200,
> Jerónimo Borque wrote:
> >
> > Hi Takashi,
> > Modifying Mic Mute-LED Mode does indeed alter the behavior. The thing is
> that
> > this ends being confusing as in all machines I've been testing this
> setting
> > Mic Mute-LED Mode to "Follow Capture" actually makes it follow mute, as
> > setting it to "On" turns the LED off.
> > There is other setting called "mute_led_polarity" but this does not
> work, as
> > currently mic mute LED and mute LED do not follow the same logic.
> > What I think may be causing confusion is "cxt_update_gpio_led" "enabled"
> > parameter. Setting "enabled" to "true" sets the GPIO pin to 0 causing
> the led
> > to be turned off. I think "enabled" used to refer to the input capture or
> > output status and not to the LED being lit or not. Output or input not
> enabled
> > (enabled==false) caused the LED to be turned on.
> > This logic in the function negates it on the GPIO output.
> >
> > if (enabled)
> > spec->gpio_led &= ~mask;
> > else
> > spec->gpio_led |= mask;
> >
> > May be I can do a more comprehensive fix, reversing the behavior of
> > "cxt_update_gpio_led" "enabled" parameter to refer the GPIO output value
> (
> > enabled==true => GPIO pin output high )
> > Then also modify the call to "cxt_update_gpio_led" in
> > "cxt_fixup_gpio_mute_hook" to make it work consistently.
>
> OK, if the "On" turns the LED off, it's indeed inverted.
> Then we'd need to consider both fixing the inverted behavior and the
> default mic-mute mode.
>
> Could you confirm the following?
>
> - Which models and codecs are checked?
>
I've tested on HP ZBook 15U G3 (Conexant CX20724) and HP Probook 440 G4
(Conexant CX8200)
> - GPIO pin high = mic LED on or off?
>
GPIO pin high = mic LED on
> - How is the expected behavior on Windows?
> Mute is on when mic is muted, or mute-on when mic is ready?
Mute led is on when mic is muted.
Thanks,
Jerónimo
>
> thanks,
>
> Takashi
>
> >
> > Thanks,
> > Jerónimo
> >
> > El jue., 15 de ago. de 2019 a la(s) 02:58, Takashi Iwai (tiwai at suse.de)
> > escribió:
> >
> > On Thu, 15 Aug 2019 03:38:24 +0200,
> > <jeronimo at borque.com.ar> wrote:
> > >
> > > From: Jeronimo Borque <jeronimo at borque.com.ar>
> > >
> > > "enabled" parameter historically referred to the device input or
> > > output, not to the led indicator. After the changes added with the
> > > led helper functions the mic mute led logic refers to the led and
> not
> > > to the mic input which caused led indicator to be negated (Mic mute
> > > led was on when the input enabled) Fixing it in the call to
> > > cxt_update_gpio_led at the cxt_gpio_micmute_update hook.
> > > Maybe more changes are required to be consistent everywhere.
> > >
> > > Signed-off-by: Jeronimo Borque <jeronimo at borque.com.ar>
> >
> > Could you check which value you have in "Mic Mute-LED Mode" mixer
> > element? I guess it's "Follow Mute". If so, change it to "Follow
> > Capture".
> >
> > If this works, it means that the driver works as expected but the
> > problem is only about the default value. The default value set in
> the
> > generic parser is based on other machine's standard (LED on at mic
> > off), while some machines might expect differently. On such
> machines,
> > we need to set the different value initially in the quirk fixup.
> >
> > thanks,
> >
> > Takashi
> >
> >
>
More information about the Alsa-devel
mailing list