drm/exynos: factor out initial setting of each driver
authorJoonyoung Shim <jy0922.shim@samsung.com>
Thu, 18 Sep 2014 08:50:35 +0000 (17:50 +0900)
committerInki Dae <daeinki@gmail.com>
Fri, 19 Sep 2014 15:56:39 +0000 (00:56 +0900)
From fimd driver and vidi driver, dev->irq_enabled and
dev->vblank_disable_allowed are set and also mixer needs them even if
missed. It's duplicated so set them when loads drm driver.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_drv.c
drivers/gpu/drm/exynos/exynos_drm_fimd.c
drivers/gpu/drm/exynos/exynos_drm_vidi.c

index 9b00e4ecdb3accd891bfb3770fb48fae5cb8f0ed..2103d970d6ea871ffd20fde87099f3d0eedd26bd 100644 (file)
@@ -116,6 +116,23 @@ static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
        /* force connectors detection */
        drm_helper_hpd_irq_event(dev);
 
+       /*
+        * enable drm irq mode.
+        * - with irq_enabled = true, we can use the vblank feature.
+        *
+        * P.S. note that we wouldn't use drm irq handler but
+        *      just specific driver own one instead because
+        *      drm framework supports only one irq handler.
+        */
+       dev->irq_enabled = true;
+
+       /*
+        * with vblank_disable_allowed = true, vblank interrupt will be disabled
+        * by drm timer once a current process gives up ownership of
+        * vblank event.(after drm_vblank_put function is called)
+        */
+       dev->vblank_disable_allowed = true;
+
        return 0;
 
 err_unbind_all:
index 2f896df2a7348851ff21b5d05155daef66b5f45a..6fee63c985b8370552b8802a2a7d1ad26c221c09 100644 (file)
@@ -260,23 +260,6 @@ static int fimd_mgr_initialize(struct exynos_drm_manager *mgr,
        mgr->drm_dev = ctx->drm_dev = drm_dev;
        mgr->pipe = ctx->pipe = priv->pipe++;
 
-       /*
-        * enable drm irq mode.
-        * - with irq_enabled = true, we can use the vblank feature.
-        *
-        * P.S. note that we wouldn't use drm irq handler but
-        *      just specific driver own one instead because
-        *      drm framework supports only one irq handler.
-        */
-       drm_dev->irq_enabled = true;
-
-       /*
-        * with vblank_disable_allowed = true, vblank interrupt will be disabled
-        * by drm timer once a current process gives up ownership of
-        * vblank event.(after drm_vblank_put function is called)
-        */
-       drm_dev->vblank_disable_allowed = true;
-
        /* attach this sub driver to iommu mapping if supported. */
        if (is_drm_iommu_supported(ctx->drm_dev)) {
                /*
index 9528d81d8004d70bcd9f395a68f37ab12de5d9d5..2e6120b5e74fe77a3ac0f281f7f4d9cc67b66ee4 100644 (file)
@@ -303,23 +303,6 @@ static int vidi_mgr_initialize(struct exynos_drm_manager *mgr,
        mgr->drm_dev = ctx->drm_dev = drm_dev;
        mgr->pipe = ctx->pipe = priv->pipe++;
 
-       /*
-        * enable drm irq mode.
-        * - with irq_enabled = 1, we can use the vblank feature.
-        *
-        * P.S. note that we wouldn't use drm irq handler but
-        *      just specific driver own one instead because
-        *      drm framework supports only one irq handler.
-        */
-       drm_dev->irq_enabled = 1;
-
-       /*
-        * with vblank_disable_allowed = 1, vblank interrupt will be disabled
-        * by drm timer once a current process gives up ownership of
-        * vblank event.(after drm_vblank_put function is called)
-        */
-       drm_dev->vblank_disable_allowed = 1;
-
        return 0;
 }