Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: mt352 and SkyStar2 (FlexCop IIB) oddities



Hello,

On Monday 28 June 2004 18:54, BStiddien@XentoniX.net wrote:
> Also, I found some oddities when looking at the mt352 driver.
> The TechniSat AirStar2 uses a FlexCop IIB b2c2 chip that works with the
> SkyStar2 module, but in the linuxtv cvs-tree the skystar2.c has the
> following check in master_xfer:
> if ((msgs[i].addr != 0x0e) && (msgs[i].addr != 0x0f) && (msgs[i].addr !=
> 0x68) && (msgs[i].addr != 0x61))
> but the I2C address of the mt352 is/defaults to 0x0f, which causes the
> whole module to fail transferring any I2C messages.
> Adding 0x0f to that if solves this error.
>

you are right. My guess is that the driver has been tested and working
but when the patch was provided, for some reasons this file wasn't patched.


> Another oddity - in master_xfer too - is the following:
> // read command
> if ((num == 2) && (msgs[0].flags == 0) && (msgs[1].flags == I2C_M_RD) &&
> (msgs[0].buf != NULL) && (msgs[1].buf != NULL))
>
> In mt352.c the read command is contains the following:
>       struct i2c_msg msg [] = { { .addr = I2C_MT352_ADDR,
>                                   .flags = I2C_M_NOSTART,
>                                   .buf = b0, .len = 1 },
>                                 { .addr = I2C_MT352_ADDR,
>                                   .flags = I2C_M_RD,
>                                   .buf = b1, .len = 1 } };
>
> as I2C_M_NOSTART isn't defined as 0 every read_register command will
> fail too.
> Changing I2C_M_NOSTART to 0 solves the problem and the module can read
> the mt352 registers successfully.
>

you right again.
since I don't have the Infineon tuner supported by the original driver
I cannot say this setting is wrong, but for Samsung tuner it is.

Some othe diffs are:

original 
static struct _tuner_info tuner_info [] = {
.fe_frequency_min = 174000000,
.fe_frequency_max = 862000000,
.....
....
}

my patch:
static struct _tuner_info tuner_info [] = {
.fe_frequency_min = 474000000,
.fe_frequency_max = 858000000,
.....
....
}

original:
 switch (op->constellation) {
                case QAM_16:
                        tps |= (1 << 14);
                        break;
                case QAM_64:
                        tps |= (2 << 14);
                        break;
                default:
                        ;
       }


my patch:
 switch (op->constellation) {
                case QAM_16:
                        tps |= (1 << 4);
                        break;
                case QAM_64:
                        tps |= (2 << 4);
                        break;
                default:
                        ;
       }
 
also trhe chrage pump and band select values are different.

You may see all the diffs as soon the patch it will be merged into the cvs.

Antonio

> Looking forward to hear some comments/explanations or so.
>
>   Greets
>       Björn "Keeper" Stiddien

-- 
--
  Esse-Gi s.r.l.
       c/o 
DigitalTelevision

Tel: (+39) 02/45468220




Home | Main Index | Thread Index