diff options
-rw-r--r-- | src/Makefile.am | 3 | ||||
-rw-r--r-- | src/ati.c | 24 | ||||
-rw-r--r-- | src/aticonfig.c | 201 | ||||
-rw-r--r-- | src/aticonfig.h | 32 | ||||
-rw-r--r-- | src/atimach64probe.c | 11 | ||||
-rw-r--r-- | src/atimach64probe.h | 3 | ||||
-rw-r--r-- | src/atimodule.c | 1 | ||||
-rw-r--r-- | src/atioption.c | 254 | ||||
-rw-r--r-- | src/atioption.h | 5 | ||||
-rw-r--r-- | src/atipreinit.c | 2 |
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 \ @@ -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" |