aboutsummaryrefslogtreecommitdiff
path: root/drivers/video/exynos
diff options
context:
space:
mode:
authorAjay Kumar <ajaykumar.rs@samsung.com>2012-11-09 13:59:09 +0900
committerJingoo Han <jg1.han@samsung.com>2012-11-29 10:33:28 +0900
commit22ce19cb43e2df5b0b17159e94244d1151ea250b (patch)
treee953f68cc212b2327eebeacf2f5741bfdee290c2 /drivers/video/exynos
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/exynos')
-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 ebd914dd725..5f9ac5c8a5d 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)
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;