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