[media] mt2063: Fix i2c read message
authorMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 23 Jul 2011 12:48:08 +0000 (09:48 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 5 Jan 2012 00:49:01 +0000 (22:49 -0200)
While here, improve a few debug messages that helped to track the
issue and may be useful in the future.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/common/tuners/mt2063.c

index fdf605034ca6f08ddde967c72d3d7a9fef67b4d1..599f8644ef11ba6de50e3ccfa67702daff124449 100644 (file)
@@ -305,35 +305,40 @@ static u32 mt2063_read(struct mt2063_state *state,
        struct dvb_frontend *fe = state->frontend;
        u32 i = 0;
 
-       dprintk(2, "\n");
+       dprintk(2, "addr 0x%02x, cnt %d\n", subAddress, cnt);
 
        if (fe->ops.i2c_gate_ctrl)
                fe->ops.i2c_gate_ctrl(fe, 1);
 
        for (i = 0; i < cnt; i++) {
-               int ret;
                u8 b0[] = { subAddress + i };
                struct i2c_msg msg[] = {
                        {
                                .addr = state->config->tuner_address,
-                               .flags = I2C_M_RD,
+                               .flags = 0,
                                .buf = b0,
                                .len = 1
                        }, {
                                .addr = state->config->tuner_address,
                                .flags = I2C_M_RD,
-                               .buf = pData + 1,
+                               .buf = pData + i,
                                .len = 1
                        }
                };
 
-               ret = i2c_transfer(state->i2c, msg, 2);
-               if (ret < 0)
+               status = i2c_transfer(state->i2c, msg, 2);
+               dprintk(2, "addr 0x%02x, ret = %d, val = 0x%02x\n",
+                          subAddress + i, status, *(pData + i));
+               if (status < 0)
                        break;
        }
        if (fe->ops.i2c_gate_ctrl)
                fe->ops.i2c_gate_ctrl(fe, 0);
 
+       if (status < 0)
+               printk(KERN_ERR "Can't read from address 0x%02x,\n",
+                      subAddress + i);
+
        return status;
 }
 
@@ -1801,7 +1806,8 @@ static int mt2063_init(struct dvb_frontend *fe)
        state->rcvr_mode = MT2063_CABLE_QAM;
 
        /*  Read the Part/Rev code from the tuner */
-       status = mt2063_read(state, MT2063_REG_PART_REV, state->reg, 1);
+       status = mt2063_read(state, MT2063_REG_PART_REV,
+                            &state->reg[MT2063_REG_PART_REV], 1);
        if (status < 0) {
                printk(KERN_ERR "Can't read mt2063 part ID\n");
                return status;
@@ -1833,7 +1839,9 @@ static int mt2063_init(struct dvb_frontend *fe)
 
        /* b7 != 0 ==> NOT MT2063 */
        if (status < 0 || ((state->reg[MT2063_REG_RSVD_3B] & 0x80) != 0x00)) {
-               printk(KERN_ERR "mt2063: Unknown 2nd part ID\n");
+               printk(KERN_ERR "mt2063: Unknown part ID (0x%02x%02x)\n",
+                      state->reg[MT2063_REG_PART_REV],
+                      state->reg[MT2063_REG_RSVD_3B]);
                return -ENODEV; /*  Wrong tuner Part/Rev code */
        }
 
This page took 0.027438 seconds and 5 git commands to generate.