drm/exynos: Add create_connector callback
authorSean Paul <seanpaul@chromium.org>
Mon, 24 Feb 2014 10:15:38 +0000 (19:15 +0900)
committerChanho Park <chanho61.park@samsung.com>
Tue, 18 Nov 2014 02:47:35 +0000 (11:47 +0900)
This creates a new display hook called create_connector. The purpose is
to allow the display driver to create its own drm_connector instead of
using the exynos_drm_connector. This moves things closer to completely
removing the exynos_drm_connector abstraction.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_core.c
drivers/gpu/drm/exynos/exynos_drm_drv.h

index e23611e..eeb5e4e 100644 (file)
@@ -44,6 +44,9 @@ static int exynos_drm_create_enc_conn(struct drm_device *dev,
                return -EFAULT;
        }
 
+       if (display->ops->create_connector)
+               return display->ops->create_connector(display, encoder);
+
        /*
         * create and initialize a connector for this sub driver and
         * attach the encoder created above to the connector.
index 97bdfcc..06aa27e 100644 (file)
@@ -139,6 +139,8 @@ struct exynos_drm_display;
 struct exynos_drm_display_ops {
        int (*initialize)(struct exynos_drm_display *display,
                                struct drm_device *drm_dev);
+       int (*create_connector)(struct exynos_drm_display *display,
+                               struct drm_encoder *encoder);
        void (*remove)(struct exynos_drm_display *display);
        bool (*is_connected)(struct exynos_drm_display *display);
        void (*get_max_resol)(struct exynos_drm_display *display,