ChangeLog | 125 +++++++++++++++++++++++++++++++++ debian/changelog | 17 ++++ src/savage_accel.c | 3 src/savage_cursor.c | 2 src/savage_dga.c | 8 +- src/savage_dri.c | 193 ++++++++++++++++++++++++++-------------------------- src/savage_driver.c | 31 ++++---- src/savage_driver.h | 1 src/savage_exa.c | 3 src/savage_hwmc.c | 10 +- src/savage_vbe.c | 10 +- src/savage_video.c | 35 ++++----- 12 files changed, 292 insertions(+), 146 deletions(-)
New commits: commit be186c1aebb6c656c6e5b9ba7cf91018faa1ae76 Author: Tormod Volden <debian.tor...@gmail.com> Date: Mon Feb 21 22:05:06 2011 +0100 New upstream snapshot, bump changelogs diff --git a/ChangeLog b/ChangeLog index 29b05ed..f8c4a54 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,128 @@ +commit aff8f966c6d3f7dbad2d92d040ce7f5c4b286eef +Author: Tormod Volden <debian.tor...@gmail.com> +Date: Sun Feb 13 23:04:09 2011 +0100 + + Use proper casts on framebuffer addresses + + Correction to df8059025cafadaeea7672842d31134ed8c9c5df. + Casting addresses to int is a 32bitism. If we want to use + this intermediate cast to silence compiler warnings, we + should use uintptr_t instead to not introduce potential + bit truncation. + + Thanks to Mark Kettenis for spotting this. + + Signed-off-by: Tormod Volden <debian.tor...@gmail.com> + +commit 6b22be096bed59a853e5e1cdd25d8943cce30d4f +Author: Tormod Volden <debian.tor...@gmail.com> +Date: Sun Jan 23 23:45:49 2011 +0100 + + savage: Fix initialization typo in SAVAGEDRIMoveBuffers + + This was warned about when building with -O2, and seems + to be a copy-and-paste glitch. + + savage_dri.c: In function ‘SAVAGEDRIMoveBuffers’: + savage_dri.c:1445: warning: ‘pptNew2’ may be used uninitialized in this function + +commit 9872b5f7ce7a7b07ff68bd2c389c56a3cb1b4ed6 +Author: Tormod Volden <debian.tor...@gmail.com> +Date: Sun Jan 23 22:47:01 2011 +0100 + + savage: Fix building with TRACEON defined + + Two warnings and an error. + +commit b018d343e6a6810afdaf1a73091dd9bc8c1c95bd +Author: Tormod Volden <debian.tor...@gmail.com> +Date: Sun Jan 23 20:23:49 2011 +0100 + + savage: Setup tiled surface registers in SavageEnterVT + + These registers are cleared after suspend/resume, so set them + up again in EnterVT. + +commit f3cd2946d0f38e89643aa6624e6bf35472828995 +Author: Tormod Volden <debian.tor...@gmail.com> +Date: Sun Jan 23 20:23:48 2011 +0100 + + savage: Factor out a SAVAGEDRISetupTiledSurfaceRegs function + + The tiled surface registers were only setup in SAVAGEDRIScreenInit, + however, after suspend/resume these registers must be set up again. + So factor it out in a new function so it can be reused. + +commit 055ca25faeb9decee091e8c59134c8f537bb7bc3 +Author: Tormod Volden <debian.tor...@gmail.com> +Date: Sun Jan 23 19:28:47 2011 +0100 + + savage: Cast all handles before printing them + + Removes the last bunch of -Wall build warnings. + + savage_dri.c:490: warning: format ‘%08lx’ expects type ‘long unsigned int’, + but argument 5 has type ‘drm_handle_t’ + ... + +commit 3f18b334812086e5f487a4570a34a3906a67724c +Author: Tormod Volden <debian.tor...@gmail.com> +Date: Sun Jan 23 15:49:58 2011 +0100 + + savage: Fix ambiguity in SavageLoadPaletteSavage4 + + It looks like "!" was meant for logic negation and the parentheses + were wrong. + + I don't have a Savage 4 so I can't check if this fixes or breaks + anything. + +commit 6f8aa9c90cccbd893323f5f1892958b7f46e400d +Author: Tormod Volden <debian.tor...@gmail.com> +Date: Sun Jan 23 15:49:57 2011 +0100 + + savage: Drop unused variables and functions + + Silence -Wall warnings. + + The functions are just #if'ed out, to be left for inspiration. + +commit df8059025cafadaeea7672842d31134ed8c9c5df +Author: Tormod Volden <debian.tor...@gmail.com> +Date: Sun Jan 23 12:47:04 2011 +0100 + + savage: More (intermediate) casts to silence warnings + + savage_dga.c: In function ‘Savage_OpenFramebuffer’: + savage_dga.c:393: warning: cast to pointer from integer of different size + + savage_dri.c: In function ‘SAVAGEDRIScreenInit’: + savage_dri.c:924: warning: cast to pointer from integer of different size + +commit 35d9734049a0f701d2c1f84f778f30816176d29e +Author: Tormod Volden <debian.tor...@gmail.com> +Date: Sun Jan 23 12:47:02 2011 +0100 + + savage: Replace deprecated x(c)alloc/xfree with m/calloc/free + + sed -i 's/xalloc/malloc/g; s/xcalloc/calloc/g; s/xfree/free/g' + + Also replace xrealloc with realloc. + +commit 0cbb6d275726aaed648b5ea4dcff45ce14388f91 +Author: Tormod Volden <debian.tor...@gmail.com> +Date: Sun Jan 23 12:47:03 2011 +0100 + + savage: Add casts to silence build warnings + + savage_exa.c: In function ‘SavageUploadToScreen’: + savage_exa.c:545: warning: passing argument 1 of ‘memcpy’ discards qualifiers from pointer target type + /usr/include/bits/string3.h:49: note: expected ‘void * restrict’ but argument is of type ‘volatile CARD32 *’ + + savage_video.c: In function ‘SavagePutImage’: + savage_video.c:2007: warning: format ‘%ld’ expects type ‘long int’, but argument 4 has type ‘drmSize’ + savage_video.c:2007: warning: format ‘%ld’ expects type ‘long int’, but argument 5 has type ‘int’ + commit cdfbd9674ccce6d0c96c1b16ad61eac5d5648e43 Author: Dave Airlie <airl...@linux.ie> Date: Sun Dec 5 19:09:12 2010 +1000 diff --git a/debian/changelog b/debian/changelog index 9ec59a0..226d5cb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,20 @@ +xserver-xorg-video-savage (1:2.3.2+git20110221.aff8f96-1) UNRELEASED; urgency=low + + * New upstream snapshot: + - aff8f96... Use proper casts on framebuffer addresses + - 6b22be0... savage: Fix initialization typo in SAVAGEDRIMoveBuffers + - 9872b5f... savage: Fix building with TRACEON defined + - b018d34... savage: Setup tiled surface registers in SavageEnterVT + - f3cd294... savage: Factor out a SAVAGEDRISetupTiledSurfaceRegs function + - 055ca25... savage: Cast all handles before printing them + - 3f18b33... savage: Fix ambiguity in SavageLoadPaletteSavage4 + - 6f8aa9c... savage: Drop unused variables and functions + - df80590... savage: More (intermediate) casts to silence warnings + - 35d9734... savage: Replace deprecated x(c)alloc/xfree with m/calloc/free + - 0cbb6d2... savage: Add casts to silence build warnings + + -- Tormod Volden <debian.tor...@gmail.com> Mon, 21 Feb 2011 22:00:45 +0100 + xserver-xorg-video-savage (1:2.3.2-2) unstable; urgency=low * Switch to dh: commit aff8f966c6d3f7dbad2d92d040ce7f5c4b286eef Author: Tormod Volden <debian.tor...@gmail.com> Date: Sun Feb 13 23:04:09 2011 +0100 Use proper casts on framebuffer addresses Correction to df8059025cafadaeea7672842d31134ed8c9c5df. Casting addresses to int is a 32bitism. If we want to use this intermediate cast to silence compiler warnings, we should use uintptr_t instead to not introduce potential bit truncation. Thanks to Mark Kettenis for spotting this. Signed-off-by: Tormod Volden <debian.tor...@gmail.com> diff --git a/src/savage_dga.c b/src/savage_dga.c index 92a179e..1c4d884 100644 --- a/src/savage_dga.c +++ b/src/savage_dga.c @@ -390,7 +390,7 @@ Savage_OpenFramebuffer( SavagePtr psav = SAVPTR(pScrn); *name = NULL; /* no special device */ - *mem = (unsigned char*)(int) psav->FbRegion.base; + *mem = (unsigned char*)(uintptr_t) psav->FbRegion.base; *size = psav->videoRambytes; *offset = 0; *flags = DGA_NEED_ROOT; diff --git a/src/savage_dri.c b/src/savage_dri.c index d43b8eb..e0b9f86 100644 --- a/src/savage_dri.c +++ b/src/savage_dri.c @@ -922,7 +922,7 @@ Bool SAVAGEDRIScreenInit( ScreenPtr pScreen ) pDRIInfo->ddxDriverMinorVersion = SAVAGE_VERSION_MINOR; pDRIInfo->ddxDriverPatchVersion = SAVAGE_PATCHLEVEL; - pDRIInfo->frameBufferPhysicalAddress = (pointer)(int) psav->FbRegion.base; + pDRIInfo->frameBufferPhysicalAddress = (pointer)(uintptr_t) psav->FbRegion.base; pDRIInfo->frameBufferSize = psav->videoRambytes; pDRIInfo->frameBufferStride = pScrn->displayWidth*(pScrn->bitsPerPixel/8); pDRIInfo->ddxDrawableTableEntry = SAVAGE_MAX_DRAWABLES; commit 6b22be096bed59a853e5e1cdd25d8943cce30d4f Author: Tormod Volden <debian.tor...@gmail.com> Date: Sun Jan 23 23:45:49 2011 +0100 savage: Fix initialization typo in SAVAGEDRIMoveBuffers This was warned about when building with -O2, and seems to be a copy-and-paste glitch. savage_dri.c: In function ‘SAVAGEDRIMoveBuffers’: savage_dri.c:1445: warning: ‘pptNew2’ may be used uninitialized in this function diff --git a/src/savage_dri.c b/src/savage_dri.c index 2c7a077..d43b8eb 100644 --- a/src/savage_dri.c +++ b/src/savage_dri.c @@ -1457,7 +1457,7 @@ SAVAGEDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, pboxNew1 = 0; pptNew1 = 0; pboxNew2 = 0; - pboxNew2 = 0; + pptNew2 = 0; pptSrc = &ptOldOrg; dx = pParent->drawable.x - ptOldOrg.x; commit 9872b5f7ce7a7b07ff68bd2c389c56a3cb1b4ed6 Author: Tormod Volden <debian.tor...@gmail.com> Date: Sun Jan 23 22:47:01 2011 +0100 savage: Fix building with TRACEON defined Two warnings and an error. diff --git a/src/savage_driver.c b/src/savage_driver.c index 1a76c77..3098731 100644 --- a/src/savage_driver.c +++ b/src/savage_driver.c @@ -648,7 +648,7 @@ static Bool SavageGetRec(ScrnInfoPtr pScrn) static void SavageFreeRec(ScrnInfoPtr pScrn) { - TRACE(( "SavageFreeRec(%x)\n", pScrn->driverPrivate )); + TRACE(( "SavageFreeRec(%p)\n", pScrn->driverPrivate )); if (!pScrn->driverPrivate) return; SavageUnmapMem(pScrn, 1); @@ -3062,7 +3062,7 @@ static void SavageUnmapMem(ScrnInfoPtr pScrn, int All) { SavagePtr psav = SAVPTR(pScrn); - TRACE(("SavageUnmapMem(%x,%x)\n", psav->MapBase, psav->FBBase)); + TRACE(("SavageUnmapMem(%p,%p)\n", psav->MapBase, psav->FBBase)); if (psav->PrimaryVidMapped) { vgaHWUnmapMem(pScrn); @@ -4064,7 +4064,7 @@ SavageDoAdjustFrame(ScrnInfoPtr pScrn, int x, int y, int crtc2) SavagePtr psav = SAVPTR(pScrn); int address=0,top=0,left=0,tile_height,tile_size; - TRACE(("SavageDoAdjustFrame(%d,%d,%x)\n", x, y, flags)); + TRACE(("SavageDoAdjustFrame(%d,%d,%d)\n", x, y, crtc2)); if (psav->Chipset == S3_SAVAGE2000) { tile_height = TILEHEIGHT_2000; /* 32 */ commit b018d343e6a6810afdaf1a73091dd9bc8c1c95bd Author: Tormod Volden <debian.tor...@gmail.com> Date: Sun Jan 23 20:23:49 2011 +0100 savage: Setup tiled surface registers in SavageEnterVT These registers are cleared after suspend/resume, so set them up again in EnterVT. diff --git a/src/savage_driver.c b/src/savage_driver.c index 38db9f6..1a76c77 100644 --- a/src/savage_driver.c +++ b/src/savage_driver.c @@ -2219,6 +2219,7 @@ static Bool SavageEnterVT(int scrnIndex, int flags) pSAREAPriv->ctxOwner = DRIGetContext(pScreen); DRIUnlock(pScreen); psav->LockHeld = 0; + SAVAGEDRISetupTiledSurfaceRegs ( psav ); } #endif if (!SAVPTR(pScrn)->IsSecondary) diff --git a/src/savage_driver.h b/src/savage_driver.h index 9c0ba58..64587fc 100644 --- a/src/savage_driver.h +++ b/src/savage_driver.h @@ -559,6 +559,7 @@ Bool SAVAGEDRIScreenInit( ScreenPtr pScreen ); Bool SAVAGEInitMC(ScreenPtr pScreen); void SAVAGEDRICloseScreen( ScreenPtr pScreen ); Bool SAVAGEDRIFinishScreenInit( ScreenPtr pScreen ); +void SAVAGEDRISetupTiledSurfaceRegs ( SavagePtr psav ); Bool SAVAGELockUpdate( ScrnInfoPtr pScrn, drmLockFlags flags ); commit f3cd2946d0f38e89643aa6624e6bf35472828995 Author: Tormod Volden <debian.tor...@gmail.com> Date: Sun Jan 23 20:23:48 2011 +0100 savage: Factor out a SAVAGEDRISetupTiledSurfaceRegs function The tiled surface registers were only setup in SAVAGEDRIScreenInit, however, after suspend/resume these registers must be set up again. So factor it out in a new function so it can be reused. diff --git a/src/savage_dri.c b/src/savage_dri.c index 088c4b2..2c7a077 100644 --- a/src/savage_dri.c +++ b/src/savage_dri.c @@ -1078,6 +1078,49 @@ Bool SAVAGEDRIScreenInit( ScreenPtr pScreen ) return TRUE; } +void SAVAGEDRISetupTiledSurfaceRegs( SavagePtr psav ) +{ + SAVAGEDRIPtr pSAVAGEDRI = (SAVAGEDRIPtr)psav->pDRIInfo->devPrivate; + unsigned int value = 0; + + OUTREG(0x850C,(INREG(0x850C) | 0x00008000)); /* AGD: I don't think this does anything on 3D/MX/IX */ + /* maybe savage4 too... */ + /* we don't use Y range flag,so comment it */ + /* + if(pSAVAGEDRI->width <= 1024) + value |= (1<<29); + */ + if ((psav->Chipset == S3_SAVAGE_MX) /* 3D/MX/IX seem to set up the tile stride differently */ + || (psav->Chipset == S3_SAVAGE3D)) { + if(pSAVAGEDRI->cpp == 2) + { + value |= ((psav->lDelta / 4) >> 5) << 24; + value |= 2<<30; + } else { + value |= ((psav->lDelta / 4) >> 5) << 24; + value |= 3<<30; + } + + OUTREG(TILED_SURFACE_REGISTER_0, value|(pSAVAGEDRI->frontOffset) ); /* front */ + OUTREG(TILED_SURFACE_REGISTER_1, value|(pSAVAGEDRI->backOffset) ); /* back */ + OUTREG(TILED_SURFACE_REGISTER_2, value|(pSAVAGEDRI->depthOffset) ); /* depth */ + } else { + int offset_shift = 5; + if(pSAVAGEDRI->cpp == 2) + { + value |= (((pSAVAGEDRI->width + 0x3F) & 0xFFC0) >> 6) << 20; + value |= 2<<30; + } else { + value |= (((pSAVAGEDRI->width + 0x1F) & 0xFFE0) >> 5) << 20; + value |= 3<<30; + } + if (psav->Chipset == S3_SUPERSAVAGE) /* supersavages have a different shift */ + offset_shift = 6; + OUTREG(TILED_SURFACE_REGISTER_0, value|(pSAVAGEDRI->frontOffset >> offset_shift) ); /* front */ + OUTREG(TILED_SURFACE_REGISTER_1, value|(pSAVAGEDRI->backOffset >> offset_shift) ); /* back */ + OUTREG(TILED_SURFACE_REGISTER_2, value|(pSAVAGEDRI->depthOffset >> offset_shift) ); /* depth */ + } +} Bool SAVAGEDRIFinishScreenInit( ScreenPtr pScreen ) { @@ -1149,48 +1192,6 @@ Bool SAVAGEDRIFinishScreenInit( ScreenPtr pScreen ) pSAVAGEDRI->apertureHandle = pSAVAGEDRIServer->aperture.handle; pSAVAGEDRI->apertureSize = pSAVAGEDRIServer->aperture.size; pSAVAGEDRI->aperturePitch = psav->ulAperturePitch; - - { - unsigned int value = 0; - - OUTREG(0x850C,(INREG(0x850C) | 0x00008000)); /* AGD: I don't think this does anything on 3D/MX/IX */ - /* maybe savage4 too... */ - /* we don't use Y range flag,so comment it */ - /* - if(pSAVAGEDRI->width <= 1024) - value |= (1<<29); - */ - if ((psav->Chipset == S3_SAVAGE_MX) /* 3D/MX/IX seem to set up the tile stride differently */ - || (psav->Chipset == S3_SAVAGE3D)) { - if(pSAVAGEDRI->cpp == 2) - { - value |= ((psav->lDelta / 4) >> 5) << 24; - value |= 2<<30; - } else { - value |= ((psav->lDelta / 4) >> 5) << 24; - value |= 3<<30; - } - - OUTREG(TILED_SURFACE_REGISTER_0, value|(pSAVAGEDRI->frontOffset) ); /* front */ - OUTREG(TILED_SURFACE_REGISTER_1, value|(pSAVAGEDRI->backOffset) ); /* back */ - OUTREG(TILED_SURFACE_REGISTER_2, value|(pSAVAGEDRI->depthOffset) ); /* depth */ - } else { - int offset_shift = 5; - if(pSAVAGEDRI->cpp == 2) - { - value |= (((pSAVAGEDRI->width + 0x3F) & 0xFFC0) >> 6) << 20; - value |= 2<<30; - } else { - value |= (((pSAVAGEDRI->width + 0x1F) & 0xFFE0) >> 5) << 20; - value |= 3<<30; - } - if (psav->Chipset == S3_SUPERSAVAGE) /* supersavages have a different shift */ - offset_shift = 6; - OUTREG(TILED_SURFACE_REGISTER_0, value|(pSAVAGEDRI->frontOffset >> offset_shift) ); /* front */ - OUTREG(TILED_SURFACE_REGISTER_1, value|(pSAVAGEDRI->backOffset >> offset_shift) ); /* back */ - OUTREG(TILED_SURFACE_REGISTER_2, value|(pSAVAGEDRI->depthOffset >> offset_shift) ); /* depth */ - } - } pSAVAGEDRI->statusHandle = pSAVAGEDRIServer->status.handle; pSAVAGEDRI->statusSize = pSAVAGEDRIServer->status.size; @@ -1282,6 +1283,7 @@ Bool SAVAGEDRIFinishScreenInit( ScreenPtr pScreen ) xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] sarea_priv_offset:0x%08x\n",pSAVAGEDRI->sarea_priv_offset); + SAVAGEDRISetupTiledSurfaceRegs( psav ); return TRUE; } commit 055ca25faeb9decee091e8c59134c8f537bb7bc3 Author: Tormod Volden <debian.tor...@gmail.com> Date: Sun Jan 23 19:28:47 2011 +0100 savage: Cast all handles before printing them Removes the last bunch of -Wall build warnings. savage_dri.c:490: warning: format ‘%08lx’ expects type ‘long unsigned int’, but argument 5 has type ‘drm_handle_t’ ... diff --git a/src/savage_dri.c b/src/savage_dri.c index 90d3442..088c4b2 100644 --- a/src/savage_dri.c +++ b/src/savage_dri.c @@ -487,7 +487,8 @@ static Bool SAVAGEDRIAgpInit(ScreenPtr pScreen) } xf86DrvMsg( pScreen->myNum, X_INFO, "[agp] %d kB allocated with handle 0x%08lx\n", - pSAVAGEDRIServer->agp.size/1024, pSAVAGEDRIServer->agp.handle ); + pSAVAGEDRIServer->agp.size/1024, + (unsigned long)pSAVAGEDRIServer->agp.handle ); if ( drmAgpBind( psav->drmFD, pSAVAGEDRIServer->agp.handle, 0 ) < 0 ) { xf86DrvMsg( pScreen->myNum, X_ERROR, "[agp] Could not bind memory\n" ); @@ -547,7 +548,7 @@ static Bool SAVAGEDRIAgpInit(ScreenPtr pScreen) } xf86DrvMsg( pScreen->myNum, X_INFO, "[agp] command DMA handle = 0x%08lx\n", - pSAVAGEDRIServer->cmdDma.handle ); + (unsigned long)pSAVAGEDRIServer->cmdDma.handle ); /* not needed in the server if ( drmMap( psav->drmFD, pSAVAGEDRIServer->cmdDma.handle, @@ -573,7 +574,7 @@ static Bool SAVAGEDRIAgpInit(ScreenPtr pScreen) } xf86DrvMsg( pScreen->myNum, X_INFO, "[agp] DMA buffers handle = 0x%08lx\n", - pSAVAGEDRIServer->buffers.handle ); + (unsigned long)pSAVAGEDRIServer->buffers.handle ); /* not needed in the server if ( drmMap( psav->drmFD, pSAVAGEDRIServer->buffers.handle, @@ -605,7 +606,7 @@ static Bool SAVAGEDRIAgpInit(ScreenPtr pScreen) } else { xf86DrvMsg( pScreen->myNum, X_INFO, "[agp] agpXVideo handle = 0x%08lx\n", - pSAVAGEDRIServer->agpXVideo.handle ); + (unsigned long)pSAVAGEDRIServer->agpXVideo.handle ); } } @@ -623,7 +624,7 @@ static Bool SAVAGEDRIAgpInit(ScreenPtr pScreen) /* pSAVAGEDRIServer->agp_offset=pSAVAGEDRIServer->agpTexture.size;*/ xf86DrvMsg( pScreen->myNum, X_INFO, "[agp] agpTextures handle = 0x%08lx\n", - pSAVAGEDRIServer->agpTextures.handle ); + (unsigned long)pSAVAGEDRIServer->agpTextures.handle ); /* not needed in the server if ( drmMap( psav->drmFD, @@ -675,7 +676,7 @@ static Bool SAVAGEDRIMapInit( ScreenPtr pScreen ) xf86DrvMsg( pScreen->myNum, X_INFO, "[drm] aperture handle = 0x%08lx\n", - pSAVAGEDRIServer->aperture.handle ); + (unsigned long)pSAVAGEDRIServer->aperture.handle ); /*if(drmMap(psav->drmFD, pSAVAGEDRIServer->registers.handle, @@ -700,7 +701,7 @@ static Bool SAVAGEDRIMapInit( ScreenPtr pScreen ) } else xf86DrvMsg( pScreen->myNum, X_INFO, "[drm] PCI command DMA handle = 0x%08lx\n", - pSAVAGEDRIServer->cmdDma.handle ); + (unsigned long)pSAVAGEDRIServer->cmdDma.handle ); } /* Enable ShadowStatus by default for direct rendering. */ @@ -724,7 +725,7 @@ static Bool SAVAGEDRIMapInit( ScreenPtr pScreen ) } xf86DrvMsg( pScreen->myNum, X_INFO, "[drm] Status handle = 0x%08lx\n", - pSAVAGEDRIServer->status.handle ); + (unsigned long)pSAVAGEDRIServer->status.handle ); if ( drmMap( psav->drmFD, pSAVAGEDRIServer->status.handle, @@ -1216,29 +1217,29 @@ Bool SAVAGEDRIFinishScreenInit( ScreenPtr pScreen ) xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] textureSize:0x%08x\n",pSAVAGEDRIServer->textureSize); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] logTextureGranularity:0x%08x\n",pSAVAGEDRIServer->logTextureGranularity); - xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agp:handle:0x%08lx\n",pSAVAGEDRIServer->agp.handle); + xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agp:handle:0x%08lx\n",(unsigned long)pSAVAGEDRIServer->agp.handle); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agp:offset:0x%08x\n",pSAVAGEDRIServer->agp.offset); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agp:size:0x%08x\n",pSAVAGEDRIServer->agp.size); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agp:map:0x%08lx\n",(unsigned long)pSAVAGEDRIServer->agp.map); - xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] registers:handle:0x%08lx\n",pSAVAGEDRIServer->registers.handle); + xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] registers:handle:0x%08lx\n",(unsigned long)pSAVAGEDRIServer->registers.handle); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] registers:offset:0x%08x\n",pSAVAGEDRIServer->registers.offset); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] registers:size:0x%08x\n",pSAVAGEDRIServer->registers.size); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] registers:map:0x%08lx\n",(unsigned long)pSAVAGEDRIServer->registers.map); - xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] status:handle:0x%08lx\n",pSAVAGEDRIServer->status.handle); + xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] status:handle:0x%08lx\n",(unsigned long)pSAVAGEDRIServer->status.handle); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] status:offset:0x%08x\n",pSAVAGEDRIServer->status.offset); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] status:size:0x%08x\n",pSAVAGEDRIServer->status.size); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] status:map:0x%08lx\n",(unsigned long)pSAVAGEDRIServer->status.map); - xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agpTextures:handle:0x%08lx\n",pSAVAGEDRIServer->agpTextures.handle); + xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agpTextures:handle:0x%08lx\n",(unsigned long)pSAVAGEDRIServer->agpTextures.handle); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agpTextures:offset:0x%08x\n",pSAVAGEDRIServer->agpTextures.offset); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agpTextures:size:0x%08x\n",pSAVAGEDRIServer->agpTextures.size); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] apgTextures:map:0x%08lx\n",(unsigned long)pSAVAGEDRIServer->agpTextures.map); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] logAgpTextureGranularity:0x%08x\n",pSAVAGEDRIServer->logAgpTextureGranularity); - xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] cmdDma:handle:0x%08lx\n",pSAVAGEDRIServer->cmdDma.handle); + xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] cmdDma:handle:0x%08lx\n",(unsigned long)pSAVAGEDRIServer->cmdDma.handle); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] cmdDma:offset:0x%08x\n",pSAVAGEDRIServer->cmdDma.offset); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] cmdDma:size:0x%08x\n",pSAVAGEDRIServer->cmdDma.size); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] cmdDma:map:0x%08lx\n",(unsigned long)pSAVAGEDRIServer->cmdDma.map); @@ -1268,15 +1269,15 @@ Bool SAVAGEDRIFinishScreenInit( ScreenPtr pScreen ) xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] textureSize:0x%08x\n",pSAVAGEDRI->textureSize ); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] logTextureGranularity:0x%08x\n",pSAVAGEDRI->logTextureGranularity ); - xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agpTextureHandle:0x%08lx\n",pSAVAGEDRI->agpTextureHandle ); + xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agpTextureHandle:0x%08lx\n",(unsigned long)pSAVAGEDRI->agpTextureHandle ); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] agpTextureSize:0x%08x\n",pSAVAGEDRI->agpTextureSize ); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] logAgpTextureGranularity:0x%08x\n",pSAVAGEDRI->logAgpTextureGranularity ); - xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] apertureHandle:0x%08lx\n",pSAVAGEDRI->apertureHandle); + xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] apertureHandle:0x%08lx\n",(unsigned long)pSAVAGEDRI->apertureHandle); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] apertureSize:0x%08x\n",pSAVAGEDRI->apertureSize); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] aperturePitch:0x%08x\n",pSAVAGEDRI->aperturePitch); - xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] statusHandle:0x%08lx\n",pSAVAGEDRI->statusHandle); + xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] statusHandle:0x%08lx\n",(unsigned long)pSAVAGEDRI->statusHandle); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] statusSize:0x%08x\n",pSAVAGEDRI->statusSize); xf86DrvMsg( pScrn->scrnIndex, X_INFO, "[junkers] sarea_priv_offset:0x%08x\n",pSAVAGEDRI->sarea_priv_offset); commit 3f18b334812086e5f487a4570a34a3906a67724c Author: Tormod Volden <debian.tor...@gmail.com> Date: Sun Jan 23 15:49:58 2011 +0100 savage: Fix ambiguity in SavageLoadPaletteSavage4 It looks like "!" was meant for logic negation and the parentheses were wrong. I don't have a Savage 4 so I can't check if this fixes or breaks anything. diff --git a/src/savage_driver.c b/src/savage_driver.c index b0b26b9..38db9f6 100644 --- a/src/savage_driver.c +++ b/src/savage_driver.c @@ -4295,7 +4295,7 @@ void SavageLoadPaletteSavage4(ScrnInfoPtr pScrn, int numColors, int *indicies, VerticalRetraceWait(); for (i=0; i<numColors; i++) { - if (!(inStatus1()) & 0x08) + if (!(inStatus1() & 0x08)) VerticalRetraceWait(); index = indicies[i]; VGAOUT8(0x3c8, index); commit 6f8aa9c90cccbd893323f5f1892958b7f46e400d Author: Tormod Volden <debian.tor...@gmail.com> Date: Sun Jan 23 15:49:57 2011 +0100 savage: Drop unused variables and functions Silence -Wall warnings. The functions are just #if'ed out, to be left for inspiration. diff --git a/src/savage_accel.c b/src/savage_accel.c index 73c2d90..24e0a22 100644 --- a/src/savage_accel.c +++ b/src/savage_accel.c @@ -1257,6 +1257,7 @@ void SavageSetGBD_2000(ScrnInfoPtr pScrn) OUTREG8(SEQ_DATA_REG,byte); } +#if 0 static void SavageRestoreAccelState(ScrnInfoPtr pScrn) { @@ -1266,6 +1267,7 @@ void SavageRestoreAccelState(ScrnInfoPtr pScrn) return; } +#endif /* Acceleration init function, sets up pointers to our accelerated functions */ @@ -1278,7 +1280,6 @@ SavageInitAccel(ScreenPtr pScreen) #ifdef XF86DRI if (psav->directRenderingEnabled) { SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo; - BoxRec MemBox; int cpp = pScrn->bitsPerPixel / 8; int widthBytes = psav->lDelta; int bufferSize = ((pScrn->virtualY * widthBytes + SAVAGE_BUFFER_ALIGN) diff --git a/src/savage_cursor.c b/src/savage_cursor.c index 1af2449..4d193eb 100644 --- a/src/savage_cursor.c +++ b/src/savage_cursor.c @@ -79,6 +79,7 @@ static void SavageSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg); * the HW cursor position. */ +#if 0 static Bool SavageUseHWCursor(ScreenPtr pScr, CursorPtr pCurs) { @@ -94,6 +95,7 @@ SavageUseHWCursor(ScreenPtr pScr, CursorPtr pCurs) } return TRUE; } +#endif Bool SavageHWCursorInit(ScreenPtr pScreen) diff --git a/src/savage_exa.c b/src/savage_exa.c index 5515f2c..4fe43e5 100644 --- a/src/savage_exa.c +++ b/src/savage_exa.c @@ -567,7 +567,6 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int Bool SavageDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst, int dst_pitch) { - ScrnInfoPtr pScrn = xf86Screens[pSrc->drawable.pScreen->myNum]; unsigned char *src = pSrc->devPrivate.ptr; int src_pitch = exaGetPixmapPitch(pSrc); int bpp = pSrc->drawable.bitsPerPixel; diff --git a/src/savage_video.c b/src/savage_video.c index 86ae0cd..9f860c7 100644 --- a/src/savage_video.c +++ b/src/savage_video.c @@ -1038,7 +1038,6 @@ SavageStopVideo(ScrnInfoPtr pScrn, pointer data, Bool shutdown) { SavagePortPrivPtr pPriv = (SavagePortPrivPtr)data; SavagePtr psav = SAVPTR(pScrn); - ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex]; xf86ErrorFVerb(XVTRACE,"SavageStopVideo\n"); @@ -1214,7 +1213,6 @@ SavageCopyPlanarDataBCI( unsigned long offsetV = offsetY + srcPitch * h; unsigned long offsetU = offsetV + srcPitch2 * (h>>1); unsigned long dstOffset = (unsigned long)dst - (unsigned long)psav->FBBase; - int i; unsigned char memType; BCI_GET_PTR; @@ -1975,7 +1973,6 @@ SavagePutImage( upload to framebuffer (slower) */ #ifdef XF86DRI if (!pPriv->tried_agp && !psav->IsPCI && psav->drmFD > 0 && psav->DRIServerInfo != NULL) { - int ret; SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo; pPriv->tried_agp = TRUE; @@ -2335,7 +2332,7 @@ SavageDisplaySurface( surface->width, surface->height, surface->pitches[0], x1, y1, x2, y2, &dstBox, src_w, src_h, drw_w, drw_h); - xf86XVFillKeyHelper(pScrn->pScreen, portPriv->colorKey, clipBoxes); + xf86XVFillKeyHelper(pScreen, portPriv->colorKey, clipBoxes); pPriv->isOn = TRUE; #if 0 commit df8059025cafadaeea7672842d31134ed8c9c5df Author: Tormod Volden <debian.tor...@gmail.com> Date: Sun Jan 23 12:47:04 2011 +0100 savage: More (intermediate) casts to silence warnings savage_dga.c: In function ‘Savage_OpenFramebuffer’: savage_dga.c:393: warning: cast to pointer from integer of different size savage_dri.c: In function ‘SAVAGEDRIScreenInit’: savage_dri.c:924: warning: cast to pointer from integer of different size diff --git a/src/savage_dga.c b/src/savage_dga.c index 7a9e22c..92a179e 100644 --- a/src/savage_dga.c +++ b/src/savage_dga.c @@ -390,7 +390,7 @@ Savage_OpenFramebuffer( SavagePtr psav = SAVPTR(pScrn); *name = NULL; /* no special device */ - *mem = (unsigned char*)psav->FbRegion.base; + *mem = (unsigned char*)(int) psav->FbRegion.base; *size = psav->videoRambytes; *offset = 0; *flags = DGA_NEED_ROOT; diff --git a/src/savage_dri.c b/src/savage_dri.c index e4ebf84..90d3442 100644 --- a/src/savage_dri.c +++ b/src/savage_dri.c @@ -921,7 +921,7 @@ Bool SAVAGEDRIScreenInit( ScreenPtr pScreen ) pDRIInfo->ddxDriverMinorVersion = SAVAGE_VERSION_MINOR; pDRIInfo->ddxDriverPatchVersion = SAVAGE_PATCHLEVEL; - pDRIInfo->frameBufferPhysicalAddress = (pointer) psav->FbRegion.base; + pDRIInfo->frameBufferPhysicalAddress = (pointer)(int) psav->FbRegion.base; pDRIInfo->frameBufferSize = psav->videoRambytes; pDRIInfo->frameBufferStride = pScrn->displayWidth*(pScrn->bitsPerPixel/8); pDRIInfo->ddxDrawableTableEntry = SAVAGE_MAX_DRAWABLES; commit 35d9734049a0f701d2c1f84f778f30816176d29e Author: Tormod Volden <debian.tor...@gmail.com> Date: Sun Jan 23 12:47:02 2011 +0100 savage: Replace deprecated x(c)alloc/xfree with m/calloc/free sed -i 's/xalloc/malloc/g; s/xcalloc/calloc/g; s/xfree/free/g' Also replace xrealloc with realloc. diff --git a/src/savage_dga.c b/src/savage_dga.c index eb1c5d2..7a9e22c 100644 --- a/src/savage_dga.c +++ b/src/savage_dga.c @@ -107,15 +107,15 @@ SavageSetupDGAMode( otherPitch = secondPitch ? secondPitch : pMode->HDisplay; if(pMode->HDisplay != otherPitch) { - newmodes = xrealloc(modes, (*num + 2) * sizeof(DGAModeRec)); + newmodes = realloc(modes, (*num + 2) * sizeof(DGAModeRec)); oneMore = TRUE; } else { - newmodes = xrealloc(modes, (*num + 1) * sizeof(DGAModeRec)); + newmodes = realloc(modes, (*num + 1) * sizeof(DGAModeRec)); oneMore = FALSE; } if(!newmodes) { - xfree(modes); + free(modes); return NULL; } modes = newmodes; diff --git a/src/savage_dri.c b/src/savage_dri.c index 190e8ee..e4ebf84 100644 --- a/src/savage_dri.c +++ b/src/savage_dri.c @@ -105,24 +105,24 @@ static Bool SAVAGEInitVisualConfigs( ScreenPtr pScreen ) case 16: numConfigs = 8; - pConfigs = (__GLXvisualConfig*)xcalloc( sizeof(__GLXvisualConfig), + pConfigs = (__GLXvisualConfig*)calloc( sizeof(__GLXvisualConfig), numConfigs ); if ( !pConfigs ) { return FALSE; } - pSAVAGEConfigs = (SAVAGEConfigPrivPtr)xcalloc( sizeof(SAVAGEConfigPrivRec), + pSAVAGEConfigs = (SAVAGEConfigPrivPtr)calloc( sizeof(SAVAGEConfigPrivRec), numConfigs ); if ( !pSAVAGEConfigs ) { - xfree( pConfigs ); + free( pConfigs ); return FALSE; } - pSAVAGEConfigPtrs = (SAVAGEConfigPrivPtr*)xcalloc( sizeof(SAVAGEConfigPrivPtr), + pSAVAGEConfigPtrs = (SAVAGEConfigPrivPtr*)calloc( sizeof(SAVAGEConfigPrivPtr), numConfigs ); if ( !pSAVAGEConfigPtrs ) { - xfree( pConfigs ); - xfree( pSAVAGEConfigs ); + free( pConfigs ); + free( pSAVAGEConfigs ); return FALSE; } @@ -201,24 +201,24 @@ static Bool SAVAGEInitVisualConfigs( ScreenPtr pScreen ) case 32: numConfigs = 8; - pConfigs = (__GLXvisualConfig*)xcalloc( sizeof(__GLXvisualConfig), + pConfigs = (__GLXvisualConfig*)calloc( sizeof(__GLXvisualConfig), numConfigs ); if ( !pConfigs ) { return FALSE; } - pSAVAGEConfigs = (SAVAGEConfigPrivPtr)xcalloc( sizeof(SAVAGEConfigPrivRec), + pSAVAGEConfigs = (SAVAGEConfigPrivPtr)calloc( sizeof(SAVAGEConfigPrivRec), numConfigs ); if ( !pSAVAGEConfigs ) { - xfree( pConfigs ); + free( pConfigs ); return FALSE; } - pSAVAGEConfigPtrs = (SAVAGEConfigPrivPtr*)xcalloc( sizeof(SAVAGEConfigPrivPtr), + pSAVAGEConfigPtrs = (SAVAGEConfigPrivPtr*)calloc( sizeof(SAVAGEConfigPrivPtr), numConfigs ); if ( !pSAVAGEConfigPtrs ) { - xfree( pConfigs ); - xfree( pSAVAGEConfigs ); + free( pConfigs ); + free( pSAVAGEConfigs ); return FALSE; } @@ -906,7 +906,7 @@ Bool SAVAGEDRIScreenInit( ScreenPtr pScreen ) if (xf86LoaderCheckSymbol("DRICreatePCIBusID")) { pDRIInfo->busIdString = DRICreatePCIBusID(psav->PciInfo); } else { - pDRIInfo->busIdString = xalloc(64); + pDRIInfo->busIdString = malloc(64); sprintf(pDRIInfo->busIdString, "PCI:%d:%d:%d", psav->PciInfo->bus, @@ -960,7 +960,7 @@ Bool SAVAGEDRIScreenInit( ScreenPtr pScreen ) pDRIInfo->SAREASize = SAREA_MAX; - pSAVAGEDRI = (SAVAGEDRIPtr)xcalloc( sizeof(SAVAGEDRIRec), 1 ); + pSAVAGEDRI = (SAVAGEDRIPtr)calloc( sizeof(SAVAGEDRIRec), 1 ); if ( !pSAVAGEDRI ) { DRIDestroyInfoRec( psav->pDRIInfo ); psav->pDRIInfo = 0; @@ -970,9 +970,9 @@ Bool SAVAGEDRIScreenInit( ScreenPtr pScreen ) } pSAVAGEDRIServer = (SAVAGEDRIServerPrivatePtr) - xcalloc( sizeof(SAVAGEDRIServerPrivateRec), 1 ); + calloc( sizeof(SAVAGEDRIServerPrivateRec), 1 ); if ( !pSAVAGEDRIServer ) { - xfree( pSAVAGEDRI ); + free( pSAVAGEDRI ); DRIDestroyInfoRec( psav->pDRIInfo ); psav->pDRIInfo = 0; xf86DrvMsg( pScrn->scrnIndex, X_ERROR, @@ -998,9 +998,9 @@ Bool SAVAGEDRIScreenInit( ScreenPtr pScreen ) pDRIInfo->bufferRequests = DRI_ALL_WINDOWS; if ( !DRIScreenInit( pScreen, pDRIInfo, &psav->drmFD ) ) { - xfree( pSAVAGEDRIServer ); + free( pSAVAGEDRIServer ); psav->DRIServerInfo = 0; - xfree( pDRIInfo->devPrivate ); + free( pDRIInfo->devPrivate ); pDRIInfo->devPrivate = 0; DRIDestroyInfoRec( psav->pDRIInfo ); psav->pDRIInfo = 0; @@ -1361,21 +1361,21 @@ void SAVAGEDRICloseScreen( ScreenPtr pScreen ) if ( psav->pDRIInfo ) { if ( psav->pDRIInfo->devPrivate ) { - xfree( psav->pDRIInfo->devPrivate ); + free( psav->pDRIInfo->devPrivate ); psav->pDRIInfo->devPrivate = 0; } DRIDestroyInfoRec( psav->pDRIInfo ); psav->pDRIInfo = 0; } if ( psav->DRIServerInfo ) { - xfree( psav->DRIServerInfo ); + free( psav->DRIServerInfo ); psav->DRIServerInfo = 0; } if ( psav->pVisualConfigs ) { - xfree( psav->pVisualConfigs ); + free( psav->pVisualConfigs ); } if ( psav->pVisualConfigsPriv ) { - xfree( psav->pVisualConfigsPriv ); + free( psav->pVisualConfigsPriv ); } } @@ -1466,11 +1466,11 @@ SAVAGEDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, if (nbox>1) { /* Keep ordering in each band, reverse order of bands */ - pboxNew1 = xalloc(sizeof(BoxRec)*nbox); + pboxNew1 = malloc(sizeof(BoxRec)*nbox); if (!pboxNew1) return; - pptNew1 = xalloc(sizeof(DDXPointRec)*nbox); + pptNew1 = malloc(sizeof(DDXPointRec)*nbox); if (!pptNew1) { - xfree(pboxNew1); + free(pboxNew1); return; } pboxBase = pboxNext = pbox+nbox-1; @@ -1501,14 +1501,14 @@ SAVAGEDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, if (nbox > 1) { /*reverse orderof rects in each band */ - pboxNew2 = xalloc(sizeof(BoxRec)*nbox); - pptNew2 = xalloc(sizeof(DDXPointRec)*nbox); + pboxNew2 = malloc(sizeof(BoxRec)*nbox); + pptNew2 = malloc(sizeof(DDXPointRec)*nbox); if (!pboxNew2 || !pptNew2) { - if (pptNew2) xfree(pptNew2); - if (pboxNew2) xfree(pboxNew2); + if (pptNew2) free(pptNew2); + if (pboxNew2) free(pboxNew2); if (pboxNew1) { - xfree(pptNew1); - xfree(pboxNew1); + free(pptNew1); + free(pboxNew1); } return; } @@ -1563,12 +1563,12 @@ SAVAGEDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, SAVAGESelectBuffer(pScrn, SAVAGE_FRONT); if (pboxNew2) { - xfree(pptNew2); - xfree(pboxNew2); + free(pptNew2); + free(pboxNew2); } if (pboxNew1) { - xfree(pptNew1); - xfree(pboxNew1); + free(pptNew1); + free(pboxNew1); } BCI_SEND(0xc0020000); /* wait for 2D idle */ diff --git a/src/savage_driver.c b/src/savage_driver.c index 1cb91f6..b0b26b9 100644 --- a/src/savage_driver.c +++ b/src/savage_driver.c @@ -652,7 +652,7 @@ static void SavageFreeRec(ScrnInfoPtr pScrn) if (!pScrn->driverPrivate) return; SavageUnmapMem(pScrn, 1); - xfree(pScrn->driverPrivate); + free(pScrn->driverPrivate); pScrn->driverPrivate = NULL; } @@ -761,7 +761,7 @@ static Bool SavageProbe(DriverPtr drv, int flags) return FALSE; if (xf86GetPciVideoInfo() == NULL) { if (devSections) - xfree(devSections); -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1prcze-0006s4...@alioth.debian.org