diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-04-03 09:30:03 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-04-14 05:34:14 -0400 |
commit | c7aef12f344459961eb1e0ba10d184816ed42d99 (patch) | |
tree | ca68b7237c5a475f77bee0a2d1b47e4b97295f68 | |
parent | e2f8fd74ec1bf15cb2abc1b11f7d9fa09581024e (diff) |
drm/omap: fix missing disable for unused encoder
When an encoder is no longer connected to a crtc, the driver will leave
the encoder enabled.
This patch adds code to track the encoder used for a crtc, and when the
encoder changes, the old one is disabled.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_crtc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c index 161a74a3ac5e..61d1c4897a45 100644 --- a/drivers/gpu/drm/omapdrm/omap_crtc.c +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c | |||
@@ -33,6 +33,7 @@ struct omap_crtc { | |||
33 | int pipe; | 33 | int pipe; |
34 | enum omap_channel channel; | 34 | enum omap_channel channel; |
35 | struct omap_overlay_manager_info info; | 35 | struct omap_overlay_manager_info info; |
36 | struct drm_encoder *current_encoder; | ||
36 | 37 | ||
37 | /* | 38 | /* |
38 | * Temporary: eventually this will go away, but it is needed | 39 | * Temporary: eventually this will go away, but it is needed |
@@ -594,6 +595,11 @@ static void omap_crtc_pre_apply(struct omap_drm_apply *apply) | |||
594 | } | 595 | } |
595 | } | 596 | } |
596 | 597 | ||
598 | if (omap_crtc->current_encoder && encoder != omap_crtc->current_encoder) | ||
599 | omap_encoder_set_enabled(omap_crtc->current_encoder, false); | ||
600 | |||
601 | omap_crtc->current_encoder = encoder; | ||
602 | |||
597 | if (!omap_crtc->enabled) { | 603 | if (!omap_crtc->enabled) { |
598 | set_enabled(&omap_crtc->base, false); | 604 | set_enabled(&omap_crtc->base, false); |
599 | if (encoder) | 605 | if (encoder) |