diff mbox series

gpiolib: acpi: Add quirk to ignore EC wakeups on Dell Venue 10 Pro 5055

Message ID 20210401162740.4602-1-hdegoede@redhat.com
State Accepted
Commit da91ece226729c76f60708efc275ebd4716ad089
Headers show
Series gpiolib: acpi: Add quirk to ignore EC wakeups on Dell Venue 10 Pro 5055 | expand

Commit Message

Hans de Goede April 1, 2021, 4:27 p.m. UTC
Like some other Bay and Cherry Trail SoC based devices the Dell Venue
10 Pro 5055 has an embedded-controller which uses ACPI GPIO events to
report events instead of using the standard ACPI EC interface for this.

The EC interrupt is only used to report battery-level changes and
it keeps doing this while the system is suspended, causing the system
to not stay suspended.

Add an ignore-wake quirk for the GPIO pin used by the EC to fix the
spurious wakeups from suspend.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/gpio/gpiolib-acpi.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Comments

Andy Shevchenko April 1, 2021, 6:01 p.m. UTC | #1
On Thu, Apr 01, 2021 at 06:27:40PM +0200, Hans de Goede wrote:
> Like some other Bay and Cherry Trail SoC based devices the Dell Venue
> 10 Pro 5055 has an embedded-controller which uses ACPI GPIO events to
> report events instead of using the standard ACPI EC interface for this.
> 
> The EC interrupt is only used to report battery-level changes and
> it keeps doing this while the system is suspended, causing the system
> to not stay suspended.
> 
> Add an ignore-wake quirk for the GPIO pin used by the EC to fix the
> spurious wakeups from suspend.

Fine by me,
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

I have sent my PR to Bart few days ago and today he applied it.
So, since I'm not expecting much going on in this cycle, I assume
it's okay to go directly to Bart's tree.

> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/gpio/gpiolib-acpi.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
> index 1aacd2a5a1fd..174839f3772f 100644
> --- a/drivers/gpio/gpiolib-acpi.c
> +++ b/drivers/gpio/gpiolib-acpi.c
> @@ -1438,6 +1438,20 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] __initconst = {
>  			.no_edge_events_on_boot = true,
>  		},
>  	},
> +	{
> +		/*
> +		 * The Dell Venue 10 Pro 5055, with Bay Trail SoC + TI PMIC uses an
> +		 * external embedded-controller connected via I2C + an ACPI GPIO
> +		 * event handler on INT33FFC:02 pin 12, causing spurious wakeups.
> +		 */
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "Venue 10 Pro 5055"),
> +		},
> +		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
> +			.ignore_wake = "INT33FC:02@12",
> +		},
> +	},
>  	{
>  		/*
>  		 * HP X2 10 models with Cherry Trail SoC + TI PMIC use an
> -- 
> 2.30.2
>
Andy Shevchenko April 2, 2021, 6:16 p.m. UTC | #2
On Thu, Apr 01, 2021 at 06:27:40PM +0200, Hans de Goede wrote:
> Like some other Bay and Cherry Trail SoC based devices the Dell Venue

> 10 Pro 5055 has an embedded-controller which uses ACPI GPIO events to

> report events instead of using the standard ACPI EC interface for this.

> 

> The EC interrupt is only used to report battery-level changes and

> it keeps doing this while the system is suspended, causing the system

> to not stay suspended.

> 

> Add an ignore-wake quirk for the GPIO pin used by the EC to fix the

> spurious wakeups from suspend.


Pushed to my review and testing queue, thanks!

> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

> ---

>  drivers/gpio/gpiolib-acpi.c | 14 ++++++++++++++

>  1 file changed, 14 insertions(+)

> 

> diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c

> index 1aacd2a5a1fd..174839f3772f 100644

> --- a/drivers/gpio/gpiolib-acpi.c

> +++ b/drivers/gpio/gpiolib-acpi.c

> @@ -1438,6 +1438,20 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] __initconst = {

>  			.no_edge_events_on_boot = true,

>  		},

>  	},

> +	{

> +		/*

> +		 * The Dell Venue 10 Pro 5055, with Bay Trail SoC + TI PMIC uses an

> +		 * external embedded-controller connected via I2C + an ACPI GPIO

> +		 * event handler on INT33FFC:02 pin 12, causing spurious wakeups.

> +		 */

> +		.matches = {

> +			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),

> +			DMI_MATCH(DMI_PRODUCT_NAME, "Venue 10 Pro 5055"),

> +		},

> +		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {

> +			.ignore_wake = "INT33FC:02@12",

> +		},

> +	},

>  	{

>  		/*

>  		 * HP X2 10 models with Cherry Trail SoC + TI PMIC use an

> -- 

> 2.30.2

> 


-- 
With Best Regards,
Andy Shevchenko
diff mbox series

Patch

diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
index 1aacd2a5a1fd..174839f3772f 100644
--- a/drivers/gpio/gpiolib-acpi.c
+++ b/drivers/gpio/gpiolib-acpi.c
@@ -1438,6 +1438,20 @@  static const struct dmi_system_id gpiolib_acpi_quirks[] __initconst = {
 			.no_edge_events_on_boot = true,
 		},
 	},
+	{
+		/*
+		 * The Dell Venue 10 Pro 5055, with Bay Trail SoC + TI PMIC uses an
+		 * external embedded-controller connected via I2C + an ACPI GPIO
+		 * event handler on INT33FFC:02 pin 12, causing spurious wakeups.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Venue 10 Pro 5055"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.ignore_wake = "INT33FC:02@12",
+		},
+	},
 	{
 		/*
 		 * HP X2 10 models with Cherry Trail SoC + TI PMIC use an