Bug#692436: [PATCH] asus-laptop: Do not call HWRS on init
On Fri, Nov 9, 2012 at 3:07 AM, Ben Hutchings <ben@decadent.org.uk> wrote:
> Since commit 8871e99f89b7 ('asus-laptop: HRWS/HWRS typo'), module
> initialisation is very slow on the Asus UL30A. The HWRS method takes
> about 12 seconds to run, and subsequent initialisation also seems to
> be delayed. Since we don't really need the result, don't bother
> calling it on init. Those who are curious can still get the result
> through the 'infos' device attribute.
>
> Update the comment about HWRS in show_infos().
>
> Reported-by: ryan <draziw+deb@gmail.com>
> References: http://bugs.debian.org/692436
> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
> Cc: <stable@vger.kernel.org> # v3.0+
> ---
> drivers/platform/x86/asus-laptop.c | 17 ++++-------------
> 1 file changed, 4 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
> index 4b568df..a961156 100644
> --- a/drivers/platform/x86/asus-laptop.c
> +++ b/drivers/platform/x86/asus-laptop.c
> @@ -860,8 +860,10 @@ static ssize_t show_infos(struct device *dev,
> /*
> * The HWRS method return informations about the hardware.
> * 0x80 bit is for WLAN, 0x100 for Bluetooth.
> + * 0x40 for WWAN, 0x10 for WIMAX.
> * The significance of others is yet to be found.
> - * If we don't find the method, we assume the device are present.
> + * We don't currently use this for device detection, and it
> + * takes several seconds to run on some systems.
> */
> rv = acpi_evaluate_integer(asus->handle, "HWRS", NULL, &temp);
> if (!ACPI_FAILURE(rv))
> @@ -1682,7 +1684,7 @@ static int asus_laptop_get_info(struct asus_laptop *asus)
> {
> struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
> union acpi_object *model = NULL;
> - unsigned long long bsts_result, hwrs_result;
> + unsigned long long bsts_result;
> char *string = NULL;
> acpi_status status;
>
> @@ -1744,17 +1746,6 @@ static int asus_laptop_get_info(struct asus_laptop *asus)
> if (*string)
> pr_notice(" %s model detected\n", string);
>
> - /*
> - * The HWRS method return informations about the hardware.
> - * 0x80 bit is for WLAN, 0x100 for Bluetooth,
> - * 0x40 for WWAN, 0x10 for WIMAX.
> - * The significance of others is yet to be found.
> - */
> - status =
> - acpi_evaluate_integer(asus->handle, "HWRS", NULL, &hwrs_result);
> - if (!ACPI_FAILURE(status))
> - pr_notice(" HWRS returned %x", (int)hwrs_result);
> -
> if (!acpi_check_handle(asus->handle, METHOD_WL_STATUS, NULL))
> asus->have_rsts = true;
>
>
>
Acked-by: Corentin Chary <corentin.chary@gmail.com>
--
Corentin Chary
http://xf.iksaif.net
Reply to: