i915/i965 merge serer directories along lines for radeon/r200
This commit is contained in:
parent
175db68db5
commit
67f6449743
|
@ -54,6 +54,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#define DRM_I830_DESTROY_HEAP 0x0c
|
||||
#define DRM_I830_SET_VBLANK_PIPE 0x0d
|
||||
#define DRM_I830_GET_VBLANK_PIPE 0x0e
|
||||
#define DRM_I830_MMIO 0x10
|
||||
|
||||
typedef struct {
|
||||
enum {
|
||||
|
@ -233,4 +234,23 @@ typedef struct {
|
|||
int pipe;
|
||||
} drmI830VBlankPipe;
|
||||
|
||||
#define MMIO_READ 0
|
||||
#define MMIO_WRITE 1
|
||||
|
||||
#define MMIO_REGS_IA_PRIMATIVES_COUNT 0
|
||||
#define MMIO_REGS_IA_VERTICES_COUNT 1
|
||||
#define MMIO_REGS_VS_INVOCATION_COUNT 2
|
||||
#define MMIO_REGS_GS_PRIMITIVES_COUNT 3
|
||||
#define MMIO_REGS_GS_INVOCATION_COUNT 4
|
||||
#define MMIO_REGS_CL_PRIMITIVES_COUNT 5
|
||||
#define MMIO_REGS_CL_INVOCATION_COUNT 6
|
||||
#define MMIO_REGS_PS_INVOCATION_COUNT 7
|
||||
#define MMIO_REGS_PS_DEPTH_COUNT 8
|
||||
|
||||
typedef struct {
|
||||
unsigned int read_write:1;
|
||||
unsigned int reg:31;
|
||||
void __user *data;
|
||||
} drmI830MMIO;
|
||||
|
||||
#endif /* _I830_DRM_H_ */
|
||||
|
|
|
@ -77,6 +77,12 @@ DRIVER_SOURCES = \
|
|||
brw_wm_state.c \
|
||||
brw_wm_surface_state.c
|
||||
|
||||
SYMLINKS = \
|
||||
server/i830_dri.h \
|
||||
server/i830_common.h \
|
||||
server/intel_dri.c \
|
||||
server/intel.h
|
||||
|
||||
C_SOURCES = \
|
||||
$(COMMON_SOURCES) \
|
||||
$(MINIGLX_SOURCES) \
|
||||
|
@ -90,4 +96,10 @@ include ../Makefile.template
|
|||
|
||||
intel_tex_layout.o: ../intel/intel_tex_layout.c
|
||||
|
||||
symlinks:
|
||||
server:
|
||||
mkdir -p server
|
||||
|
||||
$(SYMLINKS): server
|
||||
@[ -e $@ ] || ln -sf ../../i915/$@ server/
|
||||
|
||||
symlinks: $(SYMLINKS)
|
||||
|
|
|
@ -1,222 +0,0 @@
|
|||
/**************************************************************************
|
||||
|
||||
Copyright 2001 VA Linux Systems Inc., Fremont, California.
|
||||
Copyright 2002 Tungsten Graphics Inc., Cedar Park, Texas.
|
||||
|
||||
All Rights Reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
on the rights to use, copy, modify, merge, publish, distribute, sub
|
||||
license, and/or sell copies of the Software, and to permit persons to whom
|
||||
the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice (including the next
|
||||
paragraph) shall be included in all copies or substantial portions of the
|
||||
Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||
ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
**************************************************************************/
|
||||
|
||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i830_common.h,v 1.1 2002/09/11 00:29:32 dawes Exp $ */
|
||||
|
||||
#ifndef _I830_COMMON_H_
|
||||
#define _I830_COMMON_H_
|
||||
|
||||
|
||||
#define I830_NR_TEX_REGIONS 255 /* maximum due to use of chars for next/prev */
|
||||
#define I830_LOG_MIN_TEX_REGION_SIZE 14
|
||||
|
||||
|
||||
/* Driver specific DRM command indices
|
||||
* NOTE: these are not OS specific, but they are driver specific
|
||||
*/
|
||||
#define DRM_I830_INIT 0x00
|
||||
#define DRM_I830_FLUSH 0x01
|
||||
#define DRM_I830_FLIP 0x02
|
||||
#define DRM_I830_BATCHBUFFER 0x03
|
||||
#define DRM_I830_IRQ_EMIT 0x04
|
||||
#define DRM_I830_IRQ_WAIT 0x05
|
||||
#define DRM_I830_GETPARAM 0x06
|
||||
#define DRM_I830_SETPARAM 0x07
|
||||
#define DRM_I830_ALLOC 0x08
|
||||
#define DRM_I830_FREE 0x09
|
||||
#define DRM_I830_INIT_HEAP 0x0a
|
||||
#define DRM_I830_CMDBUFFER 0x0b
|
||||
#define DRM_I830_DESTROY_HEAP 0x0c
|
||||
#define DRM_I830_MMIO 0x10
|
||||
|
||||
typedef struct {
|
||||
enum {
|
||||
I830_INIT_DMA = 0x01,
|
||||
I830_CLEANUP_DMA = 0x02,
|
||||
I830_RESUME_DMA = 0x03
|
||||
} func;
|
||||
unsigned int mmio_offset;
|
||||
int sarea_priv_offset;
|
||||
unsigned int ring_start;
|
||||
unsigned int ring_end;
|
||||
unsigned int ring_size;
|
||||
unsigned int front_offset;
|
||||
unsigned int back_offset;
|
||||
unsigned int depth_offset;
|
||||
unsigned int w;
|
||||
unsigned int h;
|
||||
unsigned int pitch;
|
||||
unsigned int pitch_bits;
|
||||
unsigned int back_pitch;
|
||||
unsigned int depth_pitch;
|
||||
unsigned int cpp;
|
||||
unsigned int chipset;
|
||||
} drmI830Init;
|
||||
|
||||
typedef struct {
|
||||
drmTextureRegion texList[I830_NR_TEX_REGIONS+1];
|
||||
int last_upload; /* last time texture was uploaded */
|
||||
int last_enqueue; /* last time a buffer was enqueued */
|
||||
volatile int last_dispatch; /* age of the most recently dispatched buffer */
|
||||
int ctxOwner; /* last context to upload state */
|
||||
int texAge;
|
||||
int pf_enabled; /* is pageflipping allowed? */
|
||||
int pf_active;
|
||||
int pf_current_page; /* which buffer is being displayed? */
|
||||
int perf_boxes; /* performance boxes to be displayed */
|
||||
int width, height; /* screen size in pixels */
|
||||
|
||||
drm_handle_t front_handle;
|
||||
int front_offset;
|
||||
int front_size;
|
||||
|
||||
drm_handle_t back_handle;
|
||||
int back_offset;
|
||||
int back_size;
|
||||
|
||||
drm_handle_t depth_handle;
|
||||
int depth_offset;
|
||||
int depth_size;
|
||||
|
||||
drm_handle_t tex_handle;
|
||||
int tex_offset;
|
||||
int tex_size;
|
||||
int log_tex_granularity;
|
||||
int pitch;
|
||||
int rotation; /* 0, 90, 180 or 270 */
|
||||
int rotated_offset;
|
||||
int rotated_size;
|
||||
int rotated_pitch;
|
||||
int virtualX, virtualY;
|
||||
|
||||
unsigned int front_tiled;
|
||||
unsigned int back_tiled;
|
||||
unsigned int depth_tiled;
|
||||
unsigned int rotated_tiled;
|
||||
unsigned int rotated2_tiled;
|
||||
} drmI830Sarea;
|
||||
|
||||
/* Flags for perf_boxes
|
||||
*/
|
||||
#define I830_BOX_RING_EMPTY 0x1 /* populated by kernel */
|
||||
#define I830_BOX_FLIP 0x2 /* populated by kernel */
|
||||
#define I830_BOX_WAIT 0x4 /* populated by kernel & client */
|
||||
#define I830_BOX_TEXTURE_LOAD 0x8 /* populated by kernel */
|
||||
#define I830_BOX_LOST_CONTEXT 0x10 /* populated by client */
|
||||
|
||||
|
||||
typedef struct {
|
||||
int start; /* agp offset */
|
||||
int used; /* nr bytes in use */
|
||||
int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */
|
||||
int DR4; /* window origin for GFX_OP_DRAWRECT_INFO*/
|
||||
int num_cliprects; /* mulitpass with multiple cliprects? */
|
||||
drm_clip_rect_t *cliprects; /* pointer to userspace cliprects */
|
||||
} drmI830BatchBuffer;
|
||||
|
||||
typedef struct {
|
||||
char *buf; /* agp offset */
|
||||
int sz; /* nr bytes in use */
|
||||
int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */
|
||||
int DR4; /* window origin for GFX_OP_DRAWRECT_INFO*/
|
||||
int num_cliprects; /* mulitpass with multiple cliprects? */
|
||||
drm_clip_rect_t *cliprects; /* pointer to userspace cliprects */
|
||||
} drmI830CmdBuffer;
|
||||
|
||||
typedef struct {
|
||||
int *irq_seq;
|
||||
} drmI830IrqEmit;
|
||||
|
||||
typedef struct {
|
||||
int irq_seq;
|
||||
} drmI830IrqWait;
|
||||
|
||||
typedef struct {
|
||||
int param;
|
||||
int *value;
|
||||
} drmI830GetParam;
|
||||
|
||||
#define I830_PARAM_IRQ_ACTIVE 1
|
||||
#define I830_PARAM_ALLOW_BATCHBUFFER 2
|
||||
|
||||
typedef struct {
|
||||
int param;
|
||||
int value;
|
||||
} drmI830SetParam;
|
||||
|
||||
#define I830_SETPARAM_USE_MI_BATCHBUFFER_START 1
|
||||
#define I830_SETPARAM_TEX_LRU_LOG_GRANULARITY 2
|
||||
#define I830_SETPARAM_ALLOW_BATCHBUFFER 3
|
||||
|
||||
|
||||
/* A memory manager for regions of shared memory:
|
||||
*/
|
||||
#define I830_MEM_REGION_AGP 1
|
||||
|
||||
typedef struct {
|
||||
int region;
|
||||
int alignment;
|
||||
int size;
|
||||
int *region_offset; /* offset from start of fb or agp */
|
||||
} drmI830MemAlloc;
|
||||
|
||||
typedef struct {
|
||||
int region;
|
||||
int region_offset;
|
||||
} drmI830MemFree;
|
||||
|
||||
typedef struct {
|
||||
int region;
|
||||
int size;
|
||||
int start;
|
||||
} drmI830MemInitHeap;
|
||||
|
||||
typedef struct {
|
||||
int region;
|
||||
} drmI830MemDestroyHeap;
|
||||
|
||||
#define MMIO_READ 0
|
||||
#define MMIO_WRITE 1
|
||||
|
||||
#define MMIO_REGS_IA_PRIMATIVES_COUNT 0
|
||||
#define MMIO_REGS_IA_VERTICES_COUNT 1
|
||||
#define MMIO_REGS_VS_INVOCATION_COUNT 2
|
||||
#define MMIO_REGS_GS_PRIMITIVES_COUNT 3
|
||||
#define MMIO_REGS_GS_INVOCATION_COUNT 4
|
||||
#define MMIO_REGS_CL_PRIMITIVES_COUNT 5
|
||||
#define MMIO_REGS_CL_INVOCATION_COUNT 6
|
||||
#define MMIO_REGS_PS_INVOCATION_COUNT 7
|
||||
#define MMIO_REGS_PS_DEPTH_COUNT 8
|
||||
|
||||
typedef struct {
|
||||
unsigned int read_write:1;
|
||||
unsigned int reg:31;
|
||||
void __user *data;
|
||||
} drmI830MMIO;
|
||||
|
||||
#endif /* _I830_DRM_H_ */
|
|
@ -1,63 +0,0 @@
|
|||
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i830_dri.h,v 1.4 2002/10/30 12:52:18 alanh Exp $ */
|
||||
|
||||
#ifndef _I830_DRI_H
|
||||
#define _I830_DRI_H
|
||||
|
||||
#include "xf86drm.h"
|
||||
#include "i830_common.h"
|
||||
|
||||
#define I830_MAX_DRAWABLES 256
|
||||
|
||||
#define I830_MAJOR_VERSION 1
|
||||
#define I830_MINOR_VERSION 3
|
||||
#define I830_PATCHLEVEL 0
|
||||
|
||||
#define I830_REG_SIZE 0x80000
|
||||
|
||||
typedef struct _I830DRIRec {
|
||||
drm_handle_t regs;
|
||||
drmSize regsSize;
|
||||
|
||||
drmSize unused1; /* backbufferSize */
|
||||
drm_handle_t unused2; /* backbuffer */
|
||||
|
||||
drmSize unused3; /* depthbufferSize */
|
||||
drm_handle_t unused4; /* depthbuffer */
|
||||
|
||||
drmSize unused5; /* rotatedSize /*/
|
||||
drm_handle_t unused6; /* rotatedbuffer */
|
||||
|
||||
drm_handle_t unused7; /* textures */
|
||||
int unused8; /* textureSize */
|
||||
|
||||
drm_handle_t unused9; /* agp_buffers */
|
||||
drmSize unused10; /* agp_buf_size */
|
||||
|
||||
int deviceID;
|
||||
int width;
|
||||
int height;
|
||||
int mem;
|
||||
int cpp;
|
||||
int bitsPerPixel;
|
||||
|
||||
int unused11[8]; /* was front/back/depth/rotated offset/pitch */
|
||||
|
||||
int unused12; /* logTextureGranularity */
|
||||
int unused13; /* textureOffset */
|
||||
|
||||
int irq;
|
||||
int sarea_priv_offset;
|
||||
} I830DRIRec, *I830DRIPtr;
|
||||
|
||||
typedef struct {
|
||||
/* Nothing here yet */
|
||||
int dummy;
|
||||
} I830ConfigPrivRec, *I830ConfigPrivPtr;
|
||||
|
||||
typedef struct {
|
||||
/* Nothing here yet */
|
||||
int dummy;
|
||||
} I830DRIContextRec, *I830DRIContextPtr;
|
||||
|
||||
|
||||
#endif
|
|
@ -1,328 +0,0 @@
|
|||
#ifndef _INTEL_H_
|
||||
#define _INTEL_H_
|
||||
|
||||
#include "xf86drm.h" /* drm_handle_t, etc */
|
||||
|
||||
/* Intel */
|
||||
#ifndef PCI_CHIP_I810
|
||||
#define PCI_CHIP_I810 0x7121
|
||||
#define PCI_CHIP_I810_DC100 0x7123
|
||||
#define PCI_CHIP_I810_E 0x7125
|
||||
#define PCI_CHIP_I815 0x1132
|
||||
#define PCI_CHIP_I810_BRIDGE 0x7120
|
||||
#define PCI_CHIP_I810_DC100_BRIDGE 0x7122
|
||||
#define PCI_CHIP_I810_E_BRIDGE 0x7124
|
||||
#define PCI_CHIP_I815_BRIDGE 0x1130
|
||||
#endif
|
||||
|
||||
#define PCI_CHIP_845_G 0x2562
|
||||
#define PCI_CHIP_I830_M 0x3577
|
||||
|
||||
#ifndef PCI_CHIP_I855_GM
|
||||
#define PCI_CHIP_I855_GM 0x3582
|
||||
#define PCI_CHIP_I855_GM_BRIDGE 0x3580
|
||||
#endif
|
||||
|
||||
#ifndef PCI_CHIP_I865_G
|
||||
#define PCI_CHIP_I865_G 0x2572
|
||||
#define PCI_CHIP_I865_G_BRIDGE 0x2570
|
||||
#endif
|
||||
|
||||
#ifndef PCI_CHIP_I915_G
|
||||
#define PCI_CHIP_I915_G 0x2582
|
||||
#define PCI_CHIP_I915_G_BRIDGE 0x2580
|
||||
#endif
|
||||
|
||||
#ifndef PCI_CHIP_I915_GM
|
||||
#define PCI_CHIP_I915_GM 0x2592
|
||||
#define PCI_CHIP_I915_GM_BRIDGE 0x2590
|
||||
#endif
|
||||
|
||||
#ifndef PCI_CHIP_E7221_G
|
||||
#define PCI_CHIP_E7221_G 0x258A
|
||||
/* Same as I915_G_BRIDGE */
|
||||
#define PCI_CHIP_E7221_G_BRIDGE 0x2580
|
||||
#endif
|
||||
|
||||
#ifndef PCI_CHIP_I945_G
|
||||
#define PCI_CHIP_I945_G 0x2772
|
||||
#define PCI_CHIP_I945_G_BRIDGE 0x2770
|
||||
#endif
|
||||
|
||||
#ifndef PCI_CHIP_I945_GM
|
||||
#define PCI_CHIP_I945_GM 0x27A2
|
||||
#define PCI_CHIP_I945_GM_BRIDGE 0x27A0
|
||||
#endif
|
||||
|
||||
#define IS_I810(pI810) (pI810->Chipset == PCI_CHIP_I810 || \
|
||||
pI810->Chipset == PCI_CHIP_I810_DC100 || \
|
||||
pI810->Chipset == PCI_CHIP_I810_E)
|
||||
#define IS_I815(pI810) (pI810->Chipset == PCI_CHIP_I815)
|
||||
#define IS_I830(pI810) (pI810->Chipset == PCI_CHIP_I830_M)
|
||||
#define IS_845G(pI810) (pI810->Chipset == PCI_CHIP_845_G)
|
||||
#define IS_I85X(pI810) (pI810->Chipset == PCI_CHIP_I855_GM)
|
||||
#define IS_I852(pI810) (pI810->Chipset == PCI_CHIP_I855_GM && (pI810->variant == I852_GM || pI810->variant == I852_GME))
|
||||
#define IS_I855(pI810) (pI810->Chipset == PCI_CHIP_I855_GM && (pI810->variant == I855_GM || pI810->variant == I855_GME))
|
||||
#define IS_I865G(pI810) (pI810->Chipset == PCI_CHIP_I865_G)
|
||||
|
||||
#define IS_I915G(pI810) (pI810->Chipset == PCI_CHIP_I915_G || pI810->Chipset == PCI_CHIP_E7221_G)
|
||||
#define IS_I915GM(pI810) (pI810->Chipset == PCI_CHIP_I915_GM)
|
||||
#define IS_I945G(pI810) (pI810->Chipset == PCI_CHIP_I945_G)
|
||||
#define IS_I945GM(pI810) (pI810->Chipset == PCI_CHIP_I945_GM)
|
||||
#define IS_I9XX(pI810) (IS_I915G(pI810) || IS_I915GM(pI810) || IS_I945G(pI810) || IS_I945GM(pI810))
|
||||
|
||||
#define IS_MOBILE(pI810) (IS_I830(pI810) || IS_I85X(pI810) || IS_I915GM(pI810) || IS_I945GM(pI810))
|
||||
|
||||
#define I830_GMCH_CTRL 0x52
|
||||
|
||||
|
||||
#define I830_GMCH_GMS_MASK 0x70
|
||||
#define I830_GMCH_GMS_DISABLED 0x00
|
||||
#define I830_GMCH_GMS_LOCAL 0x10
|
||||
#define I830_GMCH_GMS_STOLEN_512 0x20
|
||||
#define I830_GMCH_GMS_STOLEN_1024 0x30
|
||||
#define I830_GMCH_GMS_STOLEN_8192 0x40
|
||||
|
||||
#define I855_GMCH_GMS_MASK (0x7 << 4)
|
||||
#define I855_GMCH_GMS_DISABLED 0x00
|
||||
#define I855_GMCH_GMS_STOLEN_1M (0x1 << 4)
|
||||
#define I855_GMCH_GMS_STOLEN_4M (0x2 << 4)
|
||||
#define I855_GMCH_GMS_STOLEN_8M (0x3 << 4)
|
||||
#define I855_GMCH_GMS_STOLEN_16M (0x4 << 4)
|
||||
#define I855_GMCH_GMS_STOLEN_32M (0x5 << 4)
|
||||
#define I915G_GMCH_GMS_STOLEN_48M (0x6 << 4)
|
||||
#define I915G_GMCH_GMS_STOLEN_64M (0x7 << 4)
|
||||
|
||||
typedef unsigned char Bool;
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define PIPE_NONE 0<<0
|
||||
#define PIPE_CRT 1<<0
|
||||
#define PIPE_TV 1<<1
|
||||
#define PIPE_DFP 1<<2
|
||||
#define PIPE_LFP 1<<3
|
||||
#define PIPE_CRT2 1<<4
|
||||
#define PIPE_TV2 1<<5
|
||||
#define PIPE_DFP2 1<<6
|
||||
#define PIPE_LFP2 1<<7
|
||||
|
||||
typedef struct _I830MemPool *I830MemPoolPtr;
|
||||
typedef struct _I830MemRange *I830MemRangePtr;
|
||||
typedef struct _I830MemRange {
|
||||
long Start;
|
||||
long End;
|
||||
long Size;
|
||||
unsigned long Physical;
|
||||
unsigned long Offset; /* Offset of AGP-allocated portion */
|
||||
unsigned long Alignment;
|
||||
drm_handle_t Key;
|
||||
unsigned long Pitch; // add pitch
|
||||
I830MemPoolPtr Pool;
|
||||
} I830MemRange;
|
||||
|
||||
typedef struct _I830MemPool {
|
||||
I830MemRange Total;
|
||||
I830MemRange Free;
|
||||
I830MemRange Fixed;
|
||||
I830MemRange Allocated;
|
||||
} I830MemPool;
|
||||
|
||||
typedef struct {
|
||||
int tail_mask;
|
||||
I830MemRange mem;
|
||||
unsigned char *virtual_start;
|
||||
int head;
|
||||
int tail;
|
||||
int space;
|
||||
} I830RingBuffer;
|
||||
|
||||
typedef struct _I830Rec {
|
||||
unsigned char *MMIOBase;
|
||||
unsigned char *FbBase;
|
||||
int cpp;
|
||||
|
||||
unsigned int bios_version;
|
||||
|
||||
/* These are set in PreInit and never changed. */
|
||||
long FbMapSize;
|
||||
long TotalVideoRam;
|
||||
I830MemRange StolenMemory; /* pre-allocated memory */
|
||||
long BIOSMemorySize; /* min stolen pool size */
|
||||
int BIOSMemSizeLoc;
|
||||
|
||||
/* These change according to what has been allocated. */
|
||||
long FreeMemory;
|
||||
I830MemRange MemoryAperture;
|
||||
I830MemPool StolenPool;
|
||||
long allocatedMemory;
|
||||
|
||||
/* Regions allocated either from the above pools, or from agpgart. */
|
||||
/* for single and dual head configurations */
|
||||
I830MemRange FrontBuffer;
|
||||
I830MemRange FrontBuffer2;
|
||||
I830MemRange Scratch;
|
||||
I830MemRange Scratch2;
|
||||
|
||||
I830RingBuffer *LpRing;
|
||||
|
||||
I830MemRange BackBuffer;
|
||||
I830MemRange DepthBuffer;
|
||||
I830MemRange TexMem;
|
||||
int TexGranularity;
|
||||
I830MemRange ContextMem;
|
||||
int drmMinor;
|
||||
Bool have3DWindows;
|
||||
|
||||
Bool NeedRingBufferLow;
|
||||
Bool allowPageFlip;
|
||||
Bool disableTiling;
|
||||
|
||||
int Chipset;
|
||||
unsigned long LinearAddr;
|
||||
unsigned long MMIOAddr;
|
||||
|
||||
drmSize registerSize; /**< \brief MMIO register map size */
|
||||
drm_handle_t registerHandle; /**< \brief MMIO register map handle */
|
||||
// IOADDRESS ioBase;
|
||||
int irq; /**< \brief IRQ number */
|
||||
int GttBound;
|
||||
|
||||
drm_handle_t ring_map;
|
||||
unsigned int Fence[8];
|
||||
|
||||
} I830Rec;
|
||||
|
||||
/*
|
||||
* 12288 is set as the maximum, chosen because it is enough for
|
||||
* 1920x1440@32bpp with a 2048 pixel line pitch with some to spare.
|
||||
*/
|
||||
#define I830_MAXIMUM_VBIOS_MEM 12288
|
||||
#define I830_DEFAULT_VIDEOMEM_2D (MB(32) / 1024)
|
||||
#define I830_DEFAULT_VIDEOMEM_3D (MB(64) / 1024)
|
||||
|
||||
/* Flags for memory allocation function */
|
||||
#define FROM_ANYWHERE 0x00000000
|
||||
#define FROM_POOL_ONLY 0x00000001
|
||||
#define FROM_NEW_ONLY 0x00000002
|
||||
#define FROM_MASK 0x0000000f
|
||||
|
||||
#define ALLOCATE_AT_TOP 0x00000010
|
||||
#define ALLOCATE_AT_BOTTOM 0x00000020
|
||||
#define FORCE_GAPS 0x00000040
|
||||
|
||||
#define NEED_PHYSICAL_ADDR 0x00000100
|
||||
#define ALIGN_BOTH_ENDS 0x00000200
|
||||
#define FORCE_LOW 0x00000400
|
||||
|
||||
#define ALLOC_NO_TILING 0x00001000
|
||||
#define ALLOC_INITIAL 0x00002000
|
||||
|
||||
#define ALLOCATE_DRY_RUN 0x80000000
|
||||
|
||||
/* Chipset registers for VIDEO BIOS memory RW access */
|
||||
#define _855_DRAM_RW_CONTROL 0x58
|
||||
#define _845_DRAM_RW_CONTROL 0x90
|
||||
#define DRAM_WRITE 0x33330000
|
||||
|
||||
#define KB(x) ((x) * 1024)
|
||||
#define MB(x) ((x) * KB(1024))
|
||||
|
||||
#define GTT_PAGE_SIZE KB(4)
|
||||
#define ROUND_TO(x, y) (((x) + (y) - 1) / (y) * (y))
|
||||
#define ROUND_DOWN_TO(x, y) ((x) / (y) * (y))
|
||||
#define ROUND_TO_PAGE(x) ROUND_TO((x), GTT_PAGE_SIZE)
|
||||
#define ROUND_TO_MB(x) ROUND_TO((x), MB(1))
|
||||
#define PRIMARY_RINGBUFFER_SIZE KB(128)
|
||||
|
||||
|
||||
/* Ring buffer registers, p277, overview p19
|
||||
*/
|
||||
#define LP_RING 0x2030
|
||||
#define HP_RING 0x2040
|
||||
|
||||
#define RING_TAIL 0x00
|
||||
#define TAIL_ADDR 0x000FFFF8
|
||||
#define I830_TAIL_MASK 0x001FFFF8
|
||||
|
||||
#define RING_HEAD 0x04
|
||||
#define HEAD_WRAP_COUNT 0xFFE00000
|
||||
#define HEAD_WRAP_ONE 0x00200000
|
||||
#define HEAD_ADDR 0x001FFFFC
|
||||
#define I830_HEAD_MASK 0x001FFFFC
|
||||
|
||||
#define RING_START 0x08
|
||||
#define START_ADDR 0x03FFFFF8
|
||||
#define I830_RING_START_MASK 0xFFFFF000
|
||||
|
||||
#define RING_LEN 0x0C
|
||||
#define RING_NR_PAGES 0x001FF000
|
||||
#define I830_RING_NR_PAGES 0x001FF000
|
||||
#define RING_REPORT_MASK 0x00000006
|
||||
#define RING_REPORT_64K 0x00000002
|
||||
#define RING_REPORT_128K 0x00000004
|
||||
#define RING_NO_REPORT 0x00000000
|
||||
#define RING_VALID_MASK 0x00000001
|
||||
#define RING_VALID 0x00000001
|
||||
#define RING_INVALID 0x00000000
|
||||
|
||||
|
||||
/* Fence/Tiling ranges [0..7]
|
||||
*/
|
||||
#define FENCE 0x2000
|
||||
#define FENCE_NR 8
|
||||
|
||||
#define I915G_FENCE_START_MASK 0x0ff00000
|
||||
|
||||
#define I830_FENCE_START_MASK 0x07f80000
|
||||
|
||||
#define FENCE_START_MASK 0x03F80000
|
||||
#define FENCE_X_MAJOR 0x00000000
|
||||
#define FENCE_Y_MAJOR 0x00001000
|
||||
#define FENCE_SIZE_MASK 0x00000700
|
||||
#define FENCE_SIZE_512K 0x00000000
|
||||
#define FENCE_SIZE_1M 0x00000100
|
||||
#define FENCE_SIZE_2M 0x00000200
|
||||
#define FENCE_SIZE_4M 0x00000300
|
||||
#define FENCE_SIZE_8M 0x00000400
|
||||
#define FENCE_SIZE_16M 0x00000500
|
||||
#define FENCE_SIZE_32M 0x00000600
|
||||
#define FENCE_SIZE_64M 0x00000700
|
||||
#define I915G_FENCE_SIZE_1M 0x00000000
|
||||
#define I915G_FENCE_SIZE_2M 0x00000100
|
||||
#define I915G_FENCE_SIZE_4M 0x00000200
|
||||
#define I915G_FENCE_SIZE_8M 0x00000300
|
||||
#define I915G_FENCE_SIZE_16M 0x00000400
|
||||
#define I915G_FENCE_SIZE_32M 0x00000500
|
||||
#define I915G_FENCE_SIZE_64M 0x00000600
|
||||
#define I915G_FENCE_SIZE_128M 0x00000700
|
||||
#define FENCE_PITCH_1 0x00000000
|
||||
#define FENCE_PITCH_2 0x00000010
|
||||
#define FENCE_PITCH_4 0x00000020
|
||||
#define FENCE_PITCH_8 0x00000030
|
||||
#define FENCE_PITCH_16 0x00000040
|
||||
#define FENCE_PITCH_32 0x00000050
|
||||
#define FENCE_PITCH_64 0x00000060
|
||||
#define FENCE_VALID 0x00000001
|
||||
|
||||
#include <mmio.h>
|
||||
|
||||
# define MMIO_IN8(base, offset) \
|
||||
*(volatile unsigned char *)(((unsigned char*)(base)) + (offset))
|
||||
# define MMIO_IN32(base, offset) \
|
||||
read_MMIO_LE32(base, offset)
|
||||
# define MMIO_OUT8(base, offset, val) \
|
||||
*(volatile unsigned char *)(((unsigned char*)(base)) + (offset)) = (val)
|
||||
# define MMIO_OUT32(base, offset, val) \
|
||||
*(volatile unsigned int *)(void *)(((unsigned char*)(base)) + (offset)) = CPU_TO_LE32(val)
|
||||
|
||||
|
||||
/* Memory mapped register access macros */
|
||||
#define INREG8(addr) MMIO_IN8(MMIO, addr)
|
||||
#define INREG(addr) MMIO_IN32(MMIO, addr)
|
||||
#define OUTREG8(addr, val) MMIO_OUT8(MMIO, addr, val)
|
||||
#define OUTREG(addr, val) MMIO_OUT32(MMIO, addr, val)
|
||||
|
||||
#define DSPABASE 0x70184
|
||||
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue