diff options
author | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2015-08-15 18:14:08 +0300 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2015-08-16 04:35:54 +0300 |
commit | 2b8376c803c4c1c02446520527b31161e8a3c066 (patch) | |
tree | a4b63c17ffe061aad4e375028d4ca6a5afdb2f6e /drivers/gpu/drm/exynos/exynos_drm_drv.h | |
parent | 6cf272751be22a9ae6a6a9550854156dd812ff66 (diff) | |
download | linux-2b8376c803c4c1c02446520527b31161e8a3c066.tar.xz |
drm/exynos: remove struct exynos_drm_encoder layer
struct exynos_drm_encoder was justing wrapping struct drm_encoder, it had
only a drm_encoder member and the internal exynos_drm_encoders ops that
was directly mapped to the drm_encoder helper funcs.
So now exynos DRM uses struct drm_encoder directly, this removes
completely the struct exynos_drm_encoder.
v2: add empty .mode_fixup() and .mode_set() to DSI and DPI to avoid null
pointer.
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 | 47 |
1 files changed, 6 insertions, 41 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h index a4977bee3195..6b8a30f23473 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h @@ -22,7 +22,6 @@ #define MAX_PLANE 5 #define MAX_FB_BUFFER 4 -#define to_exynos_encoder(x) container_of(x, struct exynos_drm_encoder, base) #define to_exynos_crtc(x) container_of(x, struct exynos_drm_crtc, base) #define to_exynos_plane(x) container_of(x, struct exynos_drm_plane, base) @@ -78,40 +77,6 @@ struct exynos_drm_plane { }; /* - * Exynos DRM Encoder Structure. - * - this structure is common to analog tv, digital tv and lcd panel. - * - * @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(). - * @enable: display device on. - * @disable: display device off. - */ -struct exynos_drm_encoder; -struct exynos_drm_encoder_ops { - void (*mode_fixup)(struct exynos_drm_encoder *encoder, - struct drm_connector *connector, - const struct drm_display_mode *mode, - struct drm_display_mode *adjusted_mode); - void (*mode_set)(struct exynos_drm_encoder *encoder, - struct drm_display_mode *mode); - void (*enable)(struct exynos_drm_encoder *encoder); - void (*disable)(struct exynos_drm_encoder *encoder); -}; - -/* - * exynos specific encoder structure. - * - * @drm_encoder: encoder object. - * @type: one of EXYNOS_DISPLAY_TYPE_LCD and HDMI. - * @ops: pointer to callbacks for exynos drm specific functionality - */ -struct exynos_drm_encoder { - struct drm_encoder base; - struct exynos_drm_encoder_ops *ops; -}; - -/* * Exynos drm crtc ops * * @enable: enable the device @@ -255,18 +220,18 @@ int exynos_drm_subdrv_open(struct drm_device *dev, struct drm_file *file); 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); +struct drm_encoder *exynos_dpi_probe(struct device *dev); +int exynos_dpi_remove(struct drm_encoder *encoder); +int exynos_dpi_bind(struct drm_device *dev, struct drm_encoder *encoder); #else -static inline struct exynos_drm_encoder * +static inline struct drm_encoder * exynos_dpi_probe(struct device *dev) { return NULL; } -static inline int exynos_dpi_remove(struct exynos_drm_encoder *encoder) +static inline int exynos_dpi_remove(struct drm_encoder *encoder) { return 0; } static inline int exynos_dpi_bind(struct drm_device *dev, - struct exynos_drm_encoder *encoder) + struct drm_encoder *encoder) { return 0; } |