summaryrefslogtreecommitdiff
path: root/src/atistruct.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/atistruct.h')
-rw-r--r--src/atistruct.h491
1 files changed, 0 insertions, 491 deletions
diff --git a/src/atistruct.h b/src/atistruct.h
deleted file mode 100644
index cbaf1b8..0000000
--- a/src/atistruct.h
+++ /dev/null
@@ -1,491 +0,0 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h,v 1.39 2003/07/24 22:08:28 tsi Exp $ */
-/*
- * Copyright 1999 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:
- * Gareth Hughes <gareth@valinux.com>
- * Leif Delgass <ldelgass@retinalburn.net>
- */
-
-#ifndef ___ATISTRUCT_H___
-#define ___ATISTRUCT_H___ 1
-
-#include "atibank.h"
-#include "aticlock.h"
-#include "atiregs.h"
-
-#ifdef XF86DRI
-
-/*
- * DRI support
- */
-#define _XF86DRI_SERVER_
-#include "atidripriv.h"
-#include "mach64_dri.h"
-#include "sarea.h"
-#include "xf86dri.h"
-#include "dri.h"
-
-#endif /* XF86DRI */
-
-#include "xaa.h"
-#include "xf86Cursor.h"
-#include "xf86Pci.h"
-#include "xf86Resources.h"
-
-#define CacheSlotOf(____Register) ((____Register) / UnitOf(DWORD_SELECT))
-
-/*
- * This is probably as good a place as any to put this note, as it applies to
- * the entire driver, but especially here. CARD8's are used rather than the
- * appropriate enum types because the latter would nearly quadruple storage
- * requirements (they are stored as int's). This reduces the usefulness of
- * enum types to their ability to declare index values. I've also elected to
- * forgo the strong typing capabilities of enum types. C is not terribly adept
- * at strong typing anyway.
- */
-
-/* A structure for local data related to video modes */
-typedef struct _ATIHWRec
-{
- /* Clock number for mode */
- CARD8 clock;
-
- /* The CRTC used to drive the screen (VGA, 8514, Mach64) */
- CARD8 crtc;
-
- /* Colour lookup table */
- CARD8 lut[256 * 3];
-
-#ifndef AVOID_CPIO
-
- /* VGA registers */
- CARD8 genmo, crt[25], seq[5], gra[9], attr[21];
-
- /* VGA Wonder registers */
- CARD8 a3, a6, a7, ab, ac, ad, ae,
- b0, b1, b2, b3, b5, b6, b8, b9, ba, bd, be, bf;
-
- /* Shadow VGA CRTC registers */
- CARD8 shadow_vga[25];
-
-#endif /* AVOID_CPIO */
-
- /* Generic DAC registers */
- CARD8 dac_read, dac_write, dac_mask;
-
- /* IBM RGB 514 registers */
- CARD8 ibmrgb514[0x0092U]; /* All that's needed for now */
-
- /* Mach64 PLL registers */
- CARD8 pll_vclk_cntl, pll_vclk_post_div,
- pll_vclk0_fb_div, pll_vclk1_fb_div,
- pll_vclk2_fb_div, pll_vclk3_fb_div,
- pll_xclk_cntl, pll_ext_vpll_cntl;
-
- /* Mach64 CPIO registers */
- CARD32 crtc_h_total_disp, crtc_h_sync_strt_wid,
- crtc_v_total_disp, crtc_v_sync_strt_wid,
- crtc_off_pitch, crtc_gen_cntl, dsp_config, dsp_on_off,
- ovr_clr, ovr_wid_left_right, ovr_wid_top_bottom,
- cur_clr0, cur_clr1, cur_offset,
- cur_horz_vert_posn, cur_horz_vert_off,
- clock_cntl, bus_cntl, mem_cntl, mem_vga_wp_sel, mem_vga_rp_sel,
- dac_cntl, gen_test_cntl, config_cntl, mpp_config, mpp_strobe_seq,
- tvo_cntl;
-
- /* LCD registers */
- CARD32 lcd_index, config_panel, lcd_gen_ctrl,
- horz_stretching, vert_stretching, ext_vert_stretch;
-
- /* Shadow Mach64 CRTC registers */
- CARD32 shadow_h_total_disp, shadow_h_sync_strt_wid,
- shadow_v_total_disp, shadow_v_sync_strt_wid;
-
- /* Mach64 MMIO Block 0 registers and related subfields */
- CARD32 dst_off_pitch;
- CARD16 dst_x, dst_y, dst_height;
- CARD32 dst_bres_err, dst_bres_inc, dst_bres_dec, dst_cntl;
- CARD32 src_off_pitch;
- CARD16 src_x, src_y, src_width1, src_height1,
- src_x_start, src_y_start, src_width2, src_height2;
- CARD32 src_cntl;
- CARD32 host_cntl;
- CARD32 pat_reg0, pat_reg1, pat_cntl;
- CARD16 sc_left, sc_right, sc_top, sc_bottom;
- CARD32 dp_bkgd_clr, dp_frgd_clr, dp_write_mask, dp_chain_mask,
- dp_pix_width, dp_mix, dp_src;
- CARD32 clr_cmp_clr, clr_cmp_msk, clr_cmp_cntl;
- CARD32 context_mask, context_load_cntl;
-
- /* Mach64 MMIO Block 1 registers */
- CARD32 overlay_y_x_start, overlay_y_x_end, overlay_graphics_key_clr,
- overlay_graphics_key_msk, overlay_key_cntl, overlay_scale_inc,
- overlay_scale_cntl, scaler_height_width, scaler_test,
- scaler_buf0_offset, scaler_buf1_offset, scaler_buf_pitch,
- video_format, overlay_exclusive_horz, overlay_exclusive_vert,
- buf0_offset, buf0_pitch, buf1_offset, buf1_pitch,
- scaler_colour_cntl, scaler_h_coeff0, scaler_h_coeff1,
- scaler_h_coeff2, scaler_h_coeff3, scaler_h_coeff4, gui_cntl,
- scaler_buf0_offset_u, scaler_buf0_offset_v, scaler_buf1_offset_u,
- scaler_buf1_offset_v;
-
- /* Clock map pointers */
- const CARD8 *ClockMap, *ClockUnmap;
-
- /* Clock programming data */
- int FeedbackDivider, ReferenceDivider, PostDivider;
-
-#ifndef AVOID_CPIO
-
- /* This is used by ATISwap() */
- pointer frame_buffer;
- ATIBankProcPtr SetBank;
- unsigned int nBank, nPlane;
-
-#endif /* AVOID_CPIO */
-
-} ATIHWRec;
-
-/*
- * This structure defines the driver's private area.
- */
-typedef struct _ATIRec
-{
- /*
- * Definitions related to XF86Config "Chipset" specifications.
- */
- CARD8 Chipset;
-
- /*
- * Adapter-related definitions.
- */
- CARD8 Adapter;
-
-#ifndef AVOID_CPIO
-
- CARD8 VGAAdapter;
-
-#endif /* AVOID_CPIO */
-
- /*
- * Chip-related definitions.
- */
- CARD32 config_chip_id;
- CARD16 ChipType;
- CARD8 Chip;
- CARD8 ChipClass, ChipRevision, ChipRev, ChipVersion, ChipFoundry;
-
-#ifndef AVOID_CPIO
-
- CARD8 Coprocessor, ChipHasSUBSYS_CNTL;
-
-#endif /* AVOID_CPIO */
-
- /*
- * Processor I/O decoding definitions.
- */
- CARD8 CPIODecoding;
- IOADDRESS CPIOBase;
-
-#ifndef AVOID_CPIO
-
- /*
- * Processor I/O port definition for VGA.
- */
- IOADDRESS CPIO_VGABase;
-
- /*
- * Processor I/O port definitions for VGA Wonder.
- */
- IOADDRESS CPIO_VGAWonder;
- CARD8 B2Reg; /* The B2 mirror */
- CARD8 VGAOffset; /* Low index for CPIO_VGAWonder */
-
-#endif /* AVOID_CPIO */
-
- /*
- * DAC-related definitions.
- */
-
-#ifndef AVOID_CPIO
-
- IOADDRESS CPIO_DAC_MASK, CPIO_DAC_DATA, CPIO_DAC_READ, CPIO_DAC_WRITE,
- CPIO_DAC_WAIT;
-
-#endif /* AVOID_CPIO */
-
- CARD16 DAC;
- CARD8 rgbBits;
-
- /*
- * Definitions related to system bus interface.
- */
- pciVideoPtr PCIInfo;
- CARD8 BusType;
- CARD8 SharedAccelerator;
-
-#ifndef AVOID_CPIO
-
- CARD8 SharedVGA;
- resRange VGAWonderResources[2];
-
-#endif /* AVOID_CPIO */
-
- /*
- * Definitions related to video memory.
- */
- CARD8 MemoryType;
- int VideoRAM;
-
- /*
- * BIOS-related definitions.
- */
- unsigned long BIOSBase;
- CARD8 I2CType, Tuner, Decoder, Audio;
-
- /*
- * Definitions related to video memory apertures.
- */
- pointer pMemory, pShadow;
- pointer pMemoryLE; /* Always little-endian */
- unsigned long LinearBase;
- int LinearSize, FBPitch, FBBytesPerPixel;
-
-#ifndef AVOID_CPIO
-
- /*
- * Banking interface.
- */
- miBankInfoRec BankInfo;
- pointer pBank;
- CARD8 UseSmallApertures;
-
-#endif /* AVOID_CPIO */
-
- /*
- * Definitions related to MMIO register apertures.
- */
- pointer pMMIO, pBlock[2];
- unsigned long Block0Base, Block1Base;
-
- /*
- * XAA interface.
- */
- XAAInfoRecPtr pXAAInfo;
- int nAvailableFIFOEntries, nFIFOEntries, nHostFIFOEntries;
- CARD8 EngineIsBusy, EngineIsLocked, XModifier;
- CARD32 dst_cntl; /* For SetupFor/Subsequent communication */
- CARD32 sc_left_right, sc_top_bottom;
- CARD16 sc_left, sc_right, sc_top, sc_bottom; /* Current scissors */
- pointer pHOST_DATA; /* Current HOST_DATA_* transfer window address */
- CARD32 *ExpansionBitmapScanlinePtr[2];
- int ExpansionBitmapWidth;
-
- /*
- * Cursor-related definitions.
- */
- xf86CursorInfoPtr pCursorInfo;
- pointer pCursorPage, pCursorImage;
- unsigned long CursorBase;
- CARD32 CursorOffset;
- CARD16 CursorXOffset, CursorYOffset;
- CARD8 Cursor;
-
- /*
- * MMIO cache.
- */
- CARD32 MMIOCache[CacheSlotOf(DWORD_SELECT) + 1];
- CARD8 MMIOCached[(CacheSlotOf(DWORD_SELECT) + 8) >> 3];
-
- /*
- * Clock-related definitions.
- */
- int ClockNumberToProgramme, ReferenceNumerator, ReferenceDenominator;
- int ProgrammableClock, maxClock;
- ClockRec ClockDescriptor;
- CARD16 BIOSClocks[16];
- CARD8 Clock;
-
- /*
- * DSP register data.
- */
- int XCLKFeedbackDivider, XCLKReferenceDivider, XCLKPostDivider;
- CARD16 XCLKMaxRASDelay, XCLKPageFaultDelay,
- DisplayLoopLatency, DisplayFIFODepth;
-
- /*
- * LCD panel data.
- */
- int LCDPanelID, LCDClock, LCDHorizontal, LCDVertical;
- int LCDHSyncStart, LCDHSyncWidth, LCDHBlankWidth;
- int LCDVSyncStart, LCDVSyncWidth, LCDVBlankWidth;
- int LCDVBlendFIFOSize;
-
- /*
- * Data used by ATIAdjustFrame().
- */
- int AdjustDepth, AdjustMaxX, AdjustMaxY;
- unsigned long AdjustMask, AdjustMaxBase;
-
- /*
- * DGA and non-DGA common data.
- */
- DisplayModePtr currentMode;
- CARD8 depth, bitsPerPixel;
- short int displayWidth;
- int pitchInc;
- rgb weight;
-
-#ifndef AVOID_DGA
-
- /*
- * DGA-related data.
- */
- DGAModePtr pDGAMode;
- DGAFunctionRec ATIDGAFunctions;
- int nDGAMode;
-
- /*
- * XAAForceTransBlit alters the behavior of 'SetupForScreenToScreenCopy',
- * such that ~0 is interpreted as a legitimate transparency key.
- */
- CARD8 XAAForceTransBlit;
-
-#endif /* AVOID_DGA */
-
- /*
- * XVideo-related data.
- */
- DevUnion XVPortPrivate[1];
- FBLinearPtr pXVBuffer;
- RegionRec VideoClip;
- int SurfacePitch, SurfaceOffset;
- CARD8 AutoPaint, DoubleBuffer, CurrentBuffer, ActiveSurface;
-
- /*
- * Data saved by ATIUnlock() and restored by ATILock().
- */
- struct
- {
- /* Mach64 registers */
- CARD32 crtc_int_cntl, crtc_gen_cntl, i2c_cntl_0, hw_debug,
- scratch_reg3, bus_cntl, lcd_index, mem_cntl, i2c_cntl_1,
- dac_cntl, gen_test_cntl, mpp_config, mpp_strobe_seq, tvo_cntl;
-
-#ifndef AVOID_CPIO
-
- CARD32 config_cntl;
-
- /* Mach8/Mach32 registers */
- CARD16 clock_sel, misc_options, mem_bndry, mem_cfg;
-
- /* VGA Wonder registers */
- CARD8 a6, ab, b1, b4, b5, b6, b8, b9, be;
-
- /* VGA registers */
- CARD8 crt03, crt11;
-
- /* VGA shadow registers */
- CARD8 shadow_crt03, shadow_crt11;
-
-#endif /* AVOID_CPIO */
-
- } LockData;
-
- /* Mode data */
- ATIHWRec OldHW, NewHW;
- int MaximumInterlacedPitch;
- Bool InterlacedSeen;
-
- /*
- * Resource Access Control entity index.
- */
- int iEntity;
-
- /*
- * 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 */
-
-#ifndef AVOID_CPIO
-
- CARD8 OptionLinear; /* 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 */
-
- /*
- * State flags.
- */
- CARD8 Unlocked, Mapped, Closeable;
- CARD8 MMIOInLinear;
-
- /*
- * Wrapped functions.
- */
- CloseScreenProcPtr CloseScreen;
-
-#ifdef XF86DRI
-
- /*
- * DRI data.
- */
- int directRenderingEnabled;
- DRIInfoPtr pDRIInfo;
- int drmFD;
- int irq;
- int numVisualConfigs;
- __GLXvisualConfig *pVisualConfigs;
- ATIConfigPrivPtr pVisualConfigsPriv;
- ATIDRIServerInfoPtr pDRIServerInfo;
- Bool NeedDRISync;
- Bool have3DWindows;
-
- /* offscreen memory management */
- int backLines;
- FBAreaPtr backArea;
- int depthTexLines;
- FBAreaPtr depthTexArea;
- CARD8 OptionIsPCI; /* Force PCI mode */
- CARD8 OptionDMAMode; /* async, sync, mmio */
- CARD8 OptionAGPMode; /* AGP mode */
- 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 */
-
-} ATIRec;
-
-#define ATIPTR(_p) ((ATIPtr)((_p)->driverPrivate))
-
-#endif /* ___ATISTRUCT_H___ */