summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/savage.man13
-rw-r--r--src/savage_driver.c14
2 files changed, 20 insertions, 7 deletions
diff --git a/man/savage.man b/man/savage.man
index 721c6b8..9e8dd27 100644
--- a/man/savage.man
+++ b/man/savage.man
@@ -95,13 +95,18 @@ possibly unstable. The default is
.BI "Option \*qRotate\*q \*qCW\*q"
.TP
.BI "Option \*qRotate\*q \*qCCW\*q"
-Rotate the desktop 90 degrees clockwise or counterclockwise. This option
-forces the ShadowFB option on, and disables acceleration.
+Rotate the desktop 90 degrees clockwise or counterclockwise.
+This option forces the ShadowFB option on, and disables acceleration and
+the RandR extension.
Default: no rotation.
.TP
.BI "Option \*qShadowFB\*q \*q" boolean \*q
-Enable or disable use of the shadow framebuffer layer. This option
-disables acceleration. Default: off.
+Enable or disable use of the shadow framebuffer layer.
+.\" See
+.\" .BR shadowfb (__drivermansuffix__)
+.\" for further information.
+This option disables acceleration.
+Default: off.
.TP
.BI "Option \*qLCDClock\*q \*q" frequency \*q
Override the maximum dot clock. Some LCD panels produce incorrect results if
diff --git a/src/savage_driver.c b/src/savage_driver.c
index 2c51770..6ffe772 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -1165,15 +1165,23 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
if ((s = xf86GetOptValString(psav->Options, OPTION_ROTATE))) {
if(!xf86NameCmp(s, "CW")) {
/* accel is disabled below for shadowFB */
+ /* RandR is disabled when the Rotate option is used (does
+ * not work well together and scrambles the screen) */
+
psav->shadowFB = TRUE;
psav->rotate = 1;
+ xf86DisableRandR();
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
- "Rotating screen clockwise - acceleration disabled\n");
+ "Rotating screen clockwise"
+ "- acceleration and RandR disabled\n");
} else if(!xf86NameCmp(s, "CCW")) {
psav->shadowFB = TRUE;
psav->rotate = -1;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Rotating screen"
- "counter clockwise - acceleration disabled\n");
+ xf86DisableRandR();
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+ "Rotating screen counter clockwise"
+ " - acceleration and RandR disabled\n");
+
} else {
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "\"%s\" is not a valid"
"value for Option \"Rotate\"\n", s);