diff options
author | Sean Paul <seanpaul@chromium.org> | 2014-02-24 19:15:38 +0900 |
---|---|---|
committer | Marek Szyprowski <m.szyprowski@samsung.com> | 2014-05-15 07:28:51 +0200 |
commit | 24f767bfbeca2db33e3514707c908a06a576fba0 (patch) | |
tree | 3ef06bb7f6ed910c0e28ad028bb7acd9324fd485 | |
parent | 308bb03267780f8460b8c75e7cd07a10f6ef3c69 (diff) | |
download | linux-3.10-24f767bfbeca2db33e3514707c908a06a576fba0.tar.gz linux-3.10-24f767bfbeca2db33e3514707c908a06a576fba0.tar.bz2 linux-3.10-24f767bfbeca2db33e3514707c908a06a576fba0.zip |
drm/exynos: Add create_connector callback
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>
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_core.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_drv.h | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_core.c b/drivers/gpu/drm/exynos/exynos_drm_core.c index e23611eaa90..eeb5e4e0f52 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_core.c +++ b/drivers/gpu/drm/exynos/exynos_drm_core.c @@ -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. diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h index 97bdfcc258d..06aa27e750c 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h @@ -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, |