aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2006-01-14 16:21:25 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-14 21:27:14 -0500
commit67a6680d64e18c7a1901f31ef747ea53b6cd986d (patch)
tree1d428eb19fdd393290348c63911c2974016ebc9d
parenta80da7389891d0eeacbd568a9b54f665fd424d14 (diff)
[PATCH] fbdev: Sanitize ->fb_ioctl prototype
The ioctl and file arguments to ->fb_mmap are totally unused and there's not reason a driver should need them. Also update the ->fb_compat_ioctl prototype to be the same as ->fb_mmap. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/video/amifb.c9
-rw-r--r--drivers/video/arcfb.c5
-rw-r--r--drivers/video/atafb.c3
-rw-r--r--drivers/video/aty/aty128fb.c6
-rw-r--r--drivers/video/aty/atyfb_base.c6
-rw-r--r--drivers/video/aty/radeon_base.c4
-rw-r--r--drivers/video/bw2.c6
-rw-r--r--drivers/video/cg14.c6
-rw-r--r--drivers/video/cg3.c6
-rw-r--r--drivers/video/cg6.c6
-rw-r--r--drivers/video/fbmem.c4
-rw-r--r--drivers/video/ffb.c6
-rw-r--r--drivers/video/imsttfb.c3
-rw-r--r--drivers/video/intelfb/intelfbdrv.c8
-rw-r--r--drivers/video/kyro/fbdev.c5
-rw-r--r--drivers/video/leo.c6
-rw-r--r--drivers/video/matrox/matroxfb_base.c5
-rw-r--r--drivers/video/matrox/matroxfb_crtc2.c9
-rw-r--r--drivers/video/p9100.c7
-rw-r--r--drivers/video/pm3fb.c8
-rw-r--r--drivers/video/pmag-aa-fb.c3
-rw-r--r--drivers/video/radeonfb.c4
-rw-r--r--drivers/video/sis/sis_main.c28
-rw-r--r--drivers/video/sis/sis_main.h5
-rw-r--r--drivers/video/sstfb.c3
-rw-r--r--drivers/video/tcx.c7
-rw-r--r--include/linux/fb.h8
27 files changed, 67 insertions, 109 deletions
diff --git a/drivers/video/amifb.c b/drivers/video/amifb.c
index 2c42a812655a..3033c72dea20 100644
--- a/drivers/video/amifb.c
+++ b/drivers/video/amifb.c
@@ -1131,9 +1131,7 @@ static void amifb_copyarea(struct fb_info *info,
1131 const struct fb_copyarea *region); 1131 const struct fb_copyarea *region);
1132static void amifb_imageblit(struct fb_info *info, 1132static void amifb_imageblit(struct fb_info *info,
1133 const struct fb_image *image); 1133 const struct fb_image *image);
1134static int amifb_ioctl(struct inode *inode, struct file *file, 1134static int amifb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg);
1135 unsigned int cmd, unsigned long arg,
1136 struct fb_info *info);
1137 1135
1138 1136
1139 /* 1137 /*
@@ -2172,9 +2170,8 @@ static void amifb_imageblit(struct fb_info *info, const struct fb_image *image)
2172 * Amiga Frame Buffer Specific ioctls 2170 * Amiga Frame Buffer Specific ioctls
2173 */ 2171 */
2174 2172
2175static int amifb_ioctl(struct inode *inode, struct file *file, 2173static int amifb_ioctl(struct fb_info *info,
2176 unsigned int cmd, unsigned long arg, 2174 unsigned int cmd, unsigned long arg)
2177 struct fb_info *info)
2178{ 2175{
2179 union { 2176 union {
2180 struct fb_fix_cursorinfo fix; 2177 struct fb_fix_cursorinfo fix;
diff --git a/drivers/video/arcfb.c b/drivers/video/arcfb.c
index 89060b2db8e5..df8e5667b348 100644
--- a/drivers/video/arcfb.c
+++ b/drivers/video/arcfb.c
@@ -399,9 +399,8 @@ static void arcfb_imageblit(struct fb_info *info, const struct fb_image *image)
399 image->height); 399 image->height);
400} 400}
401 401
402static int arcfb_ioctl(struct inode *inode, struct file *file, 402static int arcfb_ioctl(struct fb_info *info,
403 unsigned int cmd, unsigned long arg, 403 unsigned int cmd, unsigned long arg)
404 struct fb_info *info)
405{ 404{
406 void __user *argp = (void __user *)arg; 405 void __user *argp = (void __user *)arg;
407 struct arcfb_par *par = info->par; 406 struct arcfb_par *par = info->par;
diff --git a/drivers/video/atafb.c b/drivers/video/atafb.c
index 15ec1295bc29..e69ab65f7843 100644
--- a/drivers/video/atafb.c
+++ b/drivers/video/atafb.c
@@ -2571,8 +2571,7 @@ atafb_pan_display(struct fb_var_screeninfo *var, int con, struct fb_info *info)
2571} 2571}
2572 2572
2573static int 2573static int
2574atafb_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 2574atafb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
2575 unsigned long arg, int con, struct fb_info *info)
2576{ 2575{
2577 switch (cmd) { 2576 switch (cmd) {
2578#ifdef FBCMD_GET_CURRENTPAR 2577#ifdef FBCMD_GET_CURRENTPAR
diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c
index e686185a076d..bfc8a93b2c73 100644
--- a/drivers/video/aty/aty128fb.c
+++ b/drivers/video/aty/aty128fb.c
@@ -431,8 +431,7 @@ static int aty128fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
431static int aty128fb_pan_display(struct fb_var_screeninfo *var, 431static int aty128fb_pan_display(struct fb_var_screeninfo *var,
432 struct fb_info *fb); 432 struct fb_info *fb);
433static int aty128fb_blank(int blank, struct fb_info *fb); 433static int aty128fb_blank(int blank, struct fb_info *fb);
434static int aty128fb_ioctl(struct inode *inode, struct file *file, u_int cmd, 434static int aty128fb_ioctl(struct fb_info *info, u_int cmd, unsigned long arg);
435 u_long arg, struct fb_info *info);
436static int aty128fb_sync(struct fb_info *info); 435static int aty128fb_sync(struct fb_info *info);
437 436
438 /* 437 /*
@@ -2108,8 +2107,7 @@ static int aty128fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
2108/* in param: u32* backlight value: 0 to 15 */ 2107/* in param: u32* backlight value: 0 to 15 */
2109#define FBIO_ATY128_SET_MIRROR _IOW('@', 2, __u32) 2108#define FBIO_ATY128_SET_MIRROR _IOW('@', 2, __u32)
2110 2109
2111static int aty128fb_ioctl(struct inode *inode, struct file *file, u_int cmd, 2110static int aty128fb_ioctl(struct fb_info *info, u_int cmd, u_long arg)
2112 u_long arg, struct fb_info *info)
2113{ 2111{
2114 struct aty128fb_par *par = info->par; 2112 struct aty128fb_par *par = info->par;
2115 u32 value; 2113 u32 value;
diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
index ed81005cbdba..75b463ad4c75 100644
--- a/drivers/video/aty/atyfb_base.c
+++ b/drivers/video/aty/atyfb_base.c
@@ -238,8 +238,7 @@ static int atyfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
238 u_int transp, struct fb_info *info); 238 u_int transp, struct fb_info *info);
239static int atyfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info); 239static int atyfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info);
240static int atyfb_blank(int blank, struct fb_info *info); 240static int atyfb_blank(int blank, struct fb_info *info);
241static int atyfb_ioctl(struct inode *inode, struct file *file, u_int cmd, 241static int atyfb_ioctl(struct fb_info *info, u_int cmd, u_long arg);
242 u_long arg, struct fb_info *info);
243extern void atyfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect); 242extern void atyfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
244extern void atyfb_copyarea(struct fb_info *info, const struct fb_copyarea *area); 243extern void atyfb_copyarea(struct fb_info *info, const struct fb_copyarea *area);
245extern void atyfb_imageblit(struct fb_info *info, const struct fb_image *image); 244extern void atyfb_imageblit(struct fb_info *info, const struct fb_image *image);
@@ -1739,8 +1738,7 @@ struct atyclk {
1739#define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32) 1738#define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)
1740#endif 1739#endif
1741 1740
1742static int atyfb_ioctl(struct inode *inode, struct file *file, u_int cmd, 1741static int atyfb_ioctl(struct fb_info *info, u_int cmd, u_long arg)
1743 u_long arg, struct fb_info *info)
1744{ 1742{
1745 struct atyfb_par *par = (struct atyfb_par *) info->par; 1743 struct atyfb_par *par = (struct atyfb_par *) info->par;
1746#ifdef __sparc__ 1744#ifdef __sparc__
diff --git a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c
index 156db84cb363..c9f0c5a07e6e 100644
--- a/drivers/video/aty/radeon_base.c
+++ b/drivers/video/aty/radeon_base.c
@@ -864,8 +864,8 @@ static int radeonfb_pan_display (struct fb_var_screeninfo *var,
864} 864}
865 865
866 866
867static int radeonfb_ioctl (struct inode *inode, struct file *file, unsigned int cmd, 867static int radeonfb_ioctl (struct fb_info *info, unsigned int cmd,
868 unsigned long arg, struct fb_info *info) 868 unsigned long arg)
869{ 869{
870 struct radeonfb_info *rinfo = info->par; 870 struct radeonfb_info *rinfo = info->par;
871 unsigned int tmp; 871 unsigned int tmp;
diff --git a/drivers/video/bw2.c b/drivers/video/bw2.c
index 9248fe1fbb1a..641a6c1fbf22 100644
--- a/drivers/video/bw2.c
+++ b/drivers/video/bw2.c
@@ -36,8 +36,7 @@
36static int bw2_blank(int, struct fb_info *); 36static int bw2_blank(int, struct fb_info *);
37 37
38static int bw2_mmap(struct fb_info *, struct file *, struct vm_area_struct *); 38static int bw2_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
39static int bw2_ioctl(struct inode *, struct file *, unsigned int, 39static int bw2_ioctl(struct fb_info *, unsigned int, unsigned long);
40 unsigned long, struct fb_info *);
41 40
42/* 41/*
43 * Frame buffer operations 42 * Frame buffer operations
@@ -181,8 +180,7 @@ static int bw2_mmap(struct fb_info *info, struct file *file, struct vm_area_stru
181 vma); 180 vma);
182} 181}
183 182
184static int bw2_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 183static int bw2_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
185 unsigned long arg, struct fb_info *info)
186{ 184{
187 struct bw2_par *par = (struct bw2_par *) info->par; 185 struct bw2_par *par = (struct bw2_par *) info->par;
188 186
diff --git a/drivers/video/cg14.c b/drivers/video/cg14.c
index a56147102abb..edb9936673c8 100644
--- a/drivers/video/cg14.c
+++ b/drivers/video/cg14.c
@@ -32,8 +32,7 @@ static int cg14_setcolreg(unsigned, unsigned, unsigned, unsigned,
32 unsigned, struct fb_info *); 32 unsigned, struct fb_info *);
33 33
34static int cg14_mmap(struct fb_info *, struct file *, struct vm_area_struct *); 34static int cg14_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
35static int cg14_ioctl(struct inode *, struct file *, unsigned int, 35static int cg14_ioctl(struct fb_info *, unsigned int, unsigned long);
36 unsigned long, struct fb_info *);
37static int cg14_pan_display(struct fb_var_screeninfo *, struct fb_info *); 36static int cg14_pan_display(struct fb_var_screeninfo *, struct fb_info *);
38 37
39/* 38/*
@@ -277,8 +276,7 @@ static int cg14_mmap(struct fb_info *info, struct file *file, struct vm_area_str
277 par->iospace, vma); 276 par->iospace, vma);
278} 277}
279 278
280static int cg14_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 279static int cg14_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
281 unsigned long arg, struct fb_info *info)
282{ 280{
283 struct cg14_par *par = (struct cg14_par *) info->par; 281 struct cg14_par *par = (struct cg14_par *) info->par;
284 struct cg14_regs __iomem *regs = par->regs; 282 struct cg14_regs __iomem *regs = par->regs;
diff --git a/drivers/video/cg3.c b/drivers/video/cg3.c
index 9fcd89608ed7..027f707fa5db 100644
--- a/drivers/video/cg3.c
+++ b/drivers/video/cg3.c
@@ -34,8 +34,7 @@ static int cg3_setcolreg(unsigned, unsigned, unsigned, unsigned,
34static int cg3_blank(int, struct fb_info *); 34static int cg3_blank(int, struct fb_info *);
35 35
36static int cg3_mmap(struct fb_info *, struct file *, struct vm_area_struct *); 36static int cg3_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
37static int cg3_ioctl(struct inode *, struct file *, unsigned int, 37static int cg3_ioctl(struct fb_info *, unsigned int, unsigned long);
38 unsigned long, struct fb_info *);
39 38
40/* 39/*
41 * Frame buffer operations 40 * Frame buffer operations
@@ -240,8 +239,7 @@ static int cg3_mmap(struct fb_info *info, struct file *file, struct vm_area_stru
240 vma); 239 vma);
241} 240}
242 241
243static int cg3_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 242static int cg3_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
244 unsigned long arg, struct fb_info *info)
245{ 243{
246 struct cg3_par *par = (struct cg3_par *) info->par; 244 struct cg3_par *par = (struct cg3_par *) info->par;
247 245
diff --git a/drivers/video/cg6.c b/drivers/video/cg6.c
index 050835e39aa3..678e335d2b0f 100644
--- a/drivers/video/cg6.c
+++ b/drivers/video/cg6.c
@@ -37,8 +37,7 @@ static void cg6_imageblit(struct fb_info *, const struct fb_image *);
37static void cg6_fillrect(struct fb_info *, const struct fb_fillrect *); 37static void cg6_fillrect(struct fb_info *, const struct fb_fillrect *);
38static int cg6_sync(struct fb_info *); 38static int cg6_sync(struct fb_info *);
39static int cg6_mmap(struct fb_info *, struct file *, struct vm_area_struct *); 39static int cg6_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
40static int cg6_ioctl(struct inode *, struct file *, unsigned int, 40static int cg6_ioctl(struct fb_info *, unsigned int, unsigned long);
41 unsigned long, struct fb_info *);
42 41
43/* 42/*
44 * Frame buffer operations 43 * Frame buffer operations
@@ -534,8 +533,7 @@ static int cg6_mmap(struct fb_info *info, struct file *file, struct vm_area_stru
534 vma); 533 vma);
535} 534}
536 535
537static int cg6_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 536static int cg6_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
538 unsigned long arg, struct fb_info *info)
539{ 537{
540 struct cg6_par *par = (struct cg6_par *) info->par; 538 struct cg6_par *par = (struct cg6_par *) info->par;
541 539
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
index 32a9b69becc5..80c16fb61e1c 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -957,7 +957,7 @@ fb_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
957 default: 957 default:
958 if (fb->fb_ioctl == NULL) 958 if (fb->fb_ioctl == NULL)
959 return -EINVAL; 959 return -EINVAL;
960 return fb->fb_ioctl(inode, file, cmd, arg, info); 960 return fb->fb_ioctl(info, cmd, arg);
961 } 961 }
962} 962}
963 963
@@ -1107,7 +1107,7 @@ fb_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
1107 1107
1108 default: 1108 default:
1109 if (fb->fb_compat_ioctl) 1109 if (fb->fb_compat_ioctl)
1110 ret = fb->fb_compat_ioctl(file, cmd, arg, info); 1110 ret = fb->fb_compat_ioctl(info, cmd, arg);
1111 break; 1111 break;
1112 } 1112 }
1113 unlock_kernel(); 1113 unlock_kernel();
diff --git a/drivers/video/ffb.c b/drivers/video/ffb.c
index c4870d559afc..d096c129d20b 100644
--- a/drivers/video/ffb.c
+++ b/drivers/video/ffb.c
@@ -38,8 +38,7 @@ static void ffb_fillrect(struct fb_info *, const struct fb_fillrect *);
38static void ffb_copyarea(struct fb_info *, const struct fb_copyarea *); 38static void ffb_copyarea(struct fb_info *, const struct fb_copyarea *);
39static int ffb_sync(struct fb_info *); 39static int ffb_sync(struct fb_info *);
40static int ffb_mmap(struct fb_info *, struct file *, struct vm_area_struct *); 40static int ffb_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
41static int ffb_ioctl(struct inode *, struct file *, unsigned int, 41static int ffb_ioctl(struct fb_info *, unsigned int, unsigned long);
42 unsigned long, struct fb_info *);
43static int ffb_pan_display(struct fb_var_screeninfo *, struct fb_info *); 42static int ffb_pan_display(struct fb_var_screeninfo *, struct fb_info *);
44 43
45/* 44/*
@@ -848,8 +847,7 @@ static int ffb_mmap(struct fb_info *info, struct file *file, struct vm_area_stru
848 0, vma); 847 0, vma);
849} 848}
850 849
851static int ffb_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 850static int ffb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
852 unsigned long arg, struct fb_info *info)
853{ 851{
854 struct ffb_par *par = (struct ffb_par *) info->par; 852 struct ffb_par *par = (struct ffb_par *) info->par;
855 853
diff --git a/drivers/video/imsttfb.c b/drivers/video/imsttfb.c
index a5d813050db5..ad416ae47596 100644
--- a/drivers/video/imsttfb.c
+++ b/drivers/video/imsttfb.c
@@ -1267,8 +1267,7 @@ imsttfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
1267#define FBIMSTT_GETIDXREG 0x545406 1267#define FBIMSTT_GETIDXREG 0x545406
1268 1268
1269static int 1269static int
1270imsttfb_ioctl(struct inode *inode, struct file *file, u_int cmd, 1270imsttfb_ioctl(struct fb_info *info, u_int cmd, u_long arg)
1271 u_long arg, struct fb_info *info)
1272{ 1271{
1273 struct imstt_par *par = info->par; 1272 struct imstt_par *par = info->par;
1274 void __user *argp = (void __user *)arg; 1273 void __user *argp = (void __user *)arg;
diff --git a/drivers/video/intelfb/intelfbdrv.c b/drivers/video/intelfb/intelfbdrv.c
index 0090544842f5..6b8bd3cdf9c0 100644
--- a/drivers/video/intelfb/intelfbdrv.c
+++ b/drivers/video/intelfb/intelfbdrv.c
@@ -157,9 +157,8 @@ static int intelfb_cursor(struct fb_info *info,
157 157
158static int intelfb_sync(struct fb_info *info); 158static int intelfb_sync(struct fb_info *info);
159 159
160static int intelfb_ioctl(struct inode *inode, struct file *file, 160static int intelfb_ioctl(struct fb_info *info,
161 unsigned int cmd, unsigned long arg, 161 unsigned int cmd, unsigned long arg);
162 struct fb_info *info);
163 162
164static int __devinit intelfb_pci_register(struct pci_dev *pdev, 163static int __devinit intelfb_pci_register(struct pci_dev *pdev,
165 const struct pci_device_id *ent); 164 const struct pci_device_id *ent);
@@ -1380,8 +1379,7 @@ intelfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
1380 1379
1381/* When/if we have our own ioctls. */ 1380/* When/if we have our own ioctls. */
1382static int 1381static int
1383intelfb_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 1382intelfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
1384 unsigned long arg, struct fb_info *info)
1385{ 1383{
1386 int retval = 0; 1384 int retval = 0;
1387 1385
diff --git a/drivers/video/kyro/fbdev.c b/drivers/video/kyro/fbdev.c
index bcd359b6d4ff..477ad297de4e 100644
--- a/drivers/video/kyro/fbdev.c
+++ b/drivers/video/kyro/fbdev.c
@@ -586,9 +586,8 @@ static int __init kyrofb_setup(char *options)
586} 586}
587#endif 587#endif
588 588
589static int kyrofb_ioctl(struct inode *inode, struct file *file, 589static int kyrofb_ioctl(struct fb_info *info,
590 unsigned int cmd, unsigned long arg, 590 unsigned int cmd, unsigned long arg)
591 struct fb_info *info)
592{ 591{
593 overlay_create ol_create; 592 overlay_create ol_create;
594 overlay_viewport_set ol_viewport_set; 593 overlay_viewport_set ol_viewport_set;
diff --git a/drivers/video/leo.c b/drivers/video/leo.c
index 494287f8f8bf..fb14787e13b9 100644
--- a/drivers/video/leo.c
+++ b/drivers/video/leo.c
@@ -33,8 +33,7 @@ static int leo_setcolreg(unsigned, unsigned, unsigned, unsigned,
33static int leo_blank(int, struct fb_info *); 33static int leo_blank(int, struct fb_info *);
34 34
35static int leo_mmap(struct fb_info *, struct file *, struct vm_area_struct *); 35static int leo_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
36static int leo_ioctl(struct inode *, struct file *, unsigned int, 36static int leo_ioctl(struct fb_info *, unsigned int, unsigned long);
37 unsigned long, struct fb_info *);
38static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *); 37static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *);
39 38
40/* 39/*
@@ -373,8 +372,7 @@ static int leo_mmap(struct fb_info *info, struct file *file, struct vm_area_stru
373 vma); 372 vma);
374} 373}
375 374
376static int leo_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 375static int leo_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
377 unsigned long arg, struct fb_info *info)
378{ 376{
379 struct leo_par *par = (struct leo_par *) info->par; 377 struct leo_par *par = (struct leo_par *) info->par;
380 378
diff --git a/drivers/video/matrox/matroxfb_base.c b/drivers/video/matrox/matroxfb_base.c
index 1e74f4cca53b..4055ff6f5a81 100644
--- a/drivers/video/matrox/matroxfb_base.c
+++ b/drivers/video/matrox/matroxfb_base.c
@@ -865,9 +865,8 @@ static struct matrox_altout panellink_output = {
865 .name = "Panellink output", 865 .name = "Panellink output",
866}; 866};
867 867
868static int matroxfb_ioctl(struct inode *inode, struct file *file, 868static int matroxfb_ioctl(struct fb_info *info,
869 unsigned int cmd, unsigned long arg, 869 unsigned int cmd, unsigned long arg)
870 struct fb_info *info)
871{ 870{
872 void __user *argp = (void __user *)arg; 871 void __user *argp = (void __user *)arg;
873 MINFO_FROM_INFO(info); 872 MINFO_FROM_INFO(info);
diff --git a/drivers/video/matrox/matroxfb_crtc2.c b/drivers/video/matrox/matroxfb_crtc2.c
index d52d7d825c41..27eb4bb4f89f 100644
--- a/drivers/video/matrox/matroxfb_crtc2.c
+++ b/drivers/video/matrox/matroxfb_crtc2.c
@@ -419,11 +419,10 @@ static int matroxfb_dh_get_vblank(const struct matroxfb_dh_fb_info* m2info, stru
419 return 0; 419 return 0;
420} 420}
421 421
422static int matroxfb_dh_ioctl(struct inode* inode, 422static int matroxfb_dh_ioctl(struct fb_info *info,
423 struct file* file,
424 unsigned int cmd, 423 unsigned int cmd,
425 unsigned long arg, 424 unsigned long arg)
426 struct fb_info* info) { 425{
427#define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon)) 426#define m2info (container_of(info, struct matroxfb_dh_fb_info, fbcon))
428 MINFO_FROM(m2info->primary_dev); 427 MINFO_FROM(m2info->primary_dev);
429 428
@@ -457,7 +456,7 @@ static int matroxfb_dh_ioctl(struct inode* inode,
457 case MATROXFB_GET_OUTPUT_MODE: 456 case MATROXFB_GET_OUTPUT_MODE:
458 case MATROXFB_GET_ALL_OUTPUTS: 457 case MATROXFB_GET_ALL_OUTPUTS:
459 { 458 {
460 return ACCESS_FBINFO(fbcon.fbops)->fb_ioctl(inode, file, cmd, arg, &ACCESS_FBINFO(fbcon)); 459 return ACCESS_FBINFO(fbcon.fbops)->fb_ioctl(&ACCESS_FBINFO(fbcon), cmd, arg);
461 } 460 }
462 case MATROXFB_SET_OUTPUT_CONNECTION: 461 case MATROXFB_SET_OUTPUT_CONNECTION:
463 { 462 {
diff --git a/drivers/video/p9100.c b/drivers/video/p9100.c
index b251e754e16c..a1025e9606f1 100644
--- a/drivers/video/p9100.c
+++ b/drivers/video/p9100.c
@@ -32,8 +32,7 @@ static int p9100_setcolreg(unsigned, unsigned, unsigned, unsigned,
32static int p9100_blank(int, struct fb_info *); 32static int p9100_blank(int, struct fb_info *);
33 33
34static int p9100_mmap(struct fb_info *, struct file *, struct vm_area_struct *); 34static int p9100_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
35static int p9100_ioctl(struct inode *, struct file *, unsigned int, 35static int p9100_ioctl(struct fb_info *, unsigned int, unsigned long);
36 unsigned long, struct fb_info *);
37 36
38/* 37/*
39 * Frame buffer operations 38 * Frame buffer operations
@@ -232,8 +231,8 @@ static int p9100_mmap(struct fb_info *info, struct file *file, struct vm_area_st
232 vma); 231 vma);
233} 232}
234 233
235static int p9100_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 234static int p9100_ioctl(struct fb_info *info, unsigned int cmd,
236 unsigned long arg, struct fb_info *info) 235 unsigned long arg)
237{ 236{
238 struct p9100_par *par = (struct p9100_par *) info->par; 237 struct p9100_par *par = (struct p9100_par *) info->par;
239 238
diff --git a/drivers/video/pm3fb.c b/drivers/video/pm3fb.c
index 2e11b601c488..0e78ddc81583 100644
--- a/drivers/video/pm3fb.c
+++ b/drivers/video/pm3fb.c
@@ -657,9 +657,7 @@ static void pm3fb_set_disp(const void *par, struct display *disp,
657static void pm3fb_detect(void); 657static void pm3fb_detect(void);
658static int pm3fb_pan_display(const struct fb_var_screeninfo *var, 658static int pm3fb_pan_display(const struct fb_var_screeninfo *var,
659 struct fb_info_gen *info); 659 struct fb_info_gen *info);
660static int pm3fb_ioctl(struct inode *inode, struct file *file, 660static int pm3fb_ioctl(struct fb_info *info, u_int cmd, u_long arg);
661 u_int cmd, u_long arg, int con,
662 struct fb_info *info);
663 661
664 662
665/* the struct that hold them together */ 663/* the struct that hold them together */
@@ -3438,9 +3436,7 @@ static int pm3fb_pan_display(const struct fb_var_screeninfo *var,
3438 return 0; 3436 return 0;
3439} 3437}
3440 3438
3441static int pm3fb_ioctl(struct inode *inode, struct file *file, 3439static int pm3fb_ioctl(struct fb_info *info, u_int cmd, u_long arg)
3442 u_int cmd, u_long arg, int con,
3443 struct fb_info *info)
3444{ 3440{
3445 struct pm3fb_info *l_fb_info = (struct pm3fb_info *) info; 3441 struct pm3fb_info *l_fb_info = (struct pm3fb_info *) info;
3446 u32 cm, i; 3442 u32 cm, i;
diff --git a/drivers/video/pmag-aa-fb.c b/drivers/video/pmag-aa-fb.c
index 28d1fe5fe340..d92f352211ef 100644
--- a/drivers/video/pmag-aa-fb.c
+++ b/drivers/video/pmag-aa-fb.c
@@ -299,8 +299,7 @@ static int aafb_set_cmap(struct fb_cmap *cmap, int kspc, int con,
299 return -EINVAL; 299 return -EINVAL;
300} 300}
301 301
302static int aafb_ioctl(struct inode *inode, struct file *file, u32 cmd, 302static int aafb_ioctl(struct fb_info *info, u32 cmd, unsigned long arg)
303 unsigned long arg, int con, struct fb_info *info)
304{ 303{
305 /* TODO: Not yet implemented */ 304 /* TODO: Not yet implemented */
306 return -ENOIOCTLCMD; 305 return -ENOIOCTLCMD;
diff --git a/drivers/video/radeonfb.c b/drivers/video/radeonfb.c
index 600318f708f2..db9fb9074dbc 100644
--- a/drivers/video/radeonfb.c
+++ b/drivers/video/radeonfb.c
@@ -1497,8 +1497,8 @@ static int radeonfb_pan_display (struct fb_var_screeninfo *var,
1497} 1497}
1498 1498
1499 1499
1500static int radeonfb_ioctl (struct inode *inode, struct file *file, unsigned int cmd, 1500static int radeonfb_ioctl (struct fb_info *info, unsigned int cmd,
1501 unsigned long arg, struct fb_info *info) 1501 unsigned long arg)
1502{ 1502{
1503 struct radeonfb_info *rinfo = (struct radeonfb_info *) info; 1503 struct radeonfb_info *rinfo = (struct radeonfb_info *) info;
1504 unsigned int tmp; 1504 unsigned int tmp;
diff --git a/drivers/video/sis/sis_main.c b/drivers/video/sis/sis_main.c
index dea1a46c67c4..8adf5bf91eee 100644
--- a/drivers/video/sis/sis_main.c
+++ b/drivers/video/sis/sis_main.c
@@ -1743,13 +1743,14 @@ sisfb_blank(int blank, struct fb_info *info)
1743 1743
1744/* ----------- FBDev related routines for all series ---------- */ 1744/* ----------- FBDev related routines for all series ---------- */
1745 1745
1746static int 1746#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
1747sisfb_ioctl(struct inode *inode, struct file *file, 1747static int sisfb_ioctl(struct fb_info *info, unsigned int cmd,
1748 unsigned int cmd, unsigned long arg, 1748 unsigned long arg)
1749#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) 1749#else
1750 int con, 1750static int sisfb_ioctl(struct inode *inode, struct file *file,
1751 unsigned int cmd, unsigned long arg,
1752 struct fb_info *info)
1751#endif 1753#endif
1752 struct fb_info *info)
1753{ 1754{
1754 struct sis_video_info *ivideo = (struct sis_video_info *)info->par; 1755 struct sis_video_info *ivideo = (struct sis_video_info *)info->par;
1755 struct sis_memreq sismemreq; 1756 struct sis_memreq sismemreq;
@@ -1924,19 +1925,6 @@ sisfb_ioctl(struct inode *inode, struct file *file,
1924 return 0; 1925 return 0;
1925} 1926}
1926 1927
1927#ifdef SIS_NEW_CONFIG_COMPAT
1928static long
1929sisfb_compat_ioctl(struct file *f, unsigned int cmd, unsigned long arg, struct fb_info *info)
1930{
1931 int ret;
1932
1933 lock_kernel();
1934 ret = sisfb_ioctl(NULL, f, cmd, arg, info);
1935 unlock_kernel();
1936 return ret;
1937}
1938#endif
1939
1940static int 1928static int
1941sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct fb_info *info) 1929sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct fb_info *info)
1942{ 1930{
@@ -2007,7 +1995,7 @@ static struct fb_ops sisfb_ops = {
2007#endif 1995#endif
2008 .fb_sync = fbcon_sis_sync, 1996 .fb_sync = fbcon_sis_sync,
2009#ifdef SIS_NEW_CONFIG_COMPAT 1997#ifdef SIS_NEW_CONFIG_COMPAT
2010 .fb_compat_ioctl= sisfb_compat_ioctl, 1998 .fb_compat_ioctl= sisfb_ioctl,
2011#endif 1999#endif
2012 .fb_ioctl = sisfb_ioctl 2000 .fb_ioctl = sisfb_ioctl
2013}; 2001};
diff --git a/drivers/video/sis/sis_main.h b/drivers/video/sis/sis_main.h
index 445bcbba03ae..70b6df371b8e 100644
--- a/drivers/video/sis/sis_main.h
+++ b/drivers/video/sis/sis_main.h
@@ -727,9 +727,14 @@ static int sisfb_ioctl(struct inode *inode, struct file *file,
727#endif 727#endif
728 728
729#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) 729#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
730#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
731static int sisfb_ioctl(struct fb_info *info, unsigned int cmd,
732 unsigned long arg);
733#else
730static int sisfb_ioctl(struct inode *inode, struct file *file, 734static int sisfb_ioctl(struct inode *inode, struct file *file,
731 unsigned int cmd, unsigned long arg, 735 unsigned int cmd, unsigned long arg,
732 struct fb_info *info); 736 struct fb_info *info);
737#endif
733static int sisfb_set_par(struct fb_info *info); 738static int sisfb_set_par(struct fb_info *info);
734static int sisfb_blank(int blank, 739static int sisfb_blank(int blank,
735 struct fb_info *info); 740 struct fb_info *info);
diff --git a/drivers/video/sstfb.c b/drivers/video/sstfb.c
index 8a5ce210bb27..99921df35474 100644
--- a/drivers/video/sstfb.c
+++ b/drivers/video/sstfb.c
@@ -771,8 +771,7 @@ static int sstfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
771 return 0; 771 return 0;
772} 772}
773 773
774static int sstfb_ioctl(struct inode *inode, struct file *file, 774static int sstfb_ioctl(struct fb_info *info, u_int cmd, u_long arg)
775 u_int cmd, u_long arg, struct fb_info *info )
776{ 775{
777 struct sstfb_par *par = info->par; 776 struct sstfb_par *par = info->par;
778 struct pci_dev *sst_dev = par->dev; 777 struct pci_dev *sst_dev = par->dev;
diff --git a/drivers/video/tcx.c b/drivers/video/tcx.c
index 2b27b4474001..cb940771ec58 100644
--- a/drivers/video/tcx.c
+++ b/drivers/video/tcx.c
@@ -34,8 +34,7 @@ static int tcx_setcolreg(unsigned, unsigned, unsigned, unsigned,
34static int tcx_blank(int, struct fb_info *); 34static int tcx_blank(int, struct fb_info *);
35 35
36static int tcx_mmap(struct fb_info *, struct file *, struct vm_area_struct *); 36static int tcx_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
37static int tcx_ioctl(struct inode *, struct file *, unsigned int, 37static int tcx_ioctl(struct fb_info *, unsigned int, unsigned long);
38 unsigned long, struct fb_info *);
39static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *); 38static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *);
40 39
41/* 40/*
@@ -312,8 +311,8 @@ static int tcx_mmap(struct fb_info *info, struct file *file, struct vm_area_stru
312 vma); 311 vma);
313} 312}
314 313
315static int tcx_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 314static int tcx_ioctl(struct fb_info *info, unsigned int cmd,
316 unsigned long arg, struct fb_info *info) 315 unsigned long arg)
317{ 316{
318 struct tcx_par *par = (struct tcx_par *) info->par; 317 struct tcx_par *par = (struct tcx_par *) info->par;
319 318
diff --git a/include/linux/fb.h b/include/linux/fb.h
index a973be2cfe61..6da8a80a2662 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -608,12 +608,12 @@ struct fb_ops {
608 int (*fb_sync)(struct fb_info *info); 608 int (*fb_sync)(struct fb_info *info);
609 609
610 /* perform fb specific ioctl (optional) */ 610 /* perform fb specific ioctl (optional) */
611 int (*fb_ioctl)(struct inode *inode, struct file *file, unsigned int cmd, 611 int (*fb_ioctl)(struct fb_info *info, unsigned int cmd,
612 unsigned long arg, struct fb_info *info); 612 unsigned long arg);
613 613
614 /* Handle 32bit compat ioctl (optional) */ 614 /* Handle 32bit compat ioctl (optional) */
615 long (*fb_compat_ioctl)(struct file *f, unsigned cmd, unsigned long arg, 615 int (*fb_compat_ioctl)(struct fb_info *info, unsigned cmd,
616 struct fb_info *info); 616 unsigned long arg);
617 617
618 /* perform fb specific mmap */ 618 /* perform fb specific mmap */
619 int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma); 619 int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma);