summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@dulcimer.keithp.com>2007-06-05 00:09:57 -0700
committerKeith Packard <keithp@dulcimer.keithp.com>2007-06-05 00:09:57 -0700
commit8a19e7d57bc23dd163b45e0ab7deca4f074c934d (patch)
tree8496eeb72bd5d238c419a84e880801415b5a3310
parente986f6cb62f8644c5fa835bd7dfb7b014c2677c5 (diff)
Always ensure the pipe A is lit when activating overlay on pipe B.
Ok, so moving video from pipe A to pipe B still requires that pipe A be active during the transition. Instead of trying to be fancy, just ensure that pipe A is running on each transition to pipe B.
-rw-r--r--src/i830_video.c14
-rw-r--r--src/i830_video.h1
2 files changed, 4 insertions, 11 deletions
diff --git a/src/i830_video.c b/src/i830_video.c
index 382b1ebb..b8726a80 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -416,18 +416,12 @@ i830_overlay_on(ScrnInfoPtr pScrn)
return;
/*
- * On I830, if pipe A is off the first time the overlay
- * is enabled, it will fail to turn and blank the entire
- * screen. Light up pipe A in this case to provide a clock
- * for the overlay hardware
+ * On I830, if pipe A is off when the overlayis enabled, it will fail to
+ * turn on and blank the entire screen or lock up the ring. Light up pipe
+ * A in this case to provide a clock for the overlay hardware
*/
- if (pPriv->current_crtc &&
- i830_crtc_pipe (pPriv->current_crtc) != 0 &&
- !pPriv->started_video)
- {
- pPriv->started_video = TRUE;
+ if (pPriv->current_crtc && i830_crtc_pipe (pPriv->current_crtc) != 0)
deactivate = i830_pipe_a_require_activate (pScrn);
- }
overlay->OCMD &= ~OVERLAY_ENABLE;
BEGIN_LP_RING(6);
diff --git a/src/i830_video.h b/src/i830_video.h
index 88a7bd9e..7e2d1498 100644
--- a/src/i830_video.h
+++ b/src/i830_video.h
@@ -77,7 +77,6 @@ typedef struct {
int oneLineMode;
int scaleRatio;
Bool textured;
- Bool started_video;
} I830PortPrivRec, *I830PortPrivPtr;
#define GET_PORT_PRIVATE(pScrn) \