[media] tvp5150: get rid of KERN_CONT
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Thu, 20 Oct 2016 13:36:42 +0000 (11:36 -0200)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 18 Nov 2016 12:11:09 +0000 (10:11 -0200)
Unfortunately, KERN_CONT doesn't work with dev_foo(),
producing weird messages like:

tvp5150 6-005c: tvp5150: read 0xf6 = 0xff
ff

So, we need to get rid of it.

As we're always printing read/write in hexa when dumping
multiple register values, also remove the "0x" from the
read/write debug messages too.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/i2c/tvp5150.c

index d0dbdd7ea233d575db1a1f6586b7bc2797157941..6737685d5be57ab840d9691953fd993b7ed3188e 100644 (file)
@@ -102,20 +102,22 @@ static int tvp5150_write(struct v4l2_subdev *sd, unsigned char addr,
 static void dump_reg_range(struct v4l2_subdev *sd, char *s, u8 init,
                                const u8 end, int max_line)
 {
-       int i = 0;
+       u8 buf[16];
+       int i = 0, j, len;
 
-       while (init != (u8)(end + 1)) {
-               if ((i % max_line) == 0) {
-                       if (i > 0)
-                               printk("\n");
-                       printk("tvp5150: %s reg 0x%02x = ", s, init);
-               }
-               printk("%02x ", tvp5150_read(sd, init));
+       if (max_line > 16) {
+               dprintk0(sd->dev, "too much data to dump\n");
+               return;
+       }
+
+       for (i = init; i < end; i += max_line) {
+               len = (end - i > max_line) ? max_line : end - i;
+
+               for (j = 0; j < len; j++)
+                       buf[j] = tvp5150_read(sd, i + j);
 
-               init++;
-               i++;
+               dprintk0(sd->dev, "%s reg %02x = %*ph\n", s, i, len, buf);
        }
-       printk("\n");
 }
 
 static int tvp5150_log_status(struct v4l2_subdev *sd)