diff options
author | Philippe Schenker <philippe.schenker@toradex.com> | 2019-12-09 19:25:20 +0100 |
---|---|---|
committer | Philippe Schenker <philippe.schenker@toradex.com> | 2020-08-13 16:05:05 +0200 |
commit | 111286be88df235beb32da58c6b35dc568aa3bd3 (patch) | |
tree | 0b0b17b28bbc9a9e87abeafd305a43e88cc6ad0f /drivers | |
parent | c3358aef2059c2c7437e5b63d45977c7d7ce3e41 (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>
(cherry picked from commit fb50a247a80e6d23df1b1e2078d956b24fa16eb1)
Diffstat (limited to 'drivers')
-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 0b6afe03c1fa..b9642af626a8 100644 --- a/drivers/dma/pxp/pxp_dma_v3.c +++ b/drivers/dma/pxp/pxp_dma_v3.c @@ -7974,14 +7974,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 */ |