diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ct_BlitMM.h | 2 | ||||
-rw-r--r-- | src/ct_Blitter.h | 2 | ||||
-rw-r--r-- | src/ct_bank.c | 9 | ||||
-rw-r--r-- | src/ct_dga.c | 2 | ||||
-rw-r--r-- | src/ct_regs.c | 26 | ||||
-rw-r--r-- | src/ct_shadow.c | 2 | ||||
-rw-r--r-- | src/ct_video.c | 52 |
7 files changed, 49 insertions, 46 deletions
diff --git a/src/ct_BlitMM.h b/src/ct_BlitMM.h index 7660241..fb1c4e7 100644 --- a/src/ct_BlitMM.h +++ b/src/ct_BlitMM.h @@ -4,7 +4,7 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_BlitMM.h,v 1.5 2002/11/25 14:04:58 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_BlitMM.h,v 1.3 1998/08/20 08:55:56 dawes Exp $ */ /* Definitions for the Chips and Technology BitBLT engine communication. */ /* These are done using Memory Mapped IO, of the registers */ diff --git a/src/ct_Blitter.h b/src/ct_Blitter.h index ecb84f1..65b0989 100644 --- a/src/ct_Blitter.h +++ b/src/ct_Blitter.h @@ -4,7 +4,7 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_Blitter.h,v 1.4 2002/01/25 21:55:58 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_Blitter.h,v 1.3 1998/08/29 05:43:06 dawes Exp $ */ /* Definitions for the Chips and Technology BitBLT engine communication. */ /* registers */ diff --git a/src/ct_bank.c b/src/ct_bank.c index 1e478ee..3be2776 100644 --- a/src/ct_bank.c +++ b/src/ct_bank.c @@ -53,12 +53,15 @@ /* Driver specific headers */ #include "ct_driver.h" -#ifdef __arm32__ -/*#include <machine/sysarch.h>*/ +#if defined(__arm32__) && defined(__NetBSD__) +#include <machine/sysarch.h> #define arm32_drain_writebuf() sysarch(1, 0) -#define ChipsBank(pScreen) CHIPSPTR(xf86Screens[pScreen->myNum])->Bank +#elif defined(__arm32__) +#define arm32_drain_writebuf() #endif +#define ChipsBank(pScreen) CHIPSPTR(xf86Screens[pScreen->myNum])->Bank + #ifdef DIRECT_REGISTER_ACCESS int CHIPSSetRead(ScreenPtr pScreen, int bank) diff --git a/src/ct_dga.c b/src/ct_dga.c index 3d0fe26..7cc3575 100644 --- a/src/ct_dga.c +++ b/src/ct_dga.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_dga.c,v 1.5 2002/11/25 14:04:58 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_dga.c,v 1.3tsi Exp $ */ #include "xf86.h" #include "xf86_OSproc.h" diff --git a/src/ct_regs.c b/src/ct_regs.c index 201ac5c..b7a7199 100644 --- a/src/ct_regs.c +++ b/src/ct_regs.c @@ -19,7 +19,7 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_regs.c,v 1.8 2002/01/25 21:56:00 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_regs.c,v 1.8tsi Exp $ */ /* * The functions in this file are used to read/write the C&T extension register @@ -361,17 +361,15 @@ chipsMmioReadSeq(vgaHWPtr hwp, CARD8 index) static void chipsMmioWriteAttr(vgaHWPtr hwp, CARD8 index, CARD8 value) { - CARD8 tmp; - if (hwp->paletteEnabled) index &= ~0x20; else index |= 0x20; if (hwp->IOBase == VGA_IOBASE_MONO) - tmp = minb(CHIPS_MMIO_MONO_STAT_1); + (void) minb(CHIPS_MMIO_MONO_STAT_1); else - tmp = minb(CHIPS_MMIO_COLOR_STAT_1); + (void) minb(CHIPS_MMIO_COLOR_STAT_1); moutb(CHIPS_MMIO_ATTR_INDEX, index); moutb(CHIPS_MMIO_ATTR_DATA_W, value); } @@ -379,17 +377,15 @@ chipsMmioWriteAttr(vgaHWPtr hwp, CARD8 index, CARD8 value) static CARD8 chipsMmioReadAttr(vgaHWPtr hwp, CARD8 index) { - CARD8 tmp; - if (hwp->paletteEnabled) index &= ~0x20; else index |= 0x20; if (hwp->IOBase == VGA_IOBASE_MONO) - tmp = minb(CHIPS_MMIO_MONO_STAT_1); + (void) minb(CHIPS_MMIO_MONO_STAT_1); else - tmp = minb(CHIPS_MMIO_COLOR_STAT_1); + (void) minb(CHIPS_MMIO_COLOR_STAT_1); moutb(CHIPS_MMIO_ATTR_INDEX, index); return minb(CHIPS_MMIO_ATTR_DATA_R); } @@ -409,12 +405,10 @@ chipsMmioReadMiscOut(vgaHWPtr hwp) static void chipsMmioEnablePalette(vgaHWPtr hwp) { - CARD8 tmp; - if (hwp->IOBase == VGA_IOBASE_MONO) - tmp = minb(CHIPS_MMIO_MONO_STAT_1); + (void) minb(CHIPS_MMIO_MONO_STAT_1); else - tmp = minb(CHIPS_MMIO_COLOR_STAT_1); + (void) minb(CHIPS_MMIO_COLOR_STAT_1); moutb(CHIPS_MMIO_ATTR_INDEX, 0x00); hwp->paletteEnabled = TRUE; } @@ -422,12 +416,10 @@ chipsMmioEnablePalette(vgaHWPtr hwp) static void chipsMmioDisablePalette(vgaHWPtr hwp) { - CARD8 tmp; - if (hwp->IOBase == VGA_IOBASE_MONO) - tmp = minb(CHIPS_MMIO_MONO_STAT_1); + (void) minb(CHIPS_MMIO_MONO_STAT_1); else - tmp = minb(CHIPS_MMIO_COLOR_STAT_1); + (void) minb(CHIPS_MMIO_COLOR_STAT_1); moutb(CHIPS_MMIO_ATTR_INDEX, 0x20); hwp->paletteEnabled = FALSE; } diff --git a/src/ct_shadow.c b/src/ct_shadow.c index ecbb642..98bdb8f 100644 --- a/src/ct_shadow.c +++ b/src/ct_shadow.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_shadow.c,v 1.1 2000/02/08 13:13:13 eich Exp $ */ +/* $XFree86: Exp $ */ #include "xf86.h" #include "xf86_OSproc.h" diff --git a/src/ct_video.c b/src/ct_video.c index 4c560fa..9ff9c13 100644 --- a/src/ct_video.c +++ b/src/ct_video.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_video.c,v 1.15 2003/07/17 08:19:35 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_video.c,v 1.16tsi Exp $ */ #include "xf86.h" #include "xf86_OSproc.h" @@ -267,12 +267,11 @@ CHIPSSetupImageVideo(ScreenPtr pScreen) pPriv->colorKey = cPtr->videoKey; pPriv->videoStatus = 0; - pPriv->doubleBuffer = TRUE; pPriv->manualDoubleBuffer = FALSE; pPriv->currentBuffer = 0; /* gotta uninit this someplace */ - REGION_INIT(pScreen, &pPriv->clip, NullBox, 0); + REGION_NULL(pScreen, &pPriv->clip); cPtr->adaptor = adapt; @@ -533,7 +532,9 @@ CHIPSDisplayVideo( DisplayModePtr mode = pScrn->currentMode; unsigned char tmp, m1f, m1e; int buffer = pPriv->currentBuffer; - + Bool dblscan = (pScrn->currentMode->Flags & V_DBLSCAN) == V_DBLSCAN; + int val; + if (cPtr->Flags & ChipsAccelSupport) CHIPSHiQVSync(pScrn); @@ -571,6 +572,7 @@ CHIPSDisplayVideo( cPtr->writeMR(cPtr, 0x23, ((offset >> 8) & 0xFF)); cPtr->writeMR(cPtr, 0x24, ((offset >> 16) & 0xFF)); } + /* Setup Pointer 2 */ if ((buffer && !pPriv->manualDoubleBuffer) || !pPriv->doubleBuffer) { cPtr->writeMR(cPtr, 0x25, (offset & 0xF8)); @@ -578,7 +580,6 @@ CHIPSDisplayVideo( cPtr->writeMR(cPtr, 0x27, ((offset >> 16) & 0xFF)); } - tmp = cPtr->readMR(cPtr, 0x04); if (pPriv->doubleBuffer && !pPriv->manualDoubleBuffer && triggerBufSwitch) tmp |= 0x18; @@ -586,6 +587,7 @@ CHIPSDisplayVideo( tmp = cPtr->readMR(cPtr, 0x20); tmp &= 0xC3; + if (pPriv->doubleBuffer && !pPriv->manualDoubleBuffer && triggerBufSwitch) tmp |= ((1 << 2 | 1 << 5) | ((buffer) ? (1 << 4) : 0)); cPtr->writeMR(cPtr, 0x20, tmp); @@ -605,14 +607,16 @@ CHIPSDisplayVideo( tmp = (tmp & 0xF8) + (((cPtr->OverlaySkewX + dstBox->x2 - 1) >> 8) & 0x07); cPtr->writeMR(cPtr, 0x2D, tmp); /* Top Edge of Overlay */ - cPtr->writeMR(cPtr, 0x2E, ((cPtr->OverlaySkewY + dstBox->y1) & 0xFF)); + val = cPtr->OverlaySkewY + (dstBox->y1 << (dblscan ? 1 : 0)); + cPtr->writeMR(cPtr, 0x2E, ((val) & 0xFF)); tmp = cPtr->readMR(cPtr, 0x2F); - tmp = (tmp & 0xF8) + (((cPtr->OverlaySkewY + dstBox->y1) >> 8) & 0x07); + tmp = (tmp & 0xF8) + (((val) >> 8) & 0x07); cPtr->writeMR(cPtr, 0x2F, tmp); /* Bottom Edge of Overlay*/ - cPtr->writeMR(cPtr, 0x30, ((cPtr->OverlaySkewY + dstBox->y2 - 1) & 0xFF)); + val = cPtr->OverlaySkewY + (dstBox->y2 << (dblscan ? 1 : 0)); + cPtr->writeMR(cPtr, 0x30, ((val - 1) & 0xFF)); tmp = cPtr->readMR(cPtr, 0x31); - tmp = (tmp & 0xF8) + (((cPtr->OverlaySkewY + dstBox->y2 - 1) >> 8) & 0x07); + tmp = (tmp & 0xF8) + (((val - 1) >> 8) & 0x07); cPtr->writeMR(cPtr, 0x31, tmp); /* Horizontal Zoom */ @@ -624,10 +628,13 @@ CHIPSDisplayVideo( } /* Vertical Zoom */ - if (drw_h > src_h) { + if (drw_h > src_h || dblscan) { m1f = m1f | 0x80; /* set V-interpolation */ - m1e = m1e | 0x08; - tmp = cPtr->VideoZoomMax * src_h / drw_h ; + m1e = m1e | 0x08; + if (dblscan) + tmp = cPtr->VideoZoomMax >> 1; + if (drw_h > src_h) + tmp = tmp * src_h / drw_h; cPtr->writeMR(cPtr, 0x33, tmp); } cPtr->writeMR(cPtr, 0x1F, m1f); @@ -655,7 +662,7 @@ CHIPSPutImage( CHIPSPtr cPtr = CHIPSPTR(pScrn); INT32 x1, x2, y1, y2; unsigned char *dst_start; - int pitch, new_size, offset, offset2 = 0, offset3 = 0; + int new_size, offset, offset2 = 0, offset3 = 0; int srcPitch, srcPitch2 = 0, dstPitch; int top, left, npixels, nlines, bpp; BoxRec dstBox; @@ -673,7 +680,7 @@ CHIPSPutImage( dstBox.x2 = drw_x + drw_w; dstBox.y1 = drw_y; dstBox.y2 = drw_y + drw_h; - + if (!xf86XVClipVideoHelper(&dstBox, &x1, &x2, &y1, &y2, clipBoxes, width, height)) return Success; @@ -684,12 +691,14 @@ CHIPSPutImage( dstBox.y2 -= pScrn->frameY0; bpp = pScrn->bitsPerPixel >> 3; - pitch = bpp * pScrn->displayWidth; dstPitch = ((width << 1) + 15) & ~15; new_size = ((dstPitch * height) + bpp - 1) / bpp; - if (pPriv->doubleBuffer) - new_size <<= 1; + + pPriv->doubleBuffer = (pScrn->currentMode->Flags & V_DBLSCAN) != V_DBLSCAN; + + if (pPriv->doubleBuffer) + new_size <<= 1; switch(id) { case FOURCC_YV12: /* YV12 */ @@ -704,12 +713,12 @@ CHIPSPutImage( } if(!(pPriv->linear = CHIPSAllocateMemory(pScrn, pPriv->linear, new_size))) { - if (pPriv->doubleBuffer && - (pPriv->linear = CHIPSAllocateMemory(pScrn, pPriv->linear, + if (pPriv->doubleBuffer + && (pPriv->linear = CHIPSAllocateMemory(pScrn, pPriv->linear, new_size >> 1))) { new_size >>= 1; pPriv->doubleBuffer = FALSE; - } else + } else return BadAlloc; } @@ -851,7 +860,7 @@ CHIPSAllocateSurface( XF86SurfacePtr surface ){ FBLinearPtr linear; - int pitch, fbpitch, size, bpp; + int pitch, size, bpp; OffscreenPrivPtr pPriv; if((w > 1024) || (h > 1024)) @@ -860,7 +869,6 @@ CHIPSAllocateSurface( w = (w + 1) & ~1; pitch = ((w << 1) + 15) & ~15; bpp = pScrn->bitsPerPixel >> 3; - fbpitch = bpp * pScrn->displayWidth; size = ((pitch * h) + bpp - 1) / bpp; if(!(linear = CHIPSAllocateMemory(pScrn, NULL, size))) |