Re: [PATCH] asus-laptop: Do not call HWRS on init

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

 



On Fri, Nov 9, 2012 at 3:07 AM, Ben Hutchings <ben@xxxxxxxxxxxxxxx> 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@xxxxxxxxx>
> References: http://bugs.debian.org/692436
> Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx> # 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@xxxxxxxxx>

--
Corentin Chary
http://xf.iksaif.net
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

  Powered by Linux