V4L/DVB (6161): cx23885-dvb.c doesnt need to include dvb-pll.h
[safe/jmp/linux-2.6] / drivers / media / video / meye.c
index 595a3ea..7533fc2 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/pci.h>
-#include <linux/sched.h>
 #include <linux/init.h>
 #include <linux/videodev.h>
+#include <media/v4l2-common.h>
 #include <asm/uaccess.h>
 #include <asm/io.h>
 #include <linux/delay.h>
@@ -786,7 +785,7 @@ static void mchip_cont_compression_start(void)
 /* Interrupt handling                                                       */
 /****************************************************************************/
 
-static irqreturn_t meye_irq(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t meye_irq(int irq, void *dev_id)
 {
        u32 v;
        int reqnr;
@@ -923,16 +922,16 @@ static int meye_do_ioctl(struct inode *inode, struct file *file,
                struct video_picture *p = arg;
                if (p->depth != 16)
                        return -EINVAL;
-               if (p->palette != VIDEO_PALETTE_YUV422)
+               if (p->palette != VIDEO_PALETTE_YUV422 && p->palette != VIDEO_PALETTE_YUYV)
                        return -EINVAL;
                mutex_lock(&meye.lock);
-               sonypi_camera_command(SONYPI_COMMAND_SETCAMERABRIGHTNESS,
+               sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERABRIGHTNESS,
                                      p->brightness >> 10);
-               sonypi_camera_command(SONYPI_COMMAND_SETCAMERAHUE,
+               sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERAHUE,
                                      p->hue >> 10);
-               sonypi_camera_command(SONYPI_COMMAND_SETCAMERACOLOR,
+               sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERACOLOR,
                                      p->colour >> 10);
-               sonypi_camera_command(SONYPI_COMMAND_SETCAMERACONTRAST,
+               sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERACONTRAST,
                                      p->contrast >> 10);
                meye.picture = *p;
                mutex_unlock(&meye.lock);
@@ -978,7 +977,7 @@ static int meye_do_ioctl(struct inode *inode, struct file *file,
 
                if (vm->frame >= gbuffers || vm->frame < 0)
                        return -EINVAL;
-               if (vm->format != VIDEO_PALETTE_YUV422)
+               if (vm->format != VIDEO_PALETTE_YUV422 && vm->format != VIDEO_PALETTE_YUYV)
                        return -EINVAL;
                if (vm->height * vm->width * 2 > gbufsize)
                        return -EINVAL;
@@ -1044,11 +1043,11 @@ static int meye_do_ioctl(struct inode *inode, struct file *file,
                    meye.params.quality != jp->quality)
                        mchip_hic_stop();       /* need restart */
                meye.params = *jp;
-               sonypi_camera_command(SONYPI_COMMAND_SETCAMERASHARPNESS,
+               sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERASHARPNESS,
                                      meye.params.sharpness);
-               sonypi_camera_command(SONYPI_COMMAND_SETCAMERAAGC,
+               sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERAAGC,
                                      meye.params.agc);
-               sonypi_camera_command(SONYPI_COMMAND_SETCAMERAPICTURE,
+               sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERAPICTURE,
                                      meye.params.picture);
                mutex_unlock(&meye.lock);
                break;
@@ -1288,38 +1287,38 @@ static int meye_do_ioctl(struct inode *inode, struct file *file,
                mutex_lock(&meye.lock);
                switch (c->id) {
                case V4L2_CID_BRIGHTNESS:
-                       sonypi_camera_command(
-                               SONYPI_COMMAND_SETCAMERABRIGHTNESS, c->value);
+                       sony_pic_camera_command(
+                               SONY_PIC_COMMAND_SETCAMERABRIGHTNESS, c->value);
                        meye.picture.brightness = c->value << 10;
                        break;
                case V4L2_CID_HUE:
-                       sonypi_camera_command(
-                               SONYPI_COMMAND_SETCAMERAHUE, c->value);
+                       sony_pic_camera_command(
+                               SONY_PIC_COMMAND_SETCAMERAHUE, c->value);
                        meye.picture.hue = c->value << 10;
                        break;
                case V4L2_CID_CONTRAST:
-                       sonypi_camera_command(
-                               SONYPI_COMMAND_SETCAMERACONTRAST, c->value);
+                       sony_pic_camera_command(
+                               SONY_PIC_COMMAND_SETCAMERACONTRAST, c->value);
                        meye.picture.contrast = c->value << 10;
                        break;
                case V4L2_CID_SATURATION:
-                       sonypi_camera_command(
-                               SONYPI_COMMAND_SETCAMERACOLOR, c->value);
+                       sony_pic_camera_command(
+                               SONY_PIC_COMMAND_SETCAMERACOLOR, c->value);
                        meye.picture.colour = c->value << 10;
                        break;
                case V4L2_CID_AGC:
-                       sonypi_camera_command(
-                               SONYPI_COMMAND_SETCAMERAAGC, c->value);
+                       sony_pic_camera_command(
+                               SONY_PIC_COMMAND_SETCAMERAAGC, c->value);
                        meye.params.agc = c->value;
                        break;
                case V4L2_CID_SHARPNESS:
-                       sonypi_camera_command(
-                               SONYPI_COMMAND_SETCAMERASHARPNESS, c->value);
+                       sony_pic_camera_command(
+                               SONY_PIC_COMMAND_SETCAMERASHARPNESS, c->value);
                        meye.params.sharpness = c->value;
                        break;
                case V4L2_CID_PICTURE:
-                       sonypi_camera_command(
-                               SONYPI_COMMAND_SETCAMERAPICTURE, c->value);
+                       sony_pic_camera_command(
+                               SONY_PIC_COMMAND_SETCAMERAPICTURE, c->value);
                        meye.params.picture = c->value;
                        break;
                case V4L2_CID_JPEGQUAL:
@@ -1748,7 +1747,7 @@ static int meye_mmap(struct file *file, struct vm_area_struct *vma)
        return 0;
 }
 
-static struct file_operations meye_fops = {
+static const struct file_operations meye_fops = {
        .owner          = THIS_MODULE,
        .open           = meye_open,
        .release        = meye_release,
@@ -1810,7 +1809,6 @@ static int __devinit meye_probe(struct pci_dev *pcidev,
 {
        int ret = -EBUSY;
        unsigned long mchip_adr;
-       u8 revision;
 
        if (meye.mchip_dev != NULL) {
                printk(KERN_ERR "meye: only one device allowed!\n");
@@ -1849,7 +1847,7 @@ static int __devinit meye_probe(struct pci_dev *pcidev,
        memcpy(meye.video_dev, &meye_template, sizeof(meye_template));
        meye.video_dev->dev = &meye.mchip_dev->dev;
 
-       if ((ret = sonypi_camera_command(SONYPI_COMMAND_SETCAMERA, 1))) {
+       if ((ret = sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERA, 1))) {
                printk(KERN_ERR "meye: unable to power on the camera\n");
                printk(KERN_ERR "meye: did you enable the camera in "
                                "sonypi using the module options ?\n");
@@ -1881,12 +1879,11 @@ static int __devinit meye_probe(struct pci_dev *pcidev,
 
        meye.mchip_irq = pcidev->irq;
        if (request_irq(meye.mchip_irq, meye_irq,
-                       SA_INTERRUPT | SA_SHIRQ, "meye", meye_irq)) {
+                       IRQF_DISABLED | IRQF_SHARED, "meye", meye_irq)) {
                printk(KERN_ERR "meye: request_irq failed\n");
                goto outreqirq;
        }
 
-       pci_read_config_byte(meye.mchip_dev, PCI_REVISION_ID, &revision);
        pci_write_config_byte(meye.mchip_dev, PCI_CACHE_LINE_SIZE, 8);
        pci_write_config_byte(meye.mchip_dev, PCI_LATENCY_TIMER, 64);
 
@@ -1929,18 +1926,18 @@ static int __devinit meye_probe(struct pci_dev *pcidev,
        meye.params.picture = 0;
        meye.params.framerate = 0;
 
-       sonypi_camera_command(SONYPI_COMMAND_SETCAMERABRIGHTNESS, 32);
-       sonypi_camera_command(SONYPI_COMMAND_SETCAMERAHUE, 32);
-       sonypi_camera_command(SONYPI_COMMAND_SETCAMERACOLOR, 32);
-       sonypi_camera_command(SONYPI_COMMAND_SETCAMERACONTRAST, 32);
-       sonypi_camera_command(SONYPI_COMMAND_SETCAMERASHARPNESS, 32);
-       sonypi_camera_command(SONYPI_COMMAND_SETCAMERAPICTURE, 0);
-       sonypi_camera_command(SONYPI_COMMAND_SETCAMERAAGC, 48);
+       sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERABRIGHTNESS, 32);
+       sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERAHUE, 32);
+       sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERACOLOR, 32);
+       sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERACONTRAST, 32);
+       sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERASHARPNESS, 32);
+       sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERAPICTURE, 0);
+       sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERAAGC, 48);
 
        printk(KERN_INFO "meye: Motion Eye Camera Driver v%s.\n",
               MEYE_DRIVER_VERSION);
        printk(KERN_INFO "meye: mchip KL5A72002 rev. %d, base %lx, irq %d\n",
-              revision, mchip_adr, meye.mchip_irq);
+              meye.mchip_dev->revision, mchip_adr, meye.mchip_irq);
 
        return 0;
 
@@ -1954,7 +1951,7 @@ outremap:
 outregions:
        pci_disable_device(meye.mchip_dev);
 outenabledev:
-       sonypi_camera_command(SONYPI_COMMAND_SETCAMERA, 0);
+       sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERA, 0);
 outsonypienable:
        kfifo_free(meye.doneq);
 outkfifoalloc2:
@@ -1987,7 +1984,7 @@ static void __devexit meye_remove(struct pci_dev *pcidev)
 
        pci_disable_device(meye.mchip_dev);
 
-       sonypi_camera_command(SONYPI_COMMAND_SETCAMERA, 0);
+       sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERA, 0);
 
        kfifo_free(meye.doneq);
        kfifo_free(meye.grabq);