2021-08-09 23:43:33

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH] pinctrl: amd: Fix an issue with shutdown when system set to s0ix

IRQs are getting armed on shutdown causing the system to immediately
wake back up.

Link: https://lkml.org/lkml/2021/8/2/1114
Reported-by: [email protected]
CC: Raul E Rangel <[email protected]>
Fixes: d62bd5ce12d7 ("pinctrl: amd: Implement irq_set_wake")
Signed-off-by: Mario Limonciello <[email protected]>
---
drivers/pinctrl/pinctrl-amd.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c
index a76be6cc26ee..5b764740b829 100644
--- a/drivers/pinctrl/pinctrl-amd.c
+++ b/drivers/pinctrl/pinctrl-amd.c
@@ -444,8 +444,7 @@ static int amd_gpio_irq_set_wake(struct irq_data *d, unsigned int on)
unsigned long flags;
struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
- u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3) |
- BIT(WAKE_CNTRL_OFF_S4);
+ u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3);

raw_spin_lock_irqsave(&gpio_dev->lock, flags);
pin_reg = readl(gpio_dev->base + (d->hwirq)*4);
--
2.25.1


2021-08-11 08:28:39

by Gabriel C

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: amd: Fix an issue with shutdown when system set to s0ix

Am Mo., 9. Aug. 2021 um 22:15 Uhr schrieb Mario Limonciello
<[email protected]>:
>
> IRQs are getting armed on shutdown causing the system to immediately
> wake back up.
>
> Link: https://lkml.org/lkml/2021/8/2/1114
> Reported-by: [email protected]
> CC: Raul E Rangel <[email protected]>
> Fixes: d62bd5ce12d7 ("pinctrl: amd: Implement irq_set_wake")
> Signed-off-by: Mario Limonciello <[email protected]>
> ---
> drivers/pinctrl/pinctrl-amd.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c
> index a76be6cc26ee..5b764740b829 100644
> --- a/drivers/pinctrl/pinctrl-amd.c
> +++ b/drivers/pinctrl/pinctrl-amd.c
> @@ -444,8 +444,7 @@ static int amd_gpio_irq_set_wake(struct irq_data *d, unsigned int on)
> unsigned long flags;
> struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
> struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
> - u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3) |
> - BIT(WAKE_CNTRL_OFF_S4);
> + u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3);
>
> raw_spin_lock_irqsave(&gpio_dev->lock, flags);
> pin_reg = readl(gpio_dev->base + (d->hwirq)*4);
> --

Is working fine again with this fix.

Best Regards,

Gabriel C

2021-08-11 12:24:17

by Gabriel C

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: amd: Fix an issue with shutdown when system set to s0ix

Am Mi., 11. Aug. 2021 um 10:26 Uhr schrieb Gabriel C
<[email protected]>:
>
> Am Mo., 9. Aug. 2021 um 22:15 Uhr schrieb Mario Limonciello
> <[email protected]>:
> >
> > IRQs are getting armed on shutdown causing the system to immediately
> > wake back up.
> >
> > Link: https://lkml.org/lkml/2021/8/2/1114
> > Reported-by: [email protected]
> > CC: Raul E Rangel <[email protected]>
> > Fixes: d62bd5ce12d7 ("pinctrl: amd: Implement irq_set_wake")
> > Signed-off-by: Mario Limonciello <[email protected]>
> > ---
> > drivers/pinctrl/pinctrl-amd.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c
> > index a76be6cc26ee..5b764740b829 100644
> > --- a/drivers/pinctrl/pinctrl-amd.c
> > +++ b/drivers/pinctrl/pinctrl-amd.c
> > @@ -444,8 +444,7 @@ static int amd_gpio_irq_set_wake(struct irq_data *d, unsigned int on)
> > unsigned long flags;
> > struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
> > struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
> > - u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3) |
> > - BIT(WAKE_CNTRL_OFF_S4);
> > + u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3);
> >
> > raw_spin_lock_irqsave(&gpio_dev->lock, flags);
> > pin_reg = readl(gpio_dev->base + (d->hwirq)*4);
> > --
>
> Is working fine again with this fix.
>

Ofc feel free to add:

Tested-by: Gabriel Craciunescu <[email protected]>

Best Regards

2021-08-12 02:29:41

by Shyam Sundar S K

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: amd: Fix an issue with shutdown when system set to s0ix



On 8/10/2021 1:45 AM, Mario Limonciello wrote:
> IRQs are getting armed on shutdown causing the system to immediately
> wake back up.
>
> Link: https://lkml.org/lkml/2021/8/2/1114
> Reported-by: [email protected]
> CC: Raul E Rangel <[email protected]>
> Fixes: d62bd5ce12d7 ("pinctrl: amd: Implement irq_set_wake")
> Signed-off-by: Mario Limonciello <[email protected]>
> ---
> drivers/pinctrl/pinctrl-amd.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c
> index a76be6cc26ee..5b764740b829 100644
> --- a/drivers/pinctrl/pinctrl-amd.c
> +++ b/drivers/pinctrl/pinctrl-amd.c
> @@ -444,8 +444,7 @@ static int amd_gpio_irq_set_wake(struct irq_data *d, unsigned int on)
> unsigned long flags;
> struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
> struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
> - u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3) |
> - BIT(WAKE_CNTRL_OFF_S4);
> + u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3);
>
> raw_spin_lock_irqsave(&gpio_dev->lock, flags);
> pin_reg = readl(gpio_dev->base + (d->hwirq)*4);
>

Looks good to me.

Acked-by: Shyam Sundar S K <[email protected]>

2021-08-12 09:50:45

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: amd: Fix an issue with shutdown when system set to s0ix

On Mon, Aug 9, 2021 at 10:15 PM Mario Limonciello
<[email protected]> wrote:

> IRQs are getting armed on shutdown causing the system to immediately
> wake back up.
>
> Link: https://lkml.org/lkml/2021/8/2/1114
> Reported-by: [email protected]
> CC: Raul E Rangel <[email protected]>
> Fixes: d62bd5ce12d7 ("pinctrl: amd: Implement irq_set_wake")
> Signed-off-by: Mario Limonciello <[email protected]>

Patch is applied.

Yours,
Linus Walleij