[alsa-devel] [PATCH v3 3/3] ALSA: hda: add support for Huawei WMI micmute LED

Ayman Bagabas ayman.bagabas at gmail.com
Fri Nov 9 14:20:47 CET 2018


On Fri, Nov 9, 2018, 4:01 AM Takashi Iwai <tiwai at suse.de wrote:

> On Thu, 08 Nov 2018 18:16:55 +0100,
> Ayman Bagabas wrote:
> >
> > diff --git a/drivers/platform/x86/huawei_wmi.c
> b/drivers/platform/x86/huawei_wmi.c
> > index 658c44ab2126..f06aa967c311 100644
> > --- a/drivers/platform/x86/huawei_wmi.c
> > +++ b/drivers/platform/x86/huawei_wmi.c
> > @@ -23,6 +23,7 @@
> >  #include <linux/input.h>
> >  #include <linux/input/sparse-keymap.h>

>  #include <linux/module.h>
> > +#include <linux/platform_data/x86/huawei_wmi.h>
> >
> >  MODULE_AUTHOR("Ayman Bagabas <ayman.bagabas at gmail.com>");
> >  MODULE_DESCRIPTION("Huawei WMI hotkeys");
> > diff --git a/include/linux/platform_data/x86/huawei_wmi.h
> b/include/linux/platform_data/x86/huawei_wmi.h
> > new file mode 100644
> > index 000000000000..dd251780ee5c
> > --- /dev/null
> > +++ b/include/linux/platform_data/x86/huawei_wmi.h
> > @@ -0,0 +1,9 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +#if IS_ENABLED(CONFIG_HUAWEI_LAPTOP)
> > +#ifndef __HUAWEI_WMI_H__
> > +#define __HUAWEI_WMI_H__
> > +
> > +int huawei_wmi_micmute_led_set(bool on);
> > +
> > +#endif
> > +#endif
>
> These changes should belong to the WMI patch.
>
> > @@ -5765,6 +5769,10 @@ static const struct hda_fixup alc269_fixups[] = {
> >               .chained = true,
> >               .chain_id = ALC269_FIXUP_HEADSET_MIC
> >       },
> > +     [ALC256_FIXUP_HUAWEI_WMI_MICMUTE_LED] = {
> > +             .type = HDA_FIXUP_FUNC,
> > +             .v.func = alc_fixup_huawei_wmi
> > +     },
> >       [ALC256_FIXUP_HUAWEI_MBXP_PINS] = {
> >               .type = HDA_FIXUP_PINS,
> >               .v.pins = (const struct hda_pintbl[]) {
> > @@ -5779,7 +5787,9 @@ static const struct hda_fixup alc269_fixups[] = {
> >                       {0x1e, 0x411111f0},
> >                       {0x21, 0x04211020},
> >                       { }
> > -             }
> > +             },
> > +             .chained = true,
> > +             .chain_id = ALC256_FIXUP_HUAWEI_WMI_MICMUTE_LED
> >       },
> >       [ALC269_FIXUP_ASUS_X101_FUNC] = {
> >               .type = HDA_FIXUP_FUNC,
>
> This means that ALC256_FIXUP_HUAWEI_MBXP_PINS performs both the pin
> config fixup and the mic-mute LED enablement.
>
> > @@ -6609,6 +6619,7 @@ static const struct snd_pci_quirk
> alc269_fixup_tbl[] = {
> >       SND_PCI_QUIRK(0x17aa, 0x5109, "Thinkpad",
> ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
> >       SND_PCI_QUIRK(0x17aa, 0x511e, "Thinkpad",
> ALC298_FIXUP_TPT470_DOCK),
> >       SND_PCI_QUIRK(0x17aa, 0x511f, "Thinkpad",
> ALC298_FIXUP_TPT470_DOCK),
> > +     SND_PCI_QUIRK(0x19e5, 0x3200, "Huawei MBX",
> ALC256_FIXUP_HUAWEI_WMI_MICMUTE_LED),
> >       SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MBXP",
> ALC256_FIXUP_HUAWEI_MBXP_PINS),
> >       SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
> >       SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB",
> ALC269_FIXUP_LENOVO_EAPD),
>
> ... and yet you add a new entry for performing only mic-mute LED.
> I guess the chaining is done wrongly above?
>

They are suppose to be two different devices. MBXP should apply both, but
the MBX should only perform the LED. I'm also missing one entry for
(19e5:3201) that should apply to the LED, it's for the MBX too.

thanks,
>
> Takashi
>


More information about the Alsa-devel mailing list