aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorAntonino A. Daplas <adaplas@gmail.com>2007-05-08 03:38:57 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-08 14:15:30 -0400
commit68648ed1f58d98b8e8d994022e5e25331fbfe42a (patch)
tree77c721d08b11aba58a30779e7b3294a96dd7fb29 /include/linux
parenta42dc9d4804cc5e111952008492dae9d34c6a541 (diff)
fbdev: add drawing functions for framebuffers in system RAM
The generic drawing functions (cfbimgblt, cfbcopyarea, cfbfillrect) assume that the framebuffer is in IO memory. However, we have 3 drivers (hecubafb, arcfb, and vfb) where the framebuffer is allocated from system RAM (via vmalloc). Using _raw_read/write and family for these drivers (as used in the cfb* functions) is illegal, especially in other platforms. Create 3 new drawing functions, based almost entirely from the original except that the framebuffer memory is assumed to be in system RAM. These are named as sysimgblt, syscopyarea, and sysfillrect. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/fb.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 0de426026f4a..c4e1b3d2ecf9 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -895,6 +895,12 @@ extern int fb_blank(struct fb_info *info, int blank);
895extern void cfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect); 895extern void cfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
896extern void cfb_copyarea(struct fb_info *info, const struct fb_copyarea *area); 896extern void cfb_copyarea(struct fb_info *info, const struct fb_copyarea *area);
897extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image); 897extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image);
898/*
899 * Drawing operations where framebuffer is in system RAM
900 */
901extern void sys_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
902extern void sys_copyarea(struct fb_info *info, const struct fb_copyarea *area);
903extern void sys_imageblit(struct fb_info *info, const struct fb_image *image);
898 904
899/* drivers/video/fbmem.c */ 905/* drivers/video/fbmem.c */
900extern int register_framebuffer(struct fb_info *fb_info); 906extern int register_framebuffer(struct fb_info *fb_info);