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>
This commit is contained in:
committed by
Linus Torvalds
parent
a42dc9d480
commit
68648ed1f5
@ -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);
|
||||
|
Reference in New Issue
Block a user