02 Jun, 2017

1 commit

  • This dma engine driver directly accesses page_link assuming knowledge
    that should be contained only in scatterlist.h.

    We replace these with calls to sg_chain and sg_assign_page.

    Signed-off-by: Logan Gunthorpe
    Signed-off-by: Stephen Bates
    Acked-by: Linus Walleij
    Cc: Dan Williams
    Cc: Vinod Koul
    Cc: Per Förlin
    Signed-off-by: Vinod Koul

    Logan Gunthorpe
     

08 Aug, 2016

1 commit

  • This is in preperation of moving to a callback that provides results to the
    callback for the transaction. The conversion will maintain current behavior
    and the driver must convert to new callback mechanism at a later time in
    order to receive results.

    Signed-off-by: Dave Jiang
    Reviewed-by: Lars-Peter Clausen
    Signed-off-by: Vinod Koul

    Dave Jiang
     

16 Jul, 2016

2 commits


05 Aug, 2015

1 commit

  • Most drivers need to set constraints on the buffer alignment for async tx
    operations. However, even though it is documented, some drivers either use
    a defined constant that is not matching what the alignment variable expects
    (like DMA_BUSWIDTH_* constants) or fill the alignment in bytes instead of
    power of two.

    Add a new enum for these alignments that matches what the framework
    expects, and convert the drivers to it.

    Signed-off-by: Maxime Ripard
    Signed-off-by: Vinod Koul

    Maxime Ripard
     

07 Jul, 2015

1 commit


04 May, 2015

1 commit


03 Feb, 2015

1 commit


22 Dec, 2014

2 commits


20 Oct, 2014

1 commit


04 Aug, 2014

1 commit


06 Mar, 2014

2 commits


01 Nov, 2013

1 commit


31 Oct, 2013

1 commit

  • drivers/dma/imx-dma.c:575:3: warning: format '%x' expects argument of type 'unsigned int', but argument 6 has type 'dma_addr_t'
    drivers/dma/imx-dma.c:575:3: warning: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'dma_addr_t'
    drivers/dma/imx-dma.c:589:4: warning: format '%x' expects argument of type 'unsigned int', but argument 9 has type 'dma_addr_t'
    drivers/dma/imx-dma.c:599:4: warning: format '%x' expects argument of type 'unsigned int', but argument 9 has type 'dma_addr_t'
    drivers/dma/imx-dma.c:929:2: warning: format '%x' expects argument of type 'unsigned int', but argument 6 has type 'dma_addr_t'
    drivers/dma/imx-dma.c:929:2: warning: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'dma_addr_t'
    drivers/dma/imx-dma.c:959:2: warning: format '%x' expects argument of type 'unsigned int', but argument 6 has type 'dma_addr_t'
    drivers/dma/imx-dma.c:959:2: warning: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'dma_addr_t'

    We can't use the %pa format for these because this relates to phys_addr_t,
    and dma_addr_t can be a different size. So, fix these by converting them
    to %llx and casting the dma_addr_t to always be unsigned long long.

    While we're here, also use %zu for size_t.

    Signed-off-by: Russell King
    Signed-off-by: Vinod Koul

    Russell King
     

25 Oct, 2013

1 commit


04 Oct, 2013

3 commits

  • We need to free the ld_active list head before jumping into the callback
    routine. Otherwise the callback could run into issue_pending and change
    our ld_active list head we just going to free. This will run the channel
    list into an currupted and undefined state.

    Signed-off-by: Michael Grzeschik
    Signed-off-by: Vinod Koul

    Michael Grzeschik
     
  • The tasklet and irqhandler are using spin_lock while other routines are
    using spin_lock_irqsave/restore. This leads to lockdep issues as
    described bellow. This patch is changing the code to use
    spinlock_irq_save/restore in both code pathes.

    As imxdma_xfer_desc always gets called with spin_lock_irqsave lock held,
    this patch also removes the spare call inside the routine to avoid
    double locking.

    [ 403.358162] =================================
    [ 403.362549] [ INFO: inconsistent lock state ]
    [ 403.366945] 3.10.0-20130823+ #904 Not tainted
    [ 403.371331] ---------------------------------
    [ 403.375721] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
    [ 403.381769] swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
    [ 403.386762] (&(&imxdma->lock)->rlock){?.-...}, at: [] imxdma_tasklet+0x20/0x134
    [ 403.395201] {IN-HARDIRQ-W} state was registered at:
    [ 403.400108] [] mark_lock+0x2a0/0x6b4
    [ 403.404798] [] __lock_acquire+0x650/0x1a64
    [ 403.410004] [] lock_acquire+0x94/0xa8
    [ 403.414773] [] _raw_spin_lock+0x54/0x8c
    [ 403.419720] [] dma_irq_handler+0x78/0x254
    [ 403.424845] [] handle_irq_event_percpu+0x38/0x1b4
    [ 403.430670] [] handle_irq_event+0x44/0x64
    [ 403.435789] [] handle_level_irq+0xd8/0xf0
    [ 403.440903] [] generic_handle_irq+0x28/0x38
    [ 403.446194] [] handle_IRQ+0x68/0x8c
    [ 403.450789] [] avic_handle_irq+0x3c/0x48
    [ 403.455811] [] __irq_svc+0x44/0x74
    [ 403.460314] [] cpu_startup_entry+0x88/0xf4
    [ 403.465525] [] rest_init+0xb8/0xe0
    [ 403.470045] [] start_kernel+0x28c/0x2d4
    [ 403.474986] [] 0xa0008040
    [ 403.478709] irq event stamp: 50854
    [ 403.482140] hardirqs last enabled at (50854): [] tasklet_action+0x38/0xdc
    [ 403.489954] hardirqs last disabled at (50853): [] tasklet_action+0x20/0xdc
    [ 403.497761] softirqs last enabled at (50850): [] _local_bh_enable+0x14/0x18
    [ 403.505741] softirqs last disabled at (50851): [] irq_exit+0x88/0xdc
    [ 403.513026]
    [ 403.513026] other info that might help us debug this:
    [ 403.519593] Possible unsafe locking scenario:
    [ 403.519593]
    [ 403.525548] CPU0
    [ 403.528020] ----
    [ 403.530491] lock(&(&imxdma->lock)->rlock);
    [ 403.534828]
    [ 403.537474] lock(&(&imxdma->lock)->rlock);
    [ 403.541983]
    [ 403.541983] *** DEADLOCK ***
    [ 403.541983]
    [ 403.547951] no locks held by swapper/0.
    [ 403.551813]
    [ 403.551813] stack backtrace:
    [ 403.556222] CPU: 0 PID: 0 Comm: swapper Not tainted 3.10.0-20130823+ #904
    [ 403.563039] Backtrace:
    [ 403.565581] [] (dump_backtrace+0x0/0x10c) from [] (show_stack+0x18/0x1c)
    [ 403.574054] r6:00000000 r5:c05c51d8 r4:c040bd58 r3:00200000
    [ 403.579872] [] (show_stack+0x0/0x1c) from [] (dump_stack+0x20/0x28)
    [ 403.587955] [] (dump_stack+0x0/0x28) from [] (print_usage_bug.part.28+0x224/0x28c)
    [ 403.597340] [] (print_usage_bug.part.28+0x0/0x28c) from [] (mark_lock+0x440/0x6b4)
    [ 403.606682] r8:c004a41c r7:00000000 r6:c040bd58 r5:c040c040 r4:00000002
    [ 403.613566] [] (mark_lock+0x0/0x6b4) from [] (__lock_acquire+0x6cc/0x1a64)
    [ 403.622244] [] (__lock_acquire+0x0/0x1a64) from [] (lock_acquire+0x94/0xa8)
    [ 403.631010] [] (lock_acquire+0x0/0xa8) from [] (_raw_spin_lock+0x54/0x8c)
    [ 403.639614] [] (_raw_spin_lock+0x0/0x8c) from [] (imxdma_tasklet+0x20/0x134)
    [ 403.648434] r6:c3847010 r5:c040e890 r4:c38470d4
    [ 403.653194] [] (imxdma_tasklet+0x0/0x134) from [] (tasklet_action+0x8c/0xdc)
    [ 403.662013] r8:c0599160 r7:00000000 r6:00000000 r5:c040e890 r4:c3847114 r3:c019d75c
    [ 403.670042] [] (tasklet_action+0x0/0xdc) from [] (__do_softirq+0xe4/0x1f0)
    [ 403.678687] r7:00000101 r6:c0402000 r5:c059919c r4:00000001
    [ 403.684498] [] (__do_softirq+0x0/0x1f0) from [] (irq_exit+0x88/0xdc)
    [ 403.692652] [] (irq_exit+0x0/0xdc) from [] (handle_IRQ+0x6c/0x8c)
    [ 403.700514] r4:00000030 r3:00000110
    [ 403.704192] [] (handle_IRQ+0x0/0x8c) from [] (avic_handle_irq+0x3c/0x48)
    [ 403.712664] r5:c0403f28 r4:c0593ebc
    [ 403.716343] [] (avic_handle_irq+0x0/0x48) from [] (__irq_svc+0x44/0x74)
    [ 403.724733] Exception stack(0xc0403f28 to 0xc0403f70)
    [ 403.729841] 3f20: 00000001 00000004 00000000 20000013 c0402000 c04104a8
    [ 403.738078] 3f40: 00000002 c0b69620 a0004000 41069264 a03fb5f4 c0403f7c c0403f40 c0403f70
    [ 403.746301] 3f60: c004b92c c0009e74 20000013 ffffffff
    [ 403.751383] r6:ffffffff r5:20000013 r4:c0009e74 r3:c004b92c
    [ 403.757210] [] (arch_cpu_idle+0x0/0x4c) from [] (cpu_startup_entry+0x88/0xf4)
    [ 403.766161] [] (cpu_startup_entry+0x0/0xf4) from [] (rest_init+0xb8/0xe0)
    [ 403.774753] [] (rest_init+0x0/0xe0) from [] (start_kernel+0x28c/0x2d4)
    [ 403.783051] r6:c03fc484 r5:ffffffff r4:c040a0e0
    [ 403.787797] [] (start_kernel+0x0/0x2d4) from [] (0xa0008040)

    Signed-off-by: Michael Grzeschik
    Signed-off-by: Vinod Koul

    Michael Grzeschik
     
  • When perparing cyclic_dma buffers by the sound layer, it will dump the
    following lockdep trace. The leading snd_pcm_action_single get called
    with read_lock_irq called. To fix this, we change the kcalloc call from
    GFP_KERNEL to GFP_ATOMIC.

    WARNING: at kernel/lockdep.c:2740 lockdep_trace_alloc+0xcc/0x114()
    DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))
    Modules linked in:
    CPU: 0 PID: 832 Comm: aplay Not tainted 3.11.0-20130823+ #903
    Backtrace:
    [] (dump_backtrace+0x0/0x10c) from [] (show_stack+0x18/0x1c)
    r6:c004c090 r5:00000009 r4:c2e0bd18 r3:00404000
    [] (show_stack+0x0/0x1c) from [] (dump_stack+0x20/0x28)
    [] (dump_stack+0x0/0x28) from [] (warn_slowpath_common+0x54/0x70)
    [] (warn_slowpath_common+0x0/0x70) from [] (warn_slowpath_fmt+0x38/0x40)
    r8:00004000 r7:a3b90000 r6:000080d0 r5:60000093 r4:c2e0a000 r3:00000009
    [] (warn_slowpath_fmt+0x0/0x40) from [] (lockdep_trace_alloc+0xcc/0x114)
    r3:c03955d8 r2:c03907db
    [] (lockdep_trace_alloc+0x0/0x114) from [] (__kmalloc+0x34/0x118)
    r6:000080d0 r5:c3800120 r4:000080d0 r3:c040a0f8
    [] (__kmalloc+0x0/0x118) from [] (imxdma_prep_dma_cyclic+0x64/0x168)
    r7:a3b90000 r6:00000004 r5:c39d8420 r4:c3847150
    [] (imxdma_prep_dma_cyclic+0x0/0x168) from [] (snd_dmaengine_pcm_trigger+0xa8/0x160)
    [] (snd_dmaengine_pcm_trigger+0x0/0x160) from [] (soc_pcm_trigger+0x90/0xb4)
    r8:c058c7b0 r7:c3b8140c r6:c39da560 r5:00000001 r4:c3b81000
    [] (soc_pcm_trigger+0x0/0xb4) from [] (snd_pcm_do_start+0x2c/0x38)
    r7:00000000 r6:00000003 r5:c058c7b0 r4:c3b81000
    [] (snd_pcm_do_start+0x0/0x38) from [] (snd_pcm_action_single+0x40/0x6c)
    [] (snd_pcm_action_single+0x0/0x6c) from [] (snd_pcm_action_lock_irq+0x7c/0x9c)
    r7:00000003 r6:c3b810f0 r5:c3b810f0 r4:c3b81000
    [] (snd_pcm_action_lock_irq+0x0/0x9c) from [] (snd_pcm_common_ioctl1+0x7f8/0xfd0)
    r8:c3b7f888 r7:005407b8 r6:c2c991c0 r5:c3b81000 r4:c3b81000 r3:00004142
    [] (snd_pcm_common_ioctl1+0x0/0xfd0) from [] (snd_pcm_playback_ioctl1+0x464/0x488)
    [] (snd_pcm_playback_ioctl1+0x0/0x488) from [] (snd_pcm_playback_ioctl+0x34/0x40)
    r8:c3b7f888 r7:00004142 r6:00000004 r5:c2c991c0 r4:005407b8
    [] (snd_pcm_playback_ioctl+0x0/0x40) from [] (vfs_ioctl+0x30/0x44)
    [] (vfs_ioctl+0x0/0x44) from [] (do_vfs_ioctl+0x55c/0x5c0)
    [] (do_vfs_ioctl+0x0/0x5c0) from [] (SyS_ioctl+0x40/0x68)
    [] (SyS_ioctl+0x0/0x68) from [] (ret_fast_syscall+0x0/0x44)
    r8:c0009544 r7:00000036 r6:bedeaa58 r5:00000000 r4:000000c0

    Signed-off-by: Michael Grzeschik
    Signed-off-by: Vinod Koul

    Michael Grzeschik
     

02 Sep, 2013

1 commit


05 Jul, 2013

2 commits


15 Apr, 2013

2 commits


26 Jan, 2013

2 commits


08 Jan, 2013

1 commit


06 Nov, 2012

1 commit


24 Oct, 2012

1 commit


15 Oct, 2012

3 commits


09 Oct, 2012

1 commit

  • Pull sound updates from Takashi Iwai:
    "This contains pretty many small commits covering fairly large range of
    files in sound/ directory. Partly because of additional API support
    and partly because of constantly developed ASoC and ARM stuff.

    Some highlights:

    - Introduced the helper function and documentation for exposing the
    channel map via control API, as discussed in Plumbers; most of PCI
    drivers are covered, will follow more drivers later

    - Most of drivers have been replaced with the new PM callbacks (if
    the bus is supported)

    - HD-audio controller got the support of runtime PM and the support
    of D3 clock-stop. Also changing the power_save option in sysfs
    kicks off immediately to enable / disable the power-save mode.

    - Another significant code change in HD-audio is the rewrite of
    firmware loading code. Other than that, most of changes in
    HD-audio are continued cleanups and standardization for the generic
    auto parser and bug fixes (HBR, device-specific fixups), in
    addition to the support of channel-map API.

    - Addition of ASoC bindings for the compressed API, used by the
    mid-x86 drivers.

    - Lots of cleanups and API refreshes for ASoC codec drivers and
    DaVinci.

    - Conversion of OMAP to dmaengine.

    - New machine driver for Wolfson Microelectronics Bells.

    - New CODEC driver for Wolfson Microelectronics WM0010.

    - Enhancements to the ux500 and wm2000 drivers

    - A new driver for DA9055 and the support for regulator bypass mode."

    Fix up various arm soc header file reorg conflicts.

    * tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (339 commits)
    ALSA: hda - Add new codec ALC283 ALC290 support
    ALSA: hda - avoid unneccesary indices on "Headphone Jack" controls
    ALSA: hda - fix indices on boost volume on Conexant
    ALSA: aloop - add locking to timer access
    ALSA: hda - Fix hang caused by race during suspend.
    sound: Remove unnecessary semicolon
    ALSA: hda/realtek - Fix detection of ALC271X codec
    ALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310
    ALSA: hda - make Realtek/Sigmatel/Conexant use the generic unsol event
    ALSA: hda - make a generic unsol event handler
    ASoC: codecs: Add DA9055 codec driver
    ASoC: eukrea-tlv320: Convert it to platform driver
    ALSA: ASoC: add DT bindings for CS4271
    ASoC: wm_hubs: Ensure volume updates are handled during class W startup
    ASoC: wm5110: Adding missing volume update bits
    ASoC: wm5110: Add OUT3R support
    ASoC: wm5110: Add AEC loopback support
    ASoC: wm5110: Rename EPOUT to HPOUT3
    ASoC: arizona: Add more clock rates
    ASoC: arizona: Add more DSP options for mixer input muxes
    ...

    Linus Torvalds
     

