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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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).

Patch is against 2.6.14

Signed-off-by: Thomas Koeller <[email protected]>

diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
index e2667dd..145c18f 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -965,6 +965,7 @@ fb_open(struct inode *inode, struct 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)
@@ -976,11 +977,9 @@ fb_open(struct inode *inode, struct file
 static int 
 fb_release(struct inode *inode, struct file *file)
 {
-	int fbidx = iminor(inode);
-	struct fb_info *info;
+	struct fb_info * const info = (struct fb_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);

-- 
Thomas Koeller
thomas at koeller dot dyndns dot org
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux