diff options
author | Antonino A. Daplas <adaplas@gmail.com> | 2007-05-08 00:38:57 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-08 11:15:30 -0700 |
commit | 68648ed1f58d98b8e8d994022e5e25331fbfe42a (patch) | |
tree | 77c721d08b11aba58a30779e7b3294a96dd7fb29 /include/linux | |
parent | a42dc9d4804cc5e111952008492dae9d34c6a541 (diff) | |
download | op-kernel-dev-68648ed1f58d98b8e8d994022e5e25331fbfe42a.zip op-kernel-dev-68648ed1f58d98b8e8d994022e5e25331fbfe42a.tar.gz |
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 0de4260..c4e1b3d 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); extern void cfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect); extern void cfb_copyarea(struct fb_info *info, const struct fb_copyarea *area); extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image); +/* + * Drawing operations where framebuffer is in system RAM + */ +extern void sys_fillrect(struct fb_info *info, const struct fb_fillrect *rect); +extern void sys_copyarea(struct fb_info *info, const struct fb_copyarea *area); +extern void sys_imageblit(struct fb_info *info, const struct fb_image *image); /* drivers/video/fbmem.c */ extern int register_framebuffer(struct fb_info *fb_info); |