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:14 p.m. UTC | #2
On Thu, Apr 01, 2021 at 09:01:17PM +0300, Andy Shevchenko wrote:
> 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.


Bart, nevermind, I'll take it thru my tree. It seems we have two and perhaps
even three patches, so it will be easier to handle together.

-- 
With Best Regards,
Andy Shevchenko
Andy Shevchenko April 2, 2021, 6:16 p.m. UTC | #3
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
>
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