summaryrefslogtreecommitdiff
path: root/src/aticonfig.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/aticonfig.c')
-rw-r--r--src/aticonfig.c289
1 files changed, 0 insertions, 289 deletions
diff --git a/src/aticonfig.c b/src/aticonfig.c
deleted file mode 100644
index eb1f428c..00000000
--- a/src/aticonfig.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c,v 1.14 2003/04/30 21:43:31 tsi Exp $*/
-/*
- * Copyright 2000 through 2003 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>
- */
-
-#include "ati.h"
-#include "atiadapter.h"
-#include "atichip.h"
-#include "aticonfig.h"
-#include "aticursor.h"
-#include "atioption.h"
-#include "atistruct.h"
-
-#include "mach64_common.h"
-
-/*
- * Non-publicised XF86Config options.
- */
-typedef enum
-{
- ATI_OPTION_CRT_SCREEN, /* Legacy negation of "PanelDisplay" */
- ATI_OPTION_DEVEL, /* Intentionally undocumented */
- ATI_OPTION_BLEND, /* Force horizontal blending of small modes */
- ATI_OPTION_LCDSYNC /* Use XF86Config panel mode porches */
-} ATIPrivateOptionType;
-
-/*
- * ATIProcessOptions --
- *
- * This function extracts options from what was parsed out of the XF86Config
- * file.
- */
-void
-ATIProcessOptions
-(
- ScrnInfoPtr pScreenInfo,
- ATIPtr pATI
-)
-{
- OptionInfoPtr PublicOption = xnfalloc(ATIPublicOptionSize);
- OptionInfoRec PrivateOption[] =
- {
- { /* Negation of "PanelDisplay" public option */
- ATI_OPTION_CRT_SCREEN,
- "crtscreen",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- { /* ON: Horizontally blend most modes */
- ATI_OPTION_BLEND, /* OFF: Use pixel replication more often */
- "lcdblend",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- { /* ON: Use XF86Config porch timings */
- ATI_OPTION_LCDSYNC, /* OFF: Use porches from mode on entry */
- "lcdsync",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- { /* ON: Ease exploration of loose ends */
- ATI_OPTION_DEVEL, /* OFF: Fit for public consumption */
- "tsi",
- OPTV_BOOLEAN,
- {0, },
- FALSE
- },
- {
- -1,
- NULL,
- OPTV_NONE,
- {0, },
- FALSE
- }
- };
-
- (void)memcpy(PublicOption, ATIPublicOptions, ATIPublicOptionSize);
-
-# define Accel PublicOption[ATI_OPTION_ACCEL].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
-# define CSync PublicOption[ATI_OPTION_CSYNC].value.bool
-# define Devel PrivateOption[ATI_OPTION_DEVEL].value.bool
-# define HWCursor PublicOption[ATI_OPTION_HWCURSOR].value.bool
-
-#ifndef AVOID_CPIO
-
-# define Linear PublicOption[ATI_OPTION_LINEAR].value.bool
-
-#endif /* AVOID_CPIO */
-
-#ifdef XF86DRI
-
-# define IsPCI PublicOption[ATI_OPTION_IS_PCI].value.bool
-# define DMAMode PublicOption[ATI_OPTION_DMA_MODE].value.str
-# define AGPMode PublicOption[ATI_OPTION_AGP_MODE].value.num
-# define AGPSize PublicOption[ATI_OPTION_AGP_SIZE].value.num
-# define LocalTex PublicOption[ATI_OPTION_LOCAL_TEXTURES].value.bool
-# define BufferSize PublicOption[ATI_OPTION_BUFFER_SIZE].value.num
-
-#endif /* XF86DRI */
-
-# define CacheMMIO PublicOption[ATI_OPTION_MMIO_CACHE].value.bool
-# define TestCacheMMIO PublicOption[ATI_OPTION_TEST_MMIO_CACHE].value.bool
-# define PanelDisplay PublicOption[ATI_OPTION_PANEL_DISPLAY].value.bool
-# define ProbeClocks PublicOption[ATI_OPTION_PROBE_CLOCKS].value.bool
-# define ShadowFB PublicOption[ATI_OPTION_SHADOW_FB].value.bool
-# define SWCursor PublicOption[ATI_OPTION_SWCURSOR].value.bool
-# define LCDSync PrivateOption[ATI_OPTION_LCDSYNC].value.bool
-
-# define ReferenceClock \
- PublicOption[ATI_OPTION_REFERENCE_CLOCK].value.freq.freq
-
- /* Pick up XF86Config options */
- xf86CollectOptions(pScreenInfo, NULL);
-
- /* Set non-zero defaults */
-
-#ifndef AVOID_CPIO
-
- if (pATI->Adapter >= ATI_ADAPTER_MACH64)
-
-#endif /* AVOID_CPIO */
-
- {
- Accel = CacheMMIO = HWCursor = TRUE;
-
-#ifndef AVOID_CPIO
-
- Linear = TRUE;
-
-#endif /* AVOID_CPIO */
-
- }
-
- ReferenceClock = ((double)157500000.0) / ((double)11.0);
-
-#ifndef AVOID_CPIO
-
- if (pATI->PCIInfo)
-
-#endif /* AVOID_CPIO */
-
- {
- ShadowFB = TRUE;
- }
-
- Blend = PanelDisplay = TRUE;
- DMAMode = "mmio";
-
- xf86ProcessOptions(pScreenInfo->scrnIndex, pScreenInfo->options,
- PublicOption);
- xf86ProcessOptions(pScreenInfo->scrnIndex, pScreenInfo->options,
- PrivateOption);
-
-#ifndef AVOID_CPIO
-
- /* Disable linear apertures if the OS doesn't support them */
- if (!xf86LinearVidMem() && Linear)
- {
- if (PublicOption[ATI_OPTION_LINEAR].found)
- xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
- "OS does not support linear apertures.\n");
- Linear = FALSE;
- }
-
-#endif /* AVOID_CPIO */
-
- /* Move option values into driver private structure */
- pATI->OptionAccel = Accel;
- pATI->OptionBlend = Blend;
- pATI->OptionCRTDisplay = CRTDisplay;
- pATI->OptionCSync = CSync;
- pATI->OptionDevel = Devel;
-
-#ifndef AVOID_CPIO
-
- pATI->OptionLinear = Linear;
-
-#endif /* AVOID_CPIO */
-
- pATI->OptionMMIOCache = CacheMMIO;
- pATI->OptionTestMMIOCache = TestCacheMMIO;
- pATI->OptionProbeClocks = ProbeClocks;
- pATI->OptionShadowFB = ShadowFB;
- pATI->OptionLCDSync = LCDSync;
-
- /* "CRTScreen" is now "NoPanelDisplay" */
- if ((PanelDisplay != CRTScreen) ||
- PublicOption[ATI_OPTION_PANEL_DISPLAY].found)
- pATI->OptionPanelDisplay = PanelDisplay;
- else
- pATI->OptionPanelDisplay = !CRTScreen;
-
-#ifdef XF86DRI
-
- pATI->OptionIsPCI = IsPCI;
- pATI->OptionAGPMode = AGPMode;
- pATI->OptionAGPSize = AGPSize;
- pATI->OptionLocalTextures = LocalTex;
- pATI->OptionBufferSize = BufferSize;
-
- if (strcasecmp(DMAMode, "async")==0)
- pATI->OptionDMAMode = MACH64_MODE_DMA_ASYNC;
- else if (strcasecmp(DMAMode, "sync")==0)
- pATI->OptionDMAMode = MACH64_MODE_DMA_SYNC;
- else if (strcasecmp(DMAMode, "mmio")==0 )
- pATI->OptionDMAMode = MACH64_MODE_MMIO;
- else {
- xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
- "Unkown dma_mode: '%s'\n", DMAMode);
- xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
- "Valid dma_mode options are: 'async','sync','mmio'\n");
- xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
- "Defaulting to async DMA mode\n");
- pATI->OptionDMAMode = MACH64_MODE_DMA_ASYNC;
- }
-
-#endif /* XF86DRI */
-
- /* Validate and set cursor options */
- pATI->Cursor = ATI_CURSOR_SOFTWARE;
- if (SWCursor || !HWCursor)
- {
- if (HWCursor && PublicOption[ATI_OPTION_HWCURSOR].found)
- xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
- "Option \"sw_cursor\" overrides Option \"hw_cursor\".\n");
- }
- else if (pATI->Chip < ATI_CHIP_264CT)
- {
- if (HWCursor && PublicOption[ATI_OPTION_HWCURSOR].found)
- xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
- "Option \"hw_cursor\" not supported in this configuration.\n");
- }
- else
- {
- pATI->Cursor = ATI_CURSOR_HARDWARE;
- }
-
- /* Only set the reference clock if it hasn't already been determined */
- if (!pATI->ReferenceNumerator || !pATI->ReferenceDenominator)
- {
- switch ((int)(ReferenceClock / ((double)100000.0)))
- {
- case 143:
- pATI->ReferenceNumerator = 157500;
- pATI->ReferenceDenominator = 11;
- break;
-
- case 286:
- pATI->ReferenceNumerator = 315000;
- pATI->ReferenceDenominator = 11;
- break;
-
- default:
- pATI->ReferenceNumerator =
- (int)(ReferenceClock / ((double)1000.0));
- pATI->ReferenceDenominator = 1;
- break;
- }
- }
-
- xfree(PublicOption);
-}