Hi, On Tue, 11 Nov 2014 00:03:01 +0100 Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx> wrote: > Adding Boris in Cc: as he wrote that part. Thanks for putting me in the loop. > > On 10/11/2014 at 14:11:44 -0800, Kevin Cernekee wrote : > > On Mon, Nov 10, 2014 at 2:00 PM, Kevin Hilman <khilman@xxxxxxxxxx> wrote: > > > Kevin Cernekee <cernekee@xxxxxxxxx> writes: > > > > > >> Use io{read,write}32be if the caller specified IRQ_GC_BE_IO when creating > > >> the irqchip. > > >> > > >> Signed-off-by: Kevin Cernekee <cernekee@xxxxxxxxx> > > > > > > I bisected a couple ARM boot failures in next-20141110 on atmel sama5 platforms down to > > > this patch, though I'm not quite yet sure how it's causing the failure. > > > I'm not getting any console output, so haven't been able to dig deeper > > > yet. Maybe the atmel maintainers (Cc'd) can help dig. > > > > > > I've confirmed that reverting $SUBJECT patch (commit > > > b79055952badbd73710685643bab44104f2509ea2) on top of next-20141110 gets > > > things booting again. > > > > > > Also, it only happens with sama5_defconfig, not with multi_v7_defconfig. > > > > In drivers/irqchip/irq-atmel-aic-common.c I see: > > > > ret = irq_alloc_domain_generic_chips(domain, 32, 1, name, > > handle_level_irq, 0, 0, > > IRQCHIP_SKIP_SET_WAKE); > > > > and IRQCHIP_SKIP_SET_WAKE is (1 << 4), same as IRQ_GC_BE_IO. > > > > Is it possible that the caller is passing values intended for > > irq_chip->flags into a function expecting > > irq_domain_chip_generic->gc_flags ? Indeed, I don't know what I tried to do in the first place but this is completely wrong. First because the last argument is not a valid flag as you pointed out, then because I clearly have set irq_set_wake and thus setting IRQCHIP_SKIP_SET_WAKE makes no sense. I also realized I should directly pass handle_fasteoi_irq and not handle_level_irq for the handler, that clr flags (IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN) are missing and that IRQ_GC_INIT_MASK_CACHE is missing too. I'll propose a patch fixing all those bugs. Sorry for the inconvenience :-(. Regards, Boris -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com