[PATCH] fbdev: fix devPrivates and do not disable xrandr when rotated

Michel Dänzer michel at daenzer.net
Tue Jul 6 00:04:40 PDT 2010


On Mon, 2010-07-05 at 21:52 +0200, Denis 'GNUtoo' Carikli wrote: 
> FBDevDGAInit is already converted to devPrivates,and so it works fine
>   when xf86-video-fbdev is rotated(trough xorg.conf,for instance
>   CW rotation)
> But when it's not rotated,drivers like xf86-input-tslib
>   which access the dev private screen key fail with:
> privates.h:122: dixGetPrivateAddr: Assertion `key->initialized' failed.
> at:
> Rotation rotation = rrGetScrPriv (pScrn->pScreen) ? RRGetRotation(pScrn->pScreen) : RR_Rotate_0;
> Because pScreen was not initialized correctly.
> 
> This patch fixes that.
> 
> Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo at no-log.org>
> ---
>  src/fbdev.c |   13 +------------
>  1 files changed, 1 insertions(+), 12 deletions(-)
> 
> diff --git a/src/fbdev.c b/src/fbdev.c
> index c97ce1c..af8de48 100644
> --- a/src/fbdev.c
> +++ b/src/fbdev.c
> @@ -828,18 +828,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
>  		       "shadow framebuffer initialization failed\n");
>  	    return FALSE;
>  	}
> -
> -	if (!fPtr->rotate)
> -	  FBDevDGAInit(pScrn, pScreen);
> -	else {
> -	  xf86DrvMsg(scrnIndex, X_INFO, "display rotated; disabling DGA\n");
> -	  xf86DrvMsg(scrnIndex, X_INFO, "using driver rotation; disabling "
> -			                "XRandR\n");
> -	  xf86DisableRandR();
> -	  if (pScrn->bitsPerPixel == 24)
> -	    xf86DrvMsg(scrnIndex, X_WARNING, "rotation might be broken at 24 "
> -                                             "bits per pixel\n");
> -	}
> +	FBDevDGAInit(pScrn, pScreen);

I don't understand what FBDevDGAInit() has to do with this. It sounds
like you just want not to call xf86DisableRandR()? Did you test that the
DGA video features work correctly with rotation?


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the xorg-devel mailing list