[linux-dvb] Re: DViCo PCI Dual-T USB Problem (SOLVED)

Christopher Pascoe c.pascoe at itee.uq.edu.au
Fri Feb 3 16:21:52 CET 2006

> This is the device that Chris wrote the patch for.  He has tested the device,
> using cxusb_dee1601_demod_init .  Strange..... cxusb_mt352_demod_init is for
> the other two fusionhdtv dvb-t boxes, it probably needs this change as well,
> but I have no device to test with. (I wrote that patch, and it was tested on
> the list).  Since I copied this function from cx88-dvb.c , the
> mt352_demod_init functions there might need this as well.  Maybe Chris can
> tell us something - he wrote the mt352 stuff in cx88-dvb as well.....

Graham is actually only changing one bit - we do program that register in 
the "clock_config" write.  It depends on the particular hardware's 
configuration.  It decides whether the MT352 emits a serial stream (on one 
pin) or a parallel stream (on 8 pins).

> Would you test the above change on your device and let us know what happens?
> It looks like this change should be made across the board.  If this is needed
> everywhere, maybe we can centralize it for every implementation... What do you
> think?

All the hardware I have had access to and tested on has had a serial 
connection to the MT352 (bt8xx can only have a serial connection), and 
some cx88-based boards have had both parallel and serial - but the 
parallel interface is broken (one hardware revision of a cx88-based 
K-World board springs to mind).  If you change it for all cards, then you 
will induce other problems.

Patrick, this code was tested and I have been using the USB part of the 
DViCO Dual Digital board as my sole capture device for a month now.  It 
has been running with the MT352 in the serial mode - and have not 
experienced any of the problems Graham as had.

Nonetheless, I have now tested the Dual Digital board with the patch below 
(the CONFIG register immediately follows CLOCK_CTL, so we don't need a 
separate entry to write it), and confirmed that it also works in the 
parallel (0x28) mode for me.

I can only speculate that there may be a digital noise problem in Graham's 
computer that causes corruption when faced with the higher baud rate of 
the serial stream.  Because the USB part seems to work either way, using 
the parallel stream is a more (noise) resilient choice.

Graham, can you confirm that the patch below works for you?  If not, then 
the problem lies elsewhere - can you see if increasing the udelay from 200 
immediately after the clock_config write to a higher value makes any 
difference for you?  Note you actually have to cold reset the device for 
the initialisation code to be called, as the mt352 init code is called 
only once per hardware device (unless the device is powered down).


Index: cxusb.c
RCS file: /cvs/video4linux/v4l-dvb/linux/drivers/media/dvb/dvb-usb/cxusb.c,v
retrieving revision 1.22
diff -u -r1.22 cxusb.c
--- cxusb.c	22 Jan 2006 18:10:39 -0000	1.22
+++ cxusb.c	3 Feb 2006 15:05:45 -0000
@@ -234,7 +234,7 @@
 static int cxusb_dee1601_demod_init(struct dvb_frontend* fe)
-	static u8 clock_config []  = { CLOCK_CTL,  0x38, 0x38 };
+	static u8 clock_config []  = { CLOCK_CTL,  0x38, 0x28 };
 	static u8 reset []         = { RESET,      0x80 };
 	static u8 adc_ctl_1_cfg [] = { ADC_CTL_1,  0x40 };
 	static u8 agc_cfg []       = { AGC_TARGET, 0x28, 0x20 };

More information about the linux-dvb mailing list