media: dvb: add DVB-C2 and DVB-S2X parameter values
authorRobert Schlabbach <robert_s@gmx.net>
Fri, 14 Jan 2022 07:43:48 +0000 (07:43 +0000)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Fri, 25 Nov 2022 09:57:14 +0000 (09:57 +0000)
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-bap69
Signed-off-by: Robert Schlabbach <robert_s@gmx.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Documentation/userspace-api/media/dvb/fe_property_parameters.rst
include/uapi/linux/dvb/frontend.h

index ecd84a8..1717a05 100644 (file)
@@ -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.
 DVB-C Annex A/C                16-QAM, 32-QAM, 64-QAM and 256-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-T2                 QPSK, 16-QAM, 64-QAM and 256-QAM.
 DVB-S                  No need to set. It supports only QPSK.
 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-S                 8-PSK, QPSK and BPSK.
 ======================= =======================================================
 
 .. 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
    defined currently at the Kernel. The reason is simple: no driver
    needed such definition yet.
@@ -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
       hardware will try to find the correct guard interval (if capable) and
       will use TMCC to fill in the missing parameters.
-   #. Intervals ``GUARD_INTERVAL_1_128``, ``GUARD_INTERVAL_19_128``
-      and ``GUARD_INTERVAL_19_256`` are used only for DVB-T2 at
-      present.
+   #. Interval ``GUARD_INTERVAL_1_64`` is used only for DVB-C2.
+   #. Interval ``GUARD_INTERVAL_1_128`` is used for both DVB-C2 and DVB_T2.
+   #. Intervals ``GUARD_INTERVAL_19_128`` and ``GUARD_INTERVAL_19_256`` are
+      used only for DVB-T2.
    #. Intervals ``GUARD_INTERVAL_PN420``, ``GUARD_INTERVAL_PN595`` and
       ``GUARD_INTERVAL_PN945`` are used only for DMTB at the present.
       On such standard, only those intervals and ``GUARD_INTERVAL_AUTO``
@@ -916,14 +922,15 @@ The acceptable values are defined by :c:type:`fe_hierarchy`.
 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
-a single transport stream. This property enables the digital TV driver to
-handle substream filtering, when supported by the hardware. By default,
-substream filtering is disabled.
+DVB-C2, DVB-S2, DVB-T2 and ISDB-S support the transmission of several
+streams on a single transport stream. This property enables the digital
+TV driver to handle substream filtering, when supported by the hardware.
+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.
 
index 4f9b455..4fed9e3 100644 (file)
@@ -296,6 +296,22 @@ enum fe_spectral_inversion {
  * @FEC_3_5:  Forward Error Correction Code 3/5
  * @FEC_9_10: Forward Error Correction Code 9/10
  * @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.
  */
@@ -313,6 +329,22 @@ enum fe_code_rate {
        FEC_3_5,
        FEC_9_10,
        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 {
  * @APSK_32:   32-APSK modulation
  * @DQPSK:     DQPSK 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.
  *
@@ -350,6 +389,13 @@ enum fe_modulation {
        APSK_32,
        DQPSK,
        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 {
  * @GUARD_INTERVAL_PN420:      PN length 420 (1/4)
  * @GUARD_INTERVAL_PN595:      PN length 595 (1/6)
  * @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.
  */
@@ -419,6 +466,7 @@ enum fe_guard_interval {
        GUARD_INTERVAL_PN420,
        GUARD_INTERVAL_PN595,
        GUARD_INTERVAL_PN945,
+       GUARD_INTERVAL_1_64,
 };
 
 /**
@@ -571,6 +619,9 @@ enum fe_pilot {
  * @ROLLOFF_20:                Roloff factor: α=20%
  * @ROLLOFF_25:                Roloff factor: α=25%
  * @ROLLOFF_AUTO:      Auto-detect the roloff factor.
+ * @ROLLOFF_15:                Rolloff factor: α=15%
+ * @ROLLOFF_10:                Rolloff factor: α=10%
+ * @ROLLOFF_5:         Rolloff factor: α=5%
  *
  * .. note:
  *
@@ -581,6 +632,9 @@ enum fe_rolloff {
        ROLLOFF_20,
        ROLLOFF_25,
        ROLLOFF_AUTO,
+       ROLLOFF_15,
+       ROLLOFF_10,
+       ROLLOFF_5,
 };
 
 /**
@@ -594,6 +648,8 @@ enum fe_rolloff {
  *     Cable TV: DVB-C following ITU-T J.83 Annex B spec (ClearQAM)
  * @SYS_DVBC_ANNEX_C:
  *     Cable TV: DVB-C following ITU-T J.83 Annex C spec
+ * @SYS_DVBC2:
+ *      Cable TV: DVB-C2
  * @SYS_ISDBC:
  *     Cable TV: ISDB-C (no drivers yet)
  * @SYS_DVBT:
@@ -611,7 +667,7 @@ enum fe_rolloff {
  * @SYS_DVBS:
  *     Satellite TV: DVB-S
  * @SYS_DVBS2:
- *     Satellite TV: DVB-S2
+ *     Satellite TV: DVB-S2 and DVB-S2X
  * @SYS_TURBO:
  *     Satellite TV: DVB-S Turbo
  * @SYS_ISDBS:
@@ -645,6 +701,7 @@ enum fe_delivery_system {
        SYS_DVBT2,
        SYS_TURBO,
        SYS_DVBC_ANNEX_C,
+       SYS_DVBC2,
 };
 
 /* backward compatibility definitions for delivery systems */