2 * linux/drivers/video/i810fb_main.h -- Intel 810 frame buffer device
5 * Copyright (C) 2001 Antonino Daplas<adaplas@pol.net>
9 * This file is subject to the terms and conditions of the GNU General Public
10 * License. See the file COPYING in the main directory of this archive for
14 #ifndef __I810_MAIN_H__
15 #define __I810_MAIN_H__
18 extern void round_off_xres (u32
*xres
);
19 extern void round_off_yres (u32
*xres
, u32
*yres
);
20 extern u32
i810_get_watermark (const struct fb_var_screeninfo
*var
,
21 struct i810fb_par
*par
);
22 extern void i810fb_encode_registers(const struct fb_var_screeninfo
*var
,
23 struct i810fb_par
*par
, u32 xres
, u32 yres
);
24 extern void i810fb_fill_var_timings(struct fb_var_screeninfo
*var
);
26 /* Accelerated Functions */
27 extern void i810fb_fillrect (struct fb_info
*p
,
28 const struct fb_fillrect
*rect
);
29 extern void i810fb_copyarea (struct fb_info
*p
,
30 const struct fb_copyarea
*region
);
31 extern void i810fb_imageblit(struct fb_info
*p
, const struct fb_image
*image
);
32 extern int i810fb_sync (struct fb_info
*p
);
34 extern void i810fb_init_ringbuffer(struct fb_info
*info
);
35 extern void i810fb_load_front (u32 offset
, struct fb_info
*info
);
37 #ifdef CONFIG_FB_I810_I2C
39 extern int i810_probe_i2c_connector(struct fb_info
*info
, u8
**out_edid
,
41 extern void i810_create_i2c_busses(struct i810fb_par
*par
);
42 extern void i810_delete_i2c_busses(struct i810fb_par
*par
);
44 static inline int i810_probe_i2c_connector(struct fb_info
*info
, u8
**out_edid
,
49 static inline void i810_create_i2c_busses(struct i810fb_par
*par
) { }
50 static inline void i810_delete_i2c_busses(struct i810fb_par
*par
) { }
55 static inline void flush_cache(void)
57 asm volatile ("wbinvd":::"memory");
60 #define flush_cache() do { } while(0)
67 static inline void __devinit
set_mtrr(struct i810fb_par
*par
)
69 par
->mtrr_reg
= mtrr_add((u32
) par
->aperture
.physical
,
70 par
->aperture
.size
, MTRR_TYPE_WRCOMB
, 1);
71 if (par
->mtrr_reg
< 0) {
72 printk(KERN_ERR
"set_mtrr: unable to set MTRR\n");
75 par
->dev_flags
|= HAS_MTRR
;
77 static inline void unset_mtrr(struct i810fb_par
*par
)
79 if (par
->dev_flags
& HAS_MTRR
)
80 mtrr_del(par
->mtrr_reg
, (u32
) par
->aperture
.physical
,
84 #define set_mtrr(x) printk("set_mtrr: MTRR is disabled in the kernel\n")
86 #define unset_mtrr(x) do { } while (0)
87 #endif /* CONFIG_MTRR */
89 #ifdef CONFIG_FB_I810_GTF
95 #endif /* __I810_MAIN_H__ */