Re: [PATCH v7 2/3] x86: add support for Huawei WMI hotkeys.
From: Takashi Iwai
Date: Tue Nov 27 2018 - 06:02:44 EST
Some more forgotten bits...
On Tue, 27 Nov 2018 03:57:48 +0100,
Ayman Bagabas wrote:
> --- a/drivers/platform/x86/Kconfig
> +++ b/drivers/platform/x86/Kconfig
....
> +config HUAWEI_WMI
> + tristate "Huawei WMI hotkeys driver"
> + depends on ACPI_WMI
> + depends on INPUT
> + select INPUT_SPARSEKMAP
> + select LEDS_TRIGGERS
> + select LEDS_TRIGGER_AUDIO
I guess "select LEDS_CLASS" is needed as well.
Other drivers had already it.
> --- /dev/null
> +++ b/drivers/platform/x86/huawei-wmi.c
....
> +static int huawei_wmi_micmute_led_set(bool on)
> +{
> + acpi_handle handle;
> + char *method;
> + union acpi_object args[3];
> + struct acpi_object_list arg_list = {
> + .pointer = args,
> + .count = ARRAY_SIZE(args),
> + };
> +
> + handle = ACPI_HANDLE(&inputdev->dev);
> + args[0].type = args[1].type = args[2].type = ACPI_TYPE_INTEGER;
> + args[1].integer.value = 0x04;
> +
> + if (acpi_has_method(handle, method = "\\_SB.PCI0.LPCB.EC0.SPIN")) {
This looks ugly... And checkpatch also complains.
> + args[0].integer.value = 0;
> + args[2].integer.value = on ? 1 : 0;
> + } else if (acpi_has_method(handle, method = "\\_SB.PCI0.LPCB.EC0.WPIN")) {
> + args[0].integer.value = 1;
> + args[2].integer.value = on ? 0 : 1;
> + } else {
> + dev_err(&inputdev->dev, "Unable to find ACPI method\n");
> + return -ENOSYS;
> + }
Can these checks be done at initialization phase? It doesn't seem
needed to be executed at each call.
thanks,
Takashi