]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/video/sbuslib.c
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
[linux-2.6-omap-h63xx.git] / drivers / video / sbuslib.c
index 3a74a63dd4f228a4cb0691d24d796b65b25348d9..963a454b70741ecb696802c98bd5e73dd83e146d 100644 (file)
@@ -58,6 +58,8 @@ int sbusfb_mmap_helper(struct sbus_mmap_map *map,
        /* To stop the swapper from even considering these pages */
        vma->vm_flags |= (VM_IO | VM_RESERVED);
        
+       vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
+
        /* Each page, see which map applies */
        for (page = 0; page < size; ){
                map_size = 0;
@@ -188,19 +190,7 @@ int sbusfb_ioctl_helper(unsigned long cmd, unsigned long arg,
 EXPORT_SYMBOL(sbusfb_ioctl_helper);
 
 #ifdef CONFIG_COMPAT
-struct  fbcmap32 {
-       int             index;          /* first element (0 origin) */
-       int             count;
-       u32             red;
-       u32             green;
-       u32             blue;
-};
-
-#define FBIOPUTCMAP32  _IOW('F', 3, struct fbcmap32)
-#define FBIOGETCMAP32  _IOW('F', 4, struct fbcmap32)
-
-static int fbiogetputcmap(struct file *file, struct fb_info *info,
-               unsigned int cmd, unsigned long arg)
+static int fbiogetputcmap(struct fb_info *info, unsigned int cmd, unsigned long arg)
 {
        struct fbcmap32 __user *argp = (void __user *)arg;
        struct fbcmap __user *p = compat_alloc_user_space(sizeof(*p));
@@ -216,28 +206,13 @@ static int fbiogetputcmap(struct file *file, struct fb_info *info,
        ret |= put_user(compat_ptr(addr), &p->blue);
        if (ret)
                return -EFAULT;
-       return info->fbops->fb_ioctl(file->f_dentry->d_inode, file,
+       return info->fbops->fb_ioctl(info,
                        (cmd == FBIOPUTCMAP32) ?
                        FBIOPUTCMAP_SPARC : FBIOGETCMAP_SPARC,
-                       (unsigned long)p, info);
+                       (unsigned long)p);
 }
 
-struct fbcursor32 {
-       short set;              /* what to set, choose from the list above */
-       short enable;           /* cursor on/off */
-       struct fbcurpos pos;    /* cursor position */
-       struct fbcurpos hot;    /* cursor hot spot */
-       struct fbcmap32 cmap;   /* color map info */
-       struct fbcurpos size;   /* cursor bit map size */
-       u32     image;          /* cursor image bits */
-       u32     mask;           /* cursor mask bits */
-};
-
-#define FBIOSCURSOR32  _IOW('F', 24, struct fbcursor32)
-#define FBIOGCURSOR32  _IOW('F', 25, struct fbcursor32)
-
-static int fbiogscursor(struct file *file, struct fb_info *info,
-               unsigned long arg)
+static int fbiogscursor(struct fb_info *info, unsigned long arg)
 {
        struct fbcursor __user *p = compat_alloc_user_space(sizeof(*p));
        struct fbcursor32 __user *argp =  (void __user *)arg;
@@ -260,12 +235,10 @@ static int fbiogscursor(struct file *file, struct fb_info *info,
        ret |= put_user(compat_ptr(addr), &p->image);
        if (ret)
                return -EFAULT;
-       return info->fbops->fb_ioctl(file->f_dentry->d_inode, file,
-                       FBIOSCURSOR, (unsigned long)p, info);
+       return info->fbops->fb_ioctl(info, FBIOSCURSOR, (unsigned long)p);
 }
 
-long sbusfb_compat_ioctl(struct file *file, unsigned int cmd,
-               unsigned long arg, struct fb_info *info)
+int sbusfb_compat_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
 {
        switch (cmd) {
        case FBIOGTYPE:
@@ -278,14 +251,13 @@ long sbusfb_compat_ioctl(struct file *file, unsigned int cmd,
        case FBIOSCURPOS:
        case FBIOGCURPOS:
        case FBIOGCURMAX:
-               return info->fbops->fb_ioctl(file->f_dentry->d_inode,
-                               file, cmd, arg, info);
+               return info->fbops->fb_ioctl(info, cmd, arg);
        case FBIOPUTCMAP32:
-               return fbiogetputcmap(file, info, cmd, arg);
+               return fbiogetputcmap(info, cmd, arg);
        case FBIOGETCMAP32:
-               return fbiogetputcmap(file, info, cmd, arg);
+               return fbiogetputcmap(info, cmd, arg);
        case FBIOSCURSOR32:
-               return fbiogscursor(file, info, arg);
+               return fbiogscursor(info, arg);
        default:
                return -ENOIOCTLCMD;
        }