Re: [PATCH 5/5] Add DMA engine driver for Freescale MPC85xxprocessors.

From: Scott Wood
Date: Thu Sep 13 2007 - 10:49:42 EST


On Thu, Sep 13, 2007 at 03:13:06AM -0700, Zhang Wei-r63237 wrote:
> > After dropping the lock, you can no longer assume that your
> > iterator is
> > still valid; you need to work off of the list head.
> >
>
> list_for_each_entry_safe() is used here. I think the safe should be ok.
> :P

Nope. The safety is against the particular item you're iterating on
being removed; it doesn't protect against the *next* entry being removed
when you drop the lock.

> > Why not use an array of channels?
>
> The list is used in dma engine core file. And it's possible that there
> are not all channel listed in dts and array.

I'm not sure I understand what you mean by the latter comment...

> > You could have the features be part of the match struct, so
> > you don't have
> > to do extra strcmps.
> >
>
> Can I use the data field of struct of_device_id?

Yes, that's what it's there for. :-)

> > > +static struct of_device_id of_fsl_dma_ids[] = {
> > > + { .compatible = "fsl,dma", },
> > > +};
> >
> > Why do we need to bind to the parent node at all?
>
> Yes, the MPC83xx should get interrupt source from DMA device register.

You don't need to bind to it for that, though -- just call of_get_parent
from the channel probe. Though it might be easier to bind to the parent
to ensure that you only register the IRQ once.

-Scott
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/