From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Antti Palosaari <crope@iki.fi>
Cc: linux-media@vger.kernel.org,
Patrick Boettcher <pboettcher@kernellabs.com>,
Andreas Oberritter <obi@linuxtv.org>
Subject: Re: [PATCH RFCv3] add DTMB support for DVB API
Date: Mon, 30 Jul 2012 12:19:32 -0300 [thread overview]
Message-ID: <5016A604.6040900@redhat.com> (raw)
In-Reply-To: <1341932665-28580-2-git-send-email-crope@iki.fi>
Em 10-07-2012 12:04, Antti Palosaari escreveu:
> Cc: Patrick Boettcher <pboettcher@kernellabs.com>
> Cc: Andreas Oberritter <obi@linuxtv.org>
> Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
> Acked-by: Patrick Boettcher <pboettcher@kernellabs.com>
> Signed-off-by: Antti Palosaari <crope@iki.fi>
On a quick check, it looks ok on my eyes.
> ---
> Documentation/DocBook/media/dvb/dvbproperty.xml | 40 ++++++++++++++++++++++-
> drivers/media/dvb/dvb-core/dvb_frontend.c | 14 ++++++--
> drivers/media/dvb/dvb-core/dvb_frontend.h | 2 ++
> drivers/media/dvb/frontends/atbm8830.c | 2 +-
> drivers/media/dvb/frontends/lgs8gl5.c | 2 +-
> drivers/media/dvb/frontends/lgs8gxx.c | 2 +-
> include/linux/dvb/frontend.h | 21 ++++++++++--
> include/linux/dvb/version.h | 2 +-
> 8 files changed, 74 insertions(+), 11 deletions(-)
>
> diff --git a/Documentation/DocBook/media/dvb/dvbproperty.xml b/Documentation/DocBook/media/dvb/dvbproperty.xml
> index e633c09..05230ed 100644
> --- a/Documentation/DocBook/media/dvb/dvbproperty.xml
> +++ b/Documentation/DocBook/media/dvb/dvbproperty.xml
> @@ -194,6 +194,7 @@ get/set up to 64 properties. The actual meaning of each property is described on
> APSK_16,
> APSK_32,
> DQPSK,
> + QAM_4_NR,
> } fe_modulation_t;
> </programlisting>
> </section>
> @@ -265,6 +266,7 @@ typedef enum fe_code_rate {
> FEC_AUTO,
> FEC_3_5,
> FEC_9_10,
> + FEC_2_5,
> } fe_code_rate_t;
> </programlisting>
> <para>which correspond to error correction rates of 1/2, 2/3, etc.,
> @@ -351,7 +353,7 @@ typedef enum fe_delivery_system {
> SYS_ISDBC,
> SYS_ATSC,
> SYS_ATSCMH,
> - SYS_DMBTH,
> + SYS_DTMB,
> SYS_CMMB,
> SYS_DAB,
> SYS_DVBT2,
> @@ -725,6 +727,9 @@ typedef enum fe_guard_interval {
> GUARD_INTERVAL_1_128,
> GUARD_INTERVAL_19_128,
> GUARD_INTERVAL_19_256,
> + GUARD_INTERVAL_PN420,
> + GUARD_INTERVAL_PN595,
> + GUARD_INTERVAL_PN945,
> } fe_guard_interval_t;
> </programlisting>
>
> @@ -733,6 +738,7 @@ typedef enum fe_guard_interval {
> try to find the correct guard interval (if capable) and will use TMCC to fill
> in the missing parameters.</para>
> <para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para>
> + <para>3) DTMB specifies PN420, PN595 and PN945.</para>
> </section>
> <section id="DTV-TRANSMISSION-MODE">
> <title><constant>DTV_TRANSMISSION_MODE</constant></title>
> @@ -749,6 +755,8 @@ typedef enum fe_transmit_mode {
> TRANSMISSION_MODE_1K,
> TRANSMISSION_MODE_16K,
> TRANSMISSION_MODE_32K,
> + TRANSMISSION_MODE_C1,
> + TRANSMISSION_MODE_C3780,
> } fe_transmit_mode_t;
> </programlisting>
> <para>Notes:</para>
> @@ -760,6 +768,7 @@ typedef enum fe_transmit_mode {
> use TMCC to fill in the missing parameters.</para>
> <para>3) DVB-T specifies 2K and 8K as valid sizes.</para>
> <para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para>
> + <para>5) DTMB specifies C1 and C3780.</para>
> </section>
> <section id="DTV-HIERARCHY">
> <title><constant>DTV_HIERARCHY</constant></title>
> @@ -796,6 +805,17 @@ typedef enum fe_hierarchy {
> FE_GET_INFO. In the case of a legacy frontend, the result is just the same
> as with FE_GET_INFO, but in a more structured format </para>
> </section>
> + <section id="DTV-INTERLEAVING">
> + <title><constant>DTV_INTERLEAVING</constant></title>
> + <para>Interleaving mode</para>
> + <programlisting>
> +enum fe_interleaving {
> + INTERLEAVING_NONE,
> + INTERLEAVING_240,
> + INTERLEAVING_720,
> +};
> + </programlisting>
> + </section>
> </section>
> <section id="frontend-property-terrestrial-systems">
> <title>Properties used on terrestrial delivery systems</title>
> @@ -934,6 +954,24 @@ typedef enum fe_hierarchy {
> <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE_MODE-D"><constant>DTV_ATSCMH_SCCC_CODE_MODE_D</constant></link></para></listitem>
> </itemizedlist>
> </section>
> + <section id="dtmb-params">
> + <title>DTMB delivery system</title>
> + <para>The following parameters are valid for DTMB:</para>
> + <itemizedlist mark='opencircle'>
> + <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
> + <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
> + <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
> + <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
> + <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
> + <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
> + <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem>
> + <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
> + <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
> + <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
> + <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
> + <listitem><para><link linkend="DTV-INTERLEAVING"><constant>DTV_INTERLEAVING</constant></link></para></listitem>
> + </itemizedlist>
> + </section>
> </section>
> <section id="frontend-property-cable-systems">
> <title>Properties used on cable delivery systems</title>
> diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
> index aebcdf2..b54c297 100644
> --- a/drivers/media/dvb/dvb-core/dvb_frontend.c
> +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
> @@ -179,7 +179,7 @@ static enum dvbv3_emulation_type dvbv3_type(u32 delivery_system)
> case SYS_DVBT:
> case SYS_DVBT2:
> case SYS_ISDBT:
> - case SYS_DMBTH:
> + case SYS_DTMB:
> return DVBV3_OFDM;
> case SYS_ATSC:
> case SYS_ATSCMH:
> @@ -997,6 +997,7 @@ static struct dtv_cmds_h dtv_cmds[DTV_MAX_COMMAND + 1] = {
> _DTV_CMD(DTV_CODE_RATE_LP, 1, 0),
> _DTV_CMD(DTV_GUARD_INTERVAL, 1, 0),
> _DTV_CMD(DTV_TRANSMISSION_MODE, 1, 0),
> + _DTV_CMD(DTV_INTERLEAVING, 1, 0),
>
> _DTV_CMD(DTV_ISDBT_PARTIAL_RECEPTION, 1, 0),
> _DTV_CMD(DTV_ISDBT_SOUND_BROADCASTING, 1, 0),
> @@ -1028,6 +1029,7 @@ static struct dtv_cmds_h dtv_cmds[DTV_MAX_COMMAND + 1] = {
> _DTV_CMD(DTV_GUARD_INTERVAL, 0, 0),
> _DTV_CMD(DTV_TRANSMISSION_MODE, 0, 0),
> _DTV_CMD(DTV_HIERARCHY, 0, 0),
> + _DTV_CMD(DTV_INTERLEAVING, 0, 0),
>
> _DTV_CMD(DTV_ENUM_DELSYS, 0, 0),
>
> @@ -1326,6 +1328,9 @@ static int dtv_property_process_get(struct dvb_frontend *fe,
> case DTV_HIERARCHY:
> tvp->u.data = c->hierarchy;
> break;
> + case DTV_INTERLEAVING:
> + tvp->u.data = c->interleaving;
> + break;
>
> /* ISDB-T Support here */
> case DTV_ISDBT_PARTIAL_RECEPTION:
> @@ -1593,7 +1598,7 @@ static int set_delivery_system(struct dvb_frontend *fe, u32 desired_system)
> * The DVBv3 or DVBv5 call is requesting a different system. So,
> * emulation is needed.
> *
> - * Emulate newer delivery systems like ISDBT, DVBT and DMBTH
> + * Emulate newer delivery systems like ISDBT, DVBT and DTMB
> * for older DVBv5 applications. The emulation will try to use
> * the auto mode for most things, and will assume that the desired
> * delivery system is the last one at the ops.delsys[] array
> @@ -1715,6 +1720,9 @@ static int dtv_property_process_set(struct dvb_frontend *fe,
> case DTV_HIERARCHY:
> c->hierarchy = tvp->u.data;
> break;
> + case DTV_INTERLEAVING:
> + c->interleaving = tvp->u.data;
> + break;
>
> /* ISDB-T Support here */
> case DTV_ISDBT_PARTIAL_RECEPTION:
> @@ -2012,7 +2020,7 @@ static int dtv_set_frontend(struct dvb_frontend *fe)
> case SYS_DVBT:
> case SYS_DVBT2:
> case SYS_ISDBT:
> - case SYS_DMBTH:
> + case SYS_DTMB:
> fepriv->min_delay = HZ / 20;
> fepriv->step_size = fe->ops.info.frequency_stepsize * 2;
> fepriv->max_drift = (fe->ops.info.frequency_stepsize * 2) + 1;
> diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.h b/drivers/media/dvb/dvb-core/dvb_frontend.h
> index e929d56..31a3d1c 100644
> --- a/drivers/media/dvb/dvb-core/dvb_frontend.h
> +++ b/drivers/media/dvb/dvb-core/dvb_frontend.h
> @@ -353,6 +353,8 @@ struct dtv_frontend_properties {
>
> fe_delivery_system_t delivery_system;
>
> + enum fe_interleaving interleaving;
> +
> /* ISDB-T specifics */
> u8 isdbt_partial_reception;
> u8 isdbt_sb_mode;
> diff --git a/drivers/media/dvb/frontends/atbm8830.c b/drivers/media/dvb/frontends/atbm8830.c
> index a2261ea..4e11dc4 100644
> --- a/drivers/media/dvb/frontends/atbm8830.c
> +++ b/drivers/media/dvb/frontends/atbm8830.c
> @@ -428,7 +428,7 @@ static int atbm8830_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
> }
>
> static struct dvb_frontend_ops atbm8830_ops = {
> - .delsys = { SYS_DMBTH },
> + .delsys = { SYS_DTMB },
> .info = {
> .name = "AltoBeam ATBM8830/8831 DMB-TH",
> .frequency_min = 474000000,
> diff --git a/drivers/media/dvb/frontends/lgs8gl5.c b/drivers/media/dvb/frontends/lgs8gl5.c
> index 2cec804..416cce3 100644
> --- a/drivers/media/dvb/frontends/lgs8gl5.c
> +++ b/drivers/media/dvb/frontends/lgs8gl5.c
> @@ -412,7 +412,7 @@ EXPORT_SYMBOL(lgs8gl5_attach);
>
>
> static struct dvb_frontend_ops lgs8gl5_ops = {
> - .delsys = { SYS_DMBTH },
> + .delsys = { SYS_DTMB },
> .info = {
> .name = "Legend Silicon LGS-8GL5 DMB-TH",
> .frequency_min = 474000000,
> diff --git a/drivers/media/dvb/frontends/lgs8gxx.c b/drivers/media/dvb/frontends/lgs8gxx.c
> index 568363a..e6502e8 100644
> --- a/drivers/media/dvb/frontends/lgs8gxx.c
> +++ b/drivers/media/dvb/frontends/lgs8gxx.c
> @@ -993,7 +993,7 @@ static int lgs8gxx_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
> }
>
> static struct dvb_frontend_ops lgs8gxx_ops = {
> - .delsys = { SYS_DMBTH },
> + .delsys = { SYS_DTMB },
> .info = {
> .name = "Legend Silicon LGS8913/LGS8GXX DMB-TH",
> .frequency_min = 474000000,
> diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
> index f50d405..2dd5823 100644
> --- a/include/linux/dvb/frontend.h
> +++ b/include/linux/dvb/frontend.h
> @@ -152,6 +152,7 @@ typedef enum fe_code_rate {
> FEC_AUTO,
> FEC_3_5,
> FEC_9_10,
> + FEC_2_5,
> } fe_code_rate_t;
>
>
> @@ -169,6 +170,7 @@ typedef enum fe_modulation {
> APSK_16,
> APSK_32,
> DQPSK,
> + QAM_4_NR,
> } fe_modulation_t;
>
> typedef enum fe_transmit_mode {
> @@ -179,6 +181,8 @@ typedef enum fe_transmit_mode {
> TRANSMISSION_MODE_1K,
> TRANSMISSION_MODE_16K,
> TRANSMISSION_MODE_32K,
> + TRANSMISSION_MODE_C1,
> + TRANSMISSION_MODE_C3780,
> } fe_transmit_mode_t;
>
> #if defined(__DVB_CORE__) || !defined (__KERNEL__)
> @@ -202,6 +206,9 @@ typedef enum fe_guard_interval {
> GUARD_INTERVAL_1_128,
> GUARD_INTERVAL_19_128,
> GUARD_INTERVAL_19_256,
> + GUARD_INTERVAL_PN420,
> + GUARD_INTERVAL_PN595,
> + GUARD_INTERVAL_PN945,
> } fe_guard_interval_t;
>
>
> @@ -213,6 +220,11 @@ typedef enum fe_hierarchy {
> HIERARCHY_AUTO
> } fe_hierarchy_t;
>
> +enum fe_interleaving {
> + INTERLEAVING_NONE,
> + INTERLEAVING_240,
> + INTERLEAVING_720,
> +};
>
> #if defined(__DVB_CORE__) || !defined (__KERNEL__)
> struct dvb_qpsk_parameters {
> @@ -337,7 +349,9 @@ struct dvb_frontend_event {
> #define DTV_ATSCMH_SCCC_CODE_MODE_C 58
> #define DTV_ATSCMH_SCCC_CODE_MODE_D 59
>
> -#define DTV_MAX_COMMAND DTV_ATSCMH_SCCC_CODE_MODE_D
> +#define DTV_INTERLEAVING 60
> +
> +#define DTV_MAX_COMMAND DTV_INTERLEAVING
>
> typedef enum fe_pilot {
> PILOT_ON,
> @@ -366,7 +380,7 @@ typedef enum fe_delivery_system {
> SYS_ISDBC,
> SYS_ATSC,
> SYS_ATSCMH,
> - SYS_DMBTH,
> + SYS_DTMB,
> SYS_CMMB,
> SYS_DAB,
> SYS_DVBT2,
> @@ -374,8 +388,9 @@ typedef enum fe_delivery_system {
> SYS_DVBC_ANNEX_C,
> } fe_delivery_system_t;
>
> -
> +/* backward compatibility */
> #define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A
> +#define SYS_DMBTH SYS_DTMB /* DMB-TH is legacy name, use DTMB instead */
>
> /* ATSC-MH */
>
> diff --git a/include/linux/dvb/version.h b/include/linux/dvb/version.h
> index 43d9e8d..70c2c7e 100644
> --- a/include/linux/dvb/version.h
> +++ b/include/linux/dvb/version.h
> @@ -24,6 +24,6 @@
> #define _DVBVERSION_H_
>
> #define DVB_API_VERSION 5
> -#define DVB_API_VERSION_MINOR 6
> +#define DVB_API_VERSION_MINOR 7
>
> #endif /*_DVBVERSION_H_*/
>
prev parent reply other threads:[~2012-07-30 15:19 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-10 15:04 [PATCH RFCv3] add DTMB support for DVB API Antti Palosaari
2012-07-10 15:04 ` Antti Palosaari
2012-07-30 15:19 ` Mauro Carvalho Chehab [this message]
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=5016A604.6040900@redhat.com \
--to=mchehab@redhat.com \
--cc=crope@iki.fi \
--cc=linux-media@vger.kernel.org \
--cc=obi@linuxtv.org \
--cc=pboettcher@kernellabs.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 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.