summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/atiaccel.c4
-rw-r--r--src/aticonfig.c38
-rw-r--r--src/aticonsole.c31
-rw-r--r--src/atiload.c6
-rw-r--r--src/atiload.h6
-rw-r--r--src/atilock.c12
-rw-r--r--src/atimach64.c16
-rw-r--r--src/atimach64accel.c8
-rw-r--r--src/atimach64cursor.c10
-rw-r--r--src/atimach64io.h8
-rw-r--r--src/atimisc.c44
-rw-r--r--src/atioption.c6
-rw-r--r--src/atioption.h10
-rw-r--r--src/atiregs.h2
-rw-r--r--src/atiscreen.c28
-rw-r--r--src/atistruct.h47
16 files changed, 165 insertions, 111 deletions
diff --git a/src/atiaccel.c b/src/atiaccel.c
index 04edd30c..8b60fbda 100644
--- a/src/atiaccel.c
+++ b/src/atiaccel.c
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.c,v 1.13 2003/04/24 21:19:22 tsi Exp $ */
/*
- * Copyright 2001 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2001 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -67,7 +67,7 @@ ATIInitializeAcceleration
#endif /* AVOID_CPIO */
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
/* If DRI is enabled, we've already set up the FB manager in ATIScreenInit */
if (!pATI->directRenderingEnabled)
diff --git a/src/aticonfig.c b/src/aticonfig.c
index eb1f428c..40ee24f6 100644
--- a/src/aticonfig.c
+++ b/src/aticonfig.c
@@ -1,6 +1,6 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c,v 1.14 2003/04/30 21:43:31 tsi Exp $*/
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c,v 1.15tsi Exp $*/
/*
- * Copyright 2000 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2000 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -39,6 +39,7 @@
*/
typedef enum
{
+ ATI_OPTION_BIOS_DISPLAY, /* Allow BIOS interference */
ATI_OPTION_CRT_SCREEN, /* Legacy negation of "PanelDisplay" */
ATI_OPTION_DEVEL, /* Intentionally undocumented */
ATI_OPTION_BLEND, /* Force horizontal blending of small modes */
@@ -61,6 +62,13 @@ ATIProcessOptions
OptionInfoPtr PublicOption = xnfalloc(ATIPublicOptionSize);
OptionInfoRec PrivateOption[] =
{
+ { /* ON: Let BIOS change display(s) */
+ ATI_OPTION_BIOS_DISPLAY, /* OFF: Don't */
+ "biosdisplay",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
{ /* Negation of "PanelDisplay" public option */
ATI_OPTION_CRT_SCREEN,
"crtscreen",
@@ -68,6 +76,13 @@ ATIProcessOptions
{0, },
FALSE
},
+ { /* ON: Ease exploration of loose ends */
+ ATI_OPTION_DEVEL, /* OFF: Fit for public consumption */
+ "tsi",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
{ /* ON: Horizontally blend most modes */
ATI_OPTION_BLEND, /* OFF: Use pixel replication more often */
"lcdblend",
@@ -82,13 +97,6 @@ ATIProcessOptions
{0, },
FALSE
},
- { /* ON: Ease exploration of loose ends */
- ATI_OPTION_DEVEL, /* OFF: Fit for public consumption */
- "tsi",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
{
-1,
NULL,
@@ -101,6 +109,7 @@ ATIProcessOptions
(void)memcpy(PublicOption, ATIPublicOptions, ATIPublicOptionSize);
# define Accel PublicOption[ATI_OPTION_ACCEL].value.bool
+# define BIOSDisplay PrivateOption[ATI_OPTION_BIOS_DISPLAY].value.bool
# define Blend PrivateOption[ATI_OPTION_BLEND].value.bool
# define CRTDisplay PublicOption[ATI_OPTION_CRT_DISPLAY].value.bool
# define CRTScreen PrivateOption[ATI_OPTION_CRT_SCREEN].value.bool
@@ -114,7 +123,7 @@ ATIProcessOptions
#endif /* AVOID_CPIO */
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
# define IsPCI PublicOption[ATI_OPTION_IS_PCI].value.bool
# define DMAMode PublicOption[ATI_OPTION_DMA_MODE].value.str
@@ -123,7 +132,7 @@ ATIProcessOptions
# define LocalTex PublicOption[ATI_OPTION_LOCAL_TEXTURES].value.bool
# define BufferSize PublicOption[ATI_OPTION_BUFFER_SIZE].value.num
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
# define CacheMMIO PublicOption[ATI_OPTION_MMIO_CACHE].value.bool
# define TestCacheMMIO PublicOption[ATI_OPTION_TEST_MMIO_CACHE].value.bool
@@ -171,7 +180,9 @@ ATIProcessOptions
}
Blend = PanelDisplay = TRUE;
+#ifdef XF86DRI_DEVEL
DMAMode = "mmio";
+#endif
xf86ProcessOptions(pScreenInfo->scrnIndex, pScreenInfo->options,
PublicOption);
@@ -193,6 +204,7 @@ ATIProcessOptions
/* Move option values into driver private structure */
pATI->OptionAccel = Accel;
+ pATI->OptionBIOSDisplay = BIOSDisplay;
pATI->OptionBlend = Blend;
pATI->OptionCRTDisplay = CRTDisplay;
pATI->OptionCSync = CSync;
@@ -217,7 +229,7 @@ ATIProcessOptions
else
pATI->OptionPanelDisplay = !CRTScreen;
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
pATI->OptionIsPCI = IsPCI;
pATI->OptionAGPMode = AGPMode;
@@ -241,7 +253,7 @@ ATIProcessOptions
pATI->OptionDMAMode = MACH64_MODE_DMA_ASYNC;
}
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
/* Validate and set cursor options */
pATI->Cursor = ATI_CURSOR_SOFTWARE;
diff --git a/src/aticonsole.c b/src/aticonsole.c
index 1d65df7c..1b87a956 100644
--- a/src/aticonsole.c
+++ b/src/aticonsole.c
@@ -1,6 +1,6 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c,v 1.21 2003/07/24 22:08:27 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c,v 1.22 2003/11/13 18:42:47 tsi Exp $ */
/*
- * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -38,6 +38,10 @@
#include "ativga.h"
#include "atividmem.h"
+#ifdef XF86DRI_DEVEL
+#include "mach64_common.h"
+#endif
+
#include "mach64_common.h"
@@ -253,7 +257,7 @@ ATISwitchMode
{
pScreenInfo->currentMode = pMode;
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
if (pATI->directRenderingEnabled)
{
@@ -261,18 +265,18 @@ ATISwitchMode
ATIDRIWaitForIdle(pATI);
}
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
ATIModeSet(pScreenInfo, pATI, &pATI->NewHW);
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
if (pATI->directRenderingEnabled)
{
DRIUnlock(pScreenInfo->pScreen);
}
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
}
@@ -307,14 +311,14 @@ ATIEnterVT
if (pATI->OptionShadowFB)
{
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
if (pATI->directRenderingEnabled)
{
DRIUnlock(pScreen);
}
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
return TRUE;
}
@@ -342,14 +346,14 @@ ATIEnterVT
pScreenPixmap->devPrivate.ptr = NULL;
}
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
if (pATI->directRenderingEnabled)
{
DRIUnlock(pScreen);
}
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
return Entered;
}
@@ -371,7 +375,7 @@ ATILeaveVT
ScreenPtr pScreen = pScreenInfo->pScreen;
ATIPtr pATI = ATIPTR(pScreenInfo);
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
if (pATI->directRenderingEnabled)
{
@@ -379,7 +383,7 @@ ATILeaveVT
ATIDRIWaitForIdle(pATI);
}
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
ATILeaveGraphics(pScreenInfo, ATIPTR(pScreenInfo));
}
@@ -400,7 +404,8 @@ ATIFreeScreen
ScrnInfoPtr pScreenInfo = xf86Screens[iScreen];
ATIPtr pATI = ATIPTR(pScreenInfo);
- ATII2CFreeScreen(iScreen);
+ if (pATI->Closeable || (serverGeneration > 1))
+ ATII2CFreeScreen(iScreen);
if (pATI->Closeable)
(void)(*pScreen->CloseScreen)(iScreen, pScreen);
diff --git a/src/atiload.c b/src/atiload.c
index 9449205a..8ed14f17 100644
--- a/src/atiload.c
+++ b/src/atiload.c
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.c,v 1.15 2003/08/29 21:07:57 tsi Exp $ */
/*
- * Copyright 2000 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2000 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -75,7 +75,7 @@ const char *ATIxf4bppSymbols[] =
#endif /* AVOID_CPIO */
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
const char *ATIdrmSymbols[] = {
"drmAddBufs",
@@ -125,7 +125,7 @@ const char *ATIdriSymbols[] = {
NULL
};
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
const char *ATIfbSymbols[] =
{
diff --git a/src/atiload.h b/src/atiload.h
index 3447825d..38272238 100644
--- a/src/atiload.h
+++ b/src/atiload.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.h,v 1.6 2003/07/24 22:08:28 tsi Exp $ */
/*
- * Copyright 2000 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2000 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -42,11 +42,11 @@ extern const char *ATIint10Symbols[], *ATIddcSymbols[], *ATIvbeSymbols[],
#endif /* AVOID_CPIO */
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
*ATIdrmSymbols[], *ATIdriSymbols[],
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
*ATIfbSymbols[], *ATIshadowfbSymbols[], *ATIxaaSymbols[],
*ATIramdacSymbols[], *ATIi2cSymbols[];
diff --git a/src/atilock.c b/src/atilock.c
index 4ba06e50..8dafcf76 100644
--- a/src/atilock.c
+++ b/src/atilock.c
@@ -1,6 +1,6 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c,v 1.19 2003/04/23 21:51:28 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c,v 1.20tsi Exp $ */
/*
- * Copyright 1999 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1999 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -120,13 +120,13 @@ ATIUnlock
outr(CRTC_INT_CNTL, (pATI->LockData.crtc_int_cntl & ~CRTC_INT_ENS) |
CRTC_INT_ACKS);
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
if (pATI->irq > 0)
outr(CRTC_INT_CNTL, (inr(CRTC_INT_CNTL) & ~CRTC_INT_ACKS) |
CRTC_VBLANK_INT_EN); /* Enable VBLANK interrupt - handled by DRM */
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
pATI->LockData.gen_test_cntl = inr(GEN_TEST_CNTL) &
(GEN_OVR_OUTPUT_EN | GEN_OVR_POLARITY | GEN_CUR_EN |
@@ -152,7 +152,7 @@ ATIUnlock
/*
* Prevent BIOS initiated display switches on dual-CRT controllers.
*/
- if (pATI->Chip != ATI_CHIP_264XL)
+ if (!pATI->OptionBIOSDisplay && (pATI->Chip != ATI_CHIP_264XL))
{
pATI->LockData.scratch_reg3 = inr(SCRATCH_REG3);
outr(SCRATCH_REG3,
@@ -575,7 +575,7 @@ ATILock
if ((pATI->LCDPanelID >= 0) && (pATI->Chip != ATI_CHIP_264LT))
{
outr(LCD_INDEX, pATI->LockData.lcd_index);
- if (pATI->Chip != ATI_CHIP_264XL)
+ if (!pATI->OptionBIOSDisplay && (pATI->Chip != ATI_CHIP_264XL))
outr(SCRATCH_REG3, pATI->LockData.scratch_reg3);
}
if (pATI->Chip >= ATI_CHIP_264VTB)
diff --git a/src/atimach64.c b/src/atimach64.c
index 72f4a106..dfbe8d76 100644
--- a/src/atimach64.c
+++ b/src/atimach64.c
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c,v 1.52 2003/04/23 21:51:28 tsi Exp $ */
/*
- * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -226,18 +226,18 @@ ATIMach64PreInit
*/
if (pATI->Chip >= ATI_CHIP_264VT4)
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
/* Changing the FIFO depth seems to interfere with DMA, so use
* default of 128 entries (0x01)
*/
pATIHW->gui_cntl = (inm(GUI_CNTL) & ~CMDFIFO_SIZE_MODE) | 0x01;
-#else /* XF86DRI */
+#else /* XF86DRI_DEVEL */
pATIHW->gui_cntl = inm(GUI_CNTL) & ~CMDFIFO_SIZE_MODE;
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
/* Initialise destination registers */
pATIHW->dst_off_pitch =
@@ -1123,12 +1123,12 @@ ATIMach64SetDPMSMode
return;
}
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
/* XAA Sync requires the DRM lock if DRI enabled */
ATIDRILock(pScreenInfo);
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
ATIMach64Sync(pScreenInfo);
@@ -1226,10 +1226,10 @@ ATIMach64SetDPMSMode
}
}
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
ATIDRIUnlock(pScreenInfo);
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
}
diff --git a/src/atimach64accel.c b/src/atimach64accel.c
index b7b8e076..9a38cf09 100644
--- a/src/atimach64accel.c
+++ b/src/atimach64accel.c
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.c,v 1.1 2003/04/23 21:51:28 tsi Exp $ */
/*
- * Copyright 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2003 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -56,7 +56,9 @@
#include "atipriv.h"
#include "atiregs.h"
+#ifdef XF86DRI_DEVEL
#include "mach64_common.h"
+#endif
#include "miline.h"
@@ -137,7 +139,7 @@ ATIMach64Sync
{
ATIPtr pATI = ATIPTR(pScreenInfo);
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
if ( pATI->directRenderingEnabled && pATI->NeedDRISync )
{
@@ -271,7 +273,7 @@ ATIMach64Sync
}
else
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
{
ATIMach64WaitForIdle(pATI);
diff --git a/src/atimach64cursor.c b/src/atimach64cursor.c
index 6b55d423..07d85cb3 100644
--- a/src/atimach64cursor.c
+++ b/src/atimach64cursor.c
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.c,v 1.1 2003/04/23 21:51:29 tsi Exp $ */
/*
- * Copyright 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2003 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -132,12 +132,12 @@ ATIMach64LoadCursorImage
CARD32 *pSrc = (pointer)pImage;
volatile CARD32 *pDst = pATI->pCursorImage;
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
/* XAA Sync requires the DRM lock if DRI enabled */
ATIDRILock(pScreenInfo);
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
/* Synchronise video memory accesses */
ATIMach64Sync(pScreenInfo);
@@ -284,11 +284,11 @@ ATIMach64LoadCursorImage
#endif
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
ATIDRIUnlock(pScreenInfo);
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
}
diff --git a/src/atimach64io.h b/src/atimach64io.h
index d9da1d2b..01cb32d1 100644
--- a/src/atimach64io.h
+++ b/src/atimach64io.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.h,v 1.15 2003/04/23 21:51:29 tsi Exp $ */
/*
- * Copyright 2000 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2000 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -204,7 +204,7 @@ extern void ATIMach64PollEngineStatus FunctionPrototype((ATIPtr));
while ((_pATI)->EngineIsBusy) \
ATIMach64PollEngineStatus(_pATI)
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
#define ATIDRIWaitForIdle(_pATI) \
do { \
@@ -257,7 +257,7 @@ do
} \
} while (0)
-#else /* XF86DRI */
+#else /* XF86DRI_DEVEL */
#define ATIDRIWaitForIdle(_pATI)
@@ -265,7 +265,7 @@ do
#define ATIDRIUnlock(_pScrInfo)
#define ATIDRISync(_pScrInfo)
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
/*
diff --git a/src/atimisc.c b/src/atimisc.c
index 61801eb7..cfbf40fc 100644
--- a/src/atimisc.c
+++ b/src/atimisc.c
@@ -1,6 +1,6 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimisc.c,v 1.7 2003/07/24 22:08:28 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimisc.c,v 1.8tsi Exp $ */
/*
- * Copyright 2000 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2000 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -38,7 +38,7 @@ static XF86ModuleVersionInfo ATIVersionRec =
MODULEVENDORSTRING,
MODINFOSTRING1,
MODINFOSTRING2,
- XF86_VERSION_CURRENT,
+ XORG_VERSION_CURRENT,
ATI_VERSION_MAJOR, ATI_VERSION_MINOR, ATI_VERSION_PATCH,
ABI_CLASS_VIDEODRV,
ABI_VIDEODRV_VERSION,
@@ -65,8 +65,38 @@ ATISetup
if (!Inited)
{
/* Ensure main driver module is loaded, but not as a submodule */
- if (!xf86ServerIsOnlyDetecting() && !LoaderSymbol(ATI_NAME))
- xf86LoadOneModule(ATI_DRIVER_NAME, Options);
+ if (!xf86ServerIsOnlyDetecting())
+ {
+ if (!LoaderSymbol(ATI_NAME))
+ xf86LoadOneModule(ATI_DRIVER_NAME, Options);
+
+ /* ati & atimisc module versions must match */
+ do
+ {
+ XF86ModuleData *pModuleData = LoaderSymbol("atiModuleData");
+
+ if (pModuleData)
+ {
+ XF86ModuleVersionInfo *pModuleInfo = pModuleData->vers;
+
+ if ((pModuleInfo->majorversion == ATI_VERSION_MAJOR) &&
+ (pModuleInfo->minorversion == ATI_VERSION_MINOR) &&
+ (pModuleInfo->patchlevel == ATI_VERSION_PATCH))
+ break;
+ }
+
+ xf86Msg(X_ERROR,
+ "\"ati\" and \"atimisc\" module versions must"
+ " match.\n");
+
+ if (ErrorMajor)
+ *ErrorMajor = (int)LDR_MISMATCH;
+ if (ErrorMinor)
+ *ErrorMinor = (int)LDR_MISMATCH;
+
+ return NULL;
+ } while (0);
+ }
/*
* Tell loader about symbols from other modules that this module might
@@ -84,12 +114,12 @@ ATISetup
#endif /* AVOID_CPIO */
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
ATIdrmSymbols,
ATIdriSymbols,
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
ATIfbSymbols,
ATIshadowfbSymbols,
diff --git a/src/atioption.c b/src/atioption.c
index 1bd90eca..24536fcc 100644
--- a/src/atioption.c
+++ b/src/atioption.c
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.c,v 1.22 2003/04/23 21:51:29 tsi Exp $ */
/*
- * Copyright 1999 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1999 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -76,7 +76,7 @@ const OptionInfoRec ATIPublicOptions[] =
#endif /* AVOID_CPIO */
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
{
ATI_OPTION_IS_PCI,
@@ -121,7 +121,7 @@ const OptionInfoRec ATIPublicOptions[] =
FALSE,
},
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
{
ATI_OPTION_MMIO_CACHE,
diff --git a/src/atioption.h b/src/atioption.h
index 6a907dbd..de406f99 100644
--- a/src/atioption.h
+++ b/src/atioption.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.h,v 1.12 2003/04/23 21:51:29 tsi Exp $ */
/*
- * Copyright 1999 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1999 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -47,16 +47,16 @@ typedef enum
#endif /* AVOID_CPIO */
-#ifdef XF86DRI
-
+#ifdef XF86DRI_DEVEL
+
ATI_OPTION_IS_PCI,
ATI_OPTION_DMA_MODE,
ATI_OPTION_AGP_MODE,
ATI_OPTION_AGP_SIZE,
ATI_OPTION_LOCAL_TEXTURES,
ATI_OPTION_BUFFER_SIZE,
-
-#endif /* XF86DRI */
+
+#endif /* XF86DRI_DEVEL */
ATI_OPTION_MMIO_CACHE,
ATI_OPTION_TEST_MMIO_CACHE,
diff --git a/src/atiregs.h b/src/atiregs.h
index b0c3d847..4c35c2b6 100644
--- a/src/atiregs.h
+++ b/src/atiregs.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiregs.h,v 1.24 2003/04/23 21:51:30 tsi Exp $ */
/*
- * Copyright 1994 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1994 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atiscreen.c b/src/atiscreen.c
index ec784cbc..33e8a322 100644
--- a/src/atiscreen.c
+++ b/src/atiscreen.c
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c,v 1.30 2003/04/23 21:51:30 tsi Exp $ */
/*
- * Copyright 1999 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1999 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -42,8 +42,10 @@
#include "atixv.h"
#include "atimach64accel.h"
+#ifdef XF86DRI_DEVEL
#include "mach64_dri.h"
#include "mach64_sarea.h"
+#endif
#include "shadowfb.h"
#include "xf86cmap.h"
@@ -130,7 +132,9 @@ ATIScreenInit
ATIPtr pATI = ATIPTR(pScreenInfo);
pointer pFB;
int VisualMask;
+#ifdef XF86DRI_DEVEL
BoxRec ScreenArea;
+#endif
/* Set video hardware state */
if (!ATIEnterGraphics(pScreen, pScreenInfo, pATI))
@@ -169,7 +173,7 @@ ATIScreenInit
}
}
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
/* Setup DRI after visuals have been established, but before
* cfbScreenInit is called. cfbScreenInit will eventually call the
@@ -211,7 +215,7 @@ ATIScreenInit
}
}
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
/* Initialise framebuffer layer */
switch (pATI->bitsPerPixel)
@@ -315,7 +319,7 @@ ATIScreenInit
/* Memory manager setup */
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
if (pATI->directRenderingEnabled)
{
@@ -344,7 +348,7 @@ ATIScreenInit
} else {
int l, maxPixcache;
-# ifdef XvExtension
+#ifdef XvExtension
int xvBytes;
@@ -353,12 +357,12 @@ ATIScreenInit
xvBytes = 720*480*cpp; /* enough for single-buffered DVD */
maxPixcache = xvBytes > bufferSize ? xvBytes : bufferSize;
-# else /* XvExtension */
+#else /* XvExtension */
/* Try for one viewport */
maxPixcache = bufferSize;
-# endif /* XvExtension */
+#endif /* XvExtension */
pATIDRIServer->textureSize = offscreenBytes - maxPixcache;
@@ -485,7 +489,7 @@ ATIScreenInit
}
}
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
/* Setup acceleration */
/* If direct rendering is not enabled, the framebuffer memory
@@ -549,7 +553,7 @@ ATIScreenInit
if (serverGeneration == 1)
xf86ShowUnusedOptions(pScreenInfo->scrnIndex, pScreenInfo->options);
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
/* DRI finalization */
if (pATI->directRenderingEnabled) {
@@ -567,7 +571,7 @@ ATIScreenInit
"Direct rendering disabled\n");
}
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
return TRUE;
}
@@ -588,7 +592,7 @@ ATICloseScreen
ATIPtr pATI = ATIPTR(pScreenInfo);
Bool Closed = TRUE;
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
/* Disable direct rendering */
if (pATI->directRenderingEnabled)
@@ -597,7 +601,7 @@ ATICloseScreen
pATI->directRenderingEnabled = FALSE;
}
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
ATICloseXVideo(pScreen, pScreenInfo, pATI);
diff --git a/src/atistruct.h b/src/atistruct.h
index cbaf1b85..87ff0a1c 100644
--- a/src/atistruct.h
+++ b/src/atistruct.h
@@ -1,6 +1,6 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h,v 1.39 2003/07/24 22:08:28 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h,v 1.41tsi Exp $ */
/*
- * Copyright 1999 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1999 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -32,8 +32,8 @@
#include "aticlock.h"
#include "atiregs.h"
-#ifdef XF86DRI
-
+#ifdef XF86DRI_DEVEL
+
/*
* DRI support
*/
@@ -44,7 +44,7 @@
#include "xf86dri.h"
#include "dri.h"
-#endif /* XF86DRI */
+#endif /* XF86DRI_DEVEL */
#include "xaa.h"
#include "xf86Cursor.h"
@@ -336,8 +336,8 @@ typedef struct _ATIRec
* LCD panel data.
*/
int LCDPanelID, LCDClock, LCDHorizontal, LCDVertical;
- int LCDHSyncStart, LCDHSyncWidth, LCDHBlankWidth;
- int LCDVSyncStart, LCDVSyncWidth, LCDVBlankWidth;
+ unsigned LCDHSyncStart, LCDHSyncWidth, LCDHBlankWidth;
+ unsigned LCDVSyncStart, LCDVSyncWidth, LCDVBlankWidth;
int LCDVBlendFIFOSize;
/*
@@ -424,24 +424,25 @@ typedef struct _ATIRec
/*
* Driver options.
*/
- CARD8 OptionAccel; /* Use hardware draw engine */
- CARD8 OptionBlend; /* Force horizontal blending */
- CARD8 OptionCRTDisplay; /* Display on both CRT and digital panel */
- CARD8 OptionCSync; /* Use composite sync */
- CARD8 OptionDevel; /* Intentionally undocumented */
+ CARD8 OptionAccel:1; /* Use hardware draw engine */
+ CARD8 OptionBIOSDisplay:1; /* Allow BIOS interference */
+ CARD8 OptionBlend:1; /* Force horizontal blending */
+ CARD8 OptionCRTDisplay:1; /* Display on both CRT and digital panel */
+ CARD8 OptionCSync:1; /* Use composite sync */
+ CARD8 OptionDevel:1; /* Intentionally undocumented */
#ifndef AVOID_CPIO
- CARD8 OptionLinear; /* Use linear fb aperture when available */
+ CARD8 OptionLinear:1; /* Use linear fb aperture when available */
#endif /* AVOID_CPIO */
- CARD8 OptionMMIOCache; /* Cache MMIO writes */
- CARD8 OptionTestMMIOCache; /* Test MMIO cache integrity */
- CARD8 OptionPanelDisplay; /* Prefer CRT over digital panel */
- CARD8 OptionProbeClocks; /* Force probe for fixed clocks */
- CARD8 OptionShadowFB; /* Use shadow frame buffer */
- CARD8 OptionLCDSync; /* Temporary */
+ CARD8 OptionMMIOCache:1; /* Cache MMIO writes */
+ CARD8 OptionTestMMIOCache:1;/* Test MMIO cache integrity */
+ CARD8 OptionPanelDisplay:1; /* Prefer digital panel over CRT */
+ CARD8 OptionProbeClocks:1; /* Force probe for fixed clocks */
+ CARD8 OptionShadowFB:1; /* Use shadow frame buffer */
+ CARD8 OptionLCDSync:1; /* Temporary */
/*
* State flags.
@@ -454,8 +455,8 @@ typedef struct _ATIRec
*/
CloseScreenProcPtr CloseScreen;
-#ifdef XF86DRI
-
+#ifdef XF86DRI_DEVEL
+
/*
* DRI data.
*/
@@ -481,8 +482,8 @@ typedef struct _ATIRec
CARD8 OptionAGPSize; /* AGP size in MB */
CARD8 OptionLocalTextures; /* Use local textures + AGP textures (only valid for AGP) */
CARD8 OptionBufferSize; /* Command/dma buffer size in MB */
-
-#endif /* XF86DRI */
+
+#endif /* XF86DRI_DEVEL */
} ATIRec;