xf86-video-intel: src/sna/sna_display.c

Chris Wilson ickle at kemper.freedesktop.org
Tue Jun 24 23:32:37 PDT 2014


 src/sna/sna_display.c |   27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

New commits:
commit 204ec74a61ba0b9628c686b98c48fa1220866c2d
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Jun 25 07:31:33 2014 +0100

    sna: Check all connectors for reuse
    
    Do not rely on the MST path being present to indicate a connector that
    may be reused.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80355
    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 d3983ec..9c24ea6 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -3385,19 +3385,6 @@ sna_output_add(struct sna *sna, unsigned id, unsigned serial)
 			goto skip;
 		}
 
-		if (serial) {
-			for (i = 0; i < sna->mode.num_real_output; i++) {
-				output = config->output[i];
-				if (strcmp(output->name, name) == 0) {
-					assert(output->scrn == scrn);
-					assert(output->funcs == &sna_output_funcs);
-					assert(to_sna_output(output)->id == 0);
-					sna_output_destroy(output);
-					goto reset;
-				}
-			}
-		}
-
 		str = xf86GetOptValString(sna->Options, OPTION_ZAPHOD);
 		if (str && !sna_zaphod_match(str, name)) {
 			DBG(("%s: zaphod mismatch, want %s, have %s\n", __FUNCTION__, str, name));
@@ -3408,6 +3395,20 @@ sna_output_add(struct sna *sna, unsigned id, unsigned serial)
 		len = path;
 	}
 
+	/* Check if we are dynamically reattaching an old connector */
+	if (serial) {
+		for (i = 0; i < sna->mode.num_real_output; i++) {
+			output = config->output[i];
+			if (strcmp(output->name, name) == 0) {
+				assert(output->scrn == scrn);
+				assert(output->funcs == &sna_output_funcs);
+				assert(to_sna_output(output)->id == 0);
+				sna_output_destroy(output);
+				goto reset;
+			}
+		}
+	}
+
 	output = calloc(1, sizeof(*output) + len + 1);
 	if (!output)
 		goto cleanup;


More information about the xorg-commit mailing list