All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Antti Palosaari <crope@iki.fi>
Cc: linux-media@vger.kernel.org, Hin-Tak Leung <htl10@users.sourceforge.net>
Subject: Re: [PATCH 2/4] dvb_frontend: add routine for DVB-T2 parameter validation
Date: Tue, 11 Sep 2012 16:33:15 -0300	[thread overview]
Message-ID: <504F91FB.20309@redhat.com> (raw)
In-Reply-To: <1345169022-10221-3-git-send-email-crope@iki.fi>

Em 16-08-2012 23:03, Antti Palosaari escreveu:
> Common routine for use of dvb-core, demodulator and tuner for check
> given DVB-T2 parameters correctness.
> 
> Signed-off-by: Antti Palosaari <crope@iki.fi>
> ---
>  drivers/media/dvb-core/dvb_frontend.c | 118 ++++++++++++++++++++++++++++++++++
>  drivers/media/dvb-core/dvb_frontend.h |   1 +
>  2 files changed, 119 insertions(+)
> 
> diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c
> index 4abb648..6413c74 100644
> --- a/drivers/media/dvb-core/dvb_frontend.c
> +++ b/drivers/media/dvb-core/dvb_frontend.c
> @@ -2641,6 +2641,124 @@ int dvb_validate_params_dvbt(struct dvb_frontend *fe)
>  }
>  EXPORT_SYMBOL(dvb_validate_params_dvbt);
>  
> +int dvb_validate_params_dvbt2(struct dvb_frontend *fe)
> +{
> +	struct dtv_frontend_properties *c = &fe->dtv_property_cache;
> +
> +	dev_dbg(fe->dvb->device, "%s:\n", __func__);
> +
> +	switch (c->delivery_system) {
> +	case SYS_DVBT2:
> +		break;
> +	default:
> +		dev_dbg(fe->dvb->device, "%s: delivery_system=%d\n", __func__,
> +				c->delivery_system);
> +		return -EINVAL;
> +	}

Same comments made on patch 1/4 apply here.

> +
> +	/*
> +	 * DVB-T2 specification as such does not specify any frequency bands.
> +	 * Define real life limits still. L-Band 1452 - 1492 MHz may exits in
> +	 * future too.
> +	 */
> +	if (c->frequency >= 174000000 && c->frequency <= 230000000) {
> +		;
> +	} else if (c->frequency >= 470000000 && c->frequency <= 862000000) {
> +		;
> +	} else {
> +		dev_dbg(fe->dvb->device, "%s: frequency=%d\n", __func__,
> +				c->frequency);
> +		return -EINVAL;
> +	}

Same comments made on patch 1/4 apply here.

> +
> +	switch (c->bandwidth_hz) {
> +	case  6000000:
> +	case  7000000:
> +	case  8000000:
> +	case  1700000:
> +	case  5000000:
> +	case 10000000:
> +		break;

0 is also valid. Also, better to sort the entries here.

> +	default:
> +		dev_dbg(fe->dvb->device, "%s: bandwidth_hz=%d\n", __func__,
> +				c->bandwidth_hz);
> +		return -EINVAL;
> +	}
> +
> +	/*
> +	 * Valid Physical Layer Pipe (PLP) values are 0 - 255
> +	 */
> +	if (c->dvbt2_plp_id <= 255) {
> +		;
> +	} else {
> +		dev_dbg(fe->dvb->device, "%s: dvbt2_plp_id=%d\n", __func__,
> +				c->dvbt2_plp_id);
> +		return -EINVAL;
> +	}

Is it possible to disable it for DVB-T2? If so, a new value
is needed here (~0), according with our discussions related to
multistream patches.

> +
> +	switch (c->transmission_mode) {
> +	case TRANSMISSION_MODE_AUTO:
> +	case TRANSMISSION_MODE_2K:
> +	case TRANSMISSION_MODE_8K:
> +	case TRANSMISSION_MODE_1K:
> +	case TRANSMISSION_MODE_4K:
> +	case TRANSMISSION_MODE_16K:
> +	case TRANSMISSION_MODE_32K:
> +		break;
> +	default:
> +		dev_dbg(fe->dvb->device, "%s: transmission_mode=%d\n", __func__,
> +				c->transmission_mode);
> +		return -EINVAL;
> +	}
> +
> +	switch (c->modulation) {
> +	case QAM_AUTO:
> +	case QPSK:
> +	case QAM_16:
> +	case QAM_64:
> +	case QAM_256:
> +		break;
> +	default:
> +		dev_dbg(fe->dvb->device, "%s: modulation=%d\n", __func__,
> +				c->modulation);
> +		return -EINVAL;
> +	}
> +
> +	switch (c->guard_interval) {
> +	case GUARD_INTERVAL_AUTO:
> +	case GUARD_INTERVAL_1_32:
> +	case GUARD_INTERVAL_1_16:
> +	case GUARD_INTERVAL_1_8:
> +	case GUARD_INTERVAL_1_4:
> +	case GUARD_INTERVAL_1_128:
> +	case GUARD_INTERVAL_19_128:
> +	case GUARD_INTERVAL_19_256:
> +		break;
> +	default:
> +		dev_dbg(fe->dvb->device, "%s: guard_interval=%d\n", __func__,
> +				c->guard_interval);
> +		return -EINVAL;
> +	}
> +
> +	switch (c->fec_inner) {
> +	case FEC_AUTO:
> +	case FEC_1_2:
> +	case FEC_3_5:
> +	case FEC_2_3:
> +	case FEC_3_4:
> +	case FEC_4_5:
> +	case FEC_5_6:
> +		break;
> +	default:
> +		dev_dbg(fe->dvb->device, "%s: fec_inner=%d\n", __func__,
> +				c->fec_inner);
> +		return -EINVAL;
> +	}
> +
> +	return 0;
> +}
> +EXPORT_SYMBOL(dvb_validate_params_dvbt2);

