Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / video / i810 / i810_accel.c
index 71f649f..76764ea 100644 (file)
@@ -14,6 +14,7 @@
 
 #include "i810_regs.h"
 #include "i810.h"
+#include "i810_main.h"
 
 static u32 i810fb_rop[] = {
        COLOR_COPY_ROP, /* ROP_COPY */
@@ -32,7 +33,7 @@ extern void flush_cache(void);
 /************************************************************/
 
 /* BLT Engine Routines */
-static inline void i810_report_error(u8 *mmio)
+static inline void i810_report_error(u8 __iomem *mmio)
 {
        printk("IIR     : 0x%04x\n"
               "EIR     : 0x%04x\n"
@@ -57,9 +58,9 @@ static inline void i810_report_error(u8 *mmio)
  */    
 static inline int wait_for_space(struct fb_info *info, u32 space)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
+       struct i810fb_par *par = info->par;
        u32 head, count = WAIT_COUNT, tail;
-       u8 *mmio = par->mmio_start_virtual;
+       u8 __iomem *mmio = par->mmio_start_virtual;
 
        tail = par->cur_tail;
        while (count--) {
@@ -88,8 +89,8 @@ static inline int wait_for_space(struct fb_info *info, u32 space)
  */
 static inline int wait_for_engine_idle(struct fb_info *info)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
-       u8 *mmio = par->mmio_start_virtual;
+       struct i810fb_par *par = info->par;
+       u8 __iomem *mmio = par->mmio_start_virtual;
        int count = WAIT_COUNT;
 
        if (wait_for_space(info, par->iring.size)) /* flush */
@@ -116,7 +117,7 @@ static inline int wait_for_engine_idle(struct fb_info *info)
  */ 
 static inline u32 begin_iring(struct fb_info *info, u32 space)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
+       struct i810fb_par *par = info->par;
 
        if (par->dev_flags & ALWAYS_SYNC) 
                wait_for_engine_idle(info);
@@ -133,7 +134,7 @@ static inline u32 begin_iring(struct fb_info *info, u32 space)
  */
 static inline void end_iring(struct i810fb_par *par)
 {
-       u8 *mmio = par->mmio_start_virtual;
+       u8 __iomem *mmio = par->mmio_start_virtual;
 
        i810_writel(IRING, mmio, par->cur_tail);
 }
@@ -161,7 +162,7 @@ static inline void source_copy_blit(int dwidth, int dheight, int dpitch,
                                    int xdir, int src, int dest, int rop, 
                                    int blit_bpp, struct fb_info *info)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
+       struct i810fb_par *par = info->par;
 
        if (begin_iring(info, 24 + IRING_PAD)) return;
 
@@ -195,7 +196,7 @@ static inline void color_blit(int width, int height, int pitch,  int dest,
                              int rop, int what, int blit_bpp, 
                              struct fb_info *info)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
+       struct i810fb_par *par = info->par;
 
        if (begin_iring(info, 24 + IRING_PAD)) return;
 
@@ -236,7 +237,7 @@ static inline void mono_src_copy_imm_blit(int dwidth, int dheight, int dpitch,
                                          int dest, const u32 *src, int bg,
                                          int fg, struct fb_info *info)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
+       struct i810fb_par *par = info->par;
 
        if (begin_iring(info, 24 + (dsize << 2) + IRING_PAD)) return;
 
@@ -252,52 +253,9 @@ static inline void mono_src_copy_imm_blit(int dwidth, int dheight, int dpitch,
        end_iring(par);
 }
 
-/**
- * mono_src_copy_blit - color expand from video memory to framebuffer
- * @dwidth: width of destination
- * @dheight: height of destination
- * @dpitch: pixels per line of the buffer
- * @qsize: size of bitmap in quad words
- * @dest: address of first byte of pixel;
- * @rop: raster operation
- * @blit_bpp: pixelformat to use which can be different from the 
- *            framebuffer's pixelformat
- * @src: address of image data
- * @bg: backgound color
- * @fg: forground color
- * @par: pointer to i810fb_par structure
- *
- * DESCRIPTION:
- * A color expand operation where the  source data is in video memory. 
- * Useful for drawing text. 
- *
- * REQUIREMENT:
- * The end of a scanline must be padded to the next word.
- */
-static inline void mono_src_copy_blit(int dwidth, int dheight, int dpitch, 
-                                     int qsize, int blit_bpp, int rop, 
-                                     int dest, int src, int bg,
-                                     int fg, struct fb_info *info)
-{
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
-
-       if (begin_iring(info, 32 + IRING_PAD)) return;
-
-       PUT_RING(BLIT | MONO_SOURCE_COPY_BLIT | 6);
-       PUT_RING(DYN_COLOR_EN | blit_bpp | rop << 16 | dpitch | 1 << 27);
-       PUT_RING(dheight << 16 | dwidth);
-       PUT_RING(dest);
-       PUT_RING(qsize - 1);
-       PUT_RING(src);
-       PUT_RING(bg);
-       PUT_RING(fg);
-
-       end_iring(par);
-}
-
 static inline void load_front(int offset, struct fb_info *info)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
+       struct i810fb_par *par = info->par;
 
        if (begin_iring(info, 8 + IRING_PAD)) return;
 
@@ -326,7 +284,7 @@ static inline void load_front(int offset, struct fb_info *info)
 static inline void i810fb_iring_enable(struct i810fb_par *par, u32 mode)
 {
        u32 tmp;
-       u8 *mmio = par->mmio_start_virtual;
+       u8 __iomem *mmio = par->mmio_start_virtual;
 
        tmp = i810_readl(IRING + 12, mmio);
        if (mode == OFF) 
@@ -339,7 +297,7 @@ static inline void i810fb_iring_enable(struct i810fb_par *par, u32 mode)
 
 void i810fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
+       struct i810fb_par *par = info->par;
        u32 dx, dy, width, height, dest, rop = 0, color = 0;
 
        if (!info->var.accel_flags || par->dev_flags & LOCKUP ||
@@ -365,7 +323,7 @@ void i810fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
        
 void i810fb_copyarea(struct fb_info *info, const struct fb_copyarea *region) 
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
+       struct i810fb_par *par = info->par;
        u32 sx, sy, dx, dy, pitch, width, height, src, dest, xdir;
 
        if (!info->var.accel_flags || par->dev_flags & LOCKUP ||
@@ -404,7 +362,7 @@ void i810fb_copyarea(struct fb_info *info, const struct fb_copyarea *region)
 
 void i810fb_imageblit(struct fb_info *info, const struct fb_image *image)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
+       struct i810fb_par *par = info->par;
        u32 fg = 0, bg = 0, size, dst;
        
        if (!info->var.accel_flags || par->dev_flags & LOCKUP ||
@@ -440,7 +398,7 @@ void i810fb_imageblit(struct fb_info *info, const struct fb_image *image)
 
 int i810fb_sync(struct fb_info *info)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
+       struct i810fb_par *par = info->par;
        
        if (!info->var.accel_flags || par->dev_flags & LOCKUP)
                return 0;
@@ -450,8 +408,8 @@ int i810fb_sync(struct fb_info *info)
 
 void i810fb_load_front(u32 offset, struct fb_info *info)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
-       u8 *mmio = par->mmio_start_virtual;
+       struct i810fb_par *par = info->par;
+       u8 __iomem *mmio = par->mmio_start_virtual;
 
        if (!info->var.accel_flags || par->dev_flags & LOCKUP)
                i810_writel(DPLYBASE, mmio, par->fb.physical + offset);
@@ -470,9 +428,9 @@ void i810fb_load_front(u32 offset, struct fb_info *info)
  */
 void i810fb_init_ringbuffer(struct fb_info *info)
 {
-       struct i810fb_par *par = (struct i810fb_par *) info->par;
+       struct i810fb_par *par = info->par;
        u32 tmp1, tmp2;
-       u8 *mmio = par->mmio_start_virtual;
+       u8 __iomem *mmio = par->mmio_start_virtual;
        
        wait_for_engine_idle(info);
        i810fb_iring_enable(par, OFF);