Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 596a65d1 authored by David Jander's avatar David Jander Committed by Philipp Zabel
Browse files

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: default avatarDavid Jander <david@protonic.nl>
Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
parent 17e05217
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -1292,10 +1292,6 @@ static int ipu_probe(struct platform_device *pdev)
	ipu->irq_sync = irq_sync;
	ipu->irq_err = irq_err;

	ret = ipu_irq_init(ipu);
	if (ret)
		goto out_failed_irq;

	ret = device_reset(&pdev->dev);
	if (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)
		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 */
	ipu_cm_write(ipu, 0x00400000L | (IPU_MCU_T_DEFAULT << 18),
			IPU_DISP_GEN);
@@ -1327,9 +1327,9 @@ static int ipu_probe(struct platform_device *pdev)
failed_add_clients:
	ipu_submodules_exit(ipu);
failed_submodules_init:
out_failed_reset:
	ipu_irq_exit(ipu);
out_failed_irq:
out_failed_reset:
	clk_disable_unprepare(ipu->clk);
	return ret;
}