Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14912/ruby-2.6/drivers/video
Modified Files:
fbmem.c
Log Message:
sync to 2.6.6
Index: fbmem.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/fbmem.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- fbmem.c 23 Apr 2004 07:36:56 -0000 1.6
+++ fbmem.c 25 May 2004 05:26:48 -0000 1.7
@@ -31,6 +31,9 @@
#include <linux/kmod.h>
#endif
#include <linux/devfs_fs_kernel.h>
+#include <linux/err.h>
+#include <linux/kernel.h>
+#include <linux/device.h>
#if defined(__mc68000__) || defined(CONFIG_APUS)
#include <asm/setup.h>
@@ -1054,7 +1057,7 @@
case FBIOGETCMAP:
if (copy_from_user(&cmap, (void *) arg, sizeof(cmap)))
return -EFAULT;
- return (fb_copy_cmap(&info->cmap, &cmap, 0));
+ return (fb_copy_cmap(&info->cmap, &cmap, 2));
case FBIOPAN_DISPLAY:
if (copy_from_user(&var, (void *) arg, sizeof(var)))
return -EFAULT;
@@ -1261,6 +1264,8 @@
#endif
};
+static struct class_simple *fb_class;
+
/**
* register_framebuffer - registers a frame buffer device
* @fb_info: frame buffer info structure
@@ -1275,6 +1280,7 @@
register_framebuffer(struct fb_info *fb_info)
{
int i;
+ struct class_device *c;
if (num_registered_fb == FB_MAX)
return -ENXIO;
@@ -1284,6 +1290,12 @@
break;
fb_info->node = i;
+ c = class_simple_device_add(fb_class, MKDEV(FB_MAJOR, i), NULL, "fb%d", i);
+ if (IS_ERR(c)) {
+ /* Not fatal */
+ printk(KERN_WARNING "Unable to create class_device for framebuffer %d; errno = %ld\n", i, PTR_ERR(c));
+ }
+
if (fb_info->pixmap.addr == NULL) {
fb_info->pixmap.addr = kmalloc(FBPIXMAPSIZE, GFP_KERNEL);
if (fb_info->pixmap.addr) {
@@ -1350,6 +1362,7 @@
kfree(fb_info->sprite.addr);
registered_fb[i]=NULL;
num_registered_fb--;
+ class_simple_device_remove(MKDEV(FB_MAJOR, i));
return 0;
}
@@ -1411,6 +1424,12 @@
if (register_chrdev(FB_MAJOR,"fb",&fb_fops))
printk("unable to get major %d for fb devs\n", FB_MAJOR);
+ fb_class = class_simple_create(THIS_MODULE, "graphics");
+ if (IS_ERR(fb_class)) {
+ printk(KERN_WARNING "Unable to create fb class; errno = %ld\n", PTR_ERR(fb_class));
+ fb_class = NULL;
+ }
+
#ifdef CONFIG_FB_OF
if (ofonly) {
offb_init();
|