瀏覽代碼

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: Ajay Kumar <ajaykumar.rs@samsung.com>
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Ajay Kumar 13 年之前
父節點
當前提交
22ce19cb43
共有 1 個文件被更改,包括 7 次插入7 次删除
  1. 7 7
      drivers/video/exynos/exynos_dp_core.c

+ 7 - 7
drivers/video/exynos/exynos_dp_core.c

@@ -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;