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

Commit 22ce19cb authored by Ajay Kumar's avatar Ajay Kumar Committed by Jingoo Han
Browse files

video: exynos_dp: Reset and initialize DP before requesting irq



If DP is not reset properly before kernel bootup(in bootloader code),
there can be few pending interrupts, and sometimes they invoke
DP irq handler as soon as the irq handler is registered in DP probe.
So, we make the DP driver more robust by resetting and
initializing DP at the earliest and then registering the irq handler.

Signed-off-by: default avatarAjay Kumar <ajaykumar.rs@samsung.com>
Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
parent c30ffb90
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -1094,13 +1094,6 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev)

	INIT_WORK(&dp->hotplug_work, exynos_dp_hotplug);

	ret = devm_request_irq(&pdev->dev, dp->irq, exynos_dp_irq_handler, 0,
				"exynos-dp", dp);
	if (ret) {
		dev_err(&pdev->dev, "failed to request irq\n");
		return ret;
	}

	dp->video_info = pdata->video_info;

	if (pdev->dev.of_node) {
@@ -1113,6 +1106,13 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev)

	exynos_dp_init_dp(dp);

	ret = devm_request_irq(&pdev->dev, dp->irq, exynos_dp_irq_handler, 0,
				"exynos-dp", dp);
	if (ret) {
		dev_err(&pdev->dev, "failed to request irq\n");
		return ret;
	}

	platform_set_drvdata(pdev, dp);

	return 0;