Same comments made on patch 1/4 apply here.

> +
>  int dvb_register_frontend(struct dvb_adapter* dvb,
>  			  struct dvb_frontend* fe)
>  {
> diff --git a/drivers/media/dvb-core/dvb_frontend.h b/drivers/media/dvb-core/dvb_frontend.h
> index 6df0c44..bcd572d 100644
> --- a/drivers/media/dvb-core/dvb_frontend.h
> +++ b/drivers/media/dvb-core/dvb_frontend.h
> @@ -426,5 +426,6 @@ extern void dvb_frontend_sleep_until(struct timeval *waketime, u32 add_usec);
>  extern s32 timeval_usec_diff(struct timeval lasttime, struct timeval curtime);
>  
>  extern int dvb_validate_params_dvbt(struct dvb_frontend *fe);
> +extern int dvb_validate_params_dvbt2(struct dvb_frontend *fe);
>  
>  #endif
> 


  reply	other threads:[~2012-09-11 19:33 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-17  2:03 [PATCH 0/4] dvb_frontend: few DTV validation routines Antti Palosaari
2012-08-17  2:03 ` [PATCH 1/4] dvb_frontend: add routine for DVB-T parameter validation Antti Palosaari
2012-09-11 19:23   ` Mauro Carvalho Chehab
2012-09-15 23:42     ` Antti Palosaari
2012-08-17  2:03 ` [PATCH 2/4] dvb_frontend: add routine for DVB-T2 " Antti Palosaari
2012-09-11 19:33   ` Mauro Carvalho Chehab [this message]
2012-09-16  0:05     ` Antti Palosaari
2012-08-17  2:03 ` [PATCH 3/4] dvb_frontend: add routine for DVB-C annex A " Antti Palosaari
2012-09-11 19:40   ` Mauro Carvalho Chehab
2012-09-16  0:14     ` Antti Palosaari
2012-08-17  2:03 ` [PATCH 4/4] dvb_frontend: add routine for DTMB " Antti Palosaari
2012-09-11 19:43   ` Mauro Carvalho Chehab
2012-09-16  0:27     ` Antti Palosaari

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=504F91FB.20309@redhat.com \
    --to=mchehab@redhat.com \
    --cc=crope@iki.fi \
    --cc=htl10@users.sourceforge.net \
    --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.