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

Chris Wilson ickle at kemper.freedesktop.org
Mon Aug 11 04:24:03 PDT 2014


 src/sna/sna_display.c |   18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

New commits:
commit 6554cf0a69f04710b64f3488384fe5cb2748dc35
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Aug 11 12:22:17 2014 +0100

    sna: Parse output options early during initialisation
    
    Before we can query whether an option is set, we first need to generate
    the options table. This is done through xf86OutputUseScreenMonitor() so
    make sure it is called as early as possible in the proceedings.
    
    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 3d9724b..7c20db4 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -3670,12 +3670,22 @@ sna_output_add(struct sna *sna, unsigned id, unsigned serial)
 		goto cleanup;
 	}
 
+	output->scrn = scrn;
+	output->funcs = &sna_output_funcs;
+	output->name = (char *)(output + 1);
+	memcpy(output->name, name, len + 1);
+
+	output->use_screen_monitor = config->num_output != 1;
+	xf86OutputUseScreenMonitor(output, !output->use_screen_monitor);
+	assert(output->options);
+
 	DBG(("%s: inserting output #%d of %d\n", __FUNCTION__, sna->mode.num_real_output, config->num_output));
 	for (i = config->num_output; i > sna->mode.num_real_output; i--) {
 		outputs[i] = outputs[i-1];
 		assert(outputs[i]->driver_private == NULL);
 		outputs[i]->possible_clones <<= 1;
 	}
+
 	if (xf86ReturnOptValBool(output->options, OPTION_PRIMARY, FALSE)) {
 		memmove(outputs + 1, outputs, sizeof(output)*config->num_output);
 		outputs[0] = output;
@@ -3685,14 +3695,6 @@ sna_output_add(struct sna *sna, unsigned id, unsigned serial)
 	config->num_output++;
 	config->output = outputs;
 
-	output->scrn = scrn;
-	output->funcs = &sna_output_funcs;
-	output->name = (char *)(output + 1);
-	memcpy(output->name, name, len + 1);
-
-	output->use_screen_monitor = config->num_output != 1;
-	xf86OutputUseScreenMonitor(output, !output->use_screen_monitor);
-
 reset:
 	sna_output->id = compat_conn.conn.connector_id;
 	sna_output->is_panel = is_panel(compat_conn.conn.connector_type);


More information about the xorg-commit mailing list