diff options
author | Adam Jackson <ajax@nwnk.net> | 2004-07-30 20:30:52 +0000 |
---|---|---|
committer | Adam Jackson <ajax@nwnk.net> | 2004-07-30 20:30:52 +0000 |
commit | 3dd9b6eaf95d075ae0459433b11f47cae015220f (patch) | |
tree | ac2957edb7193b931091ea9c67a7bfc47d47d4dd | |
parent | 652a987a9f10fd78c7b0833275567d7f5eaadc5f (diff) |
Bug #400 (partial): Driver fixes for the dlloader. When using dlloader, all
framebuffer formats except cfb and the overlay modes should work, and
r128 and radeon need to be loaded from the ati driver (both issues to
be fixed soon). Tested on i740, s3virge, mach64, tdfx, vesa, and vga
drivers. elfloader users shouldn't be affected.
-rw-r--r-- | src/ct_accel.c | 11 | ||||
-rw-r--r-- | src/ct_ddc.c | 5 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/ct_accel.c b/src/ct_accel.c index d936291..a02f9f3 100644 --- a/src/ct_accel.c +++ b/src/ct_accel.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c,v 1.40 2002/11/25 14:04:58 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c,v 1.40tsi Exp $ */ /* * Copyright 1996, 1997, 1998 by David Bateman <dbateman@ee.uts.edu.au> * Modified 1997, 1998 by Nozomi Ytow @@ -248,9 +248,12 @@ CTNAME(AccelInit)(ScreenPtr pScreen) * then used by a CopyArea function with a complex ROP. */ infoPtr->SubsequentSolidFillRect = CTNAME(24SubsequentSolidFillRect); +#if 0 + /* How can an unsigned quantity be less than zero? */ if (cAcl->ScratchAddress < 0) infoPtr->ScreenToScreenCopyFlags |= GXCOPY_ONLY; #endif +#endif break; #ifdef CHIPS_HIQV case 32: @@ -1096,8 +1099,12 @@ CTNAME(CacheMonoStipple)(ScrnInfoPtr pScrn, PixmapPtr pPix) int i, j, max = 0, funcNo, pad, dwords, bpp = cAcl->BitsPerPixel; int *current; StippleScanlineProcPtr StippleFunc; + static StippleScanlineProcPtr *StippleTab = NULL; unsigned char *data, *srcPtr, *dstPtr; + if (!StippleTab) + StippleTab = LoaderSymbol("XAAStippleScanlineFuncMSBFirst"); + DEBUG_P("CacheMonoStipple"); if((h <= 128) && (w <= 128 * bpp / 8)) { if(pCachePriv->Info128) { @@ -1150,7 +1157,7 @@ CTNAME(CacheMonoStipple)(ScrnInfoPtr pScrn, PixmapPtr pPix) pad = (((pCache->w * bpp) + 31) >> 5) << 2; dstPtr = data = (unsigned char*)ALLOCATE_LOCAL(pad * pCache->h); srcPtr = (unsigned char*)pPix->devPrivate.ptr; - StippleFunc = XAAStippleScanlineFuncMSBFirst[funcNo]; + StippleFunc = StippleTab[funcNo]; dwords = ((pCache->w * bpp) >> 5) >> 3; cAcl->SlotWidth = dwords << 2; diff --git a/src/ct_ddc.c b/src/ct_ddc.c index 0286685..2c2a100 100644 --- a/src/ct_ddc.c +++ b/src/ct_ddc.c @@ -39,7 +39,7 @@ chips_ddc1(ScrnInfoPtr pScrn) { unsigned char FR0B, FR0C, XR62; unsigned char mask_c = 0x00; - unsigned char val, tmp_val; + unsigned char val, tmp_val = 0; int i; CHIPSPtr cPtr = CHIPSPTR(pScrn); @@ -94,7 +94,8 @@ chips_ddc1(ScrnInfoPtr pScrn) xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "DDC1 found\n"); else return; - xf86PrintEDID(xf86DoEDID_DDC1(pScrn->scrnIndex,vgaHWddc1SetSpeed, + xf86PrintEDID(xf86DoEDID_DDC1(pScrn->scrnIndex, + LoaderSymbol("vgaHWddc1SetSpeed"), chips_ddc1Read)); /* restore */ |