]> git.ipfire.org Git - people/amarx/ipfire-3.x.git/blob - pkgs/xorg-x11-drv-nv/patches/nv-reserve-fbarea.patch
b86b83c79cd320184d60cdaed58cc40acac4a6de
[people/amarx/ipfire-3.x.git] / pkgs / xorg-x11-drv-nv / patches / nv-reserve-fbarea.patch
1 diff --git a/src/nv_driver.c b/src/nv_driver.c
2 index 4bcc391..6252dd2 100644
3 --- a/src/nv_driver.c
4 +++ b/src/nv_driver.c
5 @@ -32,6 +32,8 @@
6 #include "xf86int10.h"
7 #include "vbeModes.h"
8
9 +#define NV_ALIGN(x,bytes) (((x) + ((bytes) - 1)) & ~((bytes) - 1))
10 +
11 const OptionInfoRec * RivaAvailableOptions(int chipid, int busid);
12 Bool RivaGetScrnInfoRec(PciChipsets *chips, int chip);
13 Bool G80GetScrnInfoRec(PciChipsets *chips, int chip);
14 @@ -2266,7 +2268,7 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
15 unsigned char *FBStart;
16 int width, height, displayWidth, offscreenHeight, shadowHeight;
17 BoxRec AvailFBArea;
18 -
19 + FBAreaPtr fbarea;
20 /*
21 * First get the ScrnInfoRec
22 */
23 @@ -2421,7 +2423,31 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
24 AvailFBArea.y1 = 0;
25 AvailFBArea.x2 = pScrn->displayWidth;
26 AvailFBArea.y2 = offscreenHeight;
27 - xf86InitFBManager(pScreen, &AvailFBArea);
28 +
29 +
30 + if (!xf86InitFBManager(pScreen, &AvailFBArea)) {
31 + xf86DrvMsg(scrnIndex, X_ERROR,
32 + "Memory manager initialized to (%d,%d) (%d,%d) failed\n",
33 + AvailFBArea.x1, AvailFBArea.y1, AvailFBArea.x2, AvailFBArea.y2);
34 + return FALSE;
35 + }
36 +
37 + xf86DrvMsg(scrnIndex, X_INFO,
38 + "Memory manager initialized to (%d,%d) (%d,%d)\n",
39 + AvailFBArea.x1, AvailFBArea.y1, AvailFBArea.x2, AvailFBArea.y2);
40 +
41 + if ((fbarea = xf86AllocateOffscreenArea(pScreen,
42 + pScrn->displayWidth,
43 + NV_ALIGN(pScrn->virtualY, 64) -
44 + pScrn->virtualY + 2,
45 + 0, NULL, NULL, NULL))) {
46 + xf86DrvMsg(scrnIndex, X_INFO,
47 + "Reserved area from (%d,%d) to (%d,%d)\n",
48 + fbarea->box.x1, fbarea->box.y1,
49 + fbarea->box.x2, fbarea->box.y2);
50 + } else {
51 + xf86DrvMsg(scrnIndex, X_ERROR, "Unable to reserve area\n");
52 + }
53
54 if (!pNv->NoAccel)
55 NVAccelInit(pScreen);