diff options
author | Antonino A. Daplas <adaplas@gmail.com> | 2007-05-08 03:38:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-08 14:15:30 -0400 |
commit | 68648ed1f58d98b8e8d994022e5e25331fbfe42a (patch) | |
tree | 77c721d08b11aba58a30779e7b3294a96dd7fb29 /include/linux | |
parent | a42dc9d4804cc5e111952008492dae9d34c6a541 (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.h | 6 |
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); | |||
895 | extern void cfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect); | 895 | extern void cfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect); |
896 | extern void cfb_copyarea(struct fb_info *info, const struct fb_copyarea *area); | 896 | extern void cfb_copyarea(struct fb_info *info, const struct fb_copyarea *area); |
897 | extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image); | 897 | extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image); |
898 | /* | ||
899 | * Drawing operations where framebuffer is in system RAM | ||
900 | */ | ||
901 | extern void sys_fillrect(struct fb_info *info, const struct fb_fillrect *rect); | ||
902 | extern void sys_copyarea(struct fb_info *info, const struct fb_copyarea *area); | ||
903 | extern void sys_imageblit(struct fb_info *info, const struct fb_image *image); | ||
898 | 904 | ||
899 | /* drivers/video/fbmem.c */ | 905 | /* drivers/video/fbmem.c */ |
900 | extern int register_framebuffer(struct fb_info *fb_info); | 906 | extern int register_framebuffer(struct fb_info *fb_info); |