root/include/video/neomagic.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * linux/include/video/neo_reg.h -- NeoMagic Framebuffer Driver
   3  *
   4  * Copyright (c) 2001  Denis Oliver Kropp <dok@convergence.de>
   5  *
   6  * This file is subject to the terms and conditions of the GNU General
   7  * Public License.  See the file COPYING in the main directory of this
   8  * archive for more details.
   9  */
  10 
  11 #define NEO_BS0_BLT_BUSY        0x00000001
  12 #define NEO_BS0_FIFO_AVAIL      0x00000002
  13 #define NEO_BS0_FIFO_PEND       0x00000004
  14 
  15 #define NEO_BC0_DST_Y_DEC       0x00000001
  16 #define NEO_BC0_X_DEC           0x00000002
  17 #define NEO_BC0_SRC_TRANS       0x00000004
  18 #define NEO_BC0_SRC_IS_FG       0x00000008
  19 #define NEO_BC0_SRC_Y_DEC       0x00000010
  20 #define NEO_BC0_FILL_PAT        0x00000020
  21 #define NEO_BC0_SRC_MONO        0x00000040
  22 #define NEO_BC0_SYS_TO_VID      0x00000080
  23 
  24 #define NEO_BC1_DEPTH8          0x00000100
  25 #define NEO_BC1_DEPTH16         0x00000200
  26 #define NEO_BC1_X_320           0x00000400
  27 #define NEO_BC1_X_640           0x00000800
  28 #define NEO_BC1_X_800           0x00000c00
  29 #define NEO_BC1_X_1024          0x00001000
  30 #define NEO_BC1_X_1152          0x00001400
  31 #define NEO_BC1_X_1280          0x00001800
  32 #define NEO_BC1_X_1600          0x00001c00
  33 #define NEO_BC1_DST_TRANS       0x00002000
  34 #define NEO_BC1_MSTR_BLT        0x00004000
  35 #define NEO_BC1_FILTER_Z        0x00008000
  36 
  37 #define NEO_BC2_WR_TR_DST       0x00800000
  38 
  39 #define NEO_BC3_SRC_XY_ADDR     0x01000000
  40 #define NEO_BC3_DST_XY_ADDR     0x02000000
  41 #define NEO_BC3_CLIP_ON         0x04000000
  42 #define NEO_BC3_FIFO_EN         0x08000000
  43 #define NEO_BC3_BLT_ON_ADDR     0x10000000
  44 #define NEO_BC3_SKIP_MAPPING    0x80000000
  45 
  46 #define NEO_MODE1_DEPTH8        0x0100
  47 #define NEO_MODE1_DEPTH16       0x0200
  48 #define NEO_MODE1_DEPTH24       0x0300
  49 #define NEO_MODE1_X_320         0x0400
  50 #define NEO_MODE1_X_640         0x0800
  51 #define NEO_MODE1_X_800         0x0c00
  52 #define NEO_MODE1_X_1024        0x1000
  53 #define NEO_MODE1_X_1152        0x1400
  54 #define NEO_MODE1_X_1280        0x1800
  55 #define NEO_MODE1_X_1600        0x1c00
  56 #define NEO_MODE1_BLT_ON_ADDR   0x2000
  57 
  58 /* These are offseted in MMIO space by par->CursorOff */
  59 #define NEOREG_CURSCNTL         0x00
  60 #define NEOREG_CURSX            0x04
  61 #define NEOREG_CURSY            0x08
  62 #define NEOREG_CURSBGCOLOR      0x0C
  63 #define NEOREG_CURSFGCOLOR      0x10
  64 #define NEOREG_CURSMEMPOS       0x14
  65 
  66 #define NEO_CURS_DISABLE        0x00000000
  67 #define NEO_CURS_ENABLE         0x00000001
  68 #define NEO_ICON64_ENABLE       0x00000008
  69 #define NEO_ICON128_ENABLE      0x0000000C
  70 #define NEO_ICON_BLANK          0x00000010
  71 
  72 #define NEO_GR01_SUPPRESS_VSYNC 0x10
  73 #define NEO_GR01_SUPPRESS_HSYNC 0x20
  74 
  75 #ifdef __KERNEL__
  76 
  77 #ifdef NEOFB_DEBUG
  78 # define DBG(x)         printk (KERN_DEBUG "neofb: %s\n", (x));
  79 #else
  80 # define DBG(x)
  81 #endif
  82 
  83 #define PCI_CHIP_NM2070 0x0001
  84 #define PCI_CHIP_NM2090 0x0002
  85 #define PCI_CHIP_NM2093 0x0003
  86 #define PCI_CHIP_NM2097 0x0083
  87 #define PCI_CHIP_NM2160 0x0004
  88 #define PCI_CHIP_NM2200 0x0005
  89 #define PCI_CHIP_NM2230 0x0025
  90 #define PCI_CHIP_NM2360 0x0006
  91 #define PCI_CHIP_NM2380 0x0016
  92 
  93 /* --------------------------------------------------------------------- */
  94 
  95 typedef volatile struct {
  96         __u32 bltStat;
  97         __u32 bltCntl;
  98         __u32 xpColor;
  99         __u32 fgColor;
 100         __u32 bgColor;
 101         __u32 pitch;
 102         __u32 clipLT;
 103         __u32 clipRB;
 104         __u32 srcBitOffset;
 105         __u32 srcStart;
 106         __u32 reserved0;
 107         __u32 dstStart;
 108         __u32 xyExt;
 109 
 110         __u32 reserved1[19];
 111 
 112         __u32 pageCntl;
 113         __u32 pageBase;
 114         __u32 postBase;
 115         __u32 postPtr;
 116         __u32 dataPtr;
 117 } Neo2200;
 118 
 119 #define MMIO_SIZE 0x200000
 120 
 121 #define NEO_EXT_CR_MAX 0x85
 122 #define NEO_EXT_GR_MAX 0xC7
 123 
 124 struct neofb_par {
 125         struct vgastate state;
 126         unsigned int ref_count;
 127 
 128         unsigned char MiscOutReg;       /* Misc */
 129         unsigned char CRTC[25];         /* Crtc Controller */
 130         unsigned char Sequencer[5];     /* Video Sequencer */
 131         unsigned char Graphics[9];      /* Video Graphics */
 132         unsigned char Attribute[21];    /* Video Attribute */
 133 
 134         unsigned char GeneralLockReg;
 135         unsigned char ExtCRTDispAddr;
 136         unsigned char ExtCRTOffset;
 137         unsigned char SysIfaceCntl1;
 138         unsigned char SysIfaceCntl2;
 139         unsigned char ExtColorModeSelect;
 140         unsigned char biosMode;
 141 
 142         unsigned char PanelDispCntlReg1;
 143         unsigned char PanelDispCntlReg2;
 144         unsigned char PanelDispCntlReg3;
 145         unsigned char PanelDispCntlRegRead;
 146         unsigned char PanelVertCenterReg1;
 147         unsigned char PanelVertCenterReg2;
 148         unsigned char PanelVertCenterReg3;
 149         unsigned char PanelVertCenterReg4;
 150         unsigned char PanelVertCenterReg5;
 151         unsigned char PanelHorizCenterReg1;
 152         unsigned char PanelHorizCenterReg2;
 153         unsigned char PanelHorizCenterReg3;
 154         unsigned char PanelHorizCenterReg4;
 155         unsigned char PanelHorizCenterReg5;
 156 
 157         int ProgramVCLK;
 158         unsigned char VCLK3NumeratorLow;
 159         unsigned char VCLK3NumeratorHigh;
 160         unsigned char VCLK3Denominator;
 161         unsigned char VerticalExt;
 162         int wc_cookie;
 163         u8 __iomem *mmio_vbase;
 164         u8 cursorOff;
 165         u8 *cursorPad;          /* Must die !! */
 166 
 167         Neo2200 __iomem *neo2200;
 168 
 169         /* Panels size */
 170         int NeoPanelWidth;
 171         int NeoPanelHeight;
 172 
 173         int maxClock;
 174 
 175         int pci_burst;
 176         int lcd_stretch;
 177         int internal_display;
 178         int external_display;
 179         int libretto;
 180         u32 palette[16];
 181 };
 182 
 183 typedef struct {
 184         int x_res;
 185         int y_res;
 186         int mode;
 187 } biosMode;
 188 
 189 #endif

/* [<][>][^][v][top][bottom][index][help] */