summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Schenker <philippe.schenker@toradex.com>2019-12-09 19:25:20 +0100
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2020-02-12 11:06:11 +0100
commit79c6c06753254a94b4b86ac1f50cfb00126b6c15 (patch)
tree2d5e9ce53f17d8f2ae1319d0c7b017749fe920bd
parentab95c4d74058048e522439d00d95dd16289422dc (diff)
dma: pxp: enable pxp clocks before soft reset
pxp_soft_reset is writing to registers that are not clocked and then resulting in a lockup. Interestingly I could only see this behaviour when starting a kernel using kexec. This could have something to do with how u-boot enables clocks on a regular boot. In this commit this gets fixed with enabling the clocks before doing a pxp_soft_reset. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
-rw-r--r--drivers/dma/pxp/pxp_dma_v3.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/dma/pxp/pxp_dma_v3.c b/drivers/dma/pxp/pxp_dma_v3.c
index 3e10374a7daf..34197d6c1e8f 100644
--- a/drivers/dma/pxp/pxp_dma_v3.c
+++ b/drivers/dma/pxp/pxp_dma_v3.c
@@ -7973,14 +7973,14 @@ static int pxp_probe(struct platform_device *pdev)
goto exit;
}
+ pxp_clk_enable(pxp);
+
pxp_soft_reset(pxp);
pxp_writel(0x0, HW_PXP_CTRL);
/* Initialize DMA engine */
err = pxp_dma_init(pxp);
if (err < 0)
goto exit;
-
- pxp_clk_enable(pxp);
pxp_soft_reset(pxp);
/* Initialize PXP Interrupt */