Tizen 2.0 Release
[profile/ivi/osmesa.git] / src / mesa / drivers / dri / mga / server / mga.h
1 /*
2  * MGA Millennium (MGA2064W) functions
3  *
4  * Copyright 1996 The XFree86 Project, Inc.
5  *
6  * Authors
7  *              Dirk Hohndel
8  *                      hohndel@XFree86.Org
9  *              David Dawes
10  *                      dawes@XFree86.Org
11  */
12
13 #ifndef MGA_H
14 #define MGA_H
15
16
17 #include "xf86drm.h"
18 #include "linux/types.h"
19
20
21 #define PCI_CHIP_MGA2085                0x0518
22 #define PCI_CHIP_MGA2064                0x0519
23 #define PCI_CHIP_MGA1064                0x051A
24 #define PCI_CHIP_MGA2164                0x051B
25 #define PCI_CHIP_MGA2164_AGP            0x051F
26 #define PCI_CHIP_MGAG200_PCI            0x0520
27 #define PCI_CHIP_MGAG200                0x0521
28 #define PCI_CHIP_MGAG400                0x0525
29 #define PCI_CHIP_MGAG550                0x2527
30 #define PCI_CHIP_MGAG100_PCI            0x1000
31 #define PCI_CHIP_MGAG100                0x1001
32
33
34 #  define MMIO_IN8(base, offset) \
35         *(volatile unsigned char *)(((unsigned char*)(base)) + (offset))
36 #  define MMIO_IN16(base, offset) \
37         *(volatile unsigned short *)(void *)(((unsigned char*)(base)) + (offset))
38 #  define MMIO_IN32(base, offset) \
39         *(volatile unsigned int *)(void *)(((unsigned char*)(base)) + (offset))
40 #  define MMIO_OUT8(base, offset, val) \
41         *(volatile unsigned char *)(((unsigned char*)(base)) + (offset)) = (val)
42 #  define MMIO_OUT16(base, offset, val) \
43         *(volatile unsigned short *)(void *)(((unsigned char*)(base)) + (offset)) = (val)
44 #  define MMIO_OUT32(base, offset, val) \
45         *(volatile unsigned int *)(void *)(((unsigned char*)(base)) + (offset)) = (val)
46
47 #define INREG8(addr) MMIO_IN8(pMga->IOBase, addr)
48 #define INREG16(addr) MMIO_IN16(pMga->IOBase, addr)
49 #define INREG(addr) MMIO_IN32(pMga->IOBase, addr)
50 #define OUTREG8(addr, val) MMIO_OUT8(pMga->IOBase, addr, val)
51 #define OUTREG16(addr, val) MMIO_OUT16(pMga->IOBase, addr, val)
52 #define OUTREG(addr, val) MMIO_OUT32(pMga->IOBase, addr, val)
53
54 #define MGAIOMAPSIZE            0x00004000
55
56
57 typedef struct {
58   int               Chipset;          /**< \brief Chipset number */
59
60   int               irq;              /**< \brief IRQ number */
61
62
63   int               frontOffset;      /**< \brief Front color buffer offset */
64   int               frontPitch;       /**< \brief Front color buffer pitch */
65   int               backOffset;       /**< \brief Back color buffer offset */
66   int               backPitch;        /**< \brief Back color buffer pitch */
67   int               depthOffset;      /**< \brief Depth buffer offset */
68   int               depthPitch;       /**< \brief Depth buffer pitch */
69   int               textureOffset;    /**< \brief Texture area offset */
70   int               textureSize;      /**< \brief Texture area size */
71   int               logTextureGranularity;
72
73   /**
74    * \name AGP
75    */
76   /*@{*/
77   drmSize           agpSize;          /**< \brief AGP map size */
78   int               agpMode;          /**< \brief AGP mode */
79   /*@}*/
80
81   drmRegion         agp;
82
83   /* PCI mappings */
84   drmRegion         registers;
85   drmRegion         status;
86
87   /* AGP mappings */
88   drmRegion         warp;
89   drmRegion         primary;
90   drmRegion         buffers;
91   drmRegion         agpTextures;
92
93   drmBufMapPtr      drmBuffers;
94
95   unsigned long     IOAddress;
96   unsigned char    *IOBase;
97   int               HasSDRAM;
98
99   __u32             reg_ien;
100 } MGARec, *MGAPtr;
101
102
103
104 #define MGA_FRONT       0x1
105 #define MGA_BACK        0x2
106 #define MGA_DEPTH       0x4
107
108 #define MGA_AGP_1X_MODE         0x01
109 #define MGA_AGP_2X_MODE         0x02
110 #define MGA_AGP_4X_MODE         0x04
111 #define MGA_AGP_MODE_MASK       0x07
112
113
114 #endif