Subject: Re: [PATCH] ASoC: fsl_dma: Pass the proper device for dma mapping routines

From: Timur Tabi <[email-masked]>
Date: Mon, 06 Apr 2009 16:06:22 -0500

Anton Vorontsov wrote:
> The driver should pass a device that specifies internal DMA ops, but
> substream->pcm is just a logical device, and thus doesn't have arch-
> specific dma callbacks, therefore following bug appears:
> 
>   Freescale Synchronous Serial Interface (SSI) ASoC Driver
>   ------------[ cut here ]------------
>   kernel BUG at arch/powerpc/include/asm/dma-mapping.h:237!
>   Oops: Exception in kernel mode, sig: 5 [#1]
>   ...
>   NIP [c02259c4] snd_malloc_dev_pages+0x58/0xac
>   LR [c0225c74] snd_dma_alloc_pages+0xf8/0x108
>   Call Trace:
>   [df02bde0] [df02be2c] 0xdf02be2c (unreliable)
>   [df02bdf0] [c0225c74] snd_dma_alloc_pages+0xf8/0x108
>   [df02be10] [c023a100] fsl_dma_new+0x68/0x124
>   [df02be20] [c02342ac] soc_new_pcm+0x1bc/0x234
>   [df02bea0] [c02343dc] snd_soc_new_pcms+0xb8/0x148
>   [df02bed0] [c023824c] cs4270_probe+0x34/0x124
>   [df02bef0] [c0232fe8] snd_soc_instantiate_card+0x1a4/0x2f4
>   [df02bf20] [c0233164] snd_soc_instantiate_cards+0x2c/0x68
>   [df02bf30] [c0234704] snd_soc_register_platform+0x60/0x80
>   [df02bf50] [c03d5664] fsl_soc_platform_init+0x18/0x28
>   ...
> 
> This patch fixes the issue by using card's device instead.
> 
> Signed-off-by: Anton Vorontsov <[email-masked]>
> ---

Acked-by: Timur Tabi <[email-masked]>

Mark and Takashi: this patch is a must-fix for 2.6.30

-- 
Timur Tabi
Linux kernel developer at Freescale