]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
V4L/DVB (11461): gspca - m5602-po1030: Probe read only register at probe time
authorErik Andr?n <erik.andren@gmail.com>
Thu, 8 Jan 2009 07:04:19 +0000 (04:04 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 16 Jun 2009 21:20:26 +0000 (18:20 -0300)
Currently, we're probing r/w registers at probe time.
This is potentially dangerous, probe some read only registers instead.

Signed-off-by: Erik Andr?n <erik.andren@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/gspca/m5602/m5602_po1030.c

index 0547841b2cb693287cf6bf0edd9a6c512a908553..122c777c71c521eeef2965862cd6ce44827d5ffe 100644 (file)
@@ -140,7 +140,7 @@ static void po1030_dump_registers(struct sd *sd);
 
 int po1030_probe(struct sd *sd)
 {
-       u8 prod_id = 0, ver_id = 0, i;
+       u8 dev_id_h = 0, dev_id_l = 0, i;
        s32 *sensor_settings;
 
        if (force_sensor) {
@@ -165,13 +165,13 @@ int po1030_probe(struct sd *sd)
                        m5602_write_bridge(sd, preinit_po1030[i][1], data);
        }
 
-       if (m5602_read_sensor(sd, 0x3, &prod_id, 1))
+       if (m5602_read_sensor(sd, PO1030_DEVID_H, &dev_id_h, 1))
                return -ENODEV;
 
-       if (m5602_read_sensor(sd, 0x4, &ver_id, 1))
+       if (m5602_read_sensor(sd, PO1030_DEVID_L, &dev_id_l, 1))
                return -ENODEV;
 
-       if ((prod_id == 0x02) && (ver_id == 0xef)) {
+       if ((dev_id_h == 0x10) && (dev_id_l == 0x30)) {
                info("Detected a po1030 sensor");
                goto sensor_found;
        }