[PATCH v2] dmaengine: shdma: fix a build failure on platforms with no DMA support
Simon Horman
horms at verge.net.au
Thu Jun 27 09:49:20 EDT 2013
On Fri, May 31, 2013 at 04:51:52PM +0200, Arnd Bergmann wrote:
> On Friday 31 May 2013 05:01:31 Guennadi Liakhovetski wrote:
> > On platforms with no support for the shdma dmaengine driver build is
> > currently failing with
> >
> > drivers/built-in.o: In function `sh_mobile_sdhi_probe':
> > drivers/mmc/host/sh_mobile_sdhi.c:170: undefined reference to`shdma_chan_filter'
> >
> > Fix the breakage by defining shdma_chan_filter to NULL in such
> > configurations.
> >
> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas at gmail.com>
>
> Sorry, I saw your patch too late and already spent some time doing a different one.
>
> > diff --git a/include/linux/sh_dma.h b/include/linux/sh_dma.h
> > index b64d6be..1fd8a20 100644
> > --- a/include/linux/sh_dma.h
> > +++ b/include/linux/sh_dma.h
> > @@ -99,6 +99,10 @@ struct sh_dmae_pdata {
> > #define CHCR_TE 0x00000002
> > #define CHCR_IE 0x00000004
> >
> > +#if IS_ENABLED(CONFIG_SH_DMAE_BASE)
> > bool shdma_chan_filter(struct dma_chan *chan, void *arg);
> > +#else
> > +#define shdma_chan_filter NULL
> > +#endif
>
> I still think that this is not the right solution, or at least not
> complete: No slave driver should care about which dma-engine it is
> connected to. You have already done most of the necessary conversion,
> so it would be straightforward to also pass the filter function
> pointer to the sdhi driver along with the data that gets passed into
> it.
Hi Arnd, Hi Guennadi,
It seems to me that the solution above, though not particularly generic,
is sufficient as according to Guennadi SHDMA users cannot use other DMA
drivers[1]. The change above also has the merit of being rather small.
[1] https://patchwork.kernel.org/patch/2644101/
With that reasoning I would like to provide:
Acked-by: Simon Horman <horms+renesas at verge.net.au>
More information about the linux-arm-kernel
mailing list