[media] gspca_xirlink_cit: Grab backlight compensation control while streaming
authorHans de Goede <hdegoede@redhat.com>
Sat, 7 Jul 2012 19:47:35 +0000 (16:47 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 30 Jul 2012 21:41:53 +0000 (18:41 -0300)
As it cannot be changed while streaming.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/gspca/xirlink_cit.c

index 42d51dadb46b53f2e1d0bbc2b0c02a2bc3e93bd5..13b8d395d21072040c089f13a41090f117d8e55f 100644 (file)
@@ -1914,9 +1914,10 @@ static int cit_start_model2(struct gspca_dev *gspca_dev)
                break;
        }
 
-       /* FIXME this cannot be changed while streaming, so we
-          should report a grabbed flag for this control. */
        cit_model2_Packet1(gspca_dev, 0x0028, v4l2_ctrl_g_ctrl(sd->lighting));
+       /* model2 cannot change the backlight compensation while streaming */
+       v4l2_ctrl_grab(sd->lighting, true);
+
        /* color balance rg2 */
        cit_model2_Packet1(gspca_dev, 0x001e, 0x002f);
        /* saturation */
@@ -2715,6 +2716,8 @@ static void sd_stop0(struct gspca_dev *gspca_dev)
                cit_write_reg(gspca_dev, 0x81, 0x0100); /* LED Off */
                break;
        case CIT_MODEL2:
+               v4l2_ctrl_grab(sd->lighting, false);
+               /* Fall through! */
        case CIT_MODEL4:
                cit_model2_Packet1(gspca_dev, 0x0030, 0x0004);