From 8168aa3085a9768845f9ee525ad7ca0c511b1795 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 9 Nov 2012 03:10:22 +0000 Subject: [PATCH] [x86] asus-laptop: Do not call HWRS on init (Closes: #692436) svn path=/dists/sid/linux/; revision=19486 --- debian/changelog | 1 + ...asus-laptop-Do-not-call-HWRS-on-init.patch | 63 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 65 insertions(+) create mode 100644 debian/patches/bugfix/x86/asus-laptop-Do-not-call-HWRS-on-init.patch diff --git a/debian/changelog b/debian/changelog index 09e90d774..402d2ff01 100644 --- a/debian/changelog +++ b/debian/changelog @@ -40,6 +40,7 @@ linux (3.2.33-1) UNRELEASED; urgency=low - Move broadcom to nic-modules, as it may be needed by tg3 * udeb: Add bnx2fc, fnic, pmcraid to scsi-extra-modules * udeb: Move rtl8180 to nic-extra-modules + * [x86] asus-laptop: Do not call HWRS on init (Closes: #692436) -- Ben Hutchings Wed, 24 Oct 2012 14:15:57 +0100 diff --git a/debian/patches/bugfix/x86/asus-laptop-Do-not-call-HWRS-on-init.patch b/debian/patches/bugfix/x86/asus-laptop-Do-not-call-HWRS-on-init.patch new file mode 100644 index 000000000..5748cfa35 --- /dev/null +++ b/debian/patches/bugfix/x86/asus-laptop-Do-not-call-HWRS-on-init.patch @@ -0,0 +1,63 @@ +From: Ben Hutchings +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 +References: http://bugs.debian.org/692436 +Signed-off-by: Ben Hutchings +--- + 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; + diff --git a/debian/patches/series b/debian/patches/series index 00b0b5ad7..5c48bce61 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -404,3 +404,4 @@ debian/hid-avoid-ABI-change-in-3.2.31.patch debian/xfrm-avoid-ABI-change-in-3.2.31.patch bugfix/all/use-clamp_t-in-UNAME26-fix.patch debian/fs-writeback-avoid-ABI-change-in-3.2.32.patch +bugfix/x86/asus-laptop-Do-not-call-HWRS-on-init.patch