aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorAjay Kumar <ajaykumar.rs@samsung.com>2012-11-08 23:59:09 -0500
committerJingoo Han <jg1.han@samsung.com>2012-11-28 20:33:28 -0500
commit22ce19cb43e2df5b0b17159e94244d1151ea250b (patch)
treee953f68cc212b2327eebeacf2f5741bfdee290c2 /drivers/video
parentc30ffb904cff819dc2423b1c3edd4f2e48f7acb0 (diff)
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>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/exynos/exynos_dp_core.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/video/exynos/exynos_dp_core.c b/drivers/video/exynos/exynos_dp_core.c
index ebd914dd7252..5f9ac5c8a5d8 100644
--- a/drivers/video/exynos/exynos_dp_core.c
+++ b/drivers/video/exynos/exynos_dp_core.c
@@ -1094,13 +1094,6 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev)
1094 1094
1095 INIT_WORK(&dp->hotplug_work, exynos_dp_hotplug); 1095 INIT_WORK(&dp->hotplug_work, exynos_dp_hotplug);
1096 1096
1097 ret = devm_request_irq(&pdev->dev, dp->irq, exynos_dp_irq_handler, 0,
1098 "exynos-dp", dp);
1099 if (ret) {
1100 dev_err(&pdev->dev, "failed to request irq\n");
1101 return ret;
1102 }
1103
1104 dp->video_info = pdata->video_info; 1097 dp->video_info = pdata->video_info;
1105 1098
1106 if (pdev->dev.of_node) { 1099 if (pdev->dev.of_node) {
@@ -1113,6 +1106,13 @@ static int __devinit exynos_dp_probe(struct platform_device *pdev)
1113 1106
1114 exynos_dp_init_dp(dp); 1107 exynos_dp_init_dp(dp);
1115 1108
1109 ret = devm_request_irq(&pdev->dev, dp->irq, exynos_dp_irq_handler, 0,
1110 "exynos-dp", dp);
1111 if (ret) {
1112 dev_err(&pdev->dev, "failed to request irq\n");
1113 return ret;
1114 }
1115
1116 platform_set_drvdata(pdev, dp); 1116 platform_set_drvdata(pdev, dp);
1117 1117
1118 return 0; 1118 return 0;