]> Pileus Git - ~andy/linux/commitdiff
[media] mt2063: Print a message about the detected mt2063 type
authorMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 23 Jul 2011 00:24:33 +0000 (21:24 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 5 Jan 2012 00:49:00 +0000 (22:49 -0200)
This also helps to identify when a device is not initialized,
if the bridge doesn't return an error for a I2C failed transfer.

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

index db347d9e7d4577373d34303f9e7c5de95a0e9921..fdf605034ca6f08ddde967c72d3d7a9fef67b4d1 100644 (file)
@@ -1790,6 +1790,7 @@ static int mt2063_init(struct dvb_frontend *fe)
        struct mt2063_state *state = fe->tuner_priv;
        u8 all_resets = 0xF0;   /* reset/load bits */
        const u8 *def = NULL;
+       char *step;
        u32 FCRUN;
        s32 maxReads;
        u32 fcu_osc;
@@ -1807,10 +1808,24 @@ static int mt2063_init(struct dvb_frontend *fe)
        }
 
        /* Check the part/rev code */
-       if (((state->reg[MT2063_REG_PART_REV] != MT2063_B0)     /*  MT2063 B0  */
-           && (state->reg[MT2063_REG_PART_REV] != MT2063_B1)   /*  MT2063 B1  */
-           && (state->reg[MT2063_REG_PART_REV] != MT2063_B3))) /*  MT2063 B3  */
+       switch (state->reg[MT2063_REG_PART_REV]) {
+       case MT2063_B0:
+               step = "B0";
+               break;
+       case MT2063_B1:
+               step = "B1";
+               break;
+       case MT2063_B2:
+               step = "B2";
+               break;
+       case MT2063_B3:
+               step = "B3";
+               break;
+       default:
+               printk(KERN_ERR "mt2063: Unknown mt2063 device ID (0x%02x)\n",
+                      state->reg[MT2063_REG_PART_REV]);
                return -ENODEV; /*  Wrong tuner Part/Rev code */
+       }
 
        /*  Check the 2nd byte of the Part/Rev code from the tuner */
        status = mt2063_read(state, MT2063_REG_RSVD_3B,
@@ -1818,10 +1833,13 @@ 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 "Can't read mt2063 2nd part ID\n");
+               printk(KERN_ERR "mt2063: Unknown 2nd part ID\n");
                return -ENODEV; /*  Wrong tuner Part/Rev code */
        }
 
+       dprintk(1, "Discovered a mt2063 %s (2nd part number 0x%02x)\n",
+               step, state->reg[MT2063_REG_RSVD_3B]);
+
        /*  Reset the tuner  */
        status = mt2063_write(state, MT2063_REG_LO2CQ_3, &all_resets, 1);
        if (status < 0)