--- drivers/video/atafb.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) --- a/drivers/video/atafb.c +++ b/drivers/video/atafb.c @@ -2549,6 +2549,13 @@ static void atafb_fillrect(struct fb_inf if (!rect->width || !rect->height) return; +#ifdef ATAFB_FALCON + if (info->var.bits_per_pixel == 16) { + cfb_fillrect(info, rect); + return; + } +#endif + /* * We could use hardware clipping but on many cards you get around * hardware clipping by writing to framebuffer directly. @@ -2583,6 +2590,13 @@ static void atafb_copyarea(struct fb_inf u32 dx, dy, sx, sy, width, height; int rev_copy = 0; +#ifdef ATAFB_FALCON + if (info->var.bits_per_pixel == 16) { + cfb_copyarea(info, area); + return; + } +#endif + /* clip the destination */ x2 = area->dx + area->width; y2 = area->dy + area->height; @@ -2629,6 +2643,13 @@ static void atafb_imageblit(struct fb_in const char *src; u32 dx, dy, width, height, pitch; +#ifdef ATAFB_FALCON + if (info->var.bits_per_pixel == 16) { + cfb_imageblit(info, image); + return; + } +#endif + /* * We could use hardware clipping but on many cards you get around * hardware clipping by writing to framebuffer directly like we are