[linux-dvb] unstable tda1004x firmware loading

Francesco ml at punkrockworld.it
Wed Jun 18 19:01:11 CEST 2008


Hartmut Hackmann ha scritto:
 > Hi, Francesco
 >
 > Francesco schrieb:
 >>> Looks like there currently are many people having problems. Allow
 >>>  me to give some background info:
 >>>
 >>> Something that is not in the datasheet: The tda10046
 >>> automatically tries to load the firmware from an eeprom at the
 >>> second I2C port. This does *not* need to be triggered by the
 >>> driver. The timeout seems to be very long. In the past, this
 >>> happened: If the driver tries to access the tuner while the
 >>> download is not finished, there is a collision on the I2C bus.
 >>> This can corrupt both, the firmware and the tuner initialization.
 >>>  In the case of the tda8275a, the result can be that it turns off
 >>>  its 16MHz reference output which is used for the tda10046 as
 >>> well. This blocks the i2c bus and the only way to recover is a
 >>> complete power cycle. This is why i made the driver try to get
 >>> the firmware as soon as possible. Otherwise it is not possible to
 >>>  access the tuner - at least on some boards.
 >>>
 >>> Few days ago, a user reported that the firmware download seems to
 >>>  be retriggered in some cases. This might occur if something
 >>> opens the dvb device while the download is not finished. If it is
 >>>  the case, we need to lock the download. Another dangerous thing
 >>> is the address mapping of the firmware eeprom: it is controlled
 >>> by a GPIO pin. If this pin changes while the download is running,
 >>>  we are lost.
 >>>
 >>> Best regards Hartmut
 >>
 >> I've found a little workaround (not a solution, but...) for this
 >> problem for my Asus7131H...
 >>
 >> Simply adding "saa7134-dvb" to /etc/modules, make a successful
 >> firmware loading on boot. (My system is an Ubuntu 7.10)
 >>
 >>
 > Could you post the relevant sections of the kernel log for both
 > cases, successful and unsuccessful firmware load? Please extract the
 >  entire board initialization. Also: do you run a client / server
 > based application (with early start of the server)?
 >
 > Hartmut
 >
 >


These are extract of boot log for "saa" and "tda" text... later I'll send
all system logs in both cases.


Relevant row for "tda" part seems is:
"[   54.297295] tda1004x: setting up plls for 48MHz sampling clock"
the second one, wich prevent on my opinion, to load firmware correctly.



tda / before:
[   35.412245] tda829x 0-004b: setting tuner address to 61
[   35.492199] tda829x 0-004b: type set to tda8290+75a
[   39.621806] tda1004x: setting up plls for 48MHz sampling clock
[   41.912490] tda1004x: found firmware revision 0 -- invalid
[   41.912495] tda1004x: trying to boot from eeprom
[   44.283116] tda1004x: found firmware revision 0 -- invalid
[   44.283122] tda1004x: waiting for firmware upload...
[   54.297295] tda1004x: setting up plls for 48MHz sampling clock
[   56.583964] tda1004x: found firmware revision 0 -- invalid
[   56.583968] tda1004x: trying to boot from eeprom
[   58.950592] tda1004x: found firmware revision 0 -- invalid
[   58.950597] tda1004x: waiting for firmware upload...
[   71.443661] tda1004x: found firmware revision 0 -- invalid
[   71.443665] tda1004x: firmware upload failed
[   73.543492] tda1004x: found firmware revision 80 -- invalid
[   73.543496] tda1004x: firmware upload failed

tda / after:
[   35.101428] tda829x 0-004b: setting tuner address to 61
[   35.185381] tda829x 0-004b: type set to tda8290+75a
[   39.295055] tda1004x: setting up plls for 48MHz sampling clock
[   41.581753] tda1004x: found firmware revision 0 -- invalid
[   41.581756] tda1004x: trying to boot from eeprom
[   43.948412] tda1004x: found firmware revision 0 -- invalid
[   43.948415] tda1004x: waiting for firmware upload...
[   56.405359] tda1004x: found firmware revision 20 -- ok
[   71.360886] tda1004x: setting up plls for 48MHz sampling clock
[   71.664713] tda1004x: found firmware revision 20 -- ok



