Skip to content

Commit

Permalink
[media] dvb: Allow select between DVB-C Annex A and Annex C
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Mauro Carvalho Chehab committed Nov 11, 2011
1 parent e9eb0da commit 39ce61a
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Documentation/DocBook/media/dvb/dvbproperty.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -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>
Expand Down
2 changes: 2 additions & 0 deletions drivers/media/dvb/dvb-core/dvb_frontend.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
2 changes: 2 additions & 0 deletions include/linux/dvb/frontend.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit 39ce61a

Please sign in to comment.