summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Jackson <ajax@nwnk.net>2004-07-30 20:30:52 +0000
committerAdam Jackson <ajax@nwnk.net>2004-07-30 20:30:52 +0000
commit3dd9b6eaf95d075ae0459433b11f47cae015220f (patch)
treeac2957edb7193b931091ea9c67a7bfc47d47d4dd
parent652a987a9f10fd78c7b0833275567d7f5eaadc5f (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.c11
-rw-r--r--src/ct_ddc.c5
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 */