The patch number 9007 was added via Steven Toth <[EMAIL PROTECTED]>
to http://linuxtv.org/hg/v4l-dvb master development tree.

Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel

If anyone has any objections, please let us know by sending a message to:
        [EMAIL PROTECTED]

------

From: Steven Toth  <[EMAIL PROTECTED]>
S2API: Changed bandwidth to be expressed in HZ


Also added some compat code for the older API.

Added more ISDB message/command suggestions, current not connected in dvb-core.

Priority: normal

Signed-off-by: Steven Toth <[EMAIL PROTECTED]>


---

 linux/drivers/media/dvb/dvb-core/dvb_frontend.c |   33 +++++++++++-----
 linux/drivers/media/dvb/dvb-core/dvb_frontend.h |    2 
 linux/include/linux/dvb/frontend.h              |   27 +++++++++++--
 3 files changed, 49 insertions(+), 13 deletions(-)

diff -r 0878c2968528 -r 8ce1a9e3f55c 
linux/drivers/media/dvb/dvb-core/dvb_frontend.c
--- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c   Sat Sep 13 14:09:07 
2008 -0400
+++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c   Sat Sep 13 15:56:34 
2008 -0400
@@ -784,9 +784,9 @@ struct dtv_cmds_h dtv_cmds[] = {
                .cmd    = DTV_FREQUENCY,
                .set    = 1,
        },
