All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: gennarone@gmail.com
Cc: linux-media@vger.kernel.org
Subject: Re: [PATCH v4 16/47] [media] tuner-xc2028: use DVBv5 parameters on set_params()
Date: Wed, 04 Jan 2012 16:50:08 -0200	[thread overview]
Message-ID: <4F049F60.5040509@redhat.com> (raw)
In-Reply-To: <4F02065E.4060406@gmail.com>

On 02-01-2012 17:32, Gianluca Gennari wrote:
> Il 24/12/2011 16:50, Mauro Carvalho Chehab ha scritto:
>> Instead of using DVBv3 parameters, rely on DVBv5 parameters to
>> set the tuner.
>>
>> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
>> ---
>>  drivers/media/common/tuners/tuner-xc2028.c |   83 ++++++++++++----------------
>>  1 files changed, 36 insertions(+), 47 deletions(-)
>>
>> diff --git a/drivers/media/common/tuners/tuner-xc2028.c b/drivers/media/common/tuners/tuner-xc2028.c
>> index e531267..8c0dc6a1 100644
>> --- a/drivers/media/common/tuners/tuner-xc2028.c
>> +++ b/drivers/media/common/tuners/tuner-xc2028.c
>> @@ -1087,65 +1087,26 @@ static int xc2028_set_analog_freq(struct dvb_frontend *fe,
>>  static int xc2028_set_params(struct dvb_frontend *fe,
>>  			     struct dvb_frontend_parameters *p)
>>  {
>> +	struct dtv_frontend_properties *c = &fe->dtv_property_cache;
>> +	u32 delsys = c->delivery_system;
>> +	u32 bw = c->bandwidth_hz;
>>  	struct xc2028_data *priv = fe->tuner_priv;
>>  	unsigned int       type=0;
>> -	fe_bandwidth_t     bw = BANDWIDTH_8_MHZ;
>>  	u16                demod = 0;
>>  
>>  	tuner_dbg("%s called\n", __func__);
>>  
>> -	switch(fe->ops.info.type) {
>> -	case FE_OFDM:
>> -		bw = p->u.ofdm.bandwidth;
>> +	switch (delsys) {
>> +	case SYS_DVBT:
>> +	case SYS_DVBT2:
>>  		/*
>>  		 * The only countries with 6MHz seem to be Taiwan/Uruguay.
>>  		 * Both seem to require QAM firmware for OFDM decoding
>>  		 * Tested in Taiwan by Terry Wu <terrywu2009@gmail.com>
>>  		 */
>> -		if (bw == BANDWIDTH_6_MHZ)
>> +		if (bw <= 6000000)
>>  			type |= QAM;
>> -		break;
>> -	case FE_ATSC:
>> -		bw = BANDWIDTH_6_MHZ;
>> -		/* The only ATSC firmware (at least on v2.7) is D2633 */
>> -		type |= ATSC | D2633;
>> -		break;
>> -	/* DVB-S and pure QAM (FE_QAM) are not supported */
>> -	default:
>> -		return -EINVAL;
>> -	}
>> -
>> -	switch (bw) {
>> -	case BANDWIDTH_8_MHZ:
>> -		if (p->frequency < 470000000)
>> -			priv->ctrl.vhfbw7 = 0;
>> -		else
>> -			priv->ctrl.uhfbw8 = 1;
>> -		type |= (priv->ctrl.vhfbw7 && priv->ctrl.uhfbw8) ? DTV78 : DTV8;
>> -		type |= F8MHZ;
>> -		break;
>> -	case BANDWIDTH_7_MHZ:
>> -		if (p->frequency < 470000000)
>> -			priv->ctrl.vhfbw7 = 1;
>> -		else
>> -			priv->ctrl.uhfbw8 = 0;
>> -		type |= (priv->ctrl.vhfbw7 && priv->ctrl.uhfbw8) ? DTV78 : DTV7;
>> -		type |= F8MHZ;
>> -		break;
>> -	case BANDWIDTH_6_MHZ:
>> -		type |= DTV6;
>> -		priv->ctrl.vhfbw7 = 0;
>> -		priv->ctrl.uhfbw8 = 0;
>> -		break;
>> -	default:
>> -		tuner_err("error: bandwidth not supported.\n");
>> -	};
>>  
>> -	/*
>> -	  Selects between D2633 or D2620 firmware.
>> -	  It doesn't make sense for ATSC, since it should be D2633 on all cases
>> -	 */
>> -	if (fe->ops.info.type != FE_ATSC) {
>>  		switch (priv->ctrl.type) {
>>  		case XC2028_D2633:
>>  			type |= D2633;
>> @@ -1161,6 +1122,34 @@ static int xc2028_set_params(struct dvb_frontend *fe,
>>  			else
>>  				type |= D2620;
>>  		}
>> +		break;
>> +	case SYS_ATSC:
>> +		/* The only ATSC firmware (at least on v2.7) is D2633 */
>> +		type |= ATSC | D2633;
>> +		break;
>> +	/* DVB-S and pure QAM (FE_QAM) are not supported */
>> +	default:
>> +		return -EINVAL;
>> +	}
>> +
>> +	if (bw <= 6000000) {
>> +		type |= DTV6;
>> +		priv->ctrl.vhfbw7 = 0;
>> +		priv->ctrl.uhfbw8 = 0;
>> +	} else if (bw <= 7000000) {
>> +		if (c->frequency < 470000000)
>> +			priv->ctrl.vhfbw7 = 1;
>> +		else
>> +			priv->ctrl.uhfbw8 = 0;
>> +		type |= (priv->ctrl.vhfbw7 && priv->ctrl.uhfbw8) ? DTV78 : DTV7;
>> +		type |= F8MHZ;
>> +	} else {
>> +		if (c->frequency < 470000000)
>> +			priv->ctrl.vhfbw7 = 0;
>> +		else
>> +			priv->ctrl.uhfbw8 = 1;
>> +		type |= (priv->ctrl.vhfbw7 && priv->ctrl.uhfbw8) ? DTV78 : DTV8;
>> +		type |= F8MHZ;
>>  	}
>>  
>>  	/* All S-code tables need a 200kHz shift */
>> @@ -1185,7 +1174,7 @@ static int xc2028_set_params(struct dvb_frontend *fe,
>>  		 */
>>  	}
>>  
>> -	return generic_set_freq(fe, p->frequency,
>> +	return generic_set_freq(fe, c->frequency,
>>  				V4L2_TUNER_DIGITAL_TV, type, 0, demod);
>>  }
>>  
> 
> Hi Mauro,
> I've tested the new media_build tree with the DVBv5 modifications on my
> Terratec Cinergy Hybrid T USB XS (0ccd:0042).
> 
> The card works fine, but there is small issue: with the old code the
> BASE firmware was loaded only 1 time, now it seems to be loaded each
> time a new frequency is tuned (forcing reload of the other firmwares too).
> 
> This is a log of the firmware loads after some channel surfing:
> 
> OLD CODE:
> 
> [ 8701.753768] xc2028 0-0061: Loading firmware for type=BASE F8MHZ MTS
> (7), id 0000000000000000.
> [ 8702.804153] xc2028 0-0061: Loading firmware for type=D2633 DTV7 (90),
> id 0000000000000000.
> [ 8702.819274] xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78
> DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000.
> [ 8758.361730] xc2028 0-0061: Loading firmware for type=D2633 DTV78
> (110), id 0000000000000000.
> [ 8758.376951] xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78
> DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000.
> 
> (note that the first frequency was in VHF band, then I switched to a new
> frequency in UHF band, so the DTV78 firmware was loaded)
> 
> NEW CODE:
> 
> [19398.450453] xc2028 0-0061: Loading firmware for type=BASE F8MHZ MTS
> (7), id 0000000000000000.
> [19399.563210] xc2028 0-0061: Loading firmware for type=D2633 DTV8
> (210), id 0000000000000000.
> [19399.579467] xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78
> DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000.
> [19458.001144] xc2028 0-0061: Loading firmware for type=BASE F8MHZ MTS
> (7), id 0000000000000000.
> [19459.084473] xc2028 0-0061: Loading firmware for type=D2633 DTV8
> (210), id 0000000000000000.
> [19459.100183] xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78
> DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000.
> [19471.695347] xc2028 0-0061: Loading firmware for type=BASE F8MHZ MTS
> (7), id 0000000000000000.
> [19472.763449] xc2028 0-0061: Loading firmware for type=D2633 DTV8
> (210), id 0000000000000000.
> [19472.780660] xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78
> DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000.
> [19497.928003] xc2028 0-0061: Loading firmware for type=BASE F8MHZ MTS
> (7), id 0000000000000000.
> [19498.999729] xc2028 0-0061: Loading firmware for type=D2633 DTV8
> (210), id 0000000000000000.
> [19499.015212] xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78
> DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000.
> [19510.258833] xc2028 0-0061: Loading firmware for type=BASE F8MHZ MTS
> (7), id 0000000000000000.
> [19511.346135] xc2028 0-0061: Loading firmware for type=D2633 DTV78
> (110), id 0000000000000000.
> [19511.361506] xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78
> DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000.
> [19523.956877] xc2028 0-0061: Loading firmware for type=BASE F8MHZ MTS
> (7), id 0000000000000000.
> [19525.028394] xc2028 0-0061: Loading firmware for type=D2633 DTV78
> (110), id 0000000000000000.
> [19525.044622] xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78
> DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000.
> [19538.526806] xc2028 0-0061: Loading firmware for type=BASE F8MHZ MTS
> (7), id 0000000000000000.
> [19539.602083] xc2028 0-0061: Loading firmware for type=D2633 DTV78
> (110), id 0000000000000000.
> [19539.617613] xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78
> DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000.
> 
> (here I started with a UHF frequency, but each time a new frequency is
> requested all firmwares are loaded anyway, starting from the BASE one).

Weird. This patch preserves the logic that decides what firmware should be
used.

That's said, maybe the driver should just use DTV78 firmwwares on all cases.

On what Country do you live?


> 
> Best regards,
> Gianluca Gennari
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


  reply	other threads:[~2012-01-04 18:50 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-24 15:50 [PATCH v4 00/47] DVB tuners: remove dvb_frontend_parameters from set_params() Mauro Carvalho Chehab
2011-12-24 15:50 ` [PATCH v4 01/47] [media] dvb: replace SYS_DVBC_ANNEX_AC by the right delsys Mauro Carvalho Chehab
2011-12-24 15:50   ` [PATCH v4 02/47] [media] dvb_core: estimate bw for all non-terrestial systems Mauro Carvalho Chehab
2011-12-24 15:50     ` [PATCH v4 03/47] [media] qt1010: remove fake implementaion of get_bandwidth() Mauro Carvalho Chehab
2011-12-24 15:50       ` [PATCH v4 04/47] [media] mt2060: " Mauro Carvalho Chehab
2011-12-24 15:50         ` [PATCH v4 05/47] [media] mt2031: " Mauro Carvalho Chehab
2011-12-24 15:50           ` [PATCH v4 06/47] [media] mc44s803: use DVBv5 parameters on set_params() Mauro Carvalho Chehab
2011-12-24 15:50             ` [PATCH v4 07/47] [media] max2165: " Mauro Carvalho Chehab
2011-12-24 15:50               ` [PATCH v4 08/47] [media] mt2266: use DVBv5 parameters for set_params() Mauro Carvalho Chehab
2011-12-24 15:50                 ` [PATCH v4 09/47] [media] mxl5005s: use DVBv5 parameters on set_params() Mauro Carvalho Chehab
2011-12-24 15:50                   ` [PATCH v4 10/47] [media] mxl5005s: fix: don't discard bandwidth changes Mauro Carvalho Chehab
2011-12-24 15:50                     ` [PATCH v4 11/47] [media] mxl5007t: use DVBv5 parameters on set_params() Mauro Carvalho Chehab
2011-12-24 15:50                       ` [PATCH v4 12/47] [media] tda18218: " Mauro Carvalho Chehab
2011-12-24 15:50                         ` [PATCH v4 13/47] [media] tda18271: add support for QAM 7 MHz map Mauro Carvalho Chehab
2011-12-24 15:50                           ` [PATCH v4 14/47] [media] tda18271-fe: use DVBv5 parameters on set_params() Mauro Carvalho Chehab
2011-12-24 15:50                             ` [PATCH v4 15/47] [media] tda827x: " Mauro Carvalho Chehab
2011-12-24 15:50                               ` [PATCH v4 16/47] [media] tuner-xc2028: " Mauro Carvalho Chehab
2011-12-24 15:50                                 ` [PATCH v4 17/47] [media] xc4000: " Mauro Carvalho Chehab
2011-12-24 15:50                                   ` [PATCH v4 18/47] [media] cx24113: " Mauro Carvalho Chehab
2011-12-24 15:50                                     ` [PATCH v4 19/47] [media] zl10039: " Mauro Carvalho Chehab
2011-12-24 15:50                                       ` [PATCH v4 20/47] [media] av7110: " Mauro Carvalho Chehab
2011-12-24 15:50                                         ` [PATCH v4 21/47] [media] budget-ci: " Mauro Carvalho Chehab
2011-12-24 15:50                                           ` [PATCH v4 22/47] [media] budget-patch: " Mauro Carvalho Chehab
2011-12-24 15:50                                             ` [PATCH v4 23/47] [media] saa7134: " Mauro Carvalho Chehab
2011-12-24 15:50                                               ` [PATCH v4 24/47] [media] cx88: " Mauro Carvalho Chehab
2011-12-24 15:50                                                 ` [PATCH v4 25/47] [media] tua6100: " Mauro Carvalho Chehab
2011-12-24 15:50                                                   ` [PATCH v4 26/47] [media] itd1000: " Mauro Carvalho Chehab
2011-12-24 15:50                                                     ` [PATCH v4 27/47] [media] bsbe1, bsru6, tdh1: " Mauro Carvalho Chehab
2011-12-24 15:50                                                       ` [PATCH v4 28/47] [media] ix2505v: " Mauro Carvalho Chehab
2011-12-24 15:50                                                         ` [PATCH v4 29/47] [media] stb6000: " Mauro Carvalho Chehab
2011-12-24 15:50                                                           ` [PATCH v4 30/47] [media] tda826x: " Mauro Carvalho Chehab
2011-12-24 15:50                                                             ` [PATCH v4 31/47] [media] mxl111sf-tuner: " Mauro Carvalho Chehab
2011-12-24 15:50                                                               ` [PATCH v4 32/47] [media] mantis_vp1033: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                 ` [PATCH v4 33/47] [media] mantis_vp2033: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                   ` [PATCH v4 34/47] [media] mantis_vp2040: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                     ` [PATCH v4 35/47] [media] pluto2: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                       ` [PATCH v4 36/47] [media] dvb-ttusb-budget: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                         ` [PATCH v4 37/47] [media] tuner-simple: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                           ` [PATCH v4 38/47] [media] dvb-bt8xx: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                             ` [PATCH v4 39/47] [media] dvb-pll: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                               ` [PATCH v4 40/47] [media] zl10036: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                                 ` [PATCH v4 41/47] [media] dib0070: Remove unused dvb_frontend_parameters Mauro Carvalho Chehab
2011-12-24 15:50                                                                                   ` [PATCH v4 42/47] [media] cxusb: use DVBv5 parameters on set_params() Mauro Carvalho Chehab
2011-12-24 15:50                                                                                     ` [PATCH v4 43/47] [media] dib0700_devices: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                                       ` [PATCH v4 44/47] [media] budget-av: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                                         ` [PATCH v4 45/47] [media] budget: " Mauro Carvalho Chehab
2011-12-24 15:50                                                                                           ` [PATCH v4 46/47] [media] dvb: remove dvb_frontend_parameters from calc_regs() Mauro Carvalho Chehab
2011-12-24 15:50                                                                                             ` [PATCH v4 47/47] [media] tuners: remove dvb_frontend_parameters from set_params() Mauro Carvalho Chehab
2012-01-02 19:32                                 ` [PATCH v4 16/47] [media] tuner-xc2028: use DVBv5 parameters on set_params() Gianluca Gennari
2012-01-04 18:50                                   ` Mauro Carvalho Chehab [this message]
2012-01-04 19:10                                     ` Gianluca Gennari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F049F60.5040509@redhat.com \
    --to=mchehab@redhat.com \
    --cc=gennarone@gmail.com \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.