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

stev391 at email.com stev391 at email.com
Mon Sep 22 00:38:26 CEST 2008


> ----- Original Message -----
> From: "Paul Chubb" <paulc at singlespoon.org.au>
> To: stev391 at email.com, "Steven Toth" <stoth at linuxtv.org>, mchehab at infradead.org, "linux dvb" <linux-dvb at linuxtv.org>
> Subject: Re: [linux-dvb] xc3028 config issue. Re: Why I need to choose better Subject: headers [was: Re: Why (etc.)]
> Date: Mon, 22 Sep 2008 07:46:34 +1000
> 
> 
> Hi,
>        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 attach
> 
> 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.
> >
> > case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: {
> > 		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.
> >

Paul,

Another issue that you might be facing is that the repeater transmitters do not always send out the correct tuning information.  For example the SBS stream off Upwey Repeater (Melbourne) when scanned for tells the scan to search on the original frequencies (from Mt Dandenong) as well as the one it found it on.  This may cause issues when it does find the original frequencies and results in duplicates in the channels.conf.  Then in some cases the TV viewing program may choose the wrong one to tune to and results in a crappy signal.

As for the no sound in HD but SD is working.  This leads itself to a codec issue.

Keep up the good work.

Stephen.

-- 
Be Yourself @ mail.com!
Choose From 200+ Email Addresses
Get a Free Account at www.mail.com




More information about the linux-dvb mailing list