Re: [PATCH 0/3] ACPI / sleep: Support power button wakeup from S2I on recent Dell laptops

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

 



On Monday, June 12, 2017 10:35:50 PM Jérôme de Bretagne wrote:
> > I don't see HEBC in the ASL for the 7275.  It would be good to provide
> > this information across both of the BIOS versions (working and non-working).
> >
> > As well as what
> >         status = acpi_evaluate_integer(handle, "BTNC", NULL, &button_cap);
> > evaluates as on both too.
> 
> I'll provide both BTNC and HEBC log results to compare, with both BIOS
> versions, a bit later today.
> 
> > Since this platform shipped with Win 8.1 initially rather than Win10,
> > It's possible 5 button array was not part of the INT33D5 spec at that time
> > and wasn't used by the Windows Intel HID filter driver.
> >
> > My suspicion:
> > Win 8.1 didn't support 5 button array definition yet and those events that
> > are normally part of 5 button array (as detected by bit 17) were coming
> > across as regular HID event codes (like you were seeing 0xCE and 0xCF
> > unknown events from debug log when OS was running).
> 
> That was my assumption also, since my earlier 3-liner patch was doing
> this exactly: trying to wake up on a regular 0xCE event. And it did work.

OK

Can you try the patch below, please?

---
 drivers/platform/x86/intel-hid.c |   17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

Index: linux-pm/drivers/platform/x86/intel-hid.c
===================================================================
--- linux-pm.orig/drivers/platform/x86/intel-hid.c
+++ linux-pm/drivers/platform/x86/intel-hid.c
@@ -270,12 +270,17 @@ static int intel_hid_probe(struct platfo
 	}
 
 	/* Setup 5 button array */
-	status = acpi_evaluate_integer(handle, "HEBC", NULL, &event_cap);
-	if (ACPI_SUCCESS(status) && (event_cap & 0x20000)) {
-		dev_info(&device->dev, "platform supports 5 button array\n");
-		err = intel_button_array_input_setup(device);
-		if (err)
-			pr_err("Failed to setup Intel 5 button array hotkeys\n");
+	if (acpi_has_method(handle, "BTNC") && acpi_has_method(handle, "BTNE")) {
+		unsigned long long event_cap;
+
+		status = acpi_evaluate_integer(handle, "HEBC", NULL, &event_cap);
+		if ((ACPI_SUCCESS(status) && (event_cap & 0x20000)) ||
+		    status == AE_NOT_FOUND) {
+			dev_info(&device->dev, "5-button array supported\n");
+			err = intel_button_array_input_setup(device);
+			if (err)
+				dev_dbg(&device->dev, "5-button array setup failure\n");
+		}
 	}
 
 	status = acpi_install_notify_handler(handle,

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux