added main files (not finished)
[my-code/i830.git] / i830.h
1 /*
2  *      linux/drivers/video/i830/i830.h
3  *      -- Intel 830 framebuffer device header file
4  *
5  *      Copyright (C) 2004 Frank Zirkelbach <hackbard@hackdaworld.dyndns.org>
6  *      All Rights Reserved
7  *
8  *      This driver is subject to the terms of the GNU General Public License.
9  *      See file COPYING in the main directory for more details.
10  *
11  */
12
13 #ifndef __I830_H__
14 #define __I830_H__
15
16 /* variable types
17 struct mode_registers {
18         u32 pixclock, M, N, P;
19         u8 cr00, cr01, cr02, cr03;
20         u8 cr04, cr05, cr06, cr07;
21         u8 cr09, cr10, cr11, cr12;
22         u8 cr13, cr15, cr16, cr30;
23         u8 cr31, cr32, cr33, cr35, cr39;
24         u32 bpp8_100, bpp16_100, bpp24_100;
25         u32 bpp8_133, bpp16_133, bpp24_133;
26         u8 msr;
27 };
28 struct state_registers {
29         u32 dclk_1d, dclk_2d, dclk_0ds;
30         u32 pixconf, fw_blc, pgtbl_ctl;
31         u32 fence0, hws_pga, dplystas;
32         u16 bltcntl, hwstam, ier, iir, imr;
33         u8 cr00, cr01, cr02, cr03, cr04;
34         u8 cr05, cr06, cr07, cr08, cro9;
35         u8 cr10, cr11, cr12, cr13, cr14;
36         u8 cr15, cr16, cr17, cr80, gr10;
37         u8 cr30, cr31, cr32, cr33, cr35;
38         u8 cr39, cr41, cr70, sr01, msr;
39 };
40 struct gtt_data {
41         struct agp_memory *i830_fb_mem;
42         struct agp_memory *i830_cursor_mem;
43 };
44 struct mem_region {
45         unsigned long physical;
46         __u8 *virtual;
47         u32 offset;
48         u32 size;
49 };
50 struct i830fb_par {
51         struct mode_registers   regs;
52         struct state_registers  hw_state;
53         struct gtt_data         i830_gtt;
54         struct fb_ops           i830fb_ops;
55         struct pci_dev          *dev; /* pci device */
56         struct mem_region       aperture; /* aperture memory  region */
57         struct mem_region       mmio; /* memory mapped region */
58         struct mem_region       fb; /* framebuffer memory region */
59         struct mem_region       ring; /* ringbuffer memory region */
60         struct mem_region       cursor;
61         struct vga_state        state;
62         drm_agp_t               *drm_agp;
63         atomic_t                use_count;
64         u32                     pseudo_palette[17];
65         u32                     pci_state[16];  
66         u32                     pitch;
67         u32                     pixconf;
68         u32                     watermark;
69         u32                     mem_freq;
70         u32                     res_flags; /* resource flags */
71 #define FB_MEM_REGION_REQ               1
72 #define MMIO_MEM_REGION_REQ             2
73 #define PCI_DEVICE_ENABLED              4
74         u32                     dev_flags;
75         u32                     cur_tail;
76         u32                     depth;
77         u32                     blit_bpp;
78         u32                     ovract;
79         u32                     cur_state;
80         int                     mtrr_reg;
81         u16                     bltcntl;
82         u8                      interlace;
83 };
84
85 /* general defines */
86 #define MMIO_SIZE                       (512 * 1024)
87 #define RINGBUF_SIZE                    (64 * 1024)
88 #define CURSOR_SIZE                     (4 * 1024)
89
90 /* function prototypes */
91 i830fb_init_pci();
92 i830fb_remove_pci();
93 i830fb_suspend();
94 i830fb_resume();
95 i830fb_open();
96 i830fb_release();
97 i830fb_check_var();
98 i830fb_set_par();
99 i830fb_setcolreg();
100 i830fb_blank();
101 i830fb_pan_display();
102 i830fb_fillrect();
103 i830fb_copyarea();
104 i830fb_imageblit();
105 i830fb_cursor();
106 i830fb_sync();
107 i830fb_ioctl();
108 i830fb_release_resource();
109
110
111
112 #endif /* __I830_H__ */