lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 8 Jun 2017 22:50:30 +0800
From:   joeyli <jlee@...e.com>
To:     João Paulo Rechi Vita <jprvita@...il.com>
Cc:     Darren Hart <dvhart@...radead.org>,
        Andy Shevchenko <andy@...radead.org>, linux@...lessm.com,
        João Paulo Rechi Vita 
        <jprvita@...lessm.com>, platform-driver-x86@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] platform/x86/acer-wmi: Detect RF Button capability

On Tue, Jun 06, 2017 at 01:07:22PM -0700, João Paulo Rechi Vita 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

Yes, it's possible a BIOS bug.

Because the type aa reports that the 14 bit is raised in bitmap, but it can
not be used to query the device status.

> 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".
> 
> Signed-off-by: João Paulo Rechi Vita <jprvita@...lessm.com>

Please feel free to add:
	Reviewed-by: "Lee, Chun-Yi" <joeyli.kernel@...il.com>

Thanks a lot!
Joey Lee

> ---
>  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
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