]> git.karo-electronics.de Git - linux-beck.git/commitdiff
V4L/DVB (9095): gspca: Moves some sensor initialization to each sensor in m5602.
authorErik Andren <erik.andren@gmail.com>
Fri, 3 Oct 2008 18:29:02 +0000 (15:29 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sun, 12 Oct 2008 11:37:13 +0000 (09:37 -0200)
Signed-off-by: Erik Andren <erik.andren@gmail.com>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/gspca/m5602/m5602_bridge.h
drivers/media/video/gspca/m5602/m5602_core.c
drivers/media/video/gspca/m5602/m5602_mt9m111.c
drivers/media/video/gspca/m5602/m5602_ov9650.c
drivers/media/video/gspca/m5602/m5602_po1030.c
drivers/media/video/gspca/m5602/m5602_s5k4aa.c
drivers/media/video/gspca/m5602/m5602_s5k83a.c

index fcbc37bfea515926e0b76334e1ea537843de3c2c..18ca19a9436473f49e9cd0410282ca6bfe39429e 100644 (file)
@@ -152,6 +152,8 @@ struct sd {
        /* A pointer to the currently connected sensor */
        struct m5602_sensor *sensor;
 
+       struct sd_desc *desc;
+
        /* The current frame's id, used to detect frame boundaries */
        u8 frame_id;
 
index 58ebffdcaae5c30944f3765eaffea2dcd67914c4..475073501117200dac95efcda28837a2d78cf256 100644 (file)
@@ -108,44 +108,28 @@ int m5602_probe_sensor(struct sd *sd)
 {
        /* Try the po1030 */
        sd->sensor = &po1030;
-       if (!sd->sensor->probe(sd)) {
-               sd_desc.ctrls = po1030.ctrls;
-               sd_desc.nctrls = po1030.nctrls;
+       if (!sd->sensor->probe(sd))
                return 0;
-       }
 
        /* Try the mt9m111 sensor */
        sd->sensor = &mt9m111;
-       if (!sd->sensor->probe(sd)) {
-               sd_desc.ctrls = mt9m111.ctrls;
-               sd_desc.nctrls = mt9m111.nctrls;
+       if (!sd->sensor->probe(sd))
                return 0;
-       }
 
        /* Try the s5k4aa */
        sd->sensor = &s5k4aa;
-       if (!sd->sensor->probe(sd)) {
-               sd_desc.ctrls = s5k4aa.ctrls;
-               sd_desc.nctrls = s5k4aa.nctrls;
+       if (!sd->sensor->probe(sd))
                return 0;
-       }
 
        /* Try the ov9650 */
        sd->sensor = &ov9650;
-       if (!sd->sensor->probe(sd)) {
-               sd_desc.ctrls = ov9650.ctrls;
-               sd_desc.nctrls = ov9650.nctrls;
+       if (!sd->sensor->probe(sd))
                return 0;
-       }
 
        /* Try the s5k83a */
        sd->sensor = &s5k83a;
-       if (!sd->sensor->probe(sd)) {
-               sd_desc.ctrls = s5k83a.ctrls;
-               sd_desc.nctrls = s5k83a.nctrls;
+       if (!sd->sensor->probe(sd))
                return 0;
-       }
-
 
        /* More sensor probe function goes here */
        info("Failed to find a sensor");
@@ -246,8 +230,10 @@ int m5602_configure(struct gspca_dev *gspca_dev,
        int err;
 
        PDEBUG(DBG_GSPCA, "m5602_configure start");
+
        cam = &gspca_dev->cam;
        cam->epaddr = M5602_ISOC_ENDPOINT_ADDR;
+       sd->desc = &sd_desc;
 
        if (dump_bridge)
                m5602_dump_bridge(sd);
index 17f04dd5e1d3916661c7655516310e93b4a78231..ea2250217b07976e61e65e771456c96b03e98a3d 100644 (file)
@@ -62,6 +62,8 @@ int mt9m111_probe(struct sd *sd)
 sensor_found:
        sd->gspca_dev.cam.cam_mode = mt9m111.modes;
        sd->gspca_dev.cam.nmodes = mt9m111.nmodes;
+       sd->desc->ctrls = mt9m111.ctrls;
+       sd->desc->nctrls = mt9m111.nctrls;
        return 0;
 }
 
index 74c3ffec0ca25725b22eaaa18ff614fafe0f23c6..31c5896250e7cd16aafe004e2fa19e04652c340d 100644 (file)
@@ -132,6 +132,8 @@ int ov9650_probe(struct sd *sd)
 sensor_found:
        sd->gspca_dev.cam.cam_mode = ov9650.modes;
        sd->gspca_dev.cam.nmodes = ov9650.nmodes;
+       sd->desc->ctrls = ov9650.ctrls;
+       sd->desc->nctrls = ov9650.nctrls;
        return 0;
 }
 
index 14a8f929dd18026f6a52747d3f5a99347b15a42d..08c015bde115b5e1a6f51d4fa5cec1546416e0e9 100644 (file)
@@ -59,6 +59,8 @@ int po1030_probe(struct sd *sd)
 sensor_found:
        sd->gspca_dev.cam.cam_mode = po1030.modes;
        sd->gspca_dev.cam.nmodes = po1030.nmodes;
+       sd->desc->ctrls = po1030.ctrls;
+       sd->desc->nctrls = po1030.nctrls;
        return 0;
 }
 
index 3a2ae7a2e267f6124186d56af62d7e47ed4430cd..68202565325d675e4c2d0edc1662b59e4113ee7b 100644 (file)
@@ -78,6 +78,9 @@ int s5k4aa_probe(struct sd *sd)
 sensor_found:
        sd->gspca_dev.cam.cam_mode = s5k4aa.modes;
        sd->gspca_dev.cam.nmodes = s5k4aa.nmodes;
+       sd->desc->ctrls = s5k4aa.ctrls;
+       sd->desc->nctrls = s5k4aa.nctrls;
+
        return 0;
 }
 
index a4d6a816312029c3d9be4ad72549f3506a7f4e82..c1ff967b1c31bebcfea224907f9c380cf764f808 100644 (file)
@@ -63,6 +63,8 @@ int s5k83a_probe(struct sd *sd)
 sensor_found:
        sd->gspca_dev.cam.cam_mode = s5k83a.modes;
        sd->gspca_dev.cam.nmodes = s5k83a.nmodes;
+       sd->desc->ctrls = s5k83a.ctrls;
+       sd->desc->nctrls = s5k83a.nctrls;
        return 0;
 }