Mailing List archive

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

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



BStiddien@XentoniX.net wrote:
> Hello,
> I'm currently stuck on making the mt352 driver work with my TechniSat 
> AirStar2 DVB-T card.
> That card uses the mt352 chip with some Samsung tuner.
> I came across this forum when I googled a bit:
> http://pvrguide.no-ip.com/bbs-old/viewtopic.php?t=3413
> This TechniSat card uses the same tuner as mentioned in the post 
> (TDTC9251DH01C),
> I've went through the whole mt352 module and compared everything with 
> the design manual of the mt352 (e.g. I checked the whole 
> mt352_set_parameters function to check if the module provides correct 
> data with the tuner), but I simply don't know if those tuner-dependent 
> variables work with the Samsung tuner (don't think so after my 
> investigations).
> My question now is: Did you get any information (emailing Samsung or so) 
> for this tuner?
> 
> 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.
> 
> 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.
> 
> Looking forward to hear some comments/explanations or so.

No explanation from my side, but Antonio Mancuso sent me a patch
for the AirStar2 with TDTC9251DH01C frontend , but it was done against
the outdated linux_2_4 branch. He promised to update his patch once I
updated the drivers in the linux_2_4 branch. See also
http://www.linuxtv.org/mailinglists/linux-dvb/2004/04-2004/msg00080.html

Thanks for sharing your insights.

Johannes




Home | Main Index | Thread Index