[media] tvp5150: device detection should be done only once
authorMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 22 Feb 2011 03:10:22 +0000 (00:10 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 21 Mar 2011 23:32:04 +0000 (20:32 -0300)
Having the device detection happening at reset is bad, as every time,
it will produce a message like:
tvp5150 2-005c: tvp5150am1 detected.

This only polutes the log and for an accidental kernel hacker, it looks
like a real problem. So, move those printk's to happen during device
probe.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/tvp5150.c

index 959d690363bb8c680baab7bae1df0b9d5c0f4261..e927d25e0d35b431a38140340cfcfac7dd57f572 100644 (file)
@@ -737,27 +737,6 @@ static int tvp5150_s_std(struct v4l2_subdev *sd, v4l2_std_id std)
 static int tvp5150_reset(struct v4l2_subdev *sd, u32 val)
 {
        struct tvp5150 *decoder = to_tvp5150(sd);
-       u8 msb_id, lsb_id, msb_rom, lsb_rom;
-
-       msb_id = tvp5150_read(sd, TVP5150_MSB_DEV_ID);
-       lsb_id = tvp5150_read(sd, TVP5150_LSB_DEV_ID);
-       msb_rom = tvp5150_read(sd, TVP5150_ROM_MAJOR_VER);
-       lsb_rom = tvp5150_read(sd, TVP5150_ROM_MINOR_VER);
-
-       if (msb_rom == 4 && lsb_rom == 0) { /* Is TVP5150AM1 */
-               v4l2_info(sd, "tvp%02x%02xam1 detected.\n", msb_id, lsb_id);
-
-               /* ITU-T BT.656.4 timing */
-               tvp5150_write(sd, TVP5150_REV_SELECT, 0);
-       } else {
-               if (msb_rom == 3 || lsb_rom == 0x21) { /* Is TVP5150A */
-                       v4l2_info(sd, "tvp%02x%02xa detected.\n", msb_id, lsb_id);
-               } else {
-                       v4l2_info(sd, "*** unknown tvp%02x%02x chip detected.\n",
-                                       msb_id, lsb_id);
-                       v4l2_info(sd, "*** Rom ver is %d.%d\n", msb_rom, lsb_rom);
-               }
-       }
 
        /* Initializes TVP5150 to its default values */
        tvp5150_write_inittab(sd, tvp5150_init_default);
@@ -977,6 +956,7 @@ static int tvp5150_probe(struct i2c_client *c,
 {
        struct tvp5150 *core;
        struct v4l2_subdev *sd;
+       u8 msb_id, lsb_id, msb_rom, lsb_rom;
 
        /* Check if the adapter supports the needed features */
        if (!i2c_check_functionality(c->adapter,
@@ -992,6 +972,26 @@ static int tvp5150_probe(struct i2c_client *c,
        v4l_info(c, "chip found @ 0x%02x (%s)\n",
                 c->addr << 1, c->adapter->name);
 
+       msb_id = tvp5150_read(sd, TVP5150_MSB_DEV_ID);
+       lsb_id = tvp5150_read(sd, TVP5150_LSB_DEV_ID);
+       msb_rom = tvp5150_read(sd, TVP5150_ROM_MAJOR_VER);
+       lsb_rom = tvp5150_read(sd, TVP5150_ROM_MINOR_VER);
+
+       if (msb_rom == 4 && lsb_rom == 0) { /* Is TVP5150AM1 */
+               v4l2_info(sd, "tvp%02x%02xam1 detected.\n", msb_id, lsb_id);
+
+               /* ITU-T BT.656.4 timing */
+               tvp5150_write(sd, TVP5150_REV_SELECT, 0);
+       } else {
+               if (msb_rom == 3 || lsb_rom == 0x21) { /* Is TVP5150A */
+                       v4l2_info(sd, "tvp%02x%02xa detected.\n", msb_id, lsb_id);
+               } else {
+                       v4l2_info(sd, "*** unknown tvp%02x%02x chip detected.\n",
+                                       msb_id, lsb_id);
+                       v4l2_info(sd, "*** Rom ver is %d.%d\n", msb_rom, lsb_rom);
+               }
+       }
+
        core->norm = V4L2_STD_ALL;      /* Default is autodetect */
        core->input = TVP5150_COMPOSITE1;
        core->enable = 1;