Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cae8a12f authored by Thomas Koeller's avatar Thomas Koeller Committed by Linus Torvalds
Browse files

[PATCH] non-linear frame buffer read/write access



While the code in fbmem.c allows for hooking read/write access to
non-linear frame buffers by means of fb_read and fb_write in struct fb_ops,
I could not find a way tho access the actual frame buffer memory from
within these routines.  I therefore had to patch fbmem.c, to be able to
retrieve a pointer to struct fb_info from the 'file' argument to these
functions.

The second hunk of the patch is not strictly required, I only did that for
symmetry reasons (and the code is somewhat shorter).

Signed-off-by: default avatarThomas Koeller <thomas@koeller.dyndns.org>
Acked-by: default avatar"Antonino A. Daplas" <adaplas@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 74b4f042
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1234,6 +1234,7 @@ fb_open(struct inode *inode, struct file *file)
		return -ENODEV;
	if (!try_module_get(info->fbops->owner))
		return -ENODEV;
	file->private_data = info;
	if (info->fbops->fb_open) {
		res = info->fbops->fb_open(info,1);
		if (res)
@@ -1245,11 +1246,9 @@ fb_open(struct inode *inode, struct file *file)
static int 
fb_release(struct inode *inode, struct file *file)
{
	int fbidx = iminor(inode);
	struct fb_info *info;
	struct fb_info * const info = file->private_data;

	lock_kernel();
	info = registered_fb[fbidx];
	if (info->fbops->fb_release)
		info->fbops->fb_release(info,1);
	module_put(info->fbops->owner);