]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
[media] dvb: Allow select between DVB-C Annex A and Annex C
authorMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 11 Nov 2011 14:46:23 +0000 (12:46 -0200)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 11 Nov 2011 14:46:23 +0000 (12:46 -0200)
DVB-C, as defined by ITU-T J.83 has 3 annexes. The differences between
Annex A and Annex C is that Annex C uses a subset of the modulation
types, and uses a different rolloff factor. A different rolloff means
that the bandwidth required is slicely different, and may affect the
saw filter configuration at the tuners. Also, some demods have different
configurations, depending on using Annex A or Annex C.

So, allow userspace to specify it, by changing the rolloff factor.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Documentation/DocBook/media/dvb/dvbproperty.xml
drivers/media/dvb/dvb-core/dvb_frontend.c
include/linux/dvb/frontend.h

index 3bc8a61efe301a4b32bd89862efd28219e9315c4..6ac803959a479438e3807513b3ad6f8a2c3dfd1a 100644 (file)
@@ -311,6 +311,8 @@ typedef enum fe_rolloff {
        ROLLOFF_20,
        ROLLOFF_25,
        ROLLOFF_AUTO,
+       ROLLOFF_15, /* DVB-C Annex A */
+       ROLLOFF_13, /* DVB-C Annex C */
 } fe_rolloff_t;
                </programlisting>
                </section>
@@ -778,8 +780,10 @@ typedef enum fe_hierarchy {
                        <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
                        <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
                        <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem>
+                       <listitem><para><link linkend="DTV-ROLLOFF"><constant>DTV_ROLLOFF</constant></link></para></listitem>
                        <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
                </itemizedlist>
+               <para>The Rolloff of 0.15 (ROLLOFF_15) is assumed, as ITU-T J.83 Annex A is more common. For Annex C, rolloff should be 0.13 (ROLLOFF_13). All other values are invalid.</para>
        </section>
        <section id="dvbc-annex-b-params">
                <title>DVB-C Annex B delivery system</title>
index 2c0acdb4d81144b00b1381742505d18f208addb2..c849455458ea8d02f3f00a96b32ba83f00a57083 100644 (file)
@@ -876,6 +876,7 @@ static int dvb_frontend_clear_cache(struct dvb_frontend *fe)
        c->symbol_rate = QAM_AUTO;
        c->code_rate_HP = FEC_AUTO;
        c->code_rate_LP = FEC_AUTO;
+       c->rolloff = ROLLOFF_AUTO;
 
        c->isdbt_partial_reception = -1;
        c->isdbt_sb_mode = -1;
@@ -1030,6 +1031,7 @@ static void dtv_property_cache_init(struct dvb_frontend *fe,
                break;
        case FE_QAM:
                c->delivery_system = SYS_DVBC_ANNEX_AC;
+               c->rolloff = ROLLOFF_15; /* implied for Annex A */
                break;
        case FE_OFDM:
                c->delivery_system = SYS_DVBT;
index 1b1094c35e4fd979f6b49d35b9f6c725ee0eac9b..d9251df867b5886d54b19969fc8089008c3586e5 100644 (file)
@@ -329,6 +329,8 @@ typedef enum fe_rolloff {
        ROLLOFF_20,
        ROLLOFF_25,
        ROLLOFF_AUTO,
+       ROLLOFF_15,     /* DVB-C Annex A */
+       ROLLOFF_13,     /* DVB-C Annex C */
 } fe_rolloff_t;
 
 typedef enum fe_delivery_system {