alistair23-linux/drivers/dma
Geert Uytterhoeven b6d1778bc5 dmaengine: shdma: Move DMA stop to (runtime) suspend callbacks
During system reboot, the sh-dma-engine device may be runtime-suspended,
causing a crash:

    Unhandled fault: imprecise external abort (0x1406) at 0x0002c02c
    Internal error: : 1406 [#1] SMP ARM
    ...
    PC is at sh_dmae_ctl_stop+0x28/0x64
    LR is at sh_dmae_ctl_stop+0x24/0x64

If the sh-dma-engine is runtime-suspended, its module clock is turned
off, and its registers cannot be accessed.

To fix this, move the call to sh_dmae_ctl_stop(), which touches the
DMAOR register, to the sh_dmae_suspend() and sh_dmae_runtime_suspend()
callbacks.  This makes PM operations more symmetric, as both
sh_dmae_resume() and sh_dmae_runtime_resume() already call sh_dmae_rst()
to re-initialize the DMAOR register.

Remove sh_dmae_shutdown(), as it became empty.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
2015-03-02 22:10:44 +05:30
..
bestcomm dma: bestcomm: drop owner assignment from platform_drivers 2014-10-20 16:20:28 +02:00
dw Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-02-18 08:49:20 -08:00
ioat ioat: fail self-test if wait_for_completion times out 2015-02-04 22:54:22 -08:00
ipu dmaengine: ipu-idmac: Split device_control 2014-12-22 12:28:59 +05:30
ppc4xx dma: ppc4xx: drop owner assignment from platform_drivers 2014-10-20 16:20:29 +02:00
sh dmaengine: shdma: Move DMA stop to (runtime) suspend callbacks 2015-03-02 22:10:44 +05:30
xilinx dmaengine: xilinx: Split device_control 2014-12-22 12:33:21 +05:30
acpi-dma.c resources: Move struct resource_list_entry from ACPI into resource core 2015-02-05 15:09:25 +01:00
amba-pl08x.c dmaengine: pl08x: Split device_control 2014-12-22 12:28:56 +05:30
at_hdmac.c dmaengine: at_hdmac: declare slave capabilities 2015-01-14 00:04:02 +05:30
at_hdmac_regs.h dmaengine: at_hdmac: update the driver comments 2014-12-22 20:24:14 +05:30
at_xdmac.c dmaengine: at_xdmac: allow muliple dwidths when doing slave transfers 2015-02-04 23:12:29 -08:00
bcm2835-dma.c dmaengine: bcm2835: Declare slave capabilities for the generic code 2014-12-22 12:33:23 +05:30
coh901318.c dmaengine: coh901318: fix function return types build warnings 2015-01-18 20:01:36 +05:30
coh901318.h
coh901318_lli.c
cppi41.c dmaengine: cppi41: Split device_control 2014-12-22 12:28:57 +05:30
dma-jz4740.c dmaengine: jz4740: Split device_control 2014-12-22 12:28:58 +05:30
dmaengine.c dmaengine: Move dma_get_slave_caps() implementation to dmaengine.c 2015-01-18 19:55:57 +05:30
dmaengine.h
dmatest.c dmatest: move src_off, dst_off, len inside loop 2015-02-04 18:17:21 -08:00
edma.c dmaenegine: edma: fix sparse warnings 2015-02-16 09:33:32 +05:30
ep93xx_dma.c dmaengine: ep93xx: update the driver comments 2014-12-22 20:27:25 +05:30
fsl-edma.c dmaengine: fsl-edma: Declare slave capabilities for the generic code 2014-12-22 12:33:23 +05:30
fsldma.c dmaengine: fsldma: remove the unused variable 2015-01-13 23:58:08 +05:30
fsldma.h dmaengine: fsldma: declare slave capabilities for the generic code 2015-01-13 23:58:08 +05:30
img-mdc-dma.c dmaengine: Add driver for IMG MDC 2015-02-04 18:13:32 -08:00
imx-dma.c Merge branch 'topic/slave_caps_device_control_fix_rebased' into for-linus 2015-02-02 16:55:35 -08:00
imx-sdma.c Merge branch 'topic/slave_caps_device_control_fix_rebased' into for-linus 2015-02-02 16:55:35 -08:00
intel_mid_dma.c dmaengine: intel-mid-dma: Split device_control 2014-12-22 12:28:59 +05:30
intel_mid_dma_regs.h
iop-adma.c dmaengine: Remove .owner field for driver 2014-11-06 11:54:18 +05:30
k3dma.c dmaengine: k3: fix duplicate function definition 2015-01-13 21:20:09 +05:30
Kconfig Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-02-18 08:49:20 -08:00
Makefile dmaengine: Add driver for IMG MDC 2015-02-04 18:13:32 -08:00
mic_x100_dma.c
mic_x100_dma.h
mmp_pdma.c dmaenegine: mmp-pdma: fix irq handler overwrite physical chan issue 2015-02-23 22:09:56 +05:30
mmp_tdma.c dmaengine: mmp-tdma: fix terminate_all return code 2015-01-13 21:20:10 +05:30
moxart-dma.c dmaengine: moxart: Split device_control 2014-12-22 12:29:01 +05:30
mpc512x_dma.c dmaengine: mpc512x: Split device_control 2014-12-22 12:29:04 +05:30
mv_xor.c dmaengine: mv_xor: Remove device_control 2014-12-22 12:33:22 +05:30
mv_xor.h
mxs-dma.c dmaengine: mxs-dma: Declare slave capabilities for the generic code 2015-01-13 23:48:40 +05:30
nbpfaxi.c dmaengine: nbpfaxi: update the driver comments 2014-12-22 20:28:04 +05:30
of-dma.c dmaengine: of: bail out early if "dmas" property is not present 2015-01-25 22:44:23 -08:00
omap-dma.c dmaengine: omap: fix the assignment to .device_config 2014-12-22 12:34:22 +05:30
pch_dma.c dmaengine: pch-dma: Rename device_control 2014-12-22 12:33:22 +05:30
pl330.c dmaengine: pl330: add DMA_PAUSE feature 2015-02-16 09:33:36 +05:30
qcom_bam_dma.c dmaengine: bam-dma: Split device_control 2014-12-22 12:32:15 +05:30
s3c24xx-dma.c dmaengine: s3c24xx: missing unlock on an error path 2015-02-04 17:52:42 -08:00
sa11x0-dma.c dmaengine: sa11x0: Fix warning and compilation errors 2015-01-18 20:01:15 +05:30
sirf-dma.c dmaengine: sirf: Declare slave capabilities for the generic code 2014-12-22 12:34:21 +05:30
ste_dma40.c dmaengine: ste_dma: fix incompatible pointer type warns 2014-12-22 12:34:23 +05:30
ste_dma40_ll.c
ste_dma40_ll.h
sun6i-dma.c dmaengine: sun6i: Declare slave capabilities for the generic code 2014-12-22 12:34:21 +05:30
tegra20-apb-dma.c dmaengine: tegra: add slave capabilities reporting 2015-01-14 00:00:30 +05:30
timb_dma.c dmaengine: td: Rename device_control 2014-12-22 12:33:22 +05:30
TODO
txx9dmac.c dmaengine: txx9: Rename device_control 2014-12-22 12:33:22 +05:30
txx9dmac.h MIPS: Replace MIPS-specific 64BIT_PHYS_ADDR with generic PHYS_ADDR_T_64BIT 2014-11-24 22:46:44 +01:00
virt-dma.c
virt-dma.h