xf86-video-intel: 2 commits - configure.ac src/intel_driver.h src/intel_module.c src/sna/sna_accel.c src/sna/sna_display.c src/sna/sna_driver.c src/sna/sna.h src/uxa/intel_uxa.c

Chris Wilson ickle at kemper.freedesktop.org
Tue Aug 5 08:41:49 PDT 2014


 configure.ac          |    2 +-
 src/intel_driver.h    |    2 +-
 src/intel_module.c    |    8 ++++----
 src/sna/sna.h         |    1 +
 src/sna/sna_accel.c   |    2 +-
 src/sna/sna_display.c |   26 ++++++++++++++++++++++++++
 src/sna/sna_driver.c  |    2 ++
 src/uxa/intel_uxa.c   |    2 +-
 8 files changed, 37 insertions(+), 8 deletions(-)

New commits:
commit f36b7a4aac86f5874c32d8f516ac1f00a6c8d8b3
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Aug 5 16:38:42 2014 +0100

    intel: Use NOACCEL to avoid a symbol clash on old Xorg
    
    Old Xorg xf86str.h defines NONE preventing us from using it within an
    enum. Use NOACCEL instead.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/configure.ac b/configure.ac
index 94959f7..503202c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -699,7 +699,7 @@ fi
 if test "x$have_accel" = "xnone"; then
 	if test "x$KMS" = "xyes"; then
 		if test "x$SNA" != "xno" -o "x$UXA" != "xno"; then
-			AC_DEFINE(DEFAULT_ACCEL_METHOD, NONE, [Default acceleration method])
+			AC_DEFINE(DEFAULT_ACCEL_METHOD, NOACCEL, [Default acceleration method])
 		else
 			AC_MSG_ERROR([Invalid default acceleration option])
 		fi
diff --git a/src/intel_driver.h b/src/intel_driver.h
index 7ce6b75..13e2688 100644
--- a/src/intel_driver.h
+++ b/src/intel_driver.h
@@ -136,7 +136,7 @@ int intel_put_master(ScrnInfoPtr scrn);
 void intel_put_device(ScrnInfoPtr scrn);
 
 #define IS_DEFAULT_ACCEL_METHOD(x) ({ \
-	enum { SNA, UXA, GLAMOR, NONE } default_accel_method__ = DEFAULT_ACCEL_METHOD; \
+	enum { NOACCEL, SNA, UXA, GLAMOR } default_accel_method__ = DEFAULT_ACCEL_METHOD; \
 	default_accel_method__ == x; \
 })
 
diff --git a/src/intel_module.c b/src/intel_module.c
index 95200d0..57ac5ef 100644
--- a/src/intel_module.c
+++ b/src/intel_module.c
@@ -489,7 +489,7 @@ _xf86findDriver(const char *ident, XF86ConfDevicePtr p)
 	return NULL;
 }
 
