Re: [PATCH v11 0/2] Add support for the Allwinner A31 DMA Controller

From: Maxime Ripard
Date: Mon Jul 28 2014 - 06:15:10 EST

On Fri, Jul 25, 2014 at 10:12:18PM +0530, Vinod Koul wrote:
> On Fri, Jul 25, 2014 at 06:37:46PM +0200, Maxime Ripard wrote:
> > > Can you please send follow patches for these:
> > > - don't recall if I pointed earlier, but can we use direct conversion for
> > > calculating convert_burst() and convert_buswidth(), latter one at least
> > > seem doable
> >
> > Ok. Do you still want the error reporting for the invalid width and
> > burst size?
> I think for convert_buswidth() we can do away with a switch case and convert
> the numbers directly

Well, it's already using a switch. Do you want me to remove completely
the function and move the switch where it's used? It's used two times
now, so I'd like to avoid duplicating it.

> > > - don't use devm_request_irq(). You have irq enabled and you have killed
> > > tasklet. This is too racy. You need to ensure no irqs can be generated before killing
> > > tasklets.
> >
> > Ok, would calling disable_irq before killing the tasklet an option for
> > you ? that would allow to keep the devm_request_irq.
> disable_irq also does syncronize, so it might work. But then again if the
> probe fails after registering irq due to some other reason, and you get into
> races with unitialized driver as well.
> I think it might be easier to amnge by working with plain old request_irq()

Yes, devm_free_irq like Russell suggested seems to both address your
concerns, while not having to care about it at probe.

> > I'll also send patches for the various breakages and warnings spotted
> > by the autobuilders.
> Yes please, I havent seen the reports in detail yet, but they are reporting
> mainly due COMPILE_TEST. DO you really want that?

I don't know, I thought it was the new "default". And it allows to
catch issues like we've seen.

> Yes it did help me to compile for ARM, i didnt see any defconfig which has
> this MACH in arm/configs

I don't know what kernel you were looking at, but it's been introduced
in 3.16.


Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering

Attachment: signature.asc
Description: Digital signature