From: "Antonino A. Daplas" Move fb_get_caps() method to svgalib.c as svga_get_caps() so it can be used by s3fb, arkfb and vt8623fb. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton --- drivers/video/arkfb.c | 1 + drivers/video/s3fb.c | 19 +------------------ drivers/video/svgalib.c | 17 +++++++++++++++++ drivers/video/vt8623fb.c | 1 + include/linux/svga.h | 2 ++ 5 files changed, 22 insertions(+), 18 deletions(-) diff -puN drivers/video/arkfb.c~svgalib-move-fb_get_caps-to-svgalib drivers/video/arkfb.c --- a/drivers/video/arkfb.c~svgalib-move-fb_get_caps-to-svgalib +++ a/drivers/video/arkfb.c @@ -918,6 +918,7 @@ static struct fb_ops arkfb_ops = { .fb_fillrect = arkfb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = arkfb_imageblit, + .fb_get_caps = svga_get_caps, }; diff -puN drivers/video/s3fb.c~svgalib-move-fb_get_caps-to-svgalib drivers/video/s3fb.c --- a/drivers/video/s3fb.c~svgalib-move-fb_get_caps-to-svgalib +++ a/drivers/video/s3fb.c @@ -796,23 +796,6 @@ static int s3fb_pan_display(struct fb_va return 0; } -/* Get capabilities of accelerator based on the mode */ - -static void s3fb_get_caps(struct fb_info *info, struct fb_blit_caps *caps, - struct fb_var_screeninfo *var) -{ - if (var->bits_per_pixel == 0) { - /* can only support 256 8x16 bitmap */ - caps->x = 1 << (8 - 1); - caps->y = 1 << (16 - 1); - caps->len = 256; - } else { - caps->x = ~(u32)0; - caps->y = ~(u32)0; - caps->len = ~(u32)0; - } -} - /* ------------------------------------------------------------------------- */ /* Frame buffer operations */ @@ -829,7 +812,7 @@ static struct fb_ops s3fb_ops = { .fb_fillrect = s3fb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = s3fb_imageblit, - .fb_get_caps = s3fb_get_caps, + .fb_get_caps = svga_get_caps, }; /* ------------------------------------------------------------------------- */ diff -puN drivers/video/svgalib.c~svgalib-move-fb_get_caps-to-svgalib drivers/video/svgalib.c --- a/drivers/video/svgalib.c~svgalib-move-fb_get_caps-to-svgalib +++ a/drivers/video/svgalib.c @@ -347,6 +347,23 @@ int svga_get_tilemax(struct fb_info *inf return 256; } +/* Get capabilities of accelerator based on the mode */ + +void svga_get_caps(struct fb_info *info, struct fb_blit_caps *caps, + struct fb_var_screeninfo *var) +{ + if (var->bits_per_pixel == 0) { + /* can only support 256 8x16 bitmap */ + caps->x = 1 << (8 - 1); + caps->y = 1 << (16 - 1); + caps->len = 256; + } else { + caps->x = (var->bits_per_pixel == 4) ? 1 << (8 - 1) : ~(u32)0; + caps->y = ~(u32)0; + caps->len = ~(u32)0; + } +} +EXPORT_SYMBOL(svga_get_caps); /* ------------------------------------------------------------------------- */ diff -puN drivers/video/vt8623fb.c~svgalib-move-fb_get_caps-to-svgalib drivers/video/vt8623fb.c --- a/drivers/video/vt8623fb.c~svgalib-move-fb_get_caps-to-svgalib +++ a/drivers/video/vt8623fb.c @@ -635,6 +635,7 @@ static struct fb_ops vt8623fb_ops = { .fb_fillrect = vt8623fb_fillrect, .fb_copyarea = cfb_copyarea, .fb_imageblit = vt8623fb_imageblit, + .fb_get_caps = svga_get_caps, }; diff -puN include/linux/svga.h~svgalib-move-fb_get_caps-to-svgalib include/linux/svga.h --- a/include/linux/svga.h~svgalib-move-fb_get_caps-to-svgalib +++ a/include/linux/svga.h @@ -113,6 +113,8 @@ void svga_tilefill(struct fb_info *info, void svga_tileblit(struct fb_info *info, struct fb_tileblit *blit); void svga_tilecursor(struct fb_info *info, struct fb_tilecursor *cursor); int svga_get_tilemax(struct fb_info *info); +void svga_get_caps(struct fb_info *info, struct fb_blit_caps *caps, + struct fb_var_screeninfo *var); int svga_compute_pll(const struct svga_pll *pll, u32 f_wanted, u16 *m, u16 *n, u16 *r, int node); int svga_check_timings(const struct svga_timing_regs *tm, struct fb_var_screeninfo *var, int node); _