Commit 6508a50f authored by Robert Schlabbach's avatar Robert Schlabbach Committed by Mauro Carvalho Chehab

media: dvb: add DVB-C2 and DVB-S2X parameter values

Extend the DVB frontend parameter enums with additional values specified
by the DVB-C2 (ETSI EN 302 769) and DVB-S2X (ETSI EN 302 307-2)
standards to be ready for frontend drivers for such receivers.

While most parameters will be "read-only" due to being autodetected by
the receiver and only being reported back for informational purposes,
the addition of SYS_DVBC2 to the delivery systems enum is required,
because there are DVB-C2 capable receivers which are not capable of
DVB-C/C2 autodetection and thus need this enum value to be explicitly
instructed to search for a DVB-C2 signal.

As for DVB-S2X, as that is an extension to DVB-S2, the same delivery
system enum as for DVB-S2 can be used.

Add the additional enum values and comments to the documentation.

Link: https://lore.kernel.org/linux-media/trinity-1b7c5a66-85d4-4595-a690-0fde965d49b3-1642146228587@3c-app-gmx-bap69Signed-off-by: default avatarRobert Schlabbach <robert_s@gmx.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent e2a22718
...@@ -89,16 +89,21 @@ ATSC (version 1) 8-VSB and 16-VSB. ...@@ -89,16 +89,21 @@ ATSC (version 1) 8-VSB and 16-VSB.
DMTB 4-QAM, 16-QAM, 32-QAM, 64-QAM and 4-QAM-NR. DMTB 4-QAM, 16-QAM, 32-QAM, 64-QAM and 4-QAM-NR.
DVB-C Annex A/C 16-QAM, 32-QAM, 64-QAM and 256-QAM. DVB-C Annex A/C 16-QAM, 32-QAM, 64-QAM and 256-QAM.
DVB-C Annex B 64-QAM. DVB-C Annex B 64-QAM.
DVB-C2 QPSK, 16-QAM, 64-QAM, 256-QAM, 1024-QAM and 4096-QAM.
DVB-T QPSK, 16-QAM and 64-QAM. DVB-T QPSK, 16-QAM and 64-QAM.
DVB-T2 QPSK, 16-QAM, 64-QAM and 256-QAM. DVB-T2 QPSK, 16-QAM, 64-QAM and 256-QAM.
DVB-S No need to set. It supports only QPSK. DVB-S No need to set. It supports only QPSK.
DVB-S2 QPSK, 8-PSK, 16-APSK and 32-APSK. DVB-S2 QPSK, 8-PSK, 16-APSK and 32-APSK.
DVB-S2X 8-APSK-L, 16-APSK-L, 32-APSK-L, 64-APSK and 64-APSK-L.
ISDB-T QPSK, DQPSK, 16-QAM and 64-QAM. ISDB-T QPSK, DQPSK, 16-QAM and 64-QAM.
ISDB-S 8-PSK, QPSK and BPSK. ISDB-S 8-PSK, QPSK and BPSK.
======================= ======================================================= ======================= =======================================================
.. note:: .. note::
As DVB-S2X specifies extensions to the DVB-S2 standard, the same
delivery system enum value is used (SYS_DVBS2).
Please notice that some of the above modulation types may not be Please notice that some of the above modulation types may not be
defined currently at the Kernel. The reason is simple: no driver defined currently at the Kernel. The reason is simple: no driver
needed such definition yet. needed such definition yet.
...@@ -854,9 +859,10 @@ The acceptable values are defined by :c:type:`fe_guard_interval`. ...@@ -854,9 +859,10 @@ The acceptable values are defined by :c:type:`fe_guard_interval`.
#. If ``DTV_GUARD_INTERVAL`` is set the ``GUARD_INTERVAL_AUTO`` the #. If ``DTV_GUARD_INTERVAL`` is set the ``GUARD_INTERVAL_AUTO`` the
hardware will try to find the correct guard interval (if capable) and hardware will try to find the correct guard interval (if capable) and
will use TMCC to fill in the missing parameters. will use TMCC to fill in the missing parameters.
#. Intervals ``GUARD_INTERVAL_1_128``, ``GUARD_INTERVAL_19_128`` #. Interval ``GUARD_INTERVAL_1_64`` is used only for DVB-C2.
and ``GUARD_INTERVAL_19_256`` are used only for DVB-T2 at #. Interval ``GUARD_INTERVAL_1_128`` is used for both DVB-C2 and DVB_T2.
present. #. Intervals ``GUARD_INTERVAL_19_128`` and ``GUARD_INTERVAL_19_256`` are
used only for DVB-T2.
#. Intervals ``GUARD_INTERVAL_PN420``, ``GUARD_INTERVAL_PN595`` and #. Intervals ``GUARD_INTERVAL_PN420``, ``GUARD_INTERVAL_PN595`` and
``GUARD_INTERVAL_PN945`` are used only for DMTB at the present. ``GUARD_INTERVAL_PN945`` are used only for DMTB at the present.
On such standard, only those intervals and ``GUARD_INTERVAL_AUTO`` On such standard, only those intervals and ``GUARD_INTERVAL_AUTO``
...@@ -916,14 +922,15 @@ The acceptable values are defined by :c:type:`fe_hierarchy`. ...@@ -916,14 +922,15 @@ The acceptable values are defined by :c:type:`fe_hierarchy`.
DTV_STREAM_ID DTV_STREAM_ID
============= =============
Used on DVB-S2, DVB-T2 and ISDB-S. Used on DVB-C2, DVB-S2, DVB-T2 and ISDB-S.
DVB-S2, DVB-T2 and ISDB-S support the transmission of several streams on DVB-C2, DVB-S2, DVB-T2 and ISDB-S support the transmission of several
a single transport stream. This property enables the digital TV driver to streams on a single transport stream. This property enables the digital
handle substream filtering, when supported by the hardware. By default, TV driver to handle substream filtering, when supported by the hardware.
substream filtering is disabled. By default, substream filtering is disabled.
For DVB-S2 and DVB-T2, the valid substream id range is from 0 to 255. For DVB-C2, DVB-S2 and DVB-T2, the valid substream id range is from 0 to
255.
For ISDB, the valid substream id range is from 1 to 65535. For ISDB, the valid substream id range is from 1 to 65535.
......
...@@ -296,6 +296,22 @@ enum fe_spectral_inversion { ...@@ -296,6 +296,22 @@ enum fe_spectral_inversion {
* @FEC_3_5: Forward Error Correction Code 3/5 * @FEC_3_5: Forward Error Correction Code 3/5
* @FEC_9_10: Forward Error Correction Code 9/10 * @FEC_9_10: Forward Error Correction Code 9/10
* @FEC_2_5: Forward Error Correction Code 2/5 * @FEC_2_5: Forward Error Correction Code 2/5
* @FEC_1_3: Forward Error Correction Code 1/3
* @FEC_1_4: Forward Error Correction Code 1/4
* @FEC_5_9: Forward Error Correction Code 5/9
* @FEC_7_9: Forward Error Correction Code 7/9
* @FEC_8_15: Forward Error Correction Code 8/15
* @FEC_11_15: Forward Error Correction Code 11/15
* @FEC_13_18: Forward Error Correction Code 13/18
* @FEC_9_20: Forward Error Correction Code 9/20
* @FEC_11_20: Forward Error Correction Code 11/20
* @FEC_23_36: Forward Error Correction Code 23/36
* @FEC_25_36: Forward Error Correction Code 25/36
* @FEC_13_45: Forward Error Correction Code 13/45
* @FEC_26_45: Forward Error Correction Code 26/45
* @FEC_28_45: Forward Error Correction Code 28/45
* @FEC_32_45: Forward Error Correction Code 32/45
* @FEC_77_90: Forward Error Correction Code 77/90
* *
* Please note that not all FEC types are supported by a given standard. * Please note that not all FEC types are supported by a given standard.
*/ */
...@@ -313,6 +329,22 @@ enum fe_code_rate { ...@@ -313,6 +329,22 @@ enum fe_code_rate {
FEC_3_5, FEC_3_5,
FEC_9_10, FEC_9_10,
FEC_2_5, FEC_2_5,
FEC_1_3,
FEC_1_4,
FEC_5_9,
FEC_7_9,
FEC_8_15,
FEC_11_15,
FEC_13_18,
FEC_9_20,
FEC_11_20,
FEC_23_36,
FEC_25_36,
FEC_13_45,
FEC_26_45,
FEC_28_45,
FEC_32_45,
FEC_77_90,
}; };
/** /**
...@@ -331,6 +363,13 @@ enum fe_code_rate { ...@@ -331,6 +363,13 @@ enum fe_code_rate {
* @APSK_32: 32-APSK modulation * @APSK_32: 32-APSK modulation
* @DQPSK: DQPSK modulation * @DQPSK: DQPSK modulation
* @QAM_4_NR: 4-QAM-NR modulation * @QAM_4_NR: 4-QAM-NR modulation
* @QAM-1024: 1024-QAM modulation
* @QAM-4096: 4096-QAM modulation
* @APSK_8_L: 8APSK-L modulation
* @APSK_16_L: 16APSK-L modulation
* @APSK_32_L: 32APSK-L modulation
* @APSK_64: 64APSK modulation
* @APSK_64_L: 64APSK-L modulation
* *
* Please note that not all modulations are supported by a given standard. * Please note that not all modulations are supported by a given standard.
* *
...@@ -350,6 +389,13 @@ enum fe_modulation { ...@@ -350,6 +389,13 @@ enum fe_modulation {
APSK_32, APSK_32,
DQPSK, DQPSK,
QAM_4_NR, QAM_4_NR,
QAM_1024,
QAM_4096,
APSK_8_L,
APSK_16_L,
APSK_32_L,
APSK_64,
APSK_64_L,
}; };
/** /**
...@@ -404,6 +450,7 @@ enum fe_transmit_mode { ...@@ -404,6 +450,7 @@ enum fe_transmit_mode {
* @GUARD_INTERVAL_PN420: PN length 420 (1/4) * @GUARD_INTERVAL_PN420: PN length 420 (1/4)
* @GUARD_INTERVAL_PN595: PN length 595 (1/6) * @GUARD_INTERVAL_PN595: PN length 595 (1/6)
* @GUARD_INTERVAL_PN945: PN length 945 (1/9) * @GUARD_INTERVAL_PN945: PN length 945 (1/9)
* @GUARD_INTERVAL_1_64: Guard interval 1/64
* *
* Please note that not all guard intervals are supported by a given standard. * Please note that not all guard intervals are supported by a given standard.
*/ */
...@@ -419,6 +466,7 @@ enum fe_guard_interval { ...@@ -419,6 +466,7 @@ enum fe_guard_interval {
GUARD_INTERVAL_PN420, GUARD_INTERVAL_PN420,
GUARD_INTERVAL_PN595, GUARD_INTERVAL_PN595,
GUARD_INTERVAL_PN945, GUARD_INTERVAL_PN945,
GUARD_INTERVAL_1_64,
}; };
/** /**
...@@ -571,6 +619,9 @@ enum fe_pilot { ...@@ -571,6 +619,9 @@ enum fe_pilot {
* @ROLLOFF_20: Roloff factor: α=20% * @ROLLOFF_20: Roloff factor: α=20%
* @ROLLOFF_25: Roloff factor: α=25% * @ROLLOFF_25: Roloff factor: α=25%
* @ROLLOFF_AUTO: Auto-detect the roloff factor. * @ROLLOFF_AUTO: Auto-detect the roloff factor.
* @ROLLOFF_15: Rolloff factor: α=15%
* @ROLLOFF_10: Rolloff factor: α=10%
* @ROLLOFF_5: Rolloff factor: α=5%
* *
* .. note: * .. note:
* *
...@@ -581,6 +632,9 @@ enum fe_rolloff { ...@@ -581,6 +632,9 @@ enum fe_rolloff {
ROLLOFF_20, ROLLOFF_20,
ROLLOFF_25, ROLLOFF_25,
ROLLOFF_AUTO, ROLLOFF_AUTO,
ROLLOFF_15,
ROLLOFF_10,
ROLLOFF_5,
}; };
/** /**
...@@ -594,6 +648,8 @@ enum fe_rolloff { ...@@ -594,6 +648,8 @@ enum fe_rolloff {
* Cable TV: DVB-C following ITU-T J.83 Annex B spec (ClearQAM) * Cable TV: DVB-C following ITU-T J.83 Annex B spec (ClearQAM)
* @SYS_DVBC_ANNEX_C: * @SYS_DVBC_ANNEX_C:
* Cable TV: DVB-C following ITU-T J.83 Annex C spec * Cable TV: DVB-C following ITU-T J.83 Annex C spec
* @SYS_DVBC2:
* Cable TV: DVB-C2
* @SYS_ISDBC: * @SYS_ISDBC:
* Cable TV: ISDB-C (no drivers yet) * Cable TV: ISDB-C (no drivers yet)
* @SYS_DVBT: * @SYS_DVBT:
...@@ -611,7 +667,7 @@ enum fe_rolloff { ...@@ -611,7 +667,7 @@ enum fe_rolloff {
* @SYS_DVBS: * @SYS_DVBS:
* Satellite TV: DVB-S * Satellite TV: DVB-S
* @SYS_DVBS2: * @SYS_DVBS2:
* Satellite TV: DVB-S2 * Satellite TV: DVB-S2 and DVB-S2X
* @SYS_TURBO: * @SYS_TURBO:
* Satellite TV: DVB-S Turbo * Satellite TV: DVB-S Turbo
* @SYS_ISDBS: * @SYS_ISDBS:
...@@ -645,6 +701,7 @@ enum fe_delivery_system { ...@@ -645,6 +701,7 @@ enum fe_delivery_system {
SYS_DVBT2, SYS_DVBT2,
SYS_TURBO, SYS_TURBO,
SYS_DVBC_ANNEX_C, SYS_DVBC_ANNEX_C,
SYS_DVBC2,
}; };
/* backward compatibility definitions for delivery systems */ /* backward compatibility definitions for delivery systems */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment