]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
[media] gspca: always call v4l2_ctrl_handler_setup after start
authorHans Verkuil <hans.verkuil@cisco.com>
Fri, 15 Jun 2012 08:24:26 +0000 (05:24 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 30 Jul 2012 21:37:25 +0000 (18:37 -0300)
This ensures the controls are setup correctly.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 files changed:
drivers/media/video/gspca/gspca.c
drivers/media/video/gspca/nw80x.c
drivers/media/video/gspca/ov519.c
drivers/media/video/gspca/ov534_9.c
drivers/media/video/gspca/se401.c
drivers/media/video/gspca/spca1528.c
drivers/media/video/gspca/spca501.c
drivers/media/video/gspca/spca505.c
drivers/media/video/gspca/spca561.c
drivers/media/video/gspca/stk014.c
drivers/media/video/gspca/sunplus.c
drivers/media/video/gspca/tv8532.c
drivers/media/video/gspca/vc032x.c
drivers/media/video/gspca/xirlink_cit.c

index b4fd548ada76e8b94908102ac2e19f2f0f5672d2..7bb23a91cb05a1f92a76bbeb100f48911512b964 100644 (file)
@@ -930,6 +930,7 @@ static int gspca_init_transfer(struct gspca_dev *gspca_dev)
                        goto out;
                }
                gspca_dev->streaming = 1;
+               v4l2_ctrl_handler_setup(gspca_dev->vdev.ctrl_handler);
 
                /* some bulk transfers are started by the subdriver */
                if (gspca_dev->cam.bulk && gspca_dev->cam.bulk_nurbs == 0)
@@ -2428,7 +2429,6 @@ int gspca_resume(struct usb_interface *intf)
         */
        streaming = gspca_dev->streaming;
        gspca_dev->streaming = 0;
-       v4l2_ctrl_handler_setup(gspca_dev->vdev.ctrl_handler);
        if (streaming)
                ret = gspca_init_transfer(gspca_dev);
        mutex_unlock(&gspca_dev->usb_lock);
index 74a05bab9f60efd5bc2d6b08552be4d82994d29d..b8ab612243de91e74bb2423febeb1d329d741afd 100644 (file)
@@ -1878,7 +1878,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
                break;
        }
 
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
        sd->exp_too_high_cnt = 0;
        sd->exp_too_low_cnt = 0;
        return gspca_dev->usb_err;
index 35fa141945c05bb71eefcceaa05038eada623d49..3ae5e35dce40f8256224231d31ea7064d6d91435 100644 (file)
@@ -4209,8 +4209,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
 
        set_ov_sensor_window(sd);
 
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
-
        /* Force clear snapshot state in case the snapshot button was
           pressed while we weren't streaming */
        sd->snapshot_needs_reset = 1;
index e934393cd8069e7ed531f8d8281fcee299aab3a5..06274871b7834f4e7bd743b446b53d22f2f0cd0b 100644 (file)
@@ -1235,10 +1235,9 @@ static int sd_start(struct gspca_dev *gspca_dev)
 
        if (sd->sensor == SENSOR_OV971x)
                return gspca_dev->usb_err;
-       else if (sd->sensor == SENSOR_OV562x) {
-               v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
+       if (sd->sensor == SENSOR_OV562x)
                return gspca_dev->usb_err;
-       }
+
        switch (gspca_dev->curr_mode) {
        case QVGA_MODE:                 /* 320x240 */
                sccb_w_array(gspca_dev, ov965x_start_1_vga,
@@ -1283,8 +1282,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
                break;
        }
 
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
-
        reg_w(gspca_dev, 0xe0, 0x00);
        reg_w(gspca_dev, 0xe0, 0x00);
        set_led(gspca_dev, 1);
index 17e7f89a1122c6d16ddca3ace08c55c69cb2fd7a..0b019ad72fbf0dc984a79ad35c94e76133b13460 100644 (file)
@@ -373,7 +373,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
        }
        se401_set_feature(gspca_dev, SE401_OPERATINGMODE, mode);
 
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
        se401_set_feature(gspca_dev, HV7131_REG_ARLV, sd->resetlevel);
 
        sd->packet_read = 0;
index 315a5bf2034cfe39522ca9ab81923c70d054f161..fa2075a7e4863d428bc8c354af1089c687a590a5 100644 (file)
@@ -261,10 +261,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
        /* the JPEG quality shall be 85% */
        jpeg_set_qual(sd->jpeg_hdr, 85);
 
-       /* set the controls */
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
-
-       msleep(5);
        reg_r(gspca_dev, 0x00, 0x2520, 1);
        msleep(8);
 