saa / before:
[   34.948753] saa7130/34: v4l2 driver version 0.2.14 loaded
[   34.973691] saa7133[0]: found at 0000:04:01.0, rev: 209, irq: 17, latency: 64, mmio: 0xcfdef800
[   34.973701] saa7133[0]: subsystem: 1043:4876, board: ASUSTeK P7131 Hybrid [card=112,autodetected]
[   34.973707] saa7133[0]: board init: gpio is 0
[   34.973808] input: saa7134 IR (ASUSTeK P7131 Hybri as /class/input/input5
[   35.124417] saa7133[0]: i2c eeprom 00: 43 10 76 48 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
[   35.124426] saa7133[0]: i2c eeprom 10: ff ff ff 0f ff 20 ff ff ff ff ff ff ff ff ff ff
[   35.124433] saa7133[0]: i2c eeprom 20: 01 40 01 02 03 01 01 03 08 ff 00 d5 ff ff ff ff
[   35.124440] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.124448] saa7133[0]: i2c eeprom 40: ff 21 00 c2 96 10 03 32 55 50 ff ff ff ff ff ff
[   35.124455] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.124462] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.124469] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.124476] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.124483] saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.124490] saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.124498] saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.124505] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.124512] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.124519] saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.124526] saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.324335] tuner' 0-004b: chip found @ 0x96 (saa7133[0])
[   39.346316] saa7133[0]: registered device video0 [v4l2]
[   39.346442] saa7133[0]: registered device vbi0
[   39.346568] saa7133[0]: registered device radio0
[   39.424512] saa7134 ALSA driver for DMA sound loaded
[   39.425969] saa7133[0]/alsa: saa7133[0] at 0xcfdef800 irq 17 registered as card -2
[   39.549898] DVB: registering new adapter (saa7133[0])


saa / after:
[   34.525512] saa7130/34: v4l2 driver version 0.2.14 loaded
[   34.734591] saa7133[0]: found at 0000:04:01.0, rev: 209, irq: 17, latency: 64, mmio: 0xcfdef800
[   34.734598] saa7133[0]: subsystem: 1043:4876, board: ASUSTeK P7131 Hybrid [card=112,autodetected]
[   34.734608] saa7133[0]: board init: gpio is 0
[   34.734694] input: saa7134 IR (ASUSTeK P7131 Hybri as /class/input/input5
[   34.885561] saa7133[0]: i2c eeprom 00: 43 10 76 48 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
[   34.885575] saa7133[0]: i2c eeprom 10: ff ff ff 0f ff 20 ff ff ff ff ff ff ff ff ff ff
[   34.885587] saa7133[0]: i2c eeprom 20: 01 40 01 02 03 01 01 03 08 ff 00 d5 ff ff ff ff
[   34.885599] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   34.885611] saa7133[0]: i2c eeprom 40: ff 21 00 c2 96 10 03 32 55 50 ff ff ff ff ff ff
[   34.885622] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   34.885634] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   34.885646] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   34.885658] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   34.885669] saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   34.885681] saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   34.885693] saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   34.885706] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   34.885713] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   34.885720] saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   34.885727] saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   35.013516] tuner' 0-004b: chip found @ 0x96 (saa7133[0])
[   39.043450] saa7133[0]: registered device video0 [v4l2]
[   39.043466] saa7133[0]: registered device vbi0
[   39.043482] saa7133[0]: registered device radio0
[   39.043525] saa7133[0]: dsp access error
[   39.043526] saa7133[0]: dsp access error
[   39.117617] saa7134 ALSA driver for DMA sound loaded
[   39.117641] saa7133[0]/alsa: saa7133[0] at 0xcfdef800 irq 17 registered as card -2
[   39.215137] DVB: registering new adapter (saa7133[0])



Francesco Ferrario
- Chimera project -
- www.chimeratv.it -





More information about the linux-dvb mailing list