Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #ifndef __NV_TYPE_H__
  2 #define __NV_TYPE_H__
  3 
  4 #include <linux/fb.h>
  5 #include <linux/types.h>
  6 #include <linux/i2c.h>
  7 #include <linux/i2c-algo-bit.h>
  8 #include <linux/mutex.h>
  9 #include <video/vga.h>
 10 
 11 #define NV_ARCH_04  0x04
 12 #define NV_ARCH_10  0x10
 13 #define NV_ARCH_20  0x20
 14 #define NV_ARCH_30  0x30
 15 #define NV_ARCH_40  0x40
 16 
 17 #define BITMASK(t,b) (((unsigned)(1U << (((t)-(b)+1)))-1)  << (b))
 18 #define MASKEXPAND(mask) BITMASK(1?mask,0?mask)
 19 #define SetBF(mask,value) ((value) << (0?mask))
 20 #define GetBF(var,mask) (((unsigned)((var) & MASKEXPAND(mask))) >> (0?mask) )
 21 #define SetBitField(value,from,to) SetBF(to, GetBF(value,from))
 22 #define SetBit(n) (1<<(n))
 23 #define Set8Bits(value) ((value)&0xff)
 24 
 25 #define V_DBLSCAN  1
 26 
 27 typedef struct {
 28         int bitsPerPixel;
 29         int depth;
 30         int displayWidth;
 31         int weight;
 32 } NVFBLayout;
 33 
 34 #define NUM_SEQ_REGS            0x05
 35 #define NUM_CRT_REGS            0x41
 36 #define NUM_GRC_REGS            0x09
 37 #define NUM_ATC_REGS            0x15
 38 
 39 struct nvidia_par;
 40 
 41 struct nvidia_i2c_chan {
 42         struct nvidia_par *par;
 43         unsigned long ddc_base;
 44         struct i2c_adapter adapter;
 45         struct i2c_algo_bit_data algo;
 46 };
 47 
 48 typedef struct _riva_hw_state {
 49         u8 attr[NUM_ATC_REGS];
 50         u8 crtc[NUM_CRT_REGS];
 51         u8 gra[NUM_GRC_REGS];
 52         u8 seq[NUM_SEQ_REGS];
 53         u8 misc_output;
 54         u32 bpp;
 55         u32 width;
 56         u32 height;
 57         u32 interlace;
 58         u32 repaint0;
 59         u32 repaint1;
 60         u32 screen;
 61         u32 scale;
 62         u32 dither;
 63         u32 extra;
 64         u32 fifo;
 65         u32 pixel;
 66         u32 horiz;
 67         u32 arbitration0;
 68         u32 arbitration1;
 69         u32 pll;
 70         u32 pllB;
 71         u32 vpll;
 72         u32 vpll2;
 73         u32 vpllB;
 74         u32 vpll2B;
 75         u32 pllsel;
 76         u32 general;
 77         u32 crtcOwner;
 78         u32 head;
 79         u32 head2;
 80         u32 config;
 81         u32 cursorConfig;
 82         u32 cursor0;
 83         u32 cursor1;
 84         u32 cursor2;
 85         u32 timingH;
 86         u32 timingV;
 87         u32 displayV;
 88         u32 crtcSync;
 89         u32 control;
 90 } RIVA_HW_STATE;
 91 
 92 struct riva_regs {
 93         RIVA_HW_STATE ext;
 94 };
 95 
 96 struct nvidia_par {
 97         RIVA_HW_STATE SavedReg;
 98         RIVA_HW_STATE ModeReg;
 99         RIVA_HW_STATE initial_state;
100         RIVA_HW_STATE *CurrentState;
101         struct vgastate vgastate;
102         struct mutex open_lock;
103         u32 pseudo_palette[16];
104         struct pci_dev *pci_dev;
105         u32 Architecture;
106         u32 CursorStart;
107         int Chipset;
108         unsigned long FbAddress;
109         u8 __iomem *FbStart;
110         u32 FbMapSize;
111         u32 FbUsableSize;
112         u32 ScratchBufferSize;
113         u32 ScratchBufferStart;
114         int FpScale;
115         u32 MinVClockFreqKHz;
116         u32 MaxVClockFreqKHz;
117         u32 CrystalFreqKHz;
118         u32 RamAmountKBytes;
119         u32 IOBase;
120         NVFBLayout CurrentLayout;
121         int cursor_reset;
122         int lockup;
123         int videoKey;
124         int FlatPanel;
125         int FPDither;
126         int Television;
127         int CRTCnumber;
128         int alphaCursor;
129         int twoHeads;
130         int twoStagePLL;
131         int fpScaler;
132         int fpWidth;
133         int fpHeight;
134         int PanelTweak;
135         int paneltweak;
136         int LVDS;
137         int pm_state;
138         int reverse_i2c;
139         u32 crtcSync_read;
140         u32 fpSyncs;
141         u32 dmaPut;
142         u32 dmaCurrent;
143         u32 dmaFree;
144         u32 dmaMax;
145         u32 __iomem *dmaBase;
146         u32 currentRop;
147         int WaitVSyncPossible;
148         int BlendingPossible;
149         u32 paletteEnabled;
150         u32 forceCRTC;
151         u32 open_count;
152         u8 DDCBase;
153 #ifdef CONFIG_MTRR
154         struct {
155                 int vram;
156                 int vram_valid;
157         } mtrr;
158 #endif
159         struct nvidia_i2c_chan chan[3];
160 
161         volatile u32 __iomem *REGS;
162         volatile u32 __iomem *PCRTC0;
163         volatile u32 __iomem *PCRTC;
164         volatile u32 __iomem *PRAMDAC0;
165         volatile u32 __iomem *PFB;
166         volatile u32 __iomem *PFIFO;
167         volatile u32 __iomem *PGRAPH;
168         volatile u32 __iomem *PEXTDEV;
169         volatile u32 __iomem *PTIMER;
170         volatile u32 __iomem *PMC;
171         volatile u32 __iomem *PRAMIN;
172         volatile u32 __iomem *FIFO;
173         volatile u32 __iomem *CURSOR;
174         volatile u8 __iomem *PCIO0;
175         volatile u8 __iomem *PCIO;
176         volatile u8 __iomem *PVIO;
177         volatile u8 __iomem *PDIO0;
178         volatile u8 __iomem *PDIO;
179         volatile u32 __iomem *PRAMDAC;
180 };
181 
182 #endif                          /* __NV_TYPE_H__ */
183 
  This page was automatically generated by the LXR engine.