The patch number 10232 was added via Mauro Carvalho Chehab <mche...@redhat.com>
to http://linuxtv.org/hg/v4l-dvb master development tree.

Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel

If anyone has any objections, please let us know by sending a message to:
        Linux Media Mailing List <linux-me...@vger.kernel.org>

------

From: Mauro Carvalho Chehab  <mche...@redhat.com>
merge:  http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-saa7134


Priority: normal

Signed-off-by: Mauro Carvalho Chehab <mche...@redhat.com>


---

 linux/drivers/media/video/ivtv/ivtv-driver.c |    4 +++-
 linux/drivers/media/video/v4l2-subdev.c      |    6 ++++++
 linux/include/media/v4l2-device.h            |    8 ++++----
 linux/include/media/v4l2-subdev.h            |    3 +++
 4 files changed, 16 insertions(+), 5 deletions(-)

diff -r b09b5128742f -r 1e1c3851abe8 
linux/drivers/media/video/ivtv/ivtv-driver.c
--- a/linux/drivers/media/video/ivtv/ivtv-driver.c      Mon Jan 12 22:50:52 
2009 -0200
+++ b/linux/drivers/media/video/ivtv/ivtv-driver.c      Wed Jan 14 01:46:23 
2009 -0200
@@ -953,8 +953,10 @@ static int __devinit ivtv_probe(struct p
        itv->instance = atomic_inc_return(&ivtv_instance) - 1;
 
        retval = v4l2_device_register(&dev->dev, &itv->device);
-       if (retval)
+       if (retval) {
+               kfree(itv);
                return retval;
+       }
        /* "ivtv + PCI ID" is a bit of a mouthful, so use
           "ivtv + instance" instead. */
        snprintf(itv->device.name, sizeof(itv->device.name),
diff -r b09b5128742f -r 1e1c3851abe8 linux/drivers/media/video/v4l2-subdev.c
--- a/linux/drivers/media/video/v4l2-subdev.c   Mon Jan 12 22:50:52 2009 -0200
+++ b/linux/drivers/media/video/v4l2-subdev.c   Wed Jan 14 01:46:23 2009 -0200
@@ -33,6 +33,12 @@ int v4l2_subdev_command(struct v4l2_subd
                return v4l2_subdev_call(sd, core, g_ctrl, arg);
        case VIDIOC_S_CTRL:
                return v4l2_subdev_call(sd, core, s_ctrl, arg);
+       case VIDIOC_G_EXT_CTRLS:
+               return v4l2_subdev_call(sd, core, g_ext_ctrls, arg);
+       case VIDIOC_S_EXT_CTRLS:
+               return v4l2_subdev_call(sd, core, s_ext_ctrls, arg);
+       case VIDIOC_TRY_EXT_CTRLS:
+               return v4l2_subdev_call(sd, core, try_ext_ctrls, arg);
        case VIDIOC_QUERYMENU:
                return v4l2_subdev_call(sd, core, queryctrl, arg);
        case VIDIOC_LOG_STATUS:
diff -r b09b5128742f -r 1e1c3851abe8 linux/include/media/v4l2-device.h
--- a/linux/include/media/v4l2-device.h Mon Jan 12 22:50:52 2009 -0200
+++ b/linux/include/media/v4l2-device.h Wed Jan 14 01:46:23 2009 -0200
@@ -94,16 +94,16 @@ void v4l2_device_unregister_subdev(struc
 /* Call the specified callback for all subdevs matching grp_id (if 0, then
    match them all). Ignore any errors. Note that you cannot add or delete
    a subdev while walking the subdevs list. */
-#define v4l2_device_call_all(dev, grp_id, o, f, args...)               \
+#define v4l2_device_call_all(dev, grpid, o, f, args...)                \
        __v4l2_device_call_subdevs(dev,                                 \
-                       !(grp_id) || sd->grp_id == (grp_id), o, f , ##args)
+                       !(grpid) || sd->grp_id == (grpid), o, f , ##args)
 
 /* Call the specified callback for all subdevs matching grp_id (if 0, then
    match them all). If the callback returns an error other than 0 or
    -ENOIOCTLCMD, then return with that error code. Note that you cannot
    add or delete a subdev while walking the subdevs list. */
-#define v4l2_device_call_until_err(dev, grp_id, o, f, args...)                 
\
+#define v4l2_device_call_until_err(dev, grpid, o, f, args...)          \
        __v4l2_device_call_subdevs_until_err(dev,                       \
-                      !(grp_id) || sd->grp_id == (grp_id), o, f , ##args)
+                      !(grpid) || sd->grp_id == (grpid), o, f , ##args)
 
 #endif
diff -r b09b5128742f -r 1e1c3851abe8 linux/include/media/v4l2-subdev.h
--- a/linux/include/media/v4l2-subdev.h Mon Jan 12 22:50:52 2009 -0200
+++ b/linux/include/media/v4l2-subdev.h Wed Jan 14 01:46:23 2009 -0200
@@ -78,6 +78,9 @@ struct v4l2_subdev_core_ops {
        int (*queryctrl)(struct v4l2_subdev *sd, struct v4l2_queryctrl *qc);
        int (*g_ctrl)(struct v4l2_subdev *sd, struct v4l2_control *ctrl);
        int (*s_ctrl)(struct v4l2_subdev *sd, struct v4l2_control *ctrl);
+       int (*g_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls 
*ctrls);
+       int (*s_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls 
*ctrls);
+       int (*try_ext_ctrls)(struct v4l2_subdev *sd, struct v4l2_ext_controls 
*ctrls);
        int (*querymenu)(struct v4l2_subdev *sd, struct v4l2_querymenu *qm);
        long (*ioctl)(struct v4l2_subdev *sd, unsigned int cmd, void *arg);
 #ifdef CONFIG_VIDEO_ADV_DEBUG


---

Patch is available at: 
http://linuxtv.org/hg/v4l-dvb/rev/1e1c3851abe80d5e527d445e6f065d592ba785f0

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to