Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1571720c5ecfb9b5f27aff0678e3bef0cb1821ca
Commit:     1571720c5ecfb9b5f27aff0678e3bef0cb1821ca
Parent:     23154f2f3b8c3c7c58548c518f28195b0d0a6c64
Author:     Mauro Carvalho Chehab <[EMAIL PROTECTED]>
AuthorDate: Sat Jan 20 13:59:29 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Wed Feb 21 13:34:45 2007 -0200

    V4L/DVB (5106): Do some cleanups at cx88-blackbird
    
    Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/video/cx88/cx88-blackbird.c |   69 ++++++++++++-----------------
 1 files changed, 29 insertions(+), 40 deletions(-)

diff --git a/drivers/media/video/cx88/cx88-blackbird.c 
b/drivers/media/video/cx88/cx88-blackbird.c
index 0ba6ef3..54380dd 100644
--- a/drivers/media/video/cx88/cx88-blackbird.c
+++ b/drivers/media/video/cx88/cx88-blackbird.c
@@ -956,12 +956,31 @@ static int mpeg_do_ioctl(struct inode *inode, struct file 
*file,
        }
        case VIDIOC_S_FREQUENCY:
        {
+               struct v4l2_frequency *f = arg;
+
                blackbird_api_cmd(fh->dev, CX2341X_ENC_STOP_CAPTURE, 3, 0,
                                  BLACKBIRD_END_NOW,
                                  BLACKBIRD_MPEG_CAPTURE,
                                  BLACKBIRD_RAW_BITS_NONE);
 
-               cx88_do_ioctl(inode, file, 0, dev->core, cmd, arg, 
cx88_ioctl_hook);
+               if (UNSET == core->tuner_type)
+                       return -EINVAL;
+               if (f->tuner != 0)
+                       return -EINVAL;
+               if (0 == radio && f->type != V4L2_TUNER_ANALOG_TV)
+                       return -EINVAL;
+               if (1 == radio && f->type != V4L2_TUNER_RADIO)
+                       return -EINVAL;
+               mutex_lock(&core->lock);
+               core->freq = f->frequency;
+               cx88_newstation(core);
+               cx88_call_i2c_clients(core,VIDIOC_S_FREQUENCY,f);
+
+               /* When changing channels it is required to reset TVAUDIO */
+               msleep (10);
+               cx88_set_tvaudio(core);
+
+               mutex_unlock(&core->lock);
 
                blackbird_initialize_codec(dev);
                cx88_set_scale(dev->core, dev->width, dev->height,
@@ -985,11 +1004,17 @@ static int mpeg_do_ioctl(struct inode *inode, struct 
file *file,
                return blackbird_querymenu(dev, arg);
        case VIDIOC_QUERYCTRL:
        {
-               struct v4l2_queryctrl *c = arg;
+               struct v4l2_queryctrl *qctrl = arg;
 
-               if (blackbird_queryctrl(dev, c) == 0)
+               if (blackbird_queryctrl(dev, qctrl) == 0)
                        return 0;
-               return cx88_do_ioctl(inode, file, 0, dev->core, cmd, arg, 
mpeg_do_ioctl);
+
+               struct v4l2_queryctrl *qctrl = arg;
+
+               qctrl->id = v4l2_ctrl_next(ctrl_classes, qctrl->id);
+                       if (unlikely(qctrl->id == 0))
+                               return -EINVAL;
+               return cx8800_ctrl_query(qctrl);
        }
 
        default:
@@ -1164,42 +1189,6 @@ int cx88_do_ioctl(struct inode *inode, struct file 
*file, int radio,
                return 0;
        }
 
-
-       /* --- controls ---------------------------------------------- */
-       case VIDIOC_QUERYCTRL:
-       {
-               struct v4l2_queryctrl *qctrl = arg;
-
-               qctrl->id = v4l2_ctrl_next(ctrl_classes, qctrl->id);
-                       if (unlikely(qctrl->id == 0))
-                               return -EINVAL;
-               return cx8800_ctrl_query(qctrl);
-       }
-       /* --- tuner ioctls ------------------------------------------ */
-       case VIDIOC_S_FREQUENCY:
-       {
-               struct v4l2_frequency *f = arg;
-
-               if (UNSET == core->tuner_type)
-                       return -EINVAL;
-               if (f->tuner != 0)
-                       return -EINVAL;
-               if (0 == radio && f->type != V4L2_TUNER_ANALOG_TV)
-                       return -EINVAL;
-               if (1 == radio && f->type != V4L2_TUNER_RADIO)
-                       return -EINVAL;
-               mutex_lock(&core->lock);
-               core->freq = f->frequency;
-               cx88_newstation(core);
-               cx88_call_i2c_clients(core,VIDIOC_S_FREQUENCY,f);
-
-               /* When changing channels it is required to reset TVAUDIO */
-               msleep (10);
-               cx88_set_tvaudio(core);
-
-               mutex_unlock(&core->lock);
-               return 0;
-       }
 #ifdef CONFIG_VIDEO_ADV_DEBUG
        /* ioctls to allow direct acces to the cx2388x registers */
        case VIDIOC_INT_G_REGISTER:
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to