index 8e2136a2b923218391d0f75ea541b3e97640838a..6d4debdd5b5ced711934fbdb3940e1d6b182e020 100644 (file)
@@ -1910,11 +1910,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
        }
        reg_write(dev, SPCA501_REG_CTLRL, 0x01, 0x02);
 
-       /* HDG atleast the Intel CreateAndShare needs to have one of its
-        * brightness / contrast / color set otherwise it assumes what seems
-        * max contrast. Note that strange enough setting any of these is
-        * enough to fix the max contrast problem, to be sure we set all 3 */
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
        return 0;
 }
 
index a1def079a0c9dda59d875efcd7b27133915c38c6..fea17a8217f39dbb929f52c5af8ce86d45310cd5 100644 (file)
@@ -679,13 +679,9 @@ static int sd_start(struct gspca_dev *gspca_dev)
        reg_write(dev, SPCA50X_REG_COMPRESS, 0x06, mode_tb[mode][1]);
        reg_write(dev, SPCA50X_REG_COMPRESS, 0x07, mode_tb[mode][2]);
 
-       ret = reg_write(dev, SPCA50X_REG_USB,
+       return reg_write(dev, SPCA50X_REG_USB,
                         SPCA50X_USB_CTRL,
                         SPCA50X_CUSB_ENABLE);
-
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
-
-       return ret;
 }
 
 static void sd_stopN(struct gspca_dev *gspca_dev)
index 168be551576e5bfdcf647b9a49233b8a2a02246b..00f4de7c6e84d4b01b6feee29a3f7a2040fa593e 100644 (file)
@@ -592,7 +592,6 @@ static int sd_start_12a(struct gspca_dev *gspca_dev)
        memcpy(gspca_dev->usb_buf, Reg8391, 8);
        reg_w_buf(gspca_dev, 0x8391, 8);
        reg_w_buf(gspca_dev, 0x8390, 8);
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
 
        /* Led ON (bit 3 -> 0 */
        reg_w_val(gspca_dev->dev, 0x8114, 0x00);
index 247365c2a519727873bb8039bfa1091408aca4cd..18674570f13a29a47ae457588a3e904a8ecbcdd3 100644 (file)
@@ -287,7 +287,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
        reg_w(gspca_dev, 0x0640, 0);
        reg_w(gspca_dev, 0x0650, 0);
        reg_w(gspca_dev, 0x0660, 0);
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
        set_par(gspca_dev, 0x09800000);         /* Red ? */
        set_par(gspca_dev, 0x0a800000);         /* Green ? */
        set_par(gspca_dev, 0x0b800000);         /* Blue ? */
index 530652dcbfb28dac68e3ca0bbd1593ee9047ab63..bd3d5a615384832790349fefe9fdd57c6438aa4a 100644 (file)
@@ -558,8 +558,6 @@ static void init_ctl_reg(struct gspca_dev *gspca_dev)
        struct sd *sd = (struct sd *) gspca_dev;
        int pollreg = 1;
 
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
-
        switch (sd->bridge) {
        case BRIDGE_SPCA504:
        case BRIDGE_SPCA504C:
index 8baa03f7c60434e669e0ba67d2f4d6ed7cde038b..ef39981bfb69c9759407f09f8ec66086379dd687 100644 (file)
@@ -242,8 +242,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
 
        tv_8532_setReg(gspca_dev);
 
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
-
        /************************************************/
        reg_w1(gspca_dev, R31_UPD, 0x01);       /* update registers */
        msleep(200);
index ee1a1c558e48bc717d26e2eada3fbb69cd8bf1a6..54a6cf92b745adee8773c8919882517095d13795 100644 (file)
@@ -3543,7 +3543,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
 /*     case SENSOR_POxxxx: */
                usb_exchange(gspca_dev, poxxxx_init_common);
                setgamma(gspca_dev);
-               v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
                usb_exchange(gspca_dev, poxxxx_init_start_3);
                if (mode)
                        init = poxxxx_initQVGA;
@@ -3576,7 +3575,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
                        break;
                }
                msleep(100);
-               v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
        }
        switch (sd->sensor) {
        case SENSOR_OV7670:
index 4fe2ab1c17d5c0ad4d52b41bcd80bb9691dd06ad..e074718658d8f8a0de4f173906208c5b602df705 100644 (file)
@@ -2620,8 +2620,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
                break;
        }
 
-       v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
-
        /* Program max isoc packet size */
        cit_write_reg(gspca_dev, packet_size >> 8, 0x0106);
        cit_write_reg(gspca_dev, packet_size & 0xff, 0x0107);