configure.ac | 2 +- src/savage_driver.c | 38 +++++++++++++++++++++++++++++++++----- src/savage_exa.c | 21 +++++++++++---------- src/savage_vbe.c | 10 ---------- 4 files changed, 45 insertions(+), 26 deletions(-)
New commits: commit de3350e7937240686a90e51243e701b51a7f5249 Author: Adam Jackson <[EMAIL PROTECTED]> Date: Wed May 21 16:04:31 2008 -0400 no, really, savage 2.2.1 diff --git a/configure.ac b/configure.ac index 864b4d3..b6d64e4 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-savage], - 2.2.1, + 2.2.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-savage) commit 97a9d2476868befc989b7ddb8067ac791bf2672e Author: Adam Jackson <[EMAIL PROTECTED]> Date: Wed May 21 16:01:37 2008 -0400 savage 2.2.1 diff --git a/configure.ac b/configure.ac index 2676116..864b4d3 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-savage], - 2.2.0, + 2.2.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-savage) commit fd20f5ddc2ef5945a757f6afedff5fb6214b607e Author: Adam Jackson <[EMAIL PROTECTED]> Date: Wed May 21 16:00:40 2008 -0400 Fake sync ranges for panels with no EDID. Red Hat bug #243589. diff --git a/src/savage_driver.c b/src/savage_driver.c index eb06519..1b94d1f 100644 --- a/src/savage_driver.c +++ b/src/savage_driver.c @@ -1211,6 +1211,30 @@ static void SavageGetPanelInfo(ScrnInfoPtr pScrn) psav->PanelX = panelX; psav->PanelY = panelY; + do { + DisplayModePtr native = xf86CVTMode(panelX, panelY, 60.0, 0, 0); + if (!native) + break; + + if (!pScrn->monitor->nHsync) { + pScrn->monitor->nHsync = 1; + pScrn->monitor->hsync[0].lo = 31.5; + pScrn->monitor->hsync[0].hi = (float)native->Clock / + (float)native->HTotal; + } + if (!pScrn->monitor->nVrefresh) { + pScrn->monitor->nVrefresh = 1; + pScrn->monitor->vrefresh[0].lo = 56.0; + pScrn->monitor->vrefresh[0].hi = (float)native->Clock * 1000.0 / + (float)native->HTotal / + (float)native->VTotal; + } + if (!pScrn->monitor->maxPixClock) + pScrn->monitor->maxPixClock = native->Clock; + + xfree(native); + } while (0); + if( psav->LCDClock > 0.0 ) { psav->maxClock = psav->LCDClock * 1000.0; commit 09c4dcc658b07f2672388eb4ab5fee3ebe190fc9 Author: Adam Jackson <[EMAIL PROTECTED]> Date: Wed May 21 15:58:24 2008 -0400 Don't try to call vbeModeInit(), it doesn't exist and never will. diff --git a/src/savage_vbe.c b/src/savage_vbe.c index 5933b4e..afbaa8f 100644 --- a/src/savage_vbe.c +++ b/src/savage_vbe.c @@ -18,7 +18,6 @@ #endif #define L_ADD(x) (B_O32(x) & 0xffff) + ((B_O32(x) >> 12) & 0xffff00) -Bool vbeModeInit( vbeInfoPtr, int ); static int SavageGetDevice( SavagePtr psav ); /*static int SavageGetTVType( SavagePtr psav );*/ void SavageSetVESAModeCrtc1( SavagePtr psav, int n, int Refresh ); @@ -186,15 +185,6 @@ SavageSetVESAMode( SavagePtr psav, int n, int Refresh ) ErrorF("Set video mode failed\n"); } } -#ifdef XFree86LOADER - else - { - if( !vbeModeInit( psav->pVbe, n ) ) - { - ErrorF("Set video mode failed\n"); - } - } -#endif } void commit a01c9d12938f977a4310e0547866f01517059a3e Author: Dave Airlie <[EMAIL PROTECTED]> Date: Sat May 10 15:06:18 2008 +1000 savage/pciaccess: don't try to map aperture larger than region window diff --git a/src/savage_driver.c b/src/savage_driver.c index 5fd7d66..2205dc8 100644 --- a/src/savage_driver.c +++ b/src/savage_driver.c @@ -3097,10 +3097,16 @@ static Bool SavageMapMem(ScrnInfoPtr pScrn) /* On Paramount and Savage 2000, aperture 0 is PCI base 2. On other * chipsets it's in the same BAR as the framebuffer. */ + + psav->ApertureRegion.size = (psav->IsPrimary || psav->IsSecondary) + ? (0x01000000 * 2) : (0x01000000 * 5); + if ((psav->Chipset == S3_SUPERSAVAGE) || (psav->Chipset == S3_SAVAGE2000)) { #ifdef XSERVER_LIBPCIACCESS psav->ApertureRegion.base = psav->PciInfo->regions[2].base_addr; + if (psav->ApertureRegion.size > psav->PciInfo->regions[2].size) + psav->ApertureRegion.size = psav->PciInfo->regions[2].size; #else psav->ApertureRegion.base = psav->PciInfo->memBase[2]; #endif @@ -3108,8 +3114,6 @@ static Bool SavageMapMem(ScrnInfoPtr pScrn) psav->ApertureRegion.base = psav->FbRegion.base + 0x02000000; } - psav->ApertureRegion.size = (psav->IsPrimary || psav->IsSecondary) - ? (0x01000000 * 2) : (0x01000000 * 5); if (psav->FbRegion.size != 0) { commit 69eca3b8340966874ee3ffdc0d0a3f73de7a816a Author: Dave Airlie <[EMAIL PROTECTED]> Date: Sat May 10 14:58:14 2008 +1000 savage: fix typos in error message diff --git a/src/savage_driver.c b/src/savage_driver.c index eb06519..5fd7d66 100644 --- a/src/savage_driver.c +++ b/src/savage_driver.c @@ -3128,7 +3128,7 @@ static Bool SavageMapMem(ScrnInfoPtr pScrn) #endif if (err) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Internal error: cound not map framebuffer range (%d, %s).\n", + "Internal error: could not map framebuffer range (%d, %s).\n", err, strerror(err)); return FALSE; } @@ -3154,7 +3154,7 @@ static Bool SavageMapMem(ScrnInfoPtr pScrn) #endif if (err) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Internal error: cound not map aperture range (%d, %s).\n", + "Internal error: could not map aperture range (%d, %s).\n", err, strerror(err)); return FALSE; } @@ -3179,7 +3179,7 @@ static Bool SavageMapMem(ScrnInfoPtr pScrn) #endif if (err) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Internal error: cound not map MMIO range (%d, %s).\n", + "Internal error: could not map MMIO range (%d, %s).\n", err, strerror(err)); return FALSE; } commit 9cb124b3542c942622a54d0ce429661516b1e2f4 Author: Alex VillacĂs Lasso <[EMAIL PROTECTED]> Date: Thu Apr 10 12:51:47 2008 -0400 EXA upload to screen must honor pitch of the source data diff --git a/src/savage_exa.c b/src/savage_exa.c index aa6905a..6320e18 100644 --- a/src/savage_exa.c +++ b/src/savage_exa.c @@ -460,7 +460,6 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int CARD32 * srcp; Bpp = pDst->drawable.bitsPerPixel / 8; - dwords = (((w * Bpp) + 3) >> 2) * h; psav->sbd_offset = exaGetPixmapOffset(pDst); psav->sbd_high = SavageSetBD(psav, pDst); @@ -486,17 +485,19 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int BCI_SEND(BCI_X_Y(x, y)); BCI_SEND(BCI_W_H(w, h)); - srcp = (CARD32 *)src; queue = 120 * 1024; - while (dwords) { - if (queue < 4) { - BCI_RESET; - queue = 120 * 1024; + dwords = (((w * Bpp) + 3) >> 2); + for (i = 0; i < h; i++) { + srcp = (CARD32 *)src; + for (j = 0; j < dwords; j++) { + if (queue < 4) { + BCI_RESET; + queue = 120 * 1024; + } + BCI_SEND(*srcp++); + queue -= 4; } - BCI_SEND(*srcp); - queue -= 4; - dwords--; - srcp++; + src += src_pitch; } /*exaWaitSync(pDst->drawable.pScreen);*/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]