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

Takashi Iwai tiwai at suse.de
Fri Nov 9 10:01:38 CET 2018


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?


thanks,

Takashi


More information about the Alsa-devel mailing list