rpms/xorg-x11-drv-nouveau/F-12 nouveau-randr-unify.patch, NONE, 1.1 xorg-x11-drv-nouveau.spec, 1.67, 1.68
Ben Skeggs
bskeggs at fedoraproject.org
Wed Feb 10 22:40:25 UTC 2010
Author: bskeggs
Update of /cvs/pkgs/rpms/xorg-x11-drv-nouveau/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv30453
Modified Files:
xorg-x11-drv-nouveau.spec
Added Files:
nouveau-randr-unify.patch
Log Message:
* Thu Feb 11 2010 Ben Skeggs <bskeggs at redhat.com> 0.0.15-20.20091105gite1c2efd
- fix segfault from randr unification patches in xserver
nouveau-randr-unify.patch:
drmmode_display.c | 13 +++++++------
nv10_exa.c | 2 +-
nv_driver.c | 6 +++---
nv_proto.h | 2 +-
4 files changed, 12 insertions(+), 11 deletions(-)
--- NEW FILE nouveau-randr-unify.patch ---
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index fe2539d..1b6e869 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -160,8 +160,9 @@ drmmode_crtc_dpms(xf86CrtcPtr drmmode_crtc, int mode)
}
void
-drmmode_fbcon_copy(ScrnInfoPtr pScrn)
+drmmode_fbcon_copy(ScreenPtr pScreen)
{
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
NVPtr pNv = NVPTR(pScrn);
ExaDriverPtr exa = pNv->EXADriverPtr;
@@ -208,7 +209,7 @@ drmmode_fbcon_copy(ScrnInfoPtr pScrn)
return;
}
- pspix = drmmode_pixmap_wrap(pScrn->pScreen, fb->width, fb->height,
+ pspix = drmmode_pixmap_wrap(pScreen, fb->width, fb->height,
fb->depth, fb->bpp, fb->pitch, bo);
nouveau_bo_ref(NULL, &bo);
drmFree(fb);
@@ -218,14 +219,14 @@ drmmode_fbcon_copy(ScrnInfoPtr pScrn)
return;
}
- pdpix = drmmode_pixmap_wrap(pScrn->pScreen, pScrn->virtualX,
+ pdpix = drmmode_pixmap_wrap(pScreen, pScrn->virtualX,
pScrn->virtualY, pScrn->depth,
pScrn->bitsPerPixel, pScrn->displayWidth *
pScrn->bitsPerPixel / 8, pNv->scanout);
if (!pdpix) {
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"Failed to init scanout pixmap for fbcon mirror\n");
- pScrn->pScreen->DestroyPixmap(pspix);
+ pScreen->DestroyPixmap(pspix);
return;
}
@@ -240,8 +241,8 @@ drmmode_fbcon_copy(ScrnInfoPtr pScrn)
nouveau_bo_map(pNv->scanout, NOUVEAU_BO_RDWR);
nouveau_bo_unmap(pNv->scanout);
- pScrn->pScreen->DestroyPixmap(pdpix);
- pScrn->pScreen->DestroyPixmap(pspix);
+ pScreen->DestroyPixmap(pdpix);
+ pScreen->DestroyPixmap(pspix);
}
static Bool
diff --git a/src/nv10_exa.c b/src/nv10_exa.c
index fe86fd7..497d7ab 100644
--- a/src/nv10_exa.c
+++ b/src/nv10_exa.c
@@ -466,7 +466,7 @@ static Bool NV10SetBuffer(NVPtr pNv, PicturePtr Pict, PixmapPtr pixmap)
#else
OUT_RINGf (chan, 65536.0);
#endif
- BEGIN_RING(chan, celsius, NV10TCL_VIEWPORT_SCALE_X, 4);
+// BEGIN_RING(chan, celsius, NV10TCL_VIEWPORT_SCALE_X, 4);
OUT_RINGf (chan, -2048.0);
OUT_RINGf (chan, -2048.0);
OUT_RINGf (chan, 0);
diff --git a/src/nv_driver.c b/src/nv_driver.c
index c907015..8a77fd9 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -1697,13 +1697,13 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
pNv->BlockHandler = pScreen->BlockHandler;
pScreen->BlockHandler = NVBlockHandler;
- pScrn->vtSema = TRUE;
- pScrn->pScreen = pScreen;
if (pNv->kms_enable)
- drmmode_fbcon_copy(pScrn);
+ drmmode_fbcon_copy(pScreen);
if (!NVEnterVT(pScrn->scrnIndex, 0))
return FALSE;
+ pScrn->vtSema = TRUE;
+ pScrn->pScreen = pScreen;
xf86DPMSInit(pScreen, xf86DPMSSet, 0);
diff --git a/src/nv_proto.h b/src/nv_proto.h
index ceddbee..c8f3fa1 100644
--- a/src/nv_proto.h
+++ b/src/nv_proto.h
@@ -7,7 +7,7 @@ Bool drmmode_is_rotate_pixmap(PixmapPtr, struct nouveau_bo **);
void drmmode_adjust_frame(ScrnInfoPtr pScrn, int x, int y, int flags);
void drmmode_remove_fb(ScrnInfoPtr pScrn);
Bool drmmode_cursor_init(ScreenPtr pScreen);
-void drmmode_fbcon_copy(ScrnInfoPtr pScrn);
+void drmmode_fbcon_copy(ScreenPtr pScreen);
/* in nouveau_calc.c */
void nouveau_calc_arb(ScrnInfoPtr pScrn, int vclk, int bpp, int *burst, int *lwm);
Index: xorg-x11-drv-nouveau.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-nouveau/F-12/xorg-x11-drv-nouveau.spec,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -p -r1.67 -r1.68
--- xorg-x11-drv-nouveau.spec 15 Jan 2010 01:25:09 -0000 1.67
+++ xorg-x11-drv-nouveau.spec 10 Feb 2010 22:39:44 -0000 1.68
@@ -19,7 +19,7 @@ Name: xorg-x11-drv-nouveau
# need to set an epoch to get version number in sync with upstream
Epoch: 1
Version: %{nouveau_version}
-Release: 19.%{snapshot}%{?dist}
+Release: 20.%{snapshot}%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
@@ -51,6 +51,7 @@ Patch9: nouveau-kms-noaccel-fixes.patch
Patch10: nouveau-nv04_nodcb.patch
Patch11: nouveau-libdrm-compat.patch
Patch12: nouveau-randr-fixes.patch
+Patch13: nouveau-randr-unify.patch
%description
X.Org X11 nouveau video driver.
@@ -68,6 +69,7 @@ X.Org X11 nouveau video driver.
%patch10 -p1 -b .nv04nodcb
%patch11 -p1 -b .libdrm
%patch12 -p1 -b .randrfix
+%patch13 -p1 -b .randrunify
%build
autoreconf -v --install
@@ -91,6 +93,9 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man4/nouveau.4*
%changelog
+* Thu Feb 11 2010 Ben Skeggs <bskeggs at redhat.com> 0.0.15-20.20091105gite1c2efd
+- fix segfault from randr unification patches in xserver
+
* Fri Jan 15 2010 Ben Skeggs <bskeggs at redhat.com> 0.0.15-19.20091105gite1c2efd
- nouveau-nv04_nodcb.patch: assume nv04 doesn't have a DCB table (rh#555202)
- nouveau-randr-fixes.patch: fix fb resize/rotate on <nv50 (rh#532978)
More information about the scm-commits
mailing list