Mailing List archive

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

[linux-dvb] i2c problems with dvb-kernel



Hi,

there are some i2c problems with the dvb-kernel driver:

Jan 12 10:48:28 mozart kernel: budget: found budget card 'TT-Budget/WinTV-NOVA-CI PCI'.
Jan 12 10:49:19 mozart kernel: saa7146: saa7146_unregister_extension(): ext:c6823420
Jan 12 10:49:19 mozart kernel: saa7146: unregister extension 'budget dvb'.
Jan 12 10:49:19 mozart kernel: saa7146: saa7146_remove_one(): dev:c5f75d40
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_register_extension(): ext:c6823420
Jan 12 10:49:25 mozart kernel: saa7146: register extension 'budget dvb'.
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_init_one(): pci:c5f6e000
Jan 12 10:49:25 mozart kernel: saa7146: found saa7146 @ mem 0xc6820000 (revision 1, irq 11) (0x13c2,0x100f).
Jan 12 10:49:25 mozart kernel: DVB: registering new adapter (TT-Budget/WinTV-NOVA-CI PCI).
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_adapter_prepare(): bitrate: 0x00000100
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_reset(): busy_state detected.
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_reset(): error_state detected. status:0x00000142
Jan 12 10:49:25 mozart kernel: stv0299_readreg
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:1/2
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:2/2
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd000d1ec (status: 0x00000100), 0
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd000d1ec
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0x00000040 (status: 0x00000100), 0
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xa100d140
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_transfer(): transmission successful. (msg:2).
Jan 12 10:49:25 mozart kernel: uni0299_attach
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:1/2
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:2/2
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd005b5e8 (status: 0x00000100), 0
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd005b5e8
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xc10000d0 (status: 0x00000100), 0
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): error in address phase.
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:1/2
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:2/2
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_reset(): busy_state detected.
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_reset(): error_state detected. status:0x00000142
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd005b5e8 (status: 0x00000100), 0
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd005b5e8
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xc30000d0 (status: 0x00000100), 0
Jan 12 10:49:25 mozart kernel: saa7146: saa7146_i2c_writeout(): error in address phase.
Jan 12 10:49:25 mozart kernel: drivers/media/dvb/frontends/stv0299.c: unknown PLL synthesizer, please report to <linuxdvb@linuxtv.org>!!

The check for 0xa1 in register 0x00 (stv0299_attach) works but reading the status register of the PLL
(probe_tuner) does not.

After modifying saa7146_i2c.c

:15 2003
@@ -299,9 +299,11 @@
 			err = saa7146_i2c_writeout(dev, &buffer[i] );
 			if ( 0 != err) {
 				/* if address-error occured, donīt retry */
+				/*
 				if ( -EREMOTEIO == err ) {
 					goto out;
 				}
+				*/
 				DEB_I2C(("error while sending message(s). starting again.\n"));
 				break;
 			}

the frontend was detected:

Jan 12 10:53:11 mozart kernel: uni0299_attach
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:1/2
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:2/2
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd005b5e8 (status: 0x00000100), 0
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd005b5e8
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xc10000d0 (status: 0x00000100), 0
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_writeout(): error in address phase.
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_transfer(): error while sending message(s). starting again.
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_reset(): busy_state detected.
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_reset(): error_state detected. status:0x00000142
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd005b5e8 (status: 0x00000100), 0
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd005b5e8
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xc10000d0 (status: 0x00000100), 0
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xc188b5d0
Jan 12 10:53:11 mozart kernel: saa7146: saa7146_i2c_transfer(): transmission successful. (msg:2).
Jan 12 10:53:11 mozart kernel: drivers/media/dvb/frontends/stv0299.c: setup for tuner SU1278/SH
Jan 12 10:53:11 mozart kernel: DVB: registering frontend 0:0 (STV0299/TSA5059 based)...

but it didn't work. Writing to the tsa5059 is only successful after a second attempt.
I suppose that this has something to do with the i2c access through the i2c repeater.

Jan 12 10:54:30 mozart kernel: stv0299_writereg
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:1/1
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd04e00e4 (status: 0x00000100), 0
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd04e00e4
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): transmission successful. (msg:1).
Jan 12 10:54:30 mozart kernel: stv0299_writereg
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:1/1
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd04f00e4 (status: 0x00000100), 0
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd04f00e4
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): transmission successful. (msg:1).
Jan 12 10:54:30 mozart kernel: stv0299_writereg
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:1/1
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd00fd2e4 (status: 0x00000100), 0
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd00fd2e4
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): transmission successful. (msg:1).
Jan 12 10:54:30 mozart kernel: uni0299_ioctl
Jan 12 10:54:30 mozart kernel: uni0299_ioctl
Jan 12 10:54:30 mozart kernel: stv0299_set_voltage
Jan 12 10:54:30 mozart kernel: stv0299_readreg
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:1/2
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:2/2
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd00cd1ec (status: 0x00000100), 0
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd00cd1ec
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0x00000040 (status: 0x00000100), 0
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0x510cd140
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): transmission successful. (msg:2).
Jan 12 10:54:30 mozart kernel: stv0299_writereg
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:1/1
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd00c41e4 (status: 0x00000100), 0
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd00c41e4
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): transmission successful. (msg:1).
Jan 12 10:54:30 mozart kernel: uni0299_ioctl
Jan 12 10:54:30 mozart kernel: tsa5059_set_tv_freq
Jan 12 10:54:30 mozart kernel: tsa5059_write
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:1/2
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): msg:2/2
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd005b5e8 (status: 0x00000100), 0
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd005b5e8
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xc02060e8 (status: 0x00000100), 0
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): error in address phase.
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): error while sending message(s). starting again.
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_reset(): busy_state detected.
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_reset(): error_state detected. status:0x00000142
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xd005b5e8 (status: 0x00000100), 0
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xd005b5e8
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0xc02060e8 (status: 0x00000100), 0
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0xc02060e8
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): before: 0x84200090 (status: 0x00000100), 0
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_writeout(): after: 0x84206090
Jan 12 10:54:30 mozart kernel: saa7146: saa7146_i2c_transfer(): transmission successful. (msg:2).

Peter



-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index