diff options
author | Joonyoung Shim <jy0922.shim@samsung.com> | 2012-04-23 19:35:50 +0900 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2012-05-08 18:46:33 +0900 |
commit | cf8fc4f10e2c5c5b6b60d6e79d61cc58afa5967d (patch) | |
tree | 74cdc233ce54eb37ef67e7fec7af5ee2bf75911f /drivers/gpu/drm/exynos/exynos_drm_hdmi.h | |
parent | 66265a2e8e867a9c5ce63e5f883cf751b35b66d5 (diff) | |
download | blackbird-obmc-linux-cf8fc4f10e2c5c5b6b60d6e79d61cc58afa5967d.tar.gz blackbird-obmc-linux-cf8fc4f10e2c5c5b6b60d6e79d61cc58afa5967d.zip |
drm/exynos: add dpms for hdmi
The power and clocks turns on always in exynos hdmi and mixer driver,
but we should turn off the power and clocks of exynos hdmi and mixer
when the hdmi cable unplugged or when hdmi unused.
There are two interrupt to detect hotplug of hdmi cable - internal
interrupt and external interrupt. The internal interrupt can use only
when hdmi is dpms on so if hdmi is dpms off, we should use external
interrupt to detect hotplug of hdmi cable. If hdmi is dpms on, we cannot
external interrupt because the gpio pin for external interrupt is used
to hdmi HPD pin for internal interrupt.
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_hdmi.h')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_hdmi.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_hdmi.h b/drivers/gpu/drm/exynos/exynos_drm_hdmi.h index f3ae192c8dcf..bd8126996e52 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_hdmi.h +++ b/drivers/gpu/drm/exynos/exynos_drm_hdmi.h @@ -26,6 +26,9 @@ #ifndef _EXYNOS_DRM_HDMI_H_ #define _EXYNOS_DRM_HDMI_H_ +#define MIXER_WIN_NR 3 +#define MIXER_DEFAULT_WIN 0 + /* * exynos hdmi common context structure. * @@ -54,13 +57,14 @@ struct exynos_hdmi_ops { void (*get_max_resol)(void *ctx, unsigned int *width, unsigned int *height); void (*commit)(void *ctx); - void (*disable)(void *ctx); + void (*dpms)(void *ctx, int mode); }; struct exynos_mixer_ops { /* manager */ int (*enable_vblank)(void *ctx, int pipe); void (*disable_vblank)(void *ctx); + void (*dpms)(void *ctx, int mode); /* overlay */ void (*win_mode_set)(void *ctx, struct exynos_drm_overlay *overlay); |