Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | /* $XFree86$ */ /* $XdotOrg$ */ /* * General type definitions for universal mode switching modules * * Copyright (C) 2001-2004 by Thomas Winischhofer, Vienna, Austria * * If distributed as part of the Linux kernel, the following license terms * apply: * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the named License, * * or any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA * * Otherwise, the following license terms apply: * * * Redistribution and use in source and binary forms, with or without * * modification, are permitted provided that the following conditions * * are met: * * 1) Redistributions of source code must retain the above copyright * * notice, this list of conditions and the following disclaimer. * * 2) Redistributions in binary form must reproduce the above copyright * * notice, this list of conditions and the following disclaimer in the * * documentation and/or other materials provided with the distribution. * * 3) The name of the author may not be used to endorse or promote products * * derived from this software without specific prior written permission. * * * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Author: Thomas Winischhofer <thomas@winischhofer.net> * */ #ifndef _VGATYPES_ #define _VGATYPES_ #ifdef LINUX_XF86 #include "xf86Version.h" #include "xf86Pci.h" #endif #ifdef LINUX_KERNEL /* We don't want the X driver to depend on kernel source */ #include <linux/ioctl.h> #endif #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif #ifndef NULL #define NULL 0 #endif #ifndef CHAR typedef char CHAR; #endif #ifndef SHORT typedef short SHORT; #endif #ifndef LONG typedef long LONG; #endif #ifndef UCHAR typedef unsigned char UCHAR; #endif #ifndef USHORT typedef unsigned short USHORT; #endif #ifndef ULONG typedef unsigned long ULONG; #endif #ifndef BOOLEAN typedef UCHAR BOOLEAN; #endif #ifndef bool typedef UCHAR bool; #endif #ifdef LINUX_KERNEL typedef unsigned long SISIOADDRESS; #endif #ifdef LINUX_XF86 #if XF86_VERSION_CURRENT < XF86_VERSION_NUMERIC(4,2,0,0,0) typedef unsigned long IOADDRESS; typedef unsigned long SISIOADDRESS; #else typedef IOADDRESS SISIOADDRESS; #endif #endif enum _SIS_CHIP_TYPE { SIS_VGALegacy = 0, SIS_530, SIS_OLD, SIS_300, SIS_630, SIS_730, SIS_540, SIS_315H, /* SiS 310 */ SIS_315, SIS_315PRO, SIS_550, SIS_650, SIS_740, SIS_330, SIS_661, SIS_741, SIS_660, SIS_760, SIS_761, SIS_340, MAX_SIS_CHIP }; #ifdef LINUX_KERNEL enum _SIS_LCD_TYPE { LCD_INVALID = 0, LCD_800x600, LCD_1024x768, LCD_1280x1024, LCD_1280x960, LCD_640x480, LCD_1600x1200, LCD_1920x1440, LCD_2048x1536, LCD_320x480, /* FSTN */ LCD_1400x1050, LCD_1152x864, LCD_1152x768, LCD_1280x768, LCD_1024x600, LCD_640x480_2, /* DSTN */ LCD_640x480_3, /* DSTN */ LCD_848x480, LCD_1280x800, LCD_1680x1050, LCD_1280x720, LCD_CUSTOM, LCD_UNKNOWN }; typedef unsigned int SIS_LCD_TYPE; #endif #ifndef SIS_HW_INFO typedef struct _SIS_HW_INFO SIS_HW_INFO, *PSIS_HW_INFO; typedef BOOLEAN (*PSIS_QUERYSPACE) (PSIS_HW_INFO, ULONG, ULONG, ULONG *); struct _SIS_HW_INFO { #ifdef LINUX_XF86 PCITAG PciTag; /* PCI Tag */ #endif UCHAR *pjVirtualRomBase; /* ROM image */ BOOLEAN UseROM; /* Use the ROM image if provided */ UCHAR *pjVideoMemoryAddress;/* base virtual memory address */ /* of Linear VGA memory */ ULONG ulVideoMemorySize; /* size, in bytes, of the memory on the board */ SISIOADDRESS ulIOAddress; /* base I/O address of VGA ports (0x3B0; relocated) */ UCHAR jChipType; /* Used to Identify SiS Graphics Chip */ /* defined in the enum "SIS_CHIP_TYPE" (above or sisfb.h) */ UCHAR jChipRevision; /* Used to Identify SiS Graphics Chip Revision */ BOOLEAN bIntegratedMMEnabled;/* supporting integration MM enable */ #ifdef LINUX_KERNEL ULONG ulCRT2LCDType; /* defined in the data structure type */ /* "SIS_LCD_TYPE" */ #endif }; #endif /* Addtional IOCTLs for communication sisfb <> X driver */ /* If changing this, sisfb.h must also be changed (for sisfb) */ #ifdef LINUX_XF86 /* We don't want the X driver to depend on the kernel source */ /* ioctl for identifying and giving some info (esp. memory heap start) */ #define SISFB_GET_INFO_SIZE 0x8004f300 #define SISFB_GET_INFO 0x8000f301 /* Must be patched with result from ..._SIZE at D[29:16] */ /* deprecated ioctl number (for older versions of sisfb) */ #define SISFB_GET_INFO_OLD 0x80046ef8 /* ioctls for tv parameters (position) */ #define SISFB_SET_TVPOSOFFSET 0x4004f304 /* lock sisfb from register access */ #define SISFB_SET_LOCK 0x4004f306 /* Structure argument for SISFB_GET_INFO ioctl */ typedef struct _SISFB_INFO sisfb_info, *psisfb_info; struct _SISFB_INFO { CARD32 sisfb_id; /* for identifying sisfb */ #ifndef SISFB_ID #define SISFB_ID 0x53495346 /* Identify myself with 'SISF' */ #endif CARD32 chip_id; /* PCI ID of detected chip */ CARD32 memory; /* video memory in KB which sisfb manages */ CARD32 heapstart; /* heap start (= sisfb "mem" argument) in KB */ CARD8 fbvidmode; /* current sisfb mode */ CARD8 sisfb_version; CARD8 sisfb_revision; CARD8 sisfb_patchlevel; CARD8 sisfb_caps; /* sisfb's capabilities */ CARD32 sisfb_tqlen; /* turbo queue length (in KB) */ CARD32 sisfb_pcibus; /* The card's PCI ID */ CARD32 sisfb_pcislot; CARD32 sisfb_pcifunc; CARD8 sisfb_lcdpdc; CARD8 sisfb_lcda; CARD32 sisfb_vbflags; CARD32 sisfb_currentvbflags; CARD32 sisfb_scalelcd; CARD32 sisfb_specialtiming; CARD8 sisfb_haveemi; CARD8 sisfb_emi30,sisfb_emi31,sisfb_emi32,sisfb_emi33; CARD8 sisfb_haveemilcd; CARD8 sisfb_lcdpdca; CARD16 sisfb_tvxpos, sisfb_tvypos; /* Warning: Values + 32 ! */ CARD8 reserved[208]; /* for future use */ }; #endif #endif |