[PATCH] Make top/rear speaker, mute and micmute leds work on HP x360 14-ea000 laptops that use Realtek 245 codec

Takashi Iwai tiwai at suse.de
Tue Nov 2 09:19:25 CET 2021


On Mon, 01 Nov 2021 11:34:45 +0100,
Jonathan Clarke wrote:
> 
> Thanks for taking a look at this patch so quickly, Takashi.
> 
> On Sat, Oct 30, 2021 at 12:01:03PM +0200, Takashi Iwai wrote:
> > Could you give more descriptions?  The patch isn't trivial at all, and
> > it needs more explanations.
> 
> Yes, will do.
> 
> > > +           /* output mute is set via SET_COEF_INDEX,SET_PROC_COEF */
> > > +           spec->mute_led_polarity = 0;
> > > +           spec->mute_led_coef.idx = 0x0b;
> > > +           spec->mute_led_coef.mask = 0xffff;
> > > +           spec->mute_led_coef.on = 0xa02f;
> > > +           spec->mute_led_coef.off = 0x7774;
> > > +           snd_hda_gen_add_mute_led_cdev(codec, coef_mute_led_set);
> >
> > I guess this COEF isn't only about mute-LED but actually does mute the
> > output?  IIRC, the bit 0x08 corresponds to the LED.  If so, it's
> > better to split.  Basically this snd_hda_gen_add_mute_led_cdev() and
> > mute_led_coef stuff are only for the mute LED control.  e.g. you can
> > change the mute LED independently via sysfs.
> 
> Thanks for suggesting this.
> 
> Having tested, I can confirm that setting this coef only affects
> the output mute LED, and does not affect output.
> 
> I will therefore assume that current implementation in my patch is OK,
> but let me know if it still needs changing (maybe I've misunderstood).
> 
> For reference to other users, the commands to test are:
> # output LED on
> hda-verb /dev/snd/hwC0D0 0x20 SET_COEF_INDEX 0x0b
> hda-verb /dev/snd/hwC0D0 0x20 SET_PROC_COEF 0xa02f
> 
> # output LED off
> hda-verb /dev/snd/hwC0D0 0x20 SET_COEF_INDEX 0x0b
> hda-verb /dev/snd/hwC0D0 0x20 SET_PROC_COEF 0x7774

Could you try just to flip the bit 0x08?  At LED off state?

% hda-verb /dev/snd/hwC0D0 0x20 SET_COEF_INDEX 0x0b
% hda-verb /dev/snd/hwC0D0 0x20 SET_PROC_COEF 0x77f4

That is, the implementation in alc286_fixup_hp_mute_led_coefbit(),
which is used by many other HP laptops.


Takashi


More information about the Alsa-devel mailing list