Re: [PATCH] dma: remove bad_dma_ops to fix build fail

From: Sudip Mukherjee
Date: Mon Jun 13 2016 - 03:41:25 EST


On Sun, Jun 12, 2016 at 02:32:24PM -0700, Jerry Snitselaar wrote:
> On Sun Jun 12 16, Sudip Mukherjee wrote:
> >m32r allmodconfig is failng with errors like:
> >ERROR: "bad_dma_ops" [sound/soc/bcm/snd-soc-cygnus.ko] undefined!
> >
> >On checking the code it turns out that struct bad_dma_ops has been
> >declared as extern but no one has actually defined struct bad_dma_ops.
> >Lets remove that and return NULL from get_dma_ops() if HAS_DMA is not
> >defined.
> >
> >Signed-off-by: Sudip Mukherjee <sudip.mukherjee@xxxxxxxxxxxxxxx>
> >---
> >
<snip>
>
> Ccing Christoph since his commit introduced bad_dma_ops, and Simran
> who wrote that cygnus code.
>
> I'm thinking that is there to complain loudly when someone is trying
> to use dma without HAS_DMA, correct Christoph?
>
> cygnus_pcm_preallocate_dma_buffer() is calling dma_alloc_coherent(),
> which ends up in a call to get_dma_ops() and tripping over the above.
>
> Possibly this instead:
>
> diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
> index d528aac..edf3671 100644
> --- a/sound/soc/bcm/Kconfig
> +++ b/sound/soc/bcm/Kconfig
> @@ -11,6 +11,7 @@ config SND_BCM2835_SOC_I2S
> config SND_SOC_CYGNUS
> tristate "SoC platform audio for Broadcom Cygnus chips"
> depends on ARCH_BCM_CYGNUS || COMPILE_TEST
> + depends on HAS_DMA
> help
> Say Y if you want to add support for ASoC audio on Broadcom
> Cygnus chips (bcm958300, bcm958305, bcm911360)

well, I have been doing the exact same thing for all the drivers that was
failing to build but in my last patch Mark suggested to have stub
implementation in the arch [1]. So while looking for that I noticed
bad_dma_ops is not defined by anyone. So what will you suggest?

addind Cc to Mark Brown also.

[1] http://www.spinics.net/lists/alsa-devel/msg50931.html

regards
sudip