gpu: ipu-v3: Reset IPU before activating IRQ

If we don't come out of a clean reset, make sure no IRQ is fired before
everything is setup by resetting the IPU before activating the interrupt
handlers.

Signed-off-by: David Jander <david@protonic.nl>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
This commit is contained in:
David Jander 2015-07-02 16:21:57 +02:00 committed by Philipp Zabel
parent 17e0521750
commit 596a65d152
1 changed files with 5 additions and 5 deletions

View File

@ -1292,10 +1292,6 @@ static int ipu_probe(struct platform_device *pdev)
ipu->irq_sync = irq_sync; ipu->irq_sync = irq_sync;
ipu->irq_err = irq_err; ipu->irq_err = irq_err;
ret = ipu_irq_init(ipu);
if (ret)
goto out_failed_irq;
ret = device_reset(&pdev->dev); ret = device_reset(&pdev->dev);
if (ret) { if (ret) {
dev_err(&pdev->dev, "failed to reset: %d\n", ret); dev_err(&pdev->dev, "failed to reset: %d\n", ret);
@ -1305,6 +1301,10 @@ static int ipu_probe(struct platform_device *pdev)
if (ret) if (ret)
goto out_failed_reset; goto out_failed_reset;
ret = ipu_irq_init(ipu);
if (ret)
goto out_failed_irq;
/* Set MCU_T to divide MCU access window into 2 */ /* Set MCU_T to divide MCU access window into 2 */
ipu_cm_write(ipu, 0x00400000L | (IPU_MCU_T_DEFAULT << 18), ipu_cm_write(ipu, 0x00400000L | (IPU_MCU_T_DEFAULT << 18),
IPU_DISP_GEN); IPU_DISP_GEN);
@ -1327,9 +1327,9 @@ static int ipu_probe(struct platform_device *pdev)
failed_add_clients: failed_add_clients:
ipu_submodules_exit(ipu); ipu_submodules_exit(ipu);
failed_submodules_init: failed_submodules_init:
out_failed_reset:
ipu_irq_exit(ipu); ipu_irq_exit(ipu);
out_failed_irq: out_failed_irq:
out_failed_reset:
clk_disable_unprepare(ipu->clk); clk_disable_unprepare(ipu->clk);
return ret; return ret;
} }