|
@@ -454,7 +454,6 @@ static int hgafb_blank(int blank_mode, struct fb_info *info)
|
|
|
/*
|
|
|
* Accel functions
|
|
|
*/
|
|
|
-#ifdef CONFIG_FB_HGA_ACCEL
|
|
|
static void hgafb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
|
|
|
{
|
|
|
u_int rows, y;
|
|
@@ -466,7 +465,7 @@ static void hgafb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
|
|
|
dest = rowaddr(info, y) + (rect->dx >> 3);
|
|
|
switch (rect->rop) {
|
|
|
case ROP_COPY:
|
|
|
- //fb_memset(dest, rect->color, (rect->width >> 3));
|
|
|
+ memset_io(dest, rect->color, (rect->width >> 3));
|
|
|
break;
|
|
|
case ROP_XOR:
|
|
|
fb_writeb(~(fb_readb(dest)), dest);
|
|
@@ -488,7 +487,7 @@ static void hgafb_copyarea(struct fb_info *info, const struct fb_copyarea *area)
|
|
|
for (rows = area->height; rows--; ) {
|
|
|
src = rowaddr(info, y1) + (area->sx >> 3);
|
|
|
dest = rowaddr(info, y2) + (area->dx >> 3);
|
|
|
- //fb_memmove(dest, src, (area->width >> 3));
|
|
|
+ memmove(dest, src, (area->width >> 3));
|
|
|
y1++;
|
|
|
y2++;
|
|
|
}
|
|
@@ -499,7 +498,7 @@ static void hgafb_copyarea(struct fb_info *info, const struct fb_copyarea *area)
|
|
|
for (rows = area->height; rows--;) {
|
|
|
src = rowaddr(info, y1) + (area->sx >> 3);
|
|
|
dest = rowaddr(info, y2) + (area->dx >> 3);
|
|
|
- //fb_memmove(dest, src, (area->width >> 3));
|
|
|
+ memmove(dest, src, (area->width >> 3));
|
|
|
y1--;
|
|
|
y2--;
|
|
|
}
|
|
@@ -511,20 +510,17 @@ static void hgafb_imageblit(struct fb_info *info, const struct fb_image *image)
|
|
|
u8 __iomem *dest;
|
|
|
u8 *cdat = (u8 *) image->data;
|
|
|
u_int rows, y = image->dy;
|
|
|
+ u_int x;
|
|
|
u8 d;
|
|
|
|
|
|
for (rows = image->height; rows--; y++) {
|
|
|
- d = *cdat++;
|
|
|
- dest = rowaddr(info, y) + (image->dx >> 3);
|
|
|
- fb_writeb(d, dest);
|
|
|
+ for (x = 0; x < image->width; x+= 8) {
|
|
|
+ d = *cdat++;
|
|
|
+ dest = rowaddr(info, y) + ((image->dx + x)>> 3);
|
|
|
+ fb_writeb(d, dest);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-#else /* !CONFIG_FB_HGA_ACCEL */
|
|
|
-#define hgafb_fillrect cfb_fillrect
|
|
|
-#define hgafb_copyarea cfb_copyarea
|
|
|
-#define hgafb_imageblit cfb_imageblit
|
|
|
-#endif /* CONFIG_FB_HGA_ACCEL */
|
|
|
-
|
|
|
|
|
|
static struct fb_ops hgafb_ops = {
|
|
|
.owner = THIS_MODULE,
|