[PATCH] DMA: let filter functions of of_dma_simple_xlate possible check of_node

Richard Zhao linuxzsc at gmail.com
Mon Aug 26 10:49:05 EDT 2013


On Fri, Aug 23, 2013 at 09:57:43AM -0600, Stephen Warren wrote:
> On 08/22/2013 07:29 PM, Richard Zhao wrote:
> > On Fri, Aug 23, 2013 at 04:18:27AM +0800, Stephen Warren wrote:
> >> On 08/21/2013 11:19 PM, Richard Zhao wrote:
> >>> On Fri, Aug 02, 2013 at 10:00:00AM +0800, Richard Zhao wrote:
> >>>> pass of_phandle_args dma_spec to dma_request_channel in of_dma_simple_xlate,
> >>>> so the filter function could access of_node in of_phandle_args.
> >>>>
> >>>> It also remove restriction of #dma-cells has to be one.
> >>>>
> >>>> Signed-off-by: Richard Zhao <rizhao at nvidia.com>
> >>>> ---
> >>>>  drivers/dma/edma.c     |  7 +++++--
> >>>>  drivers/dma/of-dma.c   | 10 ++++------
> >>>>  drivers/dma/omap-dma.c |  6 ++++--
> >>>>  3 files changed, 13 insertions(+), 10 deletions(-)
> >>>>
> >>>
> >>> Hi Vinod,
> >>>
> >>> Can you please pick up this change?
> >>>
> >>> Hi Stephen,
> >>>
> >>> Can you please give a ack or reviewed-by etc?
> >>
> >> Hmm. Looking at the patch, I'm not sure it's right.
> >>
> >> This patch simply passes all the specfier args to the filter function,
> >> and the code to check the equality of the of_node to the filter args is
> >> still duplicated in each DMA driver. Instead, the DMA core should be
> >> implementing the equality check, and only even calling the
> >> driver-specific filter function for devices where the client's phandle
> >> matches the DMA providing device's of_node handle.
> > 
> > Filter function is called in dmaengine core code, independent of dt.
> 
> The core code can still check if a dmaengine's driver was instantiated
> from DT and take additional actions in that case.

>From perspective of core code, the filter function is not attached to
any dma driver. So it doesn't care whether dt dma driver is instantiated.
I'm not sure I've got your point. Can you please write pieces of code if
possible?
The goal of this patch is to use least changes to add check of dt node.

Thanks
Richard
> 
> > And the reason why the driver has to write its own filter function is
> > it has to store slave id there in its own way.
> 
> I'm not saying don't call the driver's filter function, but rather that
> the dmaengine core should perform the common checks before doing so.
> 



More information about the linux-arm-kernel mailing list