diff options
author | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2015-08-06 02:24:20 +0300 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2015-08-16 04:23:37 +0300 |
commit | a2986e8032bddbe237ed16e2e26c71f5416cd5fd (patch) | |
tree | e52b61cf865f2a2bec677b148852bb597fefb62a /drivers/gpu/drm/exynos/exynos_drm_drv.h | |
parent | af8be3f6fe80262f29b5e353421392196ff626f0 (diff) | |
download | linux-a2986e8032bddbe237ed16e2e26c71f5416cd5fd.tar.xz |
drm/exynos: remove exynos_drm_create_enc_conn()
This functions was just hiding the encoder and connector creation in
a way that was less clean than if we get rid of it. For example,
exynos_encoder ops had .create_connector() defined only because we were
handing off the encoder and connector creation to
exynos_drm_create_enc_conn(). Without this function we can directly call
the create_connector function internally in the code, without the need of
any vtable access.
It also does some refactoring in the code like creating a bind function
for dpi devices.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_drv.h')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_drv.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h index 76ed6a105d4f..a4977bee3195 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h @@ -81,7 +81,6 @@ struct exynos_drm_plane { * Exynos DRM Encoder Structure. * - this structure is common to analog tv, digital tv and lcd panel. * - * @create_connector: initialize and register a new connector * @mode_fixup: fix mode data comparing to hw specific display mode. * @mode_set: convert drm_display_mode to hw specific display mode and * would be called by encoder->mode_set(). @@ -90,7 +89,6 @@ struct exynos_drm_plane { */ struct exynos_drm_encoder; struct exynos_drm_encoder_ops { - int (*create_connector)(struct exynos_drm_encoder *encoder); void (*mode_fixup)(struct exynos_drm_encoder *encoder, struct drm_connector *connector, const struct drm_display_mode *mode, @@ -259,6 +257,7 @@ void exynos_drm_subdrv_close(struct drm_device *dev, struct drm_file *file); #ifdef CONFIG_DRM_EXYNOS_DPI struct exynos_drm_encoder *exynos_dpi_probe(struct device *dev); int exynos_dpi_remove(struct exynos_drm_encoder *encoder); +int exynos_dpi_bind(struct drm_device *dev, struct exynos_drm_encoder *encoder); #else static inline struct exynos_drm_encoder * exynos_dpi_probe(struct device *dev) { return NULL; } @@ -266,12 +265,13 @@ static inline int exynos_dpi_remove(struct exynos_drm_encoder *encoder) { return 0; } +static inline int exynos_dpi_bind(struct drm_device *dev, + struct exynos_drm_encoder *encoder) +{ + return 0; +} #endif -/* This function creates a encoder and a connector, and initializes them. */ -int exynos_drm_create_enc_conn(struct drm_device *dev, - struct exynos_drm_encoder *encoder, - enum exynos_drm_output_type type); extern struct platform_driver fimd_driver; extern struct platform_driver exynos5433_decon_driver; |