02 Oct, 2012

2 commits

  • Pull ARM soc multiplatform enablement from Olof Johansson:
    "This is a pretty significant branch. It's the introduction of the
    first multiplatform support on ARM, and with this (and the later
    branch) merged, it is now possible to build one kernel that contains
    support for highbank, vexpress, mvebu, socfpga, and picoxcell. More
    platforms will be convered over in the next few releases.

    Two critical last things had to be done for this to be practical and
    possible:
    * Today each platform has its own include directory under
    mach-/include/mach/*, and traditionally that is where a lot
    of driver/platform shared definitions have gone, such as platform
    data structures. They now need to move out to a common location
    instead, and this branch moves a large number of those out to
    include/linux/platform_data.
    * Each platform used to list the device trees to compile for its
    boards in mach-/Makefile.boot.

    Both of the above changes will mean that there are some merge
    conflicts to come (and some to resolve here). It's a one-time move
    and once it settles in, we should be good for quite a while. Sorry
    for the overhead."

    Fix conflicts as per Olof.

    * tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (51 commits)
    ARM: add v7 multi-platform defconfig
    ARM: msm: Move core.h contents into common.h
    ARM: highbank: call highbank_pm_init from .init_machine
    ARM: dtb: move all dtb targets to common Makefile
    ARM: spear: move platform_data definitions
    ARM: samsung: move platform_data definitions
    ARM: orion: move platform_data definitions
    ARM: vexpress: convert to multi-platform
    ARM: initial multiplatform support
    ARM: mvebu: move armada-370-xp.h in mach dir
    ARM: vexpress: remove dependency on mach/* headers
    ARM: picoxcell: remove dependency on mach/* headers
    ARM: move all dtb targets out of Makefile.boot
    ARM: picoxcell: move debug macros to include/debug
    ARM: socfpga: move debug macros to include/debug
    ARM: mvebu: move debug macros to include/debug
    ARM: vexpress: move debug macros to include/debug
    ARM: highbank: move debug macros to include/debug
    ARM: move debug macros to common location
    ARM: make mach/gpio.h headers optional
    ...

    Linus Torvalds
     
  • Pull the trivial tree from Jiri Kosina:
    "Tiny usual fixes all over the place"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)
    doc: fix old config name of kprobetrace
    fs/fs-writeback.c: cleanup riteback_sb_inodes kerneldoc
    btrfs: fix the commment for the action flags in delayed-ref.h
    btrfs: fix trivial typo for the comment of BTRFS_FREE_INO_OBJECTID
    vfs: fix kerneldoc for generic_fh_to_parent()
    treewide: fix comment/printk/variable typos
    ipr: fix small coding style issues
    doc: fix broken utf8 encoding
    nfs: comment fix
    platform/x86: fix asus_laptop.wled_type module parameter
    mfd: printk/comment fixes
    doc: getdelays.c: remember to close() socket on error in create_nl_socket()
    doc: aliasing-test: close fd on write error
    mmc: fix comment typos
    dma: fix comments
    spi: fix comment/printk typos in spi
    Coccinelle: fix typo in memdup_user.cocci
    tmiofb: missing NULL pointer checks
    tools: perf: Fix typo in tools/perf
    tools/testing: fix comment / output typos
    ...

    Linus Torvalds
     

22 Sep, 2012

1 commit

  • Change the parameter list of device_prep_dma_cyclic() so the DMA drivers
    can receive the flags coming from clients.
    This feature can be used during audio operation to disable all audio
    related interrupts when the DMA_PREP_INTERRUPT is cleared from the flags.

    Signed-off-by: Peter Ujfalusi
    Acked-by: Nicolas Ferre
    Acked-by: Shawn Guo
    Acked-by: Vinod Koul
    Signed-off-by: Mark Brown

    Peter Ujfalusi
     

14 Sep, 2012

1 commit

  • Platform data for device drivers should be defined in
    include/linux/platform_data/*.h, not in the architecture
    and platform specific directories.

    This moves such data out of the imx include directories

    Signed-off-by: Arnd Bergmann
    Acked-by: Mark Brown
    Acked-by: Greg Kroah-Hartman
    Acked-by: Nicolas Pitre
    Acked-by: Mauro Carvalho Chehab
    Acked-by: Sascha Hauer
    Acked-by: Vinod Koul
    Cc: Russell King
    Cc: Dan Williams
    Cc: "Ben Dooks (embedded platforms)"
    Cc: "Wolfram Sang (embedded platforms)"
    Cc: Chris Ball
    Cc: David Woodhouse
    Cc: Grant Likely
    Cc: Alan Cox
    Cc: Felipe Balbi
    Cc: Alan Stern
    Cc: Florian Tobias Schandinat
    Cc: Liam Girdwood
    Cc: Javier Martin
    Cc: Shawn Guo
    Cc: Guennadi Liakhovetski

    Arnd Bergmann
     

01 Sep, 2012

1 commit


27 Jul, 2012

1 commit

  • With the new i.MX clock infrastructure we need to request the dma clocks
    seperately: ahb and ipg clocks.

    This fixes the following kernel crash and make audio to be functional again:

    root@freescale /home$ aplay audio48k16S.wav
    Playing WAVE 'audio48k16S.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    pgd = c7b74000
    [00000000] *pgd=a7bb5831, *pte=00000000, *ppte=00000000
    Internal error: Oops: 17 [#1] PREEMPT ARM
    Modules linked in:
    CPU: 0 Not tainted (3.5.0-rc5-next-20120702-00007-g3028b64 #1128)
    PC is at snd_dmaengine_pcm_get_chan+0x8/0x10
    LR is at snd_imx_pcm_hw_params+0x18/0xdc
    pc : [] lr : [] psr: a0000013
    sp : c7b45e30 ip : ffffffff fp : c7ae58e0
    r10: 00000000 r9 : c7ae981c r8 : c7b88800
    r7 : c7ae5a60 r6 : c7ae5b20 r5 : c7ae9810 r4 : c7afa060
    r3 : 00000000 r2 : 00000001 r1 : c7b88800 r0 : c7afa060
    Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
    Control: 0005317f Table: a7b74000 DAC: 00000015
    Process aplay (pid: 701, stack limit = 0xc7b44270)
    Stack: (0xc7b45e30 to 0xc7b46000)
    5e20: 00100000 00000029 c7b88800 c02db870
    5e40: c7ae5a60 c02d4594 00000010 01ae5a60 c7ae5a60 c7ae9810 c7ae9810 c7afa060
    5e60: c7ae5b20 c7ae5a60 c7b88800 c02e3ef0 c02e3e08 c7b1e400 c7afa060 c7b88800
    5e80: 00000000 c0014da8 c7b44000 00000000 bec566ac c02cd400 c7afa060 c7afa060
    5ea0: bec56800 c7b88800 c0014da8 c02cdd7c c04ee710 c04ee7b8 00000003 c005fc74
    5ec0: 00000000 7fffffff c7b45f00 c7afa060 c7b67420 c7ba3070 00000004 c0014da8
    5ee0: c7b44000 00000000 bec566ac c02ced88 c04e95f8 b6f5ab04 c7b45fb0 0145a468
    5f00: 0145a600 bec566bc bec56800 c7b67420 c7ba3070 c00d499c c7b45f18 c7b45f18
    5f20: 0000001a 00000004 00000001 c7b44000 c0527f40 00000009 00000008 00000000
    5f40: c7b44000 c002c9ec 00000001 c04f0ab0 c04ebec0 00000101 00000000 0000000a
    5f60: 60000093 c7b67420 bec56800 c25c4111 00000004 c0014da8 c7b44000 00000000
    5f80: bec566ac c00d4f38 b6ffb658 00000000 c0522d80 0145a468 b6fd5000 0145a418
    5fa0: 00000036 c0014c00 0145a468 b6fd5000 00000004 c25c4111 bec56800 00020001
    5fc0: 0145a468 b6fd5000 0145a418 00000036 0145a468 0145a600 bec566bc bec566ac
    5fe0: 0145a468 bec56388 b6f65ce4 b6dcebec 20000010 00000004 00000000 00000000
    [] (snd_dmaengine_pcm_get_chan+0x8/0x10) from [] (snd_imx_pcm_hw_params+0x18/0xdc)
    [] (snd_imx_pcm_hw_params+0x18/0xdc) from [] (soc_pcm_hw_params+0xe8/0x1f0)
    [] (soc_pcm_hw_params+0xe8/0x1f0) from [] (snd_pcm_hw_params+0x124/0x474)
    [] (snd_pcm_hw_params+0x124/0x474) from [] (snd_pcm_common_ioctl1+0x4b4/0xf74)
    [] (snd_pcm_common_ioctl1+0x4b4/0xf74) from [] (snd_pcm_playback_ioctl1+0x30/0x510)
    [] (snd_pcm_playback_ioctl1+0x30/0x510) from [] (do_vfs_ioctl+0x80/0x5e4)
    [] (do_vfs_ioctl+0x80/0x5e4) from [] (sys_ioctl+0x38/0x60)
    [] (sys_ioctl+0x38/0x60) from [] (ret_fast_syscall+0x0/0x2c)
    Code: e593000c e12fff1e e59030a0 e59330bc (e5930000)
    ---[ end trace fa518c8ba3a74e97 ]--

    Reported-by: Javier Martin
    Signed-off-by: Fabio Estevam
    Acked-by: Sascha Hauer
    Signed-off-by: Vinod Koul
    Cc: stable@vger.kernel.org

    Fabio Estevam