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

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-bap69


Signed-off-by: default avatarRobert Schlabbach <robert_s@gmx.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent e2a22718
Loading
Loading
Loading
Loading
+16 −9
Original line number Diff line number Diff line
@@ -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.

+58 −1
Original line number Diff line number Diff line
@@ -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 */