Andrew de Quincey wrote:
Hmmm - don't remember exactly, but I think this comment has it's root in the initial disassembly analysis for the driver. Either we disable it at all or make this command dependent of the USB box type and vendor/device id. What do you think? Has anybody a USB-Nova-S/T handy so that he can test the effect of disabling this statement?On Tuesday 27 January 2004 15:11, Holger Waechtler wrote:Andrew de Quincey wrote:Now: the problem. The ALPS TDLB7 and ALPS TDMB7 both do i2c transfers of 0 bytes to detect if the devices are present, so the above cannot catch the error. The solution would appear to be to fix those tuners so they do a transfer of 1 byte (e.g. read a register) from the frontend device so the USB i2c error detection code can work. This is whats I'm looking into now... if anyone has any suggestions, please let me know.yes - replacing the ping by the register read transfer and checking the error code should work.Question: in the initialisation code, it sets the i2c speed by writing to i2c address 0x10 (0x8 << 1). On the v2.1, thats the TDA10046 demodulator.where do you see this?
dvb-ttusb-budget.c/ttusb_init_controller():
/* i2c write read: 5 bytes, addr 0x10, 0x02 bytes write, 1 bytes read. */
u8 b3[] =
{ 0xaa, ++ttusb->c, 0x31, 5, 0x10, 0x02, 0x01, 0x00, 0x1e };
u8 b4[] =
{ 0x55, ttusb->c, 0x31, 4, 0x10, 0x02, 0x01, 0x00, 0x1e };
...
/* set i2c bit rate */
if ((err = ttusb_cmd(ttusb, b2, sizeof(b2), 0)))
return err;
if ((err = ttusb_cmd(ttusb, b3, sizeof(b3), 1)))
return err;
err = ttusb_result(ttusb, b4, sizeof(b4));
b3 is setup for an i2c transfer to device 0x10.