* [PATCH RFCv3] add DTMB support for DVB API
@ 2012-07-10 15:04 Antti Palosaari
2012-07-10 15:04 ` Antti Palosaari
0 siblings, 1 reply; 3+ messages in thread
From: Antti Palosaari @ 2012-07-10 15:04 UTC (permalink / raw)
To: linux-media
Cc: Antti Palosaari, Patrick Boettcher, Andreas Oberritter,
Mauro Carvalho Chehab
Changes since v2
* add documentation
* FEC_0x => FEC_x_y
* remove typedef
Some questions still:
1)
Should I use INTERLEAVING_AUTO instead of INTERLEAVING_NONE ?
2)
Which is better, enum fe_interleaving or u8 for interleaving type inside struct dtv_frontend_properties?
Only 2 bits is needed to present current values so enum will waste some space.
Cc: Patrick Boettcher <pboettcher@kernellabs.com>
Cc: Andreas Oberritter <obi@linuxtv.org>
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
Antti Palosaari (1):
add DTMB support for DVB API
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(-)
--
1.7.10.4
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH RFCv3] add DTMB support for DVB API
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
0 siblings, 1 reply; 3+ messages in thread
From: Antti Palosaari @ 2012-07-10 15:04 UTC (permalink / raw)
To: linux-media
Cc: Antti Palosaari, Patrick Boettcher, Andreas Oberritter,
Mauro Carvalho Chehab
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>
---
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_*/
--
1.7.10.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH RFCv3] add DTMB support for DVB API
2012-07-10 15:04 ` Antti Palosaari
@ 2012-07-30 15:19 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 3+ messages in thread
From: Mauro Carvalho Chehab @ 2012-07-30 15:19 UTC (permalink / raw)
To: Antti Palosaari; +Cc: linux-media, Patrick Boettcher, Andreas Oberritter
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_*/
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-07-30 15:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 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.