[PATCH] xfree86: Fix rotation block handler in secondary server generations

Adam Cheney acheney at nvidia.com
Thu Mar 10 13:23:12 PST 2011

xf86RotateBlockHandler was not included in the BlockHandler
chain after the first server generation, breaking crtc rotation.

During the first server generation, the pScreen->BlockHandler
function pointer is wrapped with xf86RotateBlockHandler, and the
previous pScreen->BlockHandler is saved into xf86_config.

When pScreen->BlockHandler is reset at CloseScreen time,
xf86_config->BlockHandler remained defined and xf86CrtcRotate
would not rewrap pScreen->BlockHandler as necessary.

This change clears out xf86_config->BlockHandler during
ScreenInit so each server generation sets up the rotation
block handler similarly.

Signed-off-by: Adam Cheney <acheney at nvidia.com>
 hw/xfree86/modes/xf86Crtc.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 30742ff..1c6ae14 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -807,6 +807,8 @@ xf86CrtcScreenInit (ScreenPtr screen)
     config->CloseScreen = screen->CloseScreen;
     screen->CloseScreen = xf86CrtcCloseScreen;
+    config->BlockHandler = NULL;
 #ifdef XFreeXDGA

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

More information about the xorg-devel mailing list