[linux-dvb] [EXPERIMENTAL] cx88+xc3028 - tests are required - was: Re: Wh en xc3028/xc2028 will be supported?

Mauro Carvalho Chehab mchehab at infradead.org
Fri Feb 22 13:13:14 CET 2008


On Thu, 21 Feb 2008 20:38:09 -0500
Michael Krufky <mkrufky at linuxtv.org> wrote:

> Mauro Carvalho Chehab wrote:
> >>> It is not that simple. Steven patch works for DTV on PCI Nano; Christopher
> >>> patches for some other DiVCO boards (DTV also); my port of Markus patch
> >>>       
> >> for
> >>     
> >>> other boards (tested by Dâniel Fraga - Analog TV).
> >>>   
> >>>       
> >> What does one board have to do with another?  Just because these boards 
> >> all use xceive tuners does not mean that they should be grouped together.
> >>     
> >
> > No, but we have patches for all of them.
> >
> >   
> >> Because the user has the ability to load cx8800 without cx88-dvb, and 
> >> likewise, the user has the ability to load cx88-dvb without cx8800, the 
> >> attach call must be fully qualified such that the other side of the 
> >> driver is not required to be loaded in order for the tuner to work.
> >>     
> >
> > If you take a look at the code, you'll see that all code is at cx88xx. This
> > module is loaded by cx8800, if you're using analog, or by cx8802, if you're
> > using cx88-dvb or cx88-blackbird.
> >
> > The code initializes xc3028 before tuner attach.
> >
> >   
> >> In the case of FusionHDTV5 pci nano, there will never be an attach call 
> >> from the analog side of the driver, since the tuner is hidden behind the 
> >> s5h1409's i2c gate, and analog mode is not supported with the current 
> >> driver.  If you set i2c_scan=1 on the PCI nano, the xceive tuner will 
> >> not even show up in the scan.
> >>     
> >
> > The proper fix is to open the i2c gate before loading tuner. This will allow
> > i2c_scan to work and both analog and digital modes will work. Btw, this
> > somewhat similar to what dvico_fusionhdtv_hybrid_init() does on cx88-cards.
> >
> > I've added a patch that should open the bridge for s5h1409. Please test. 
> Mauro,
> 
> It does not work.  See my prior email in this thread for the explanation.
> 
> [ 2912.355967] Linux video capture interface: v2.00
> [ 2912.373470] cx88/0: cx2388x v4l2 driver version 0.0.6 loaded
> [ 2912.373536] ACPI: PCI Interrupt 0000:02:07.0[A] -> GSI 19 (level,
> low) -> IRQ 17
> [ 2912.373601] cx88[0]: subsystem: 18ac:d530, board: DVICO HDTV5 PCI
> Nano [card=59,autodetected]
> [ 2912.373607] cx88[0]: TV tuner type 71, Radio tuner type -1
> [ 2912.555088] cx88[0]: Asking xc2028/3028 to load firmware xc3028-v27.fw
		          ^^^^
The above message were generated by cx88-cards. So, as I said before, this were
called _before_ running dvb_register, defined at cx88-dvb.

The issue is simple: the i2c gate code were wrong. So, xc3028 is not visible on
that point of the code. With this, analog support will never work. The proper
fix is to enable xc3028 before enabling i2c, meaning to correct the code at
cx88_pci_nano_init().

After re-visiting s5h1409 code, I noticed that I've used the wrong sequence for
the gate. The state should be i2c closed, for xc3028 to work. The following
patch should fix:

http://linuxtv.org/hg/~mchehab/cx88-xc2028/rev/871db4e0451c

Please test it, with i2c_scan=1, and post the results.

Cheers,
Mauro



More information about the linux-dvb mailing list