Em 10-07-2012 12:04, Antti Palosaari escreveu: > Cc: Patrick Boettcher <pboettcher@xxxxxxxxxxxxxx> > Cc: Andreas Oberritter <obi@xxxxxxxxxxx> > Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> > Acked-by: Patrick Boettcher <pboettcher@xxxxxxxxxxxxxx> > Signed-off-by: Antti Palosaari <crope@xxxxxx> 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_*/ > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html