[alsa-devel] [PATCH] ALSA: hda - Fixes inverted Conexant GPIO mic mute led

Takashi Iwai tiwai at suse.de
Thu Aug 15 19:06:06 CEST 2019


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?

- GPIO pin high = mic LED on or off?

- How is the expected behavior on Windows?
  Mute is on when mic is muted, or mute-on when mic is ready?


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