[linux-dvb] Re: [BUG] FusionHDTV5 Lite

Mac Michaels wmichaels1 at earthlink.net
Mon Sep 12 20:12:15 CEST 2005


It looks to me like you somehow set pin 26 nRST (HW system 
reset) line on the lgdt3303 to 0 and disabled i2c for that 
chip. Normally you do not need to toggle pin 26. This pin 
is connected to a gpio line. 

When HW reset is set low the chip looses all the i2c 
register initialization as well as the ability to 
communicate with the i2c bus.

The software reset is different. I cleans up the signal 
decoding state, but does not affect the i2c register 
initializations or the the ability to use I2c. It is a bit 
controlled by i2c itself.

--Mac

On Sunday 11 September 2005 01:23 pm, Michael Krufky wrote:
> > Ken Harris wrote:
> >
> > I noticed Sunday that you're very close to getting ATSC
> > working.
> >
> > But I was disappointed that you recommend the
> > FusionHDTV5 Gold over the Lite ;).  When you finish the
> > Lite driver, I don't see any advantage to the Gold
> > card.  I know the Gold has 10 bit ADC on the analog
> > side, but I don't think that's worth the price
> > difference.  I guess there is more windoze software
> > with and Gold and the IR remote stuff.
>
> I got ATSC working now... And yes, I am starting to like
> the bttv-lite card better than the cx88-gold card now,
> but it is not because of the hardware -- it is because
> the software driver for bttv is much more mature than
> cx88, there are certain noise bugs (fixed) with the gold
> card that aren't present in the lite driver, and (analog
> mode) closed captions work very well on the lite board,
> but the cx88 driver doesnt yet support that.
>
> Anyway, now ATSC does work on the FusionHDTV5 Lite.  I
> have already applied my changes to CVS.  However, I have
> identified one major bug:
>
> I can only zap once.... During these tests, I am using
> azap and mplayer. I have noticed that after viewing a
> stream, if I kill azap and try to zap to another channel,
> mplayer receives no ts data, although azap reports status
> 1F.  The only way to restore functionality is to remove
> the module and re-insert it:
>
> modprobe -r dvb-bt8xx
> modprobe dvb-bt8xx
>
> After doing this, it works again.  This is also needed if
> I want to view ATSC stream after watching analog tv.  So,
> obviously there is a bug that I have to fix.
>
> In attempting to fix this, I have tried resetting the
> frontend, by calling lgdt330x_reset in
> tdvs_tua6034_pll_set, before dvb_pll_configure, but that
> only made matters worse.
>
> ...or maybe it's a problem with gpio again, which is why
> my original patch didnt work in the first place.  The
> behavior is pretty much the same.  With my original
> patch, I was able to lock, but got no ts data. With
> current cvs, I can lock, and get ts data.  (beautiful
> HDTV and DTV streams)  But If I stop azap and start it
> again, then I get no ts data again, just like with my
> original patch.
>
> But this error log makes me think otherwise:
> > bt878(0): irq FDSR risc_pc=2c4bd008
> > bt878(0): irq FDSR risc_pc=2c4bd008
> > bt878(0): irq SCERR risc_pc=2c4bd000
> > bt878(0): irq FDSR risc_pc=2c4bd008
> > [...]
> > bt878(0): irq FDSR risc_pc=2c4bd008
> > bt878(0): irq FDSR risc_pc=2c4bd008
> > bt878(0): IRQ lockup, cleared int mask
> > lgdt330x: i2c_write_demod_bytes error (addr 4c <- 14,
> > err = -121) bt878(0): irq SCERR risc_pc=2c4bd000
> > bt878(0): irq FDSR risc_pc=2c4bd008
> > lgdt330x: i2c_read_demod_bytes: addr 0x0e select 0x1a
> > error (ret == -121) lgdt330x: i2c_read_demod_bytes:
> > addr 0x0e select 0x8b error (ret == -121) lgdt330x:
> > i2c_write_demod_bytes error (addr 02 <- 00, err = -121)
> > lgdt330x: i2c_read_demod_bytes: addr 0x0e select 0x58
> > error (ret == -121) lgdt330x: i2c_write_demod_bytes
> > error (addr 02 <- 00, err = -121) lgdt330x:
> > i2c_read_demod_bytes: addr 0x0e select 0x58 error (ret
> > == -121) lgdt330x: i2c_read_demod_bytes: addr 0x0e
> > select 0x1a error (ret == -121) lgdt330x:
> > i2c_read_demod_bytes: addr 0x0e select 0x8b error (ret
> > == -121) lgdt330x: i2c_read_demod_bytes: addr 0x0e
> > select 0x58 error (ret == -121) lgdt330x:
> > i2c_write_demod_bytes error (addr 02 <- 00, err = -121)
> > lgdt330x: i2c_read_demod_bytes: addr 0x0e select 0x58
> > error (ret == -121) lgdt330x: i2c_write_demod_bytes
> > error (addr 02 <- 00, err = -121) lgdt330x:
> > i2c_read_demod_bytes: addr 0x0e select 0x58 error (ret
> > == -121) lgdt330x: i2c_read_demod_bytes: addr 0x0e
> > select 0x1a error (ret == -121) lgdt330x:
> > i2c_read_demod_bytes: addr 0x0e select 0x8b error (ret
> > == -121) lgdt330x: i2c_read_demod_bytes: addr 0x0e
> > select 0x58 error (ret == -121) lgdt330x:
> > i2c_write_demod_bytes error (addr 02 <- 00, err = -121)
> > lgdt330x: i2c_read_demod_bytes: addr 0x0e select 0x58
> > error (ret == -121) lgdt330x: i2c_write_demod_bytes
> > error (addr 02 <- 00, err = -121) [...]
> > lgdt330x: i2c_write_demod_bytes error (addr 02 <- 00,
> > err = -121) lgdt330x: i2c_read_demod_bytes: addr 0x0e
> > select 0x58 error (ret == -121) lgdt330x:
> > i2c_write_demod_bytes error (addr 02 <- 00, err = -121)
> > lgdt330x: i2c_read_demod_bytes: addr 0x0e select 0x58
> > error (ret == -121) lgdt330x: i2c_write_demod_bytes
> > error (addr 02 <- 00, err = -121) lgdt330x:
> > i2c_read_demod_bytes: addr 0x0e select 0x58 error (ret
> > == -121) lgdt330x: i2c_write_demod_bytes error (addr 02
> > <- 00, err = -121) lgdt330x: i2c_read_demod_bytes: addr
> > 0x0e select 0x58 error (ret == -121) lgdt330x:
> > i2c_write_demod_bytes error (addr 02 <- 00, err = -121)
> > lgdt330x: i2c_read_demod_bytes: addr 0x0e select 0x58
> > error (ret == -121) lgdt330x: i2c_write_demod_bytes
> > error (addr 02 <- 00, err = -121) lgdt330x:
> > i2c_read_demod_bytes: addr 0x0e select 0x58 error (ret
> > == -121) lgdt330x: i2c_write_demod_bytes error (addr 02
> > <- 00, err = -121) bt878(0): unloading
> > bt878_mem: 0xf8e6e000.
> > ACPI: PCI interrupt for device 0000:02:07.1 disabled
> > bttv0: unloading
> > Linux video capture interface: v1.00
> > bttv: driver version 0.9.16 loaded
> > bttv: using 8 buffers with 2080k (520 pages) each for
> > capture bttv: Bt8xx card found (0).
> > ACPI: PCI Interrupt 0000:02:07.0[A] -> GSI 19 (level,
> > low) -> IRQ 19 bttv0: Bt878 (rev 17) at 0000:02:07.0,
> > irq: 19, latency: 64, mmio: 0xec200000 bttv0: detected:
> > DViCO FusionHDTV 5 Lite [card=135], PCI subsystem ID is
> > 18ac:d500 bttv0: using: DViCO FusionHDTV 5 Lite
> > [card=135,autodetected] bttv0: gpio: en=00000000,
> > out=00000000 in=00ffffff [init] tuner 4-0061: chip
> > found @ 0xc2 (bt878 #0 [sw]) bttv0: using tuner=64
> > tuner 4-0061: type set to 64 (LG TDVS-H062F/TUA6034)
> > bttv0: registered device video0
> > bttv0: registered device vbi0
> > bttv0: add subdevice "dvb0"
> > bt878: AUDIO driver version 0.0.0 loaded
> > bt878: Bt878 AUDIO function found (0).
> > ACPI: PCI Interrupt 0000:02:07.1[A] -> GSI 19 (level,
> > low) -> IRQ 19 bt878(0): Bt878 (rev 17) at 02:07.1,
> > irq: 19, latency: 64, memory: 0xec201000 DVB:
> > registering new adapter (bttv0).
> > DVB: registering frontend 0 (LG Electronics LGDT3303
> > VSB/QAM Frontend)...
>
> I'm looking through code now... trying to figure out what
> the problem is.  Anybody have any ideas?



More information about the linux-dvb mailing list