drm/exynos: use platform_get_irq_byname for hdmi
authorJoonyoung Shim <jy0922.shim@samsung.com>
Mon, 23 Apr 2012 10:35:48 +0000 (19:35 +0900)
committerInki Dae <inki.dae@samsung.com>
Tue, 8 May 2012 09:46:32 +0000 (18:46 +0900)
The exynos hdmi supports two hdmi interrupts - external and internal, so
use platform_get_irq_byname to distinguish their resources.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_hdmi.c

index 7365cc6..e6a5e00 100644 (file)
@@ -2293,10 +2293,10 @@ static int __devinit hdmi_probe(struct platform_device *pdev)
 
        hdata->hdmiphy_port = hdmi_hdmiphy;
 
-       res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-       if (res == NULL) {
-               DRM_ERROR("get interrupt resource failed.\n");
-               ret = -ENXIO;
+       hdata->irq = platform_get_irq_byname(pdev, "internal_irq");
+       if (hdata->irq < 0) {
+               DRM_ERROR("failed to get platform irq\n");
+               ret = hdata->irq;
                goto err_hdmiphy;
        }
 
@@ -2311,13 +2311,12 @@ static int __devinit hdmi_probe(struct platform_device *pdev)
        INIT_WORK(&hdata->hotplug_work, hdmi_hotplug_func);
 
        /* register hpd interrupt */
-       ret = request_irq(res->start, hdmi_irq_handler, 0, "drm_hdmi",
+       ret = request_irq(hdata->irq, hdmi_irq_handler, 0, "drm_hdmi",
                                drm_hdmi_ctx);
        if (ret) {
                DRM_ERROR("request interrupt failed.\n");
                goto err_workqueue;
        }
-       hdata->irq = res->start;
 
        /* register specific callbacks to common hdmi. */
        exynos_hdmi_ops_register(&hdmi_ops);