Re: [PATCH] platform/x86/acer-wmi: Detect RF Button capability

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 6, 2017 at 11:07 PM, João Paulo Rechi Vita
<jprvita@xxxxxxxxx> wrote:
> If a machine reports a RF Button in the communication button device
> bitmap, we need to remove it before calling Get Device Status otherwise
> it will return the "Undefined device" (0xE2) error code.
>
> Although this may be a BIOS bug, we don't really need to get or set the
> RF Button status. The status indicator LED embedded in the button is
> controlled by firmware logic, depending on the status of the wireless
> radios present on the machine (WiFi || WWAN).
>
> This commit fixes the wireless status indicator LED on the Acer
> TravelMate P648-G2-MG, and cleans the following message from the kernel
> log: "Get Current Device Status failed: 0xe2 - 0x0".
>

Pushed to testing, thanks!

> Signed-off-by: João Paulo Rechi Vita <jprvita@xxxxxxxxxxxx>
> ---
>  drivers/platform/x86/acer-wmi.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> index 79fa5ab3fd00..3b381178039b 100644
> --- a/drivers/platform/x86/acer-wmi.c
> +++ b/drivers/platform/x86/acer-wmi.c
> @@ -149,6 +149,8 @@ struct event_return_value {
>  #define ACER_WMID3_GDS_THREEG          (1<<6)  /* 3G */
>  #define ACER_WMID3_GDS_WIMAX           (1<<7)  /* WiMAX */
>  #define ACER_WMID3_GDS_BLUETOOTH       (1<<11) /* BT */
> +#define ACER_WMID3_GDS_RFBTN           (1<<14) /* RF Button */
> +
>  #define ACER_WMID3_GDS_TOUCHPAD                (1<<1)  /* Touchpad */
>
>  /* Hotkey Customized Setting and Acer Application Status.
> @@ -221,6 +223,7 @@ struct hotkey_function_type_aa {
>  #define ACER_CAP_BRIGHTNESS            (1<<3)
>  #define ACER_CAP_THREEG                        (1<<4)
>  #define ACER_CAP_ACCEL                 (1<<5)
> +#define ACER_CAP_RFBTN                 (1<<6)
>  #define ACER_CAP_ANY                   (0xFFFFFFFF)
>
>  /*
> @@ -1264,6 +1267,10 @@ static void __init type_aa_dmi_decode(const struct dmi_header *header, void *d)
>                 interface->capability |= ACER_CAP_THREEG;
>         if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_BLUETOOTH)
>                 interface->capability |= ACER_CAP_BLUETOOTH;
> +       if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_RFBTN) {
> +               interface->capability |= ACER_CAP_RFBTN;
> +               commun_func_bitmap &= ~ACER_WMID3_GDS_RFBTN;
> +       }
>
>         commun_fn_key_number = type_aa->commun_fn_key_number;
>  }
> --
> 2.11.0
>



-- 
With Best Regards,
Andy Shevchenko




[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux