diff options
author | Philippe Schenker <philippe.schenker@toradex.com> | 2019-12-09 19:25:20 +0100 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2020-02-12 11:06:11 +0100 |
commit | 79c6c06753254a94b4b86ac1f50cfb00126b6c15 (patch) | |
tree | 2d5e9ce53f17d8f2ae1319d0c7b017749fe920bd | |
parent | ab95c4d74058048e522439d00d95dd16289422dc (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.c | 4 |
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 */ |