diff mbox

[RFT] irqchip: mxs: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND

Message ID 1478885208-18821-1-git-send-email-stefan.wahren@i2se.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Stefan Wahren Nov. 11, 2016, 5:26 p.m. UTC
The ICOLL controller doesn't provide any facility to configure the
wakeup sources. That's the reason why this implementation lacks
the irq_set_wake implementation. But this prevent us from properly
entering power management states like "suspend to idle".

So enable the flags IRQCHIP_SKIP_SET_WAKE and IRQCHIP_MASK_ON_SUSPEND
to let the irqchip core allows and handles the power management.

This patch has been tested with a MX23 and a MX28 board. Any further
tests especially with ASM9260 would be appreciated.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
---
 drivers/irqchip/irq-mxs.c |    4 ++++
 1 file changed, 4 insertions(+)

Comments

Oleksij Rempel Nov. 12, 2016, 7:24 p.m. UTC | #1
Am 11.11.2016 um 18:26 schrieb Stefan Wahren:
> The ICOLL controller doesn't provide any facility to configure the
> wakeup sources. That's the reason why this implementation lacks
> the irq_set_wake implementation. But this prevent us from properly
> entering power management states like "suspend to idle".
> 
> So enable the flags IRQCHIP_SKIP_SET_WAKE and IRQCHIP_MASK_ON_SUSPEND
> to let the irqchip core allows and handles the power management.
> 
> This patch has been tested with a MX23 and a MX28 board. Any further
> tests especially with ASM9260 would be appreciated.

Hi, I wont be able to test this patch on ASM9260 until March.
Please roll it out, so far it looks ok for me.


> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
> ---
>  drivers/irqchip/irq-mxs.c |    4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/irqchip/irq-mxs.c b/drivers/irqchip/irq-mxs.c
> index 1730470..05fa9f7 100644
> --- a/drivers/irqchip/irq-mxs.c
> +++ b/drivers/irqchip/irq-mxs.c
> @@ -131,12 +131,16 @@ static void asm9260_unmask_irq(struct irq_data *d)
>  	.irq_ack = icoll_ack_irq,
>  	.irq_mask = icoll_mask_irq,
>  	.irq_unmask = icoll_unmask_irq,
> +	.flags = IRQCHIP_MASK_ON_SUSPEND |
> +		 IRQCHIP_SKIP_SET_WAKE,
>  };
>  
>  static struct irq_chip asm9260_icoll_chip = {
>  	.irq_ack = icoll_ack_irq,
>  	.irq_mask = asm9260_mask_irq,
>  	.irq_unmask = asm9260_unmask_irq,
> +	.flags = IRQCHIP_MASK_ON_SUSPEND |
> +		 IRQCHIP_SKIP_SET_WAKE,
>  };
>  
>  asmlinkage void __exception_irq_entry icoll_handle_irq(struct pt_regs *regs)
>
Stefan Wahren Nov. 16, 2016, 4:40 p.m. UTC | #2
> Oleksij Rempel <linux@rempel-privat.de> hat am 12. November 2016 um 20:24
> geschrieben:
> 
> 
> Am 11.11.2016 um 18:26 schrieb Stefan Wahren:
> > The ICOLL controller doesn't provide any facility to configure the
> > wakeup sources. That's the reason why this implementation lacks
> > the irq_set_wake implementation. But this prevent us from properly
> > entering power management states like "suspend to idle".
> > 
> > So enable the flags IRQCHIP_SKIP_SET_WAKE and IRQCHIP_MASK_ON_SUSPEND
> > to let the irqchip core allows and handles the power management.
> > 
> > This patch has been tested with a MX23 and a MX28 board. Any further
> > tests especially with ASM9260 would be appreciated.
> 
> Hi, I wont be able to test this patch on ASM9260 until March.
> Please roll it out, so far it looks ok for me.

Is this an "Acked-by" ?

> 
> 
> > Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
> > ---
> >  drivers/irqchip/irq-mxs.c |    4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/drivers/irqchip/irq-mxs.c b/drivers/irqchip/irq-mxs.c
> > index 1730470..05fa9f7 100644
> > --- a/drivers/irqchip/irq-mxs.c
> > +++ b/drivers/irqchip/irq-mxs.c
> > @@ -131,12 +131,16 @@ static void asm9260_unmask_irq(struct irq_data *d)
> >  	.irq_ack = icoll_ack_irq,
> >  	.irq_mask = icoll_mask_irq,
> >  	.irq_unmask = icoll_unmask_irq,
> > +	.flags = IRQCHIP_MASK_ON_SUSPEND |
> > +		 IRQCHIP_SKIP_SET_WAKE,
> >  };
> >  
> >  static struct irq_chip asm9260_icoll_chip = {
> >  	.irq_ack = icoll_ack_irq,
> >  	.irq_mask = asm9260_mask_irq,
> >  	.irq_unmask = asm9260_unmask_irq,
> > +	.flags = IRQCHIP_MASK_ON_SUSPEND |
> > +		 IRQCHIP_SKIP_SET_WAKE,
> >  };
> >  
> >  asmlinkage void __exception_irq_entry icoll_handle_irq(struct pt_regs
> > *regs)
> > 
> 
> 
> -- 
> Regards,
> Oleksij
>
--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/irqchip/irq-mxs.c b/drivers/irqchip/irq-mxs.c
index 1730470..05fa9f7 100644
--- a/drivers/irqchip/irq-mxs.c
+++ b/drivers/irqchip/irq-mxs.c
@@ -131,12 +131,16 @@  static void asm9260_unmask_irq(struct irq_data *d)
 	.irq_ack = icoll_ack_irq,
 	.irq_mask = icoll_mask_irq,
 	.irq_unmask = icoll_unmask_irq,
+	.flags = IRQCHIP_MASK_ON_SUSPEND |
+		 IRQCHIP_SKIP_SET_WAKE,
 };
 
 static struct irq_chip asm9260_icoll_chip = {
 	.irq_ack = icoll_ack_irq,
 	.irq_mask = asm9260_mask_irq,
 	.irq_unmask = asm9260_unmask_irq,
+	.flags = IRQCHIP_MASK_ON_SUSPEND |
+		 IRQCHIP_SKIP_SET_WAKE,
 };
 
 asmlinkage void __exception_irq_entry icoll_handle_irq(struct pt_regs *regs)