• Anton Vorontsov's avatar
    ASoC: fsl_dma: Pass the proper device for dma mapping routines · 5c15a686
    Anton Vorontsov authored
    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: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
    Acked-by: default avatarTimur Tabi <timur@freescale.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    5c15a686
fsl_dma.c 27.7 KB