64 lines
2.4 KiB
Diff
64 lines
2.4 KiB
Diff
From: Ben Hutchings <ben@decadent.org.uk>
|
|
Date: Fri, 9 Nov 2012 02:43:00 +0000
|
|
Subject: asus-laptop: Do not call HWRS on init
|
|
|
|
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>
|
|
---
|
|
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;
|
|
|