[linux-dvb] xc3028 config issue. Re: Why I need to choose better Subject: headers [was: Re: Why (etc.)]

Paul Chubb paulc at singlespoon.org.au
Sun Sep 21 23:46:34 CEST 2008

       I have integrated all the advice give with some success. 
Australia has five companies who transmit each having a number of 
channels. I am finding that using scan, tzap and mplayer I can always 
view all southern cross ten channels however HD is without sound. I can 
view all SBS channels.

I have been playing with the offset Mauro suggested in generid_set_freq. 
On a zero offset scan will add ABC, however tzap will not use the output 
complaining of syntax errors. Hacking the line produces broken up sound 
and picture and no fe lock.

On a 250000 offset ABC is not found but Prime stations are all of which 
work however their HD channel has no sound.

I am thinking that some channels the stations are broadcasting are wider 
than others and that I am overlapping where I am scanning with some.

I am wondering where the best place is to fiddle with the frequency and 
whether there is any quick way to zero in?

The three frequency settings I am aware of are:

1) .if2 is set to 45600 in my zl10353 config structure passed in to the 

2) in xc2028_set_params in tuner_xc2028.c it adds 200khz to demod

3) in generic_set_freq in the same file it has a -500khz offset which I 
was playing with

Cheers Paul
stev391 at email.com wrote:
>> Message: 5
>> Date: Mon, 15 Sep 2008 16:39:24 +1000
>> From: Paul Chubb <paulc at singlespoon.org.au>
>> Subject: Re: [linux-dvb] xc3028 config issue. Re: Why I need to choose
>> 	better Subject: headers [was: Re: Why (etc.)]
>> To: Steven Toth <stoth at linuxtv.org>, linux dvb
>> 	<linux-dvb at linuxtv.org>, 	mchehab at infradead.org
>> Message-ID: <48CE031C.1000805 at singlespoon.org.au>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>> Steven Toth wrote:
>>> Mauro, see question below.
>>> Paul Chubb wrote:
>>>> Steven Toth wrote:
>>>>> Paul Chubb wrote:
>>>>>> Barry,
>>>>>> I drew the line at porting the xc3028 tuner module from mcentral.de into v4l-dvb, so no 
>>>>>> didn't solve the firmware issues. If you know what you are doing it should be trivial work 
>>>>>> - just linking in yet another tuner module and then calling it like all the others. For me 
>>>>>> because I don't know the code well it would take a week or two.
>>>>> No porting required.
>>>>> xc3028 tuner is already in the kernel, it should just be a case of configuring the 
>>>>> attach/config structs correctly.
>>>>> - Steve
>>>> Steve,
>>>>           I think we are talking about two different things. Yes the xc3028 tuner is 
>>>> supported via tuner-xc2028 and works for many xc3028 based cards. This support uses the 
>>>> xc3028-v27.fw file that contains say 80 firmware modules. This firmware was extracted from a 
>>>> Haupage windows driver.
>>> Correct.
>>> (I changed the subject by the way)
>>>> I believe that the 1800H has some incompatibility with this firmware. The mcentral.de tree 
>>>> has a different firmware loading and tuner support module for xc3028 that loads individual 
>>>> firmware modules - you literally put twenty or thirty files into /lib/firmware. This firmware 
>>>> is the standard firmware from xceive before the card manufacturers get to it. Comparing the 
>>>> dmesg listing from a working mcentral.de setup and the non-working v4l tree the only thing 
>>>> that leaps out is the different firmware. If I was continuing the next step would be to port 
>>>> that tuner module into the v4l code and set it up in the normal way.
>>> the v27.fw file does contain the correct firmware, so the fact that the inkernel tuner driver 
>>> isn't select the correct version (or that it needs a hint in the config struct) is probably a 
>>> very small fix.
>>> Mauro (cc'd) generally maintains that driver and he should be able to help. My suggestion is 
>>> that you cut/paste the attach/config struct from your leadtek code into this email thread. 
>>> From you email address I guess you're trying to get DVB-T 7MHz working in Australia. Mauro can 
>>> review it.
>>> Ideally, we'd point you at a different card struct for the same tuner that we know works in 
>>> Australia, so you build the leadtek config struct based on something that we know works.
>>> Mauro, what should the attach/config struct look like for a xc2028/3028 tune in Australia? Can 
>>> you point to a working example or suggest a change?
>>> Regards,
>>> - Steve
>> static struct zl10353_config cx88_dtv1800h = {
>>         .demod_address = (0x1e >> 1),
>>         .no_tuner = 1,
>> };
>> case CX88_BOARD_WINFAST_DTV1800H:
>>                  dev->dvb.frontend = dvb_attach(zl10353_attach,
>>                                                 &cx88_dtv1800h,
>>                                                 &dev->core->i2c_adap);
>>                  if (dev->dvb.frontend != NULL) {
>>                     struct dvb_frontend *fe;
>>                     struct xc2028_config cfg = {
>>                        .i2c_adap  = &dev->core->i2c_adap,
>>                        .i2c_addr  = 0x61,
>>                        .video_dev = dev->core,
>>                                  .callback  = cx88_xc3028_callback,
>>                     };
>>                     static struct xc2028_ctrl ctl = {
>>                        .fname       = "xc3028-v27",
>>                        .max_len     = 64,
>>                    };
>>                    fe = dvb_attach(xc2028_attach, dev->dvb.frontend, &cfg);
>>                    if (fe != NULL && fe->ops.tuner_ops.set_config != NULL)
>>                        fe->ops.tuner_ops.set_config(fe, &ctl);
>>                 }
>>                 dev->dvb.frontend->ops.i2c_gate_ctrl = NULL;
>>                 dev->dvb.frontend->ops.sleep = NULL;
>>                 break;
>> This produces the following dmesg when attempting to scan
> ---Snip---
> Paul,
> Here is the config I used for the DViCO Dual DVB Express, Leadtek Winfast PxDVR 3200 H and most of the Compro VideoMate E series. Note that this in the cx23885 driver. I live in Melbourne so it does definitely work with Australian frequencies.  As all these cards have the same demod and tuner it should be pretty similar config structs.
> Key differences that may effect you are:
> * .fname - I have the .fw after the file, but I don't think this is your problem as it loads the firmware from the file.
> * .demod - XC3028_FE_ZARLINK456, this hepls the firmware loader load the correct firmware. Definitely try this one.
> 		i2c_bus = &dev->i2c_bus[port->nr - 1];
> 		port->dvb.frontend = dvb_attach(zl10353_attach,
> 					       &dvico_fusionhdtv_xc3028,
> 					       &i2c_bus->i2c_adap);
> 		if (port->dvb.frontend != NULL) {
> 			struct dvb_frontend      *fe;
> 			struct xc2028_config	  cfg = {
> 				.i2c_adap  = &i2c_bus->i2c_adap,
> 				.i2c_addr  = 0x61,
> 				.video_dev = port,
> 				.callback  = cx23885_tuner_callback,
> 			};
> 			static struct xc2028_ctrl ctl = {
> 				.fname       = "xc3028-v27.fw",
> 				.max_len     = 64,
> 				.demod       = XC3028_FE_ZARLINK456,
> 			};
> 			fe = dvb_attach(xc2028_attach, port->dvb.frontend,
> 					&cfg);
> 			if (fe != NULL && fe->ops.tuner_ops.set_config != NULL)
> 				fe->ops.tuner_ops.set_config(fe, &ctl);
> 		}
> 		break;
> I hope this helps.
> Regards,
> Stephen.

This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

More information about the linux-dvb mailing list