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-09 22:39:00 +0100 |
commit | c6596f4e06ff7ef3828f565f660d8dc5691344d8 (patch) | |
tree | af37128a7154bd320fd46ddee3bf840b32b4fa20 | |
parent | 4c08bc0b292ac510334f95c0a88b9f0d38c19567 (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 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 */ |