-       [DTV_BANDWIDTH] = {
-               .name   = "DTV_BANDWIDTH",
-               .cmd    = DTV_BANDWIDTH,
+       [DTV_BANDWIDTH_HZ] = {
+               .name   = "DTV_BANDWIDTH_HZ",
+               .cmd    = DTV_BANDWIDTH_HZ,
                .set    = 1,
        },
        [DTV_MODULATION] = {
@@ -965,7 +965,15 @@ void dtv_property_cache_sync(struct dvb_
                c->delivery_system = SYS_DVBC_ANNEX_AC;
                break;
        case FE_OFDM:
-               c->bandwidth = p->u.ofdm.bandwidth;
+               if (p->u.ofdm.bandwidth == BANDWIDTH_6_MHZ)
+                       c->bandwidth_hz = 6000000;
+               else if (p->u.ofdm.bandwidth == BANDWIDTH_7_MHZ)
+                       c->bandwidth_hz = 7000000;
+               else if (p->u.ofdm.bandwidth == BANDWIDTH_8_MHZ)
+                       c->bandwidth_hz = 8000000;
+               else
+                       /* Including BANDWIDTH_AUTO */
+                       c->bandwidth_hz = 0;
                c->code_rate_HP = p->u.ofdm.code_rate_HP;
                c->code_rate_LP = p->u.ofdm.code_rate_LP;
                c->modulation = p->u.ofdm.constellation;
@@ -1014,7 +1022,14 @@ void dtv_property_legacy_params_sync(str
                break;
        case FE_OFDM:
                printk("%s() Preparing OFDM req\n", __FUNCTION__);
-               p->u.ofdm.bandwidth = c->bandwidth;
+               if (c->bandwidth_hz == 6000000)
+                       p->u.ofdm.bandwidth = BANDWIDTH_6_MHZ;
+               else if (c->bandwidth_hz == 7000000)
+                       p->u.ofdm.bandwidth = BANDWIDTH_7_MHZ;
+               else if (c->bandwidth_hz == 8000000)
+                       p->u.ofdm.bandwidth = BANDWIDTH_8_MHZ;
+               else
+                       p->u.ofdm.bandwidth = BANDWIDTH_AUTO;
                p->u.ofdm.code_rate_HP = c->code_rate_HP;
                p->u.ofdm.code_rate_LP = c->code_rate_LP;
                p->u.ofdm.constellation = c->modulation;
@@ -1129,8 +1144,8 @@ int dtv_property_process_get(struct dvb_
        case DTV_MODULATION:
                tvp->u.data = fe->dtv_property_cache.modulation;
                break;
-       case DTV_BANDWIDTH:
-               tvp->u.data = fe->dtv_property_cache.bandwidth;
+       case DTV_BANDWIDTH_HZ:
+               tvp->u.data = fe->dtv_property_cache.bandwidth_hz;
                break;
        case DTV_INVERSION:
                tvp->u.data = fe->dtv_property_cache.inversion;
@@ -1241,8 +1256,8 @@ int dtv_property_process_set(struct dvb_
        case DTV_MODULATION:
                fe->dtv_property_cache.modulation = tvp->u.data;
                break;
-       case DTV_BANDWIDTH:
-               fe->dtv_property_cache.bandwidth = tvp->u.data;
+       case DTV_BANDWIDTH_HZ:
+               fe->dtv_property_cache.bandwidth_hz = tvp->u.data;
                break;
        case DTV_INVERSION:
                fe->dtv_property_cache.inversion = tvp->u.data;
diff -r 0878c2968528 -r 8ce1a9e3f55c 
linux/drivers/media/dvb/dvb-core/dvb_frontend.h
--- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.h   Sat Sep 13 14:09:07 
2008 -0400
+++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.h   Sat Sep 13 15:56:34 
2008 -0400
@@ -198,7 +198,7 @@ struct dtv_frontend_properties {
        fe_spectral_inversion_t inversion;
        fe_code_rate_t          fec_inner;
        fe_transmit_mode_t      transmission_mode;
-       fe_bandwidth_t          bandwidth;
+       u32                     bandwidth_hz;   /* 0 = AUTO */
        fe_guard_interval_t     guard_interval;
        fe_hierarchy_t          hierarchy;
        u32                     symbol_rate;
diff -r 0878c2968528 -r 8ce1a9e3f55c linux/include/linux/dvb/frontend.h
--- a/linux/include/linux/dvb/frontend.h        Sat Sep 13 14:09:07 2008 -0400
+++ b/linux/include/linux/dvb/frontend.h        Sat Sep 13 15:56:34 2008 -0400
@@ -257,7 +257,12 @@ typedef enum dtv_cmd_types {
 
        DTV_FREQUENCY,
        DTV_MODULATION,
-       DTV_BANDWIDTH,
+
+       /* XXX PB: I would like to have field which describes the
+        * bandwidth of a channel in Hz or kHz - maybe we can remove the
+        * DTV_BANDWIDTH now and put a compat layer */
+       DTV_BANDWIDTH_HZ,
+
        DTV_INVERSION,
        DTV_DISEQC_MASTER,
        DTV_SYMBOL_RATE,
@@ -276,18 +281,34 @@ typedef enum dtv_cmd_types {
        /* New commands are always appended */
        DTV_DELIVERY_SYSTEM,
 
-       /* ISDB-T */
+       /* ISDB */
+       /* maybe a dup of DTV_ISDB_SOUND_BROADCASTING_SUBCHANNEL_ID ??? */
        DTV_ISDB_SEGMENT_IDX,
-       DTV_ISDB_SEGMENT_WIDTH,
+       DTV_ISDB_SEGMENT_WIDTH, /* 1, 3 or 13 ??? */
+
+       /* the central segment can be received independently or 1/3 seg in 
SB-mode */
+       DTV_ISDB_PARTIAL_RECEPTION,
+       /* sound broadcasting is used 0 = 13segment, 1 = 1 or 3 see 
DTV_ISDB_PARTIAL_RECEPTION */
+       DTV_ISDB_SOUND_BROADCASTING,
+
+       /* only used in SB */
+       /* determines the initial PRBS of the segment (to match with 13seg 
channel) */
+       DTV_ISDB_SOUND_BROADCASTING_SUBCHANNEL_ID,
+
        DTV_ISDB_LAYERA_FEC,
        DTV_ISDB_LAYERA_MODULATION,
        DTV_ISDB_LAYERA_SEGMENT_WIDTH,
+       DTV_ISDB_LAYERA_TIME_INTERLEAVER,
+
        DTV_ISDB_LAYERB_FEC,
        DTV_ISDB_LAYERB_MODULATION,
        DTV_ISDB_LAYERB_SEGMENT_WIDTH,
+       DTV_ISDB_LAYERB_TIME_INTERLEAVING,
+
        DTV_ISDB_LAYERC_FEC,
        DTV_ISDB_LAYERC_MODULATION,
        DTV_ISDB_LAYERC_SEGMENT_WIDTH,
+       DTV_ISDB_LAYERC_TIME_INTERLEAVING,
 
 } dtv_cmd_types_t;
 


---

Patch is available at: 
http://linuxtv.org/hg/v4l-dvb/rev/8ce1a9e3f55cec168664c7a9ac4ef2b4af426206

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to