xf86-video-intel: src/sna/sna_display.c
Chris Wilson
ickle at kemper.freedesktop.org
Sat Mar 25 01:22:57 UTC 2017
src/sna/sna_display.c | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
New commits:
commit cb6ba2da056f3298a765b4da5cd626343c00a533
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Mar 25 01:19:47 2017 +0000
sna: Use the first active crtc as the primary output fallback
When desperate for any crtc, check all available crtc for an active one
first.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 1eca8cc0..9b77550e 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -7900,6 +7900,24 @@ sna_covering_crtc(struct sna *sna, const BoxRec *box, xf86CrtcPtr desired)
return best_crtc;
}
+static xf86CrtcPtr first_active_crtc(struct sna *sna)
+{
+ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn);
+ int n;
+
+ for (n = 0; n < sna->mode.num_real_crtc; n++) {
+ xf86CrtcPtr crtc = config->crtc[n];
+ if (to_sna_crtc(crtc)->bo)
+ return crtc;
+ }
+
+ /* No active, use the first as a placeholder */
+ if (sna->mode.num_real_crtc)
+ return config->crtc[0];
+
+ return NULL;
+}
+
xf86CrtcPtr sna_primary_crtc(struct sna *sna)
{
rrScrPrivPtr rr = rrGetScrPriv(xf86ScrnToScreen(sna->scrn));
@@ -7911,10 +7929,7 @@ xf86CrtcPtr sna_primary_crtc(struct sna *sna)
return output->crtc;
}
- if (sna->mode.num_real_crtc)
- return XF86_CRTC_CONFIG_PTR(sna->scrn)->crtc[0];
-
- return NULL;
+ return first_active_crtc(sna);
}
#define MI_LOAD_REGISTER_IMM (0x22<<23)
More information about the xorg-commit
mailing list