Jelajahi Sumber

acer-wmi: Disable device autodetection on Fujitsu Siemens Amilo Li2732

The AMW0 (V1) device detection method doesn't work properly on this laptop,
so disable it, and for other laptops that may have this problem, by
switching on a strange GUID.

Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Carlos Corbacho 17 tahun lalu
induk
melakukan
5753dd539a
1 mengubah file dengan 10 tambahan dan 0 penghapusan
  1. 10 0
      drivers/misc/acer-wmi.c

+ 10 - 0
drivers/misc/acer-wmi.c

@@ -88,6 +88,7 @@ struct acer_quirks {
  * Acer ACPI method GUIDs
  * Acer ACPI method GUIDs
  */
  */
 #define AMW0_GUID1		"67C3371D-95A3-4C37-BB61-DD47B491DAAB"
 #define AMW0_GUID1		"67C3371D-95A3-4C37-BB61-DD47B491DAAB"
+#define AMW0_GUID2		"431F16ED-0C2B-444C-B267-27DEB140CF9C"
 #define WMID_GUID1		"6AF4F258-B401-42fd-BE91-3D4AC2D7C0D3"
 #define WMID_GUID1		"6AF4F258-B401-42fd-BE91-3D4AC2D7C0D3"
 #define WMID_GUID2		"95764E09-FB56-4e83-B31A-37761F60994A"
 #define WMID_GUID2		"95764E09-FB56-4e83-B31A-37761F60994A"
 
 
@@ -548,6 +549,15 @@ static acpi_status AMW0_set_capabilities(void)
 	struct acpi_buffer out = { ACPI_ALLOCATE_BUFFER, NULL };
 	struct acpi_buffer out = { ACPI_ALLOCATE_BUFFER, NULL };
 	union acpi_object *obj;
 	union acpi_object *obj;
 
 
+	/*
+	 * On laptops with this strange GUID (non Acer), normal probing doesn't
+	 * work.
+	 */
+	if (wmi_has_guid(AMW0_GUID2)) {
+		interface->capability |= ACER_CAP_WIRELESS;
+		return AE_OK;
+	}
+
 	args.eax = ACER_AMW0_WRITE;
 	args.eax = ACER_AMW0_WRITE;
 	args.ecx = args.edx = 0;
 	args.ecx = args.edx = 0;