summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile.am3
-rw-r--r--src/ati.c24
-rw-r--r--src/aticonfig.c201
-rw-r--r--src/aticonfig.h32
-rw-r--r--src/atimach64probe.c11
-rw-r--r--src/atimach64probe.h3
-rw-r--r--src/atimodule.c1
-rw-r--r--src/atioption.c254
-rw-r--r--src/atioption.h5
-rw-r--r--src/atipreinit.c2
10 files changed, 241 insertions, 295 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 24f5516..5c1bee6 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -51,7 +51,7 @@ ati_drv_la_LTLIBRARIES = ati_drv.la
ati_drv_la_LDFLAGS = -module -avoid-version
ati_drv_ladir = @moduledir@/drivers
ati_drv_la_SOURCES = \
- ati.c atichip.c atioption.c atimodule.c atimach64probe.c \
+ ati.c atichip.c atimodule.c atimach64probe.c \
radeon_probe.c r128_probe.c
atimisc_drv_la_LTLIBRARIES = atimisc_drv.la
@@ -114,7 +114,6 @@ EXTRA_DIST = \
atibus.h \
atichip.h \
aticlock.h \
- aticonfig.h \
aticonsole.h \
aticrtc.h \
aticursor.h \
diff --git a/src/ati.c b/src/ati.c
index 4d50aec..e7a5aee 100644
--- a/src/ati.c
+++ b/src/ati.c
@@ -59,7 +59,6 @@
#include "ati.h"
#include "atichip.h"
-#include "atioption.h"
#include "ativersion.h"
#include "atimach64probe.h"
@@ -154,6 +153,29 @@ ATIProbe
return ProbeSuccess;
}
+/*
+ * ATIAvailableOptions --
+ *
+ * Return recognised options that are intended for public consumption.
+ */
+const OptionInfoRec *
+ATIAvailableOptions
+(
+ int ChipId,
+ int BusId
+)
+{
+ const OptionInfoRec *pOptions;
+
+ if ((pOptions = R128AvailableOptions(ChipId, BusId)))
+ return pOptions;
+
+ if ((pOptions = RADEONAvailableOptions(ChipId, BusId)))
+ return pOptions;
+
+ return Mach64AvailableOptions(ChipId, BusId);
+}
+
/* The root of all evil... */
_X_EXPORT DriverRec ATI =
{
diff --git a/src/aticonfig.c b/src/aticonfig.c
index eeb0a70..a4ceddf 100644
--- a/src/aticonfig.c
+++ b/src/aticonfig.c
@@ -31,13 +31,212 @@
#include "ati.h"
#include "atichip.h"
-#include "aticonfig.h"
#include "aticursor.h"
#include "atioption.h"
#include "atistruct.h"
#include "mach64_common.h"
+#ifdef TV_OUT
+
+/*
+ * List of supported TV standard names
+ */
+const char *ATITVStandardNames[ATI_TV_STDS_MAX_VALID+1] = {
+ "NTSC",
+ "PAL",
+ "PAL-M",
+ "PAL-60",
+ "NTSC-J",
+ "PAL-CN",
+ "PAL-N",
+ "Reserved1",
+ "Reserved2",
+ "SCART-PAL",
+ "None",
+ "Invalid"
+};
+
+#endif /* TV_OUT */
+
+/*
+ * Recognised XF86Config options.
+ */
+static const OptionInfoRec ATIPublicOptions[] =
+{
+ {
+ ATI_OPTION_PROBE_SPARSE,
+ "probe_sparse",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
+ {
+ ATI_OPTION_ACCEL,
+ "accel",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
+ {
+ ATI_OPTION_CRT_DISPLAY,
+ "crt_display",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
+ {
+ ATI_OPTION_CSYNC,
+ "composite_sync",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
+ {
+ ATI_OPTION_HWCURSOR,
+ "hw_cursor",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE,
+ },
+
+#ifdef XF86DRI_DEVEL
+
+ {
+ ATI_OPTION_IS_PCI,
+ "force_pci_mode",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE,
+ },
+ {
+ ATI_OPTION_DMA_MODE,
+ "dma_mode",
+ OPTV_STRING,
+ {0, },
+ FALSE,
+ },
+ {
+ ATI_OPTION_AGP_MODE,
+ "agp_mode",
+ OPTV_INTEGER,
+ {0, },
+ FALSE,
+ },
+ {
+ ATI_OPTION_AGP_SIZE,
+ "agp_size",
+ OPTV_INTEGER,
+ {0, },
+ FALSE,
+ },
+ {
+ ATI_OPTION_LOCAL_TEXTURES,
+ "local_textures",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE,
+ },
+ {
+ ATI_OPTION_BUFFER_SIZE,
+ "buffer_size",
+ OPTV_INTEGER,
+ {0, },
+ FALSE,
+ },
+
+#endif /* XF86DRI_DEVEL */
+
+#ifdef TV_OUT
+ {
+ ATI_OPTION_TV_OUT,
+ "tv_out",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
+ {
+ ATI_OPTION_TV_STD,
+ "tv_standard",
+ OPTV_STRING,
+ {0, },
+ FALSE
+ },
+
+#endif /* TV_OUT */
+
+ {
+ ATI_OPTION_MMIO_CACHE,
+ "mmio_cache",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
+
+
+ {
+ ATI_OPTION_TEST_MMIO_CACHE,
+ "test_mmio_cache",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
+ {
+ ATI_OPTION_PANEL_DISPLAY,
+ "panel_display",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
+ {
+ ATI_OPTION_REFERENCE_CLOCK,
+ "reference_clock",
+ OPTV_FREQ,
+ {0, },
+ FALSE
+ },
+ {
+ ATI_OPTION_SHADOW_FB,
+ "shadow_fb",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
+ {
+ ATI_OPTION_SWCURSOR,
+ "sw_cursor",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE,
+ },
+ {
+ ATI_OPTION_ACCELMETHOD,
+ "AccelMethod",
+ OPTV_STRING,
+ {0, },
+ FALSE
+ },
+ {
+ ATI_OPTION_RENDER_ACCEL,
+ "RenderAccel",
+ OPTV_BOOLEAN,
+ {0, },
+ FALSE
+ },
+ {
+ -1,
+ NULL,
+ OPTV_NONE,
+ {0, },
+ FALSE
+ }
+};
+
+static const unsigned long ATIPublicOptionSize = SizeOf(ATIPublicOptions);
+
+_X_EXPORT const OptionInfoRec *
+ATIOptionsWeak(void) { return ATIPublicOptions; }
+
/*
* Non-publicised XF86Config options.
*/
diff --git a/src/aticonfig.h b/src/aticonfig.h
deleted file mode 100644
index ec68c31..0000000
--- a/src/aticonfig.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of Marc Aurele La France not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. Marc Aurele La France makes no representations
- * about the suitability of this software for any purpose. It is provided
- * "as-is" without express or implied warranty.
- *
- * MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
- * EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef ___ATICONFIG_H___
-#define ___ATICONFIG_H___ 1
-
-#include "atipriv.h"
-
-#include "xf86str.h"
-
-extern void ATIProcessOptions(ScrnInfoPtr, ATIPtr);
-
-#endif /* ___ATICONFIG_H___ */
diff --git a/src/atimach64probe.c b/src/atimach64probe.c
index ea01f67..47340a5 100644
--- a/src/atimach64probe.c
+++ b/src/atimach64probe.c
@@ -30,6 +30,7 @@
#include "atimodule.h"
#include "atimach64io.h"
#include "atimach64probe.h"
+#include "atioption.h"
#include "ativersion.h"
static SymTabRec
@@ -100,6 +101,16 @@ Mach64PciChipsets[] = {
{-1, -1, RES_UNDEFINED}
};
+const OptionInfoRec *
+Mach64AvailableOptions(int chipid, int busid)
+{
+ /*
+ * Return options defined in the atimisc submodule which will have been
+ * loaded by this point.
+ */
+ return ATIOptionsWeak();
+}
+
/*
* Mach64Probe --
*
diff --git a/src/atimach64probe.h b/src/atimach64probe.h
index 24e85d8..4e474ca 100644
--- a/src/atimach64probe.h
+++ b/src/atimach64probe.h
@@ -25,6 +25,7 @@
#include "xf86str.h"
-extern Bool Mach64Probe(DriverPtr, int);
+extern const OptionInfoRec * Mach64AvailableOptions(int, int);
+extern Bool Mach64Probe(DriverPtr, int);
#endif /* ___ATIMACH64PROBE_H___ */
diff --git a/src/atimodule.c b/src/atimodule.c
index 39a2eeb..05456e7 100644
--- a/src/atimodule.c
+++ b/src/atimodule.c
@@ -42,6 +42,7 @@ const char *ATISymbols[] =
"ATILeaveVT",
"ATIFreeScreen",
"ATIValidMode",
+ "ATIOptionsWeak",
"ATIFillInScreenInfo",
NULL
};
diff --git a/src/atioption.c b/src/atioption.c
deleted file mode 100644
index 4cb965d..0000000
--- a/src/atioption.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * 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
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of Marc Aurele La France not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. Marc Aurele La France makes no representations
- * about the suitability of this software for any purpose. It is provided
- * "as-is" without express or implied warranty.
- *
- * MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
- * EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * DRI support by:
- * Leif Delgass <ldelgass@retinalburn.net>
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "atioption.h"
-#include "atiutil.h"
-
-#include "radeon_probe.h"
-#include "r128_probe.h"
-
-#ifdef TV_OUT
-
-/*
- * List of supported TV standard names
- */
-const char *ATITVStandardNames[ATI_TV_STDS_MAX_VALID+1] = {
- "NTSC",
- "PAL",
- "PAL-M",
- "PAL-60",
- "NTSC-J",
- "PAL-CN",
- "PAL-N",
- "Reserved1",
- "Reserved2",
- "SCART-PAL",
- "None",
- "Invalid"
-};
-
-#endif /* TV_OUT */
-
-/*
- * Recognised XF86Config options.
- */
-const OptionInfoRec ATIPublicOptions[] =
-{
- {
- ATI_OPTION_PROBE_SPARSE,
- "probe_sparse",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- {
- ATI_OPTION_ACCEL,
- "accel",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- {
- ATI_OPTION_CRT_DISPLAY,
- "crt_display",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- {
- ATI_OPTION_CSYNC,
- "composite_sync",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- {
- ATI_OPTION_HWCURSOR,
- "hw_cursor",
- OPTV_BOOLEAN,
- {0, },
- FALSE,
- },
-
-#ifdef XF86DRI_DEVEL
-
- {
- ATI_OPTION_IS_PCI,
- "force_pci_mode",
- OPTV_BOOLEAN,
- {0, },
- FALSE,
- },
- {
- ATI_OPTION_DMA_MODE,
- "dma_mode",
- OPTV_STRING,
- {0, },
- FALSE,
- },
- {
- ATI_OPTION_AGP_MODE,
- "agp_mode",
- OPTV_INTEGER,
- {0, },
- FALSE,
- },
- {
- ATI_OPTION_AGP_SIZE,
- "agp_size",
- OPTV_INTEGER,
- {0, },
- FALSE,
- },
- {
- ATI_OPTION_LOCAL_TEXTURES,
- "local_textures",
- OPTV_BOOLEAN,
- {0, },
- FALSE,
- },
- {
- ATI_OPTION_BUFFER_SIZE,
- "buffer_size",
- OPTV_INTEGER,
- {0, },
- FALSE,
- },
-
-#endif /* XF86DRI_DEVEL */
-
-#ifdef TV_OUT
- {
- ATI_OPTION_TV_OUT,
- "tv_out",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- {
- ATI_OPTION_TV_STD,
- "tv_standard",
- OPTV_STRING,
- {0, },
- FALSE
- },
-
-#endif /* TV_OUT */
-
- {
- ATI_OPTION_MMIO_CACHE,
- "mmio_cache",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
-
-
- {
- ATI_OPTION_TEST_MMIO_CACHE,
- "test_mmio_cache",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- {
- ATI_OPTION_PANEL_DISPLAY,
- "panel_display",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- {
- ATI_OPTION_REFERENCE_CLOCK,
- "reference_clock",
- OPTV_FREQ,
- {0, },
- FALSE
- },
- {
- ATI_OPTION_SHADOW_FB,
- "shadow_fb",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- {
- ATI_OPTION_SWCURSOR,
- "sw_cursor",
- OPTV_BOOLEAN,
- {0, },
- FALSE,
- },
- {
- ATI_OPTION_ACCELMETHOD,
- "AccelMethod",
- OPTV_STRING,
- {0, },
- FALSE
- },
- {
- ATI_OPTION_RENDER_ACCEL,
- "RenderAccel",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- {
- -1,
- NULL,
- OPTV_NONE,
- {0, },
- FALSE
- }
-};
-
-const unsigned long ATIPublicOptionSize = SizeOf(ATIPublicOptions);
-
-/*
- * ATIAvailableOptions --
- *
- * Return recognised options that are intended for public consumption.
- */
-const OptionInfoRec *
-ATIAvailableOptions
-(
- int ChipId,
- int BusId
-)
-{
- const OptionInfoRec *pOptions;
-
- if ((pOptions = R128AvailableOptions(ChipId, BusId)))
- return pOptions;
-
- if ((pOptions = RADEONAvailableOptions(ChipId, BusId)))
- return pOptions;
-
- return ATIPublicOptions;
-}
diff --git a/src/atioption.h b/src/atioption.h
index f68f641..37303ef 100644
--- a/src/atioption.h
+++ b/src/atioption.h
@@ -91,9 +91,8 @@ extern const char * ATITVStandardNames[];
#endif /* TV_OUT */
-extern const OptionInfoRec ATIPublicOptions[];
-extern const unsigned long ATIPublicOptionSize;
+extern const OptionInfoRec * ATIOptionsWeak(void);
-extern const OptionInfoRec * ATIAvailableOptions(int, int);
+extern void ATIProcessOptions(ScrnInfoPtr, ATIPtr);
#endif /* ___ATIOPTION_H___ */
diff --git a/src/atipreinit.c b/src/atipreinit.c
index 8ca16eb..8f80824 100644
--- a/src/atipreinit.c
+++ b/src/atipreinit.c
@@ -32,7 +32,6 @@
#include "atiaudio.h"
#include "atibus.h"
#include "atichip.h"
-#include "aticonfig.h"
#include "aticursor.h"
#include "atidac.h"
#include "atidsp.h"
@@ -43,6 +42,7 @@
#include "atimach64accel.h"
#include "atimach64io.h"
#include "atimode.h"
+#include "atioption.h"
#include "atipreinit.h"
#include "atiprint.h"
#include "atiprobe.h"