On Saturday 14 January 2012 16:31:16 Antti Palosaari wrote:
> Version 2. I have made some changes from feedback got and
> what I myself found better. I will add documentation later
> after API issues are resolved.
> Thanks to Andreas, Patrick and Mauro.
> 
> Cc: Patrick Boettcher <pboettc...@kernellabs.com>
> Cc: Andreas Oberritter <o...@linuxtv.org>
> Cc: Mauro Carvalho Chehab <mche...@redhat.com>
> Signed-off-by: Antti Palosaari <cr...@iki.fi>
> ---
>   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              |   22
> +++++++++++++++++++--- include/linux/dvb/version.h               |  
>  2 +-
>   7 files changed, 36 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c
> b/drivers/media/dvb/dvb-core/dvb_frontend.c
> index b15db4f..abdc203 100644
> --- a/drivers/media/dvb/dvb-core/dvb_frontend.c
> +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
> @@ -177,7 +177,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_DVBC_ANNEX_B:
> @@ -989,6 +989,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),
> @@ -1039,6 +1040,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),
>   };
> @@ -1316,6 +1318,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:
> @@ -1503,7 +1508,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
> @@ -1625,6 +1630,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:
> @@ -1896,7 +1904,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 d63a821..fb2d57c 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;
> 
> +     fe_interleaving_t       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 4de1d35..333fd6d 100644
> --- a/drivers/media/dvb/frontends/lgs8gxx.c
> +++ b/drivers/media/dvb/frontends/lgs8gxx.c
> @@ -994,7 +994,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 cb4428a..1835c11 100644
> --- a/include/linux/dvb/frontend.h
> +++ b/include/linux/dvb/frontend.h
> @@ -152,6 +152,9 @@ typedef enum fe_code_rate {
>       FEC_AUTO,
>       FEC_3_5,
>       FEC_9_10,
> +     FEC_04,
> +     FEC_06,
> +     FEC_08,
>   } fe_code_rate_t;
> 
> 
> @@ -169,6 +172,7 @@ typedef enum fe_modulation {
>       APSK_16,
>       APSK_32,
>       DQPSK,
> +     QAM_4_NR,
>   } fe_modulation_t;
> 
>   typedef enum fe_transmit_mode {
> @@ -179,6 +183,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 +208,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 +222,11 @@ typedef enum fe_hierarchy {
>       HIERARCHY_AUTO
>   } fe_hierarchy_t;
> 
> +typedef enum fe_interleaving {
> +     INTERLEAVING_NONE,
> +     INTERLEAVING_240,
> +     INTERLEAVING_720,
> +} fe_interleaving_t;
> 
>   #if defined(__DVB_CORE__) || !defined (__KERNEL__)
>   struct dvb_qpsk_parameters {
> @@ -319,8 +333,9 @@ struct dvb_frontend_event {
>   #define DTV_DVBT2_PLP_ID    43
> 
>   #define DTV_ENUM_DELSYS             44
> +#define DTV_INTERLEAVING                     45
> 
> -#define DTV_MAX_COMMAND                              DTV_ENUM_DELSYS
> +#define DTV_MAX_COMMAND                              DTV_INTERLEAVING
> 
>   typedef enum fe_pilot {
>       PILOT_ON,
> @@ -349,7 +364,7 @@ typedef enum fe_delivery_system {
>       SYS_ISDBC,
>       SYS_ATSC,
>       SYS_ATSCMH,
> -     SYS_DMBTH,
> +     SYS_DTMB,
>       SYS_CMMB,
>       SYS_DAB,
>       SYS_DVBT2,
> @@ -357,8 +372,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 */
> 
> 
>   struct dtv_cmds_h {
> diff --git a/include/linux/dvb/version.h
> b/include/linux/dvb/version.h index 0559e2b..43d9e8d 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 5
> +#define DVB_API_VERSION_MINOR 6
> 
>   #endif /*_DVBVERSION_H_*/

If you like you can add, good work.

Acked-by: Patrick Boettcher <pboettc...@kernellabs.com>


--
Patrick Boettcher

Kernel Labs Inc.
http://www.kernellabs.com/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to