[Bug] ARM: mxs: STI: console can't wake up from freeze

Stefan Wahren stefan.wahren at i2se.com
Sun Nov 6 02:20:56 PST 2016


Hi,

> Russell King - ARM Linux <linux at armlinux.org.uk> hat am 5. November 2016 um
> 19:05 geschrieben:
> 
> 
> On Sat, Nov 05, 2016 at 04:28:37PM +0100, Stefan Wahren wrote:
> > As i wrote in my email before, i added a pr_info() into freeze_wake.
> > But i never see the output of this message. So i assume freeze_wake
> > is never called. Again, how could this happen?
> 
> Hmm, so the bit that you're getting stuck on is:
> 
>         wait_event(suspend_freeze_wait_head,
>                    suspend_freeze_state == FREEZE_STATE_WAKE);
> 

thanks for all the feedback. The real cause for this issue is in the irqchip
driver. I fixed it with this 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)



More information about the linux-arm-kernel mailing list