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-09 22:39:00 +0100
commitc6596f4e06ff7ef3828f565f660d8dc5691344d8 (patch)
treeaf37128a7154bd320fd46ddee3bf840b32b4fa20
parent4c08bc0b292ac510334f95c0a88b9f0d38c19567 (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 2704916df0f6..20542bd9c9e4 100644
--- a/drivers/dma/pxp/pxp_dma_v3.c
+++ b/drivers/dma/pxp/pxp_dma_v3.c
@@ -7958,14 +7958,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 */