summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Defnet <benjamin.r.defnet@intel.com>2009-06-09 04:45:42 (GMT)
committerKeith Packard <keithp@keithp.com>2009-06-09 23:23:38 (GMT)
commit6f59a8160042ea145514fdcb410f17f33fd437c2 (patch)
tree9622e496385f476b2a6f150ce20a51de2e28a9dc
parente244a5991e2cc55f5aa2f6e5255f1dabf56f0235 (diff)
hw/xf86/modes: Set crtc mode/rotation/transform before calling set_mode_major
This moves code out of each implementation of set_mode_major and back into the X server. The real feature here is that the transform is now available in the crtc for use by either xf86CrtcRotate or whatever the driver wants to do. Without this change, the transform was lost for drivers providing the set_mode_major interface. Note that users of this API will want to stop smashing the transformPresent field, and could also stop setting mode/x/y/rotation for new enough X servers, but there's no reason to make that change as it will break things when running against older X servers. Signed-off-by: Keith Packard <keithp@keithp.com> Acked-by: Daniel Stone <daniel@fooishbar.org>
-rw-r--r--hw/xfree86/modes/xf86Crtc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index b40e096..585f84d 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -266,9 +266,6 @@ xf86CrtcSetModeTransform (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotati
RRTransformRec saved_transform;
Bool saved_transform_present;
- if (crtc->funcs->set_mode_major)
- return crtc->funcs->set_mode_major(crtc, mode, rotation, x, y);
-
crtc->enabled = xf86CrtcInUse (crtc);
/* We only hit this if someone explicitly sends a "disabled" modeset. */
@@ -306,6 +303,11 @@ xf86CrtcSetModeTransform (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotati
} else
crtc->transformPresent = FALSE;
+ if (crtc->funcs->set_mode_major) {
+ ret = crtc->funcs->set_mode_major(crtc, mode, rotation, x, y);
+ goto done;
+ }
+
/* Pass our mode to the outputs and the CRTC to give them a chance to
* adjust it according to limitations or output properties, and also
* a chance to reject the mode entirely.