[BUG?] vic MULTI_IRQ_HANDLER (was [PATCH] ep93xx: Implement double buffering for M2M DMA channels)
Will Deacon
will.deacon at arm.com
Wed Apr 4 05:11:10 EDT 2012
On Tue, Apr 03, 2012 at 06:46:40PM +0100, H Hartley Sweeten wrote:
> On Tuesday, April 03, 2012 10:08 AM, Will Deacon wrote:
> > diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c
> > index dcb004a..cb6b49a 100644
> > --- a/arch/arm/common/vic.c
> > +++ b/arch/arm/common/vic.c
> > @@ -441,11 +441,9 @@ static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs)
> > u32 stat, irq;
> > int handled = 0;
> >
> > - stat = readl_relaxed(vic->base + VIC_IRQ_STATUS);
> > - while (stat) {
> > + while ((stat = readl_relaxed(vic->base + VIC_IRQ_STATUS))) {
> > irq = ffs(stat) - 1;
> > handle_IRQ(irq_domain_to_irq(&vic->domain, irq), regs);
> > - stat &= ~(1 << irq);
> > handled = 1;
> > }
>
> This should be posted as a proper patch with your Signed-off-by.
If Jamie's happy with the change, I'll repost.
> But for what it's worth, on ep93xx:
>
> Tested-by: H Hartley Sweeten <hsweeten at visionengravers.com>
> Acked-by: H Hartley Sweeten <hsweeten at visionengravers.com>
Thanks,
Will
More information about the linux-arm-kernel
mailing list