]> err.no Git - linux-2.6/blobdiff - drivers/media/video/w9968cf.c
Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight
[linux-2.6] / drivers / media / video / w9968cf.c
index ddce2fb83424ccf152094da0aeb8aa3ea670d126..5a1b5f5a7d463e11cab98c6197b38646e18101f7 100644 (file)
@@ -42,7 +42,6 @@
 #include <asm/page.h>
 #include <asm/uaccess.h>
 #include <linux/page-flags.h>
-#include <linux/moduleparam.h>
 
 #include "w9968cf.h"
 #include "w9968cf_decoder.h"
@@ -399,7 +398,7 @@ MODULE_PARM_DESC(specific_debug,
  ****************************************************************************/
 
 /* Video4linux interface */
-static struct file_operations w9968cf_fops;
+static const struct file_operations w9968cf_fops;
 static int w9968cf_open(struct inode*, struct file*);
 static int w9968cf_release(struct inode*, struct file*);
 static int w9968cf_mmap(struct file*, struct vm_area_struct*);
@@ -1573,6 +1572,7 @@ static int w9968cf_i2c_init(struct w9968cf_device* cam)
 
        memcpy(&cam->i2c_adapter, &adap, sizeof(struct i2c_adapter));
        strcpy(cam->i2c_adapter.name, "w9968cf");
+       cam->i2c_adapter.dev.parent = &cam->usbdev->dev;
        i2c_set_adapdata(&cam->i2c_adapter, cam);
 
        DBG(6, "Registering I2C adapter with kernel...")
@@ -1827,8 +1827,8 @@ w9968cf_set_window(struct w9968cf_device* cam, struct video_window win)
        int err = 0;
 
        /* Work around to avoid FP arithmetics */
-       #define __SC(x) ((x) << 10)
-       #define __UNSC(x) ((x) >> 10)
+       #define SC(x) ((x) << 10)
+       #define UNSC(x) ((x) >> 10)
 
        /* Make sure we are using a supported resolution */
        if ((err = w9968cf_adjust_window_size(cam, (u16*)&win.width,
@@ -1836,15 +1836,15 @@ w9968cf_set_window(struct w9968cf_device* cam, struct video_window win)
                goto error;
 
        /* Scaling factors */
-       fw = __SC(win.width) / cam->maxwidth;
-       fh = __SC(win.height) / cam->maxheight;
+       fw = SC(win.width) / cam->maxwidth;
+       fh = SC(win.height) / cam->maxheight;
 
        /* Set up the width and height values used by the chip */
        if ((win.width > cam->maxwidth) || (win.height > cam->maxheight)) {
                cam->vpp_flag |= VPP_UPSCALE;
                /* Calculate largest w,h mantaining the same w/h ratio */
-               w = (fw >= fh) ? cam->maxwidth : __SC(win.width)/fh;
-               h = (fw >= fh) ? __SC(win.height)/fw : cam->maxheight;
+               w = (fw >= fh) ? cam->maxwidth : SC(win.width)/fh;
+               h = (fw >= fh) ? SC(win.height)/fw : cam->maxheight;
                if (w < cam->minwidth) /* just in case */
                        w = cam->minwidth;
                if (h < cam->minheight) /* just in case */
@@ -1861,8 +1861,8 @@ w9968cf_set_window(struct w9968cf_device* cam, struct video_window win)
 
        /* Calculate cropped area manteining the right w/h ratio */
        if (cam->largeview && !(cam->vpp_flag & VPP_UPSCALE)) {
-               cw = (fw >= fh) ? cam->maxwidth : __SC(win.width)/fh;
-               ch = (fw >= fh) ? __SC(win.height)/fw : cam->maxheight;
+               cw = (fw >= fh) ? cam->maxwidth : SC(win.width)/fh;
+               ch = (fw >= fh) ? SC(win.height)/fw : cam->maxheight;
        } else {
                cw = w;
                ch = h;
@@ -1901,8 +1901,8 @@ w9968cf_set_window(struct w9968cf_device* cam, struct video_window win)
        /* We have to scale win.x and win.y offsets */
        if ( (cam->largeview && !(cam->vpp_flag & VPP_UPSCALE))
             || (cam->vpp_flag & VPP_UPSCALE) ) {
-               ax = __SC(win.x)/fw;
-               ay = __SC(win.y)/fh;
+               ax = SC(win.x)/fw;
+               ay = SC(win.y)/fh;
        } else {
                ax = win.x;
                ay = win.y;
@@ -1917,8 +1917,8 @@ w9968cf_set_window(struct w9968cf_device* cam, struct video_window win)
        /* Adjust win.x, win.y */
        if ( (cam->largeview && !(cam->vpp_flag & VPP_UPSCALE))
             || (cam->vpp_flag & VPP_UPSCALE) ) {
-               win.x = __UNSC(ax*fw);
-               win.y = __UNSC(ay*fh);
+               win.x = UNSC(ax*fw);
+               win.y = UNSC(ay*fh);
        } else {
                win.x = ax;
                win.y = ay;
@@ -2679,7 +2679,7 @@ static int w9968cf_open(struct inode* inode, struct file* filp)
 
        /* This the only safe way to prevent race conditions with disconnect */
        if (!down_read_trylock(&w9968cf_disconnect))
-               return -ERESTARTSYS;
+               return -EAGAIN;
 
        cam = (struct w9968cf_device*)video_get_drvdata(video_devdata(filp));
 
@@ -3466,7 +3466,7 @@ ioctl_fail:
 }
 
 
-static struct file_operations w9968cf_fops = {
+static const struct file_operations w9968cf_fops = {
        .owner =   THIS_MODULE,
        .open =    w9968cf_open,
        .release = w9968cf_release,