Hi Hermann

> Hi,
> 
> Am Dienstag, den 30.03.2010, 16:02 +1000 schrieb Dmitri Belimov:
> > Hi
> > 
> > The hybrid tuner FMD1216MEX_MK3 after cold start has disabled IF.
> > This tuner has internal I2C switch. This switch switch I2C bus
> > between DVB-T and IF part. Default state is DVB-T. When module
> > saa7134 is load it can't find IF tda9887 and disable analog TV mode.
> > 
> > This patch set internal I2C switch of the tuner to IF by send
> > special value to the tuner as for receive analog TV from low band.
> > It can be usefule for other cards.
> > 
> > I didn't set configure a tuner by a tuner model because this tuner
> > can has different I2C address. May be we can do it later after
> > discuss for more robust support a tuners.
> 
> just as a reminder. It is the same for the FMD1216ME hybrid MK3.
> After every boot, analog mode fails with missing tda9887.
> 
> Currently, after tuner modules are not independent anymore, one has to
> reload the saa7134 driver once.
> 
> Relevant code in tuner.core.c.
> 
>       case TUNER_PHILIPS_FMD1216ME_MK3:
>               buffer[0] = 0x0b;
>               buffer[1] = 0xdc;
>               buffer[2] = 0x9c;
>               buffer[3] = 0x60;
>               i2c_master_send(c, buffer, 4);
>               mdelay(1);
>               buffer[2] = 0x86;
>               buffer[3] = 0x54;
>               i2c_master_send(c, buffer, 4);
>               if (!dvb_attach(simple_tuner_attach, &t->fe,
>                               t->i2c->adapter, t->i2c->addr,
> t->type)) goto attach_failed;
>               break;

That is good. I'll try add case TUNER_PHILIPS_FMD1216MEX_MK3 here and test.
This is much better.

With my best regards, Dmitry.

> Hermann
> 
> > diff -r 1ef0265456c8
> > linux/drivers/media/video/saa7134/saa7134-cards.c ---
> > a/linux/drivers/media/video/saa7134/saa7134-cards.c Fri Mar
> > 26 00:54:18 2010 -0300 +++
> > b/linux/drivers/media/video/saa7134/saa7134-cards.c Sun Mar
> > 28 08:21:10 2010 -0400 @@ -7450,6 +7450,21 @@ } break;
> >     }
> > +   case SAA7134_BOARD_BEHOLD_H6:
> > +   {
> > +           u8 data[] = { 0x09, 0x9f, 0x86, 0x11};
> > +           struct i2c_msg msg = {.addr = 0x61, .flags =
> > 0, .buf = data,
> > +                                                   .len =
> > sizeof(data)}; +
> > +           /* The tuner TUNER_PHILIPS_FMD1216MEX_MK3 after
> > hardware    */
> > +           /* start has disabled IF and enabled DVB-T. When
> > saa7134    */
> > +           /* scan I2C devices it not detect IF tda9887 and
> > can`t      */
> > +           /* watch TV without software reboot. For solve
> > this problem */
> > +           /* switch the tuner to analog TV mode
> > manually.             */
> > +           if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
> > +                           printk(KERN_WARNING
> > +                                 "%s: Unable to enable IF of
> > the tuner.\n",
> > +                                  dev->name);
> > +           break;
> > +   }
> >     } /* switch() */
> >  
> >     /* initialize tuner */
> > 
> > Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov
> > <[email protected]>
> > 
> > With my best regards, Dmitry.
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to