From: Gianluca Gennari <gennarone@gmail.com>
To: Mauro Carvalho Chehab <mchehab@redhat.com>, linux-media@vger.kernel.org
Subject: Re: [PATCH v4 16/47] [media] tuner-xc2028: use DVBv5 parameters on set_params()
Date: Mon, 02 Jan 2012 20:32:46 +0100 [thread overview]
Message-ID: <4F02065E.4060406@gmail.com> (raw)
In-Reply-To: <1324741852-26138-17-git-send-email-mchehab@redhat.com>
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).
Best regards,
Gianluca Gennari
next prev parent reply other threads:[~2012-01-02 19:32 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 ` Gianluca Gennari [this message]
2012-01-04 18:50 ` [PATCH v4 16/47] [media] tuner-xc2028: use DVBv5 parameters on set_params() Mauro Carvalho Chehab
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=4F02065E.4060406@gmail.com \
--to=gennarone@gmail.com \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox