1 diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/common.h programs/Xserver/hw/xfree86/drivers/i810/common.h
2 --- programs/Xserver/hw/xfree86/drivers/i810_old/common.h 2004-09-29 16:03:59.645813735 +0200
3 +++ programs/Xserver/hw/xfree86/drivers/i810/common.h 2004-09-29 16:04:13.974719718 +0200
5 #define BEGIN_LP_RING(n) \
6 unsigned int outring, ringmask; \
7 volatile unsigned char *virt; \
8 - unsigned int needed; \
11 ErrorF("BEGIN_LP_RING called with odd argument: %d\n", n); \
12 if ((n) > 2 && (I810_DEBUG&DEBUG_ALWAYS_SYNC)) \
14 #define BEGIN_LP_RING(n) \
15 unsigned int outring, ringmask; \
16 volatile unsigned char *virt; \
17 - unsigned int needed; \
20 ErrorF("BEGIN_LP_RING called with odd argument: %d\n", n); \
21 if ((n) > 2 && (I810_DEBUG&DEBUG_ALWAYS_SYNC)) \
22 diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810.h programs/Xserver/hw/xfree86/drivers/i810/i810.h
23 --- programs/Xserver/hw/xfree86/drivers/i810_old/i810.h 2004-09-29 16:03:59.639814611 +0200
24 +++ programs/Xserver/hw/xfree86/drivers/i810/i810.h 2004-09-29 16:04:13.974719718 +0200
26 unsigned long OverlayPhysical;
27 unsigned long OverlayStart;
29 - int surfaceAllocation[I810_TOTAL_SURFACES];
30 + unsigned int surfaceAllocation[I810_TOTAL_SURFACES];
35 extern void I810Sync(ScrnInfoPtr pScrn);
36 extern unsigned long I810LocalToPhysical(ScrnInfoPtr pScrn,
38 -extern int I810AllocLow(I810MemRange * result, I810MemRange * pool, int size);
39 +extern int I810AllocLow(I810MemRange * result, I810MemRange * pool,
41 extern int I810AllocHigh(I810MemRange * result, I810MemRange * pool,
44 extern Bool I810AllocateFront(ScrnInfoPtr pScrn);
46 extern int I810AllocateGARTMemory(ScrnInfoPtr pScrn);
47 diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810_accel.c programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c
48 --- programs/Xserver/hw/xfree86/drivers/i810_old/i810_accel.c 2004-09-29 16:03:59.612818556 +0200
49 +++ programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c 2004-09-29 16:04:13.975719572 +0200
52 /* VT switching tries to do this.
54 - if (!pI810->LockHeld && pI810->directRenderingEnabled) {
55 + if ((!pI810->LockHeld && pI810->directRenderingEnabled) || !pScrn->vtSema) {
59 diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810_dri.c programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c
60 --- programs/Xserver/hw/xfree86/drivers/i810_old/i810_dri.c 2004-09-29 16:03:59.671809935 +0200
61 +++ programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c 2004-09-29 16:04:13.977719280 +0200
63 unsigned long dcacheHandle;
67 + unsigned int pitch_idx = 0;
69 int width = pScrn->displayWidth * pI810->cpp;
71 diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810_driver.c programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
72 --- programs/Xserver/hw/xfree86/drivers/i810_old/i810_driver.c 2004-09-29 16:03:59.553827177 +0200
73 +++ programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c 2004-09-29 16:04:13.979718988 +0200
74 @@ -1124,14 +1124,6 @@
75 xf86SetOperatingState(resVgaIo, pI810->pEnt->index, ResUnusedOpr);
76 xf86SetOperatingState(resVgaMem, pI810->pEnt->index, ResDisableOpr);
78 - pI810->LpRing = xalloc(sizeof(I810RingBuffer));
79 - if (!pI810->LpRing) {
80 - xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
81 - "Could not allocate lpring data structure.\n");
90 I810MapMem(ScrnInfoPtr pScrn)
92 I810Ptr pI810 = I810PTR(pScrn);
96 for (i = 2; i < pI810->FbMapSize; i <<= 1) ;
98 @@ -2074,6 +2066,13 @@
99 pI810 = I810PTR(pScrn);
100 hwp = VGAHWPTR(pScrn);
102 + pI810->LpRing = xcalloc(sizeof(I810RingBuffer),1);
103 + if (!pI810->LpRing) {
104 + xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
105 + "Could not allocate lpring data structure.\n");
109 miClearVisualTypes();
111 /* Re-implemented Direct Color support, -jens */
112 diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810_memory.c programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c
113 --- programs/Xserver/hw/xfree86/drivers/i810_old/i810_memory.c 2004-09-29 16:03:59.659811689 +0200
114 +++ programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c 2004-09-29 16:04:13.980718842 +0200
117 I810AllocLow(I810MemRange * result, I810MemRange * pool, int size)
119 - if (size > pool->Size)
120 + if (size > (long)pool->Size)
126 I810AllocHigh(I810MemRange * result, I810MemRange * pool, int size)
128 - if (size > pool->Size)
129 + if (size > (long)pool->Size)
133 diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810_reg.h programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h
134 --- programs/Xserver/hw/xfree86/drivers/i810_old/i810_reg.h 2004-09-29 16:03:59.736800438 +0200
135 +++ programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h 2004-09-29 16:04:13.981718696 +0200
136 @@ -459,11 +459,11 @@
137 #define I830_HEAD_MASK 0x001FFFFC
139 #define RING_START 0x08
140 -#define START_ADDR 0x00FFFFF8
141 +#define START_ADDR 0x03FFFFF8
142 #define I830_RING_START_MASK 0xFFFFF000
144 #define RING_LEN 0x0C
145 -#define RING_NR_PAGES 0x000FF000
146 +#define RING_NR_PAGES 0x001FF000
147 #define I830_RING_NR_PAGES 0x001FF000
148 #define RING_REPORT_MASK 0x00000006
149 #define RING_REPORT_64K 0x00000002
150 diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i830.h programs/Xserver/hw/xfree86/drivers/i810/i830.h
151 --- programs/Xserver/hw/xfree86/drivers/i810_old/i830.h 2004-09-29 16:03:59.645813735 +0200
152 +++ programs/Xserver/hw/xfree86/drivers/i810/i830.h 2004-09-29 16:04:13.982718550 +0200
153 @@ -180,17 +180,17 @@
156 /* These are set in PreInit and never changed. */
157 - unsigned long FbMapSize;
158 - unsigned long TotalVideoRam;
160 + long TotalVideoRam;
161 I830MemRange StolenMemory; /* pre-allocated memory */
162 - unsigned long BIOSMemorySize; /* min stolen pool size */
163 + long BIOSMemorySize; /* min stolen pool size */
166 /* These change according to what has been allocated. */
168 I830MemRange MemoryAperture;
169 I830MemPool StolenPool;
170 - unsigned long allocatedMemory;
171 + long allocatedMemory;
173 /* Regions allocated either from the above pools, or from agpgart. */
174 /* for single and dual head configurations */
179 - int SaveGeneration;
180 + unsigned int SaveGeneration;
181 Bool vbeRestoreWorkaround;
185 extern Bool I830BindGARTMemory(ScrnInfoPtr pScrn);
186 extern Bool I830UnbindGARTMemory(ScrnInfoPtr pScrn);
187 extern unsigned long I830AllocVidMem(ScrnInfoPtr pScrn, I830MemRange *result,
188 - I830MemPool *pool, unsigned long size,
189 + I830MemPool *pool, long size,
190 unsigned long alignment, int flags);
192 extern void I830PrintAllRegisters(I830RegPtr i830Reg);
193 diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i830_driver.c programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
194 --- programs/Xserver/hw/xfree86/drivers/i810_old/i830_driver.c 2004-09-29 16:03:59.646813588 +0200
195 +++ programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c 2004-09-29 16:04:13.986717965 +0200
196 @@ -1028,7 +1028,7 @@
197 I830MapMem(ScrnInfoPtr pScrn)
199 I830Ptr pI830 = I830PTR(pScrn);
203 for (i = 2; i < pI830->FbMapSize; i <<= 1) ;
204 pI830->FbMapSize = i;
205 @@ -2909,7 +2909,7 @@
206 OUTREG(LP_RING + RING_TAIL, 0);
207 OUTREG(LP_RING + RING_HEAD, 0);
209 - if ((pI830->LpRing->mem.Start & I830_RING_START_MASK) !=
210 + if ((long)(pI830->LpRing->mem.Start & I830_RING_START_MASK) !=
211 pI830->LpRing->mem.Start) {
212 xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
213 "I830SetRingRegs: Ring buffer start (%lx) violates its "
214 @@ -3452,7 +3452,7 @@
215 I830Ptr pI8301 = I830PTR(pI830->entityPrivate->pScrn_1);
217 temp = INREG(stridereg);
218 - if (temp / pI8301->cpp != pI830->entityPrivate->pScrn_1->displayWidth) {
219 + if (temp / pI8301->cpp != (CARD32)(pI830->entityPrivate->pScrn_1->displayWidth)) {
220 xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
221 "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(pI830->pipe),
222 (int)(temp / pI8301->cpp), pI830->entityPrivate->pScrn_1->displayWidth);
223 @@ -3470,7 +3470,7 @@
224 sizereg = pI830->pipe ? DSPASIZE : DSPBSIZE;
226 temp = INREG(stridereg);
227 - if (temp / pI8302->cpp != pI830->entityPrivate->pScrn_2->displayWidth) {
228 + if (temp / pI8302->cpp != (CARD32)(pI830->entityPrivate->pScrn_2->displayWidth)) {
229 xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
230 "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(!pI830->pipe),
231 (int)(temp / pI8302->cpp), pI830->entityPrivate->pScrn_2->displayWidth);
232 @@ -3489,7 +3489,7 @@
233 I830Ptr pI8302 = I830PTR(pI830->entityPrivate->pScrn_2);
235 temp = INREG(stridereg);
236 - if (temp / pI8301->cpp != pI830->entityPrivate->pScrn_1->displayWidth) {
237 + if (temp / pI8301->cpp != (CARD32)(pI830->entityPrivate->pScrn_1->displayWidth)) {
238 xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
239 "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(pI830->pipe),
240 (int)(temp / pI8301->cpp), pI830->entityPrivate->pScrn_1->displayWidth);
241 @@ -3505,7 +3505,7 @@
242 sizereg = !pI830->pipe ? DSPASIZE : DSPBSIZE;
244 temp = INREG(stridereg);
245 - if (temp / pI8302->cpp != pI830->entityPrivate->pScrn_2->displayWidth) {
246 + if (temp / pI8302->cpp != ((CARD32)pI830->entityPrivate->pScrn_2->displayWidth)) {
247 xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
248 "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(!pI830->pipe),
249 (int)(temp / pI8302->cpp), pI830->entityPrivate->pScrn_2->displayWidth);
250 @@ -3526,7 +3526,7 @@
253 temp = INREG(stridereg);
254 - if (temp / pI830->cpp != pScrn->displayWidth) {
255 + if (temp / pI830->cpp != (CARD32)pScrn->displayWidth) {
256 xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
257 "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(i),
258 (int)(temp / pI830->cpp), pScrn->displayWidth);
259 @@ -4527,7 +4527,8 @@
260 ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
261 I830Ptr pI830 = I830PTR(pScrn);
262 Bool on = xf86IsUnblank(mode);
263 - CARD32 temp, ctrl, base, i;
264 + CARD32 temp, ctrl, base;
267 DPRINTF(PFX, "I830BIOSSaveScreen: %d, on is %s\n", mode, BOOLTOSTRING(on));
269 Only in programs/Xserver/hw/xfree86/drivers/i810: i830_driver.c.orig
270 diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i830_memory.c programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c
271 --- programs/Xserver/hw/xfree86/drivers/i810_old/i830_memory.c 2004-09-29 16:03:59.547828054 +0200
272 +++ programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c 2004-09-29 16:04:13.988717673 +0200
276 AllocFromPool(ScrnInfoPtr pScrn, I830MemRange *result, I830MemPool *pool,
277 - unsigned long size, unsigned long alignment, int flags)
278 + long size, unsigned long alignment, int flags)
280 I830Ptr pI830 = I830PTR(pScrn);
281 - unsigned long needed, start, end;
282 + long needed, start, end;
283 Bool dryrun = ((flags & ALLOCATE_DRY_RUN) != 0);
285 if (!result || !pool || !size)
289 if (needed > pool->Free.Size) {
290 - unsigned long extra;
292 /* See if the pool can be grown. */
293 if (pI830->StolenOnly && !dryrun)
299 - if (!dryrun && (extra > pI830->MemoryAperture.Size))
300 + if (!dryrun && ((long)extra > pI830->MemoryAperture.Size))
303 pool->Free.Size += extra;
308 -AllocFromAGP(ScrnInfoPtr pScrn, I830MemRange *result, unsigned long size,
309 +AllocFromAGP(ScrnInfoPtr pScrn, I830MemRange *result, long size,
310 unsigned long alignment, int flags)
312 I830Ptr pI830 = I830PTR(pScrn);
316 I830AllocVidMem(ScrnInfoPtr pScrn, I830MemRange *result, I830MemPool *pool,
317 - unsigned long size, unsigned long alignment, int flags)
318 + long size, unsigned long alignment, int flags)
320 I830Ptr pI830 = I830PTR(pScrn);
321 Bool dryrun = ((flags & ALLOCATE_DRY_RUN) != 0);
323 I830Allocate2DMemory(ScrnInfoPtr pScrn, const int flags)
325 I830Ptr pI830 = I830PTR(pScrn);
326 - unsigned long size, alloced;
327 + long size, alloced;
328 Bool dryrun = ((flags & ALLOCATE_DRY_RUN) != 0);
329 int verbosity = dryrun ? 4 : 1;
330 const char *s = dryrun ? "[dryrun] " : "";
335 - unsigned long lineSize;
336 - unsigned long extra = 0;
337 - unsigned long maxFb = 0;
343 * XXX Need to "free" up any 3D allocations if the DRI ended up
345 I830GetExcessMemoryAllocations(ScrnInfoPtr pScrn)
347 I830Ptr pI830 = I830PTR(pScrn);
348 - unsigned long allocated;
351 allocated = pI830->StolenPool.Total.Size + pI830->allocatedMemory;
352 if (allocated > pI830->TotalVideoRam)
353 @@ -1367,7 +1367,7 @@
354 I830Ptr pI830 = I830PTR(pScrn);
355 int pitch, ntiles, i;
356 static int nextTile = 0;
357 - static int tileGeneration = -1;
358 + static unsigned int tileGeneration = -1;
361 /* Hack to "improve" the alignment of the front buffer.