Mailing List archive

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

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



Antonio Mancuso wrote:

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


Thanks for your fast reply, is there any eta for the patch?
I'd like to offer my help if you need testers for the patch :)




Home | Main Index | Thread Index