0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef __I810_MAIN_H__
0015 #define __I810_MAIN_H__
0016
0017
0018 extern void round_off_xres (u32 *xres);
0019 extern void round_off_yres (u32 *xres, u32 *yres);
0020 extern u32 i810_get_watermark (const struct fb_var_screeninfo *var,
0021 struct i810fb_par *par);
0022 extern void i810fb_encode_registers(const struct fb_var_screeninfo *var,
0023 struct i810fb_par *par, u32 xres, u32 yres);
0024 extern void i810fb_fill_var_timings(struct fb_var_screeninfo *var);
0025
0026
0027 extern void i810fb_fillrect (struct fb_info *p,
0028 const struct fb_fillrect *rect);
0029 extern void i810fb_copyarea (struct fb_info *p,
0030 const struct fb_copyarea *region);
0031 extern void i810fb_imageblit(struct fb_info *p, const struct fb_image *image);
0032 extern int i810fb_sync (struct fb_info *p);
0033
0034 extern void i810fb_init_ringbuffer(struct fb_info *info);
0035 extern void i810fb_load_front (u32 offset, struct fb_info *info);
0036
0037 #ifdef CONFIG_FB_I810_I2C
0038
0039 extern int i810_probe_i2c_connector(struct fb_info *info, u8 **out_edid,
0040 int conn);
0041 extern void i810_create_i2c_busses(struct i810fb_par *par);
0042 extern void i810_delete_i2c_busses(struct i810fb_par *par);
0043 #else
0044 static inline int i810_probe_i2c_connector(struct fb_info *info, u8 **out_edid,
0045 int conn)
0046 {
0047 return 1;
0048 }
0049 static inline void i810_create_i2c_busses(struct i810fb_par *par) { }
0050 static inline void i810_delete_i2c_busses(struct i810fb_par *par) { }
0051 #endif
0052
0053
0054 #ifdef CONFIG_X86
0055 static inline void flush_cache(void)
0056 {
0057 asm volatile ("wbinvd":::"memory");
0058 }
0059 #else
0060 #define flush_cache() do { } while(0)
0061 #endif
0062
0063 #ifdef CONFIG_FB_I810_GTF
0064 #define IS_DVT (0)
0065 #else
0066 #define IS_DVT (1)
0067 #endif
0068
0069 #endif