-static enum accel_method { NONE, SNA, UXA, GLAMOR } get_accel_method(void)
+static enum accel_method { NOACCEL, SNA, UXA, GLAMOR } get_accel_method(void)
 {
 	enum accel_method accel_method = DEFAULT_ACCEL_METHOD;
 	XF86ConfDevicePtr dev;
@@ -504,7 +504,7 @@ static enum accel_method { NONE, SNA, UXA, GLAMOR } get_accel_method(void)
 		s = xf86FindOptionValue(dev->dev_option_lst, "AccelMethod");
 		if (s ) {
 			if (strcasecmp(s, "none") == 0)
-				accel_method = NONE;
+				accel_method = NOACCEL;
 			else if (strcasecmp(s, "sna") == 0)
 				accel_method = SNA;
 			else if (strcasecmp(s, "uxa") == 0)
@@ -564,13 +564,13 @@ intel_scrn_create(DriverPtr		driver,
 #if KMS
 	switch (get_accel_method()) {
 #if USE_SNA
-	case NONE:
+	case NOACCEL:
 	case SNA:
 		return sna_init_scrn(scrn, entity_num);
 #endif
 #if USE_UXA
 #if !USE_SNA
-	case NONE:
+	case NOACCEL:
 #endif
 	case GLAMOR:
 	case UXA:
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 00ff492..f8a5924 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -17625,7 +17625,7 @@ static bool sna_option_accel_none(struct sna *sna)
 
 	s = xf86GetOptValString(sna->Options, OPTION_ACCEL_METHOD);
 	if (s == NULL)
-		return IS_DEFAULT_ACCEL_METHOD(NONE);
+		return IS_DEFAULT_ACCEL_METHOD(NOACCEL);
 
 	return strcasecmp(s, "none") == 0;
 }
diff --git a/src/uxa/intel_uxa.c b/src/uxa/intel_uxa.c
index 255a245..19604d4 100644
--- a/src/uxa/intel_uxa.c
+++ b/src/uxa/intel_uxa.c
@@ -1427,7 +1427,7 @@ static Bool intel_option_accel_none(intel_screen_private *intel)
 
 	s = xf86GetOptValString(intel->Options, OPTION_ACCEL_METHOD);
 	if (s == NULL)
-		return IS_DEFAULT_ACCEL_METHOD(NONE);
+		return IS_DEFAULT_ACCEL_METHOD(NOACCEL);
 
 	return strcasecmp(s, "none") == 0;
 }
commit c5e654cf2afcafbe3732548359771747dac1ce26
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Aug 5 16:21:19 2014 +0100

    sna: Set the RandR primary output from the option
    
    If the user specifies the Option "Primary" for a monitor, we need to set
    it as the RandR primary output.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82193

diff --git a/src/sna/sna.h b/src/sna/sna.h
index 498149d..bce8bab 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
@@ -432,6 +432,7 @@ extern void sna_shadow_set_crtc(struct sna *sna, xf86CrtcPtr crtc, struct kgem_b
 extern void sna_shadow_unset_crtc(struct sna *sna, xf86CrtcPtr crtc);
 extern bool sna_pixmap_discard_shadow_damage(struct sna_pixmap *priv,
 					     const RegionRec *region);
+extern void sna_mode_set_primary(struct sna *sna);
 extern void sna_mode_close(struct sna *sna);
 extern void sna_mode_fini(struct sna *sna);
 
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 0a6d35e..5335f06 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -3921,6 +3921,7 @@ void sna_mode_discover(struct sna *sna)
 		DBG(("%s: outputs changed, broadcasting\n", __FUNCTION__));
 
 		sna_mode_compute_possible_outputs(sna);
+		sna_mode_set_primary(sna);
 
 		/* Reorder user visible listing */
 		sort_config_outputs(sna);
@@ -5652,6 +5653,31 @@ sna_mode_wants_tear_free(struct sna *sna)
 }
 
 void
+sna_mode_set_primary(struct sna *sna)
+{
+#ifdef RANDR_12_INTERFACE
+	xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn);
+	rrScrPrivPtr rr = rrGetScrPriv(xf86ScrnToScreen(sna->scrn));
+	int i;
+
+	if (rr->primaryOutput)
+		return;
+
+	for (i = 0; i < sna->mode.num_real_output; i++) {
+		xf86OutputPtr output = config->output[i];
+
+		if (!xf86ReturnOptValBool(output->options, OPTION_PRIMARY, FALSE))
+			continue;
+
+		rr->primaryOutput = output->randr_output;
+		RROutputChanged(rr->primaryOutput, 0);
+		rr->layoutChanged = TRUE;
+		break;
+	}
+#endif
+}
+
+void
 sna_mode_close(struct sna *sna)
 {
 	while (sna_mode_has_pending_events(sna))
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 5e54125..322e951 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -272,6 +272,8 @@ static Bool sna_create_screen_resources(ScreenPtr screen)
 		return FALSE;
 	}
 
+	sna_mode_set_primary(sna);
+
 	/* Only preserve the fbcon, not any subsequent server regens */
 	if (serverGeneration == 1 && (sna->flags & SNA_IS_HOSTED) == 0)
 		sna_copy_fbcon(sna);


More information about the xorg-commit mailing list