Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Robert Schlabbach <robert_s@gmx.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>

authored by

Robert Schlabbach and committed by
Mauro Carvalho Chehab
6508a50f e2a22718

+74 -10
+16 -9
Documentation/userspace-api/media/dvb/fe_property_parameters.rst
··· 89 89 DMTB 4-QAM, 16-QAM, 32-QAM, 64-QAM and 4-QAM-NR. 90 90 DVB-C Annex A/C 16-QAM, 32-QAM, 64-QAM and 256-QAM. 91 91 DVB-C Annex B 64-QAM. 92 + DVB-C2 QPSK, 16-QAM, 64-QAM, 256-QAM, 1024-QAM and 4096-QAM. 92 93 DVB-T QPSK, 16-QAM and 64-QAM. 93 94 DVB-T2 QPSK, 16-QAM, 64-QAM and 256-QAM. 94 95 DVB-S No need to set. It supports only QPSK. 95 96 DVB-S2 QPSK, 8-PSK, 16-APSK and 32-APSK. 97 + DVB-S2X 8-APSK-L, 16-APSK-L, 32-APSK-L, 64-APSK and 64-APSK-L. 96 98 ISDB-T QPSK, DQPSK, 16-QAM and 64-QAM. 97 99 ISDB-S 8-PSK, QPSK and BPSK. 98 100 ======================= ======================================================= 99 101 100 102 .. note:: 103 + 104 + As DVB-S2X specifies extensions to the DVB-S2 standard, the same 105 + delivery system enum value is used (SYS_DVBS2). 101 106 102 107 Please notice that some of the above modulation types may not be 103 108 defined currently at the Kernel. The reason is simple: no driver ··· 859 854 #. If ``DTV_GUARD_INTERVAL`` is set the ``GUARD_INTERVAL_AUTO`` the 860 855 hardware will try to find the correct guard interval (if capable) and 861 856 will use TMCC to fill in the missing parameters. 862 - #. Intervals ``GUARD_INTERVAL_1_128``, ``GUARD_INTERVAL_19_128`` 863 - and ``GUARD_INTERVAL_19_256`` are used only for DVB-T2 at 864 - present. 857 + #. Interval ``GUARD_INTERVAL_1_64`` is used only for DVB-C2. 858 + #. Interval ``GUARD_INTERVAL_1_128`` is used for both DVB-C2 and DVB_T2. 859 + #. Intervals ``GUARD_INTERVAL_19_128`` and ``GUARD_INTERVAL_19_256`` are 860 + used only for DVB-T2. 865 861 #. Intervals ``GUARD_INTERVAL_PN420``, ``GUARD_INTERVAL_PN595`` and 866 862 ``GUARD_INTERVAL_PN945`` are used only for DMTB at the present. 867 863 On such standard, only those intervals and ``GUARD_INTERVAL_AUTO`` ··· 922 916 DTV_STREAM_ID 923 917 ============= 924 918 925 - Used on DVB-S2, DVB-T2 and ISDB-S. 919 + Used on DVB-C2, DVB-S2, DVB-T2 and ISDB-S. 926 920 927 - DVB-S2, DVB-T2 and ISDB-S support the transmission of several streams on 928 - a single transport stream. This property enables the digital TV driver to 929 - handle substream filtering, when supported by the hardware. By default, 930 - substream filtering is disabled. 921 + DVB-C2, DVB-S2, DVB-T2 and ISDB-S support the transmission of several 922 + streams on a single transport stream. This property enables the digital 923 + TV driver to handle substream filtering, when supported by the hardware. 924 + By default, substream filtering is disabled. 931 925 932 - For DVB-S2 and DVB-T2, the valid substream id range is from 0 to 255. 926 + For DVB-C2, DVB-S2 and DVB-T2, the valid substream id range is from 0 to 927 + 255. 933 928 934 929 For ISDB, the valid substream id range is from 1 to 65535. 935 930
+58 -1
include/uapi/linux/dvb/frontend.h
··· 296 296 * @FEC_3_5: Forward Error Correction Code 3/5 297 297 * @FEC_9_10: Forward Error Correction Code 9/10 298 298 * @FEC_2_5: Forward Error Correction Code 2/5 299 + * @FEC_1_3: Forward Error Correction Code 1/3 300 + * @FEC_1_4: Forward Error Correction Code 1/4 301 + * @FEC_5_9: Forward Error Correction Code 5/9 302 + * @FEC_7_9: Forward Error Correction Code 7/9 303 + * @FEC_8_15: Forward Error Correction Code 8/15 304 + * @FEC_11_15: Forward Error Correction Code 11/15 305 + * @FEC_13_18: Forward Error Correction Code 13/18 306 + * @FEC_9_20: Forward Error Correction Code 9/20 307 + * @FEC_11_20: Forward Error Correction Code 11/20 308 + * @FEC_23_36: Forward Error Correction Code 23/36 309 + * @FEC_25_36: Forward Error Correction Code 25/36 310 + * @FEC_13_45: Forward Error Correction Code 13/45 311 + * @FEC_26_45: Forward Error Correction Code 26/45 312 + * @FEC_28_45: Forward Error Correction Code 28/45 313 + * @FEC_32_45: Forward Error Correction Code 32/45 314 + * @FEC_77_90: Forward Error Correction Code 77/90 299 315 * 300 316 * Please note that not all FEC types are supported by a given standard. 301 317 */ ··· 329 313 FEC_3_5, 330 314 FEC_9_10, 331 315 FEC_2_5, 316 + FEC_1_3, 317 + FEC_1_4, 318 + FEC_5_9, 319 + FEC_7_9, 320 + FEC_8_15, 321 + FEC_11_15, 322 + FEC_13_18, 323 + FEC_9_20, 324 + FEC_11_20, 325 + FEC_23_36, 326 + FEC_25_36, 327 + FEC_13_45, 328 + FEC_26_45, 329 + FEC_28_45, 330 + FEC_32_45, 331 + FEC_77_90, 332 332 }; 333 333 334 334 /** ··· 363 331 * @APSK_32: 32-APSK modulation 364 332 * @DQPSK: DQPSK modulation 365 333 * @QAM_4_NR: 4-QAM-NR modulation 334 + * @QAM-1024: 1024-QAM modulation 335 + * @QAM-4096: 4096-QAM modulation 336 + * @APSK_8_L: 8APSK-L modulation 337 + * @APSK_16_L: 16APSK-L modulation 338 + * @APSK_32_L: 32APSK-L modulation 339 + * @APSK_64: 64APSK modulation 340 + * @APSK_64_L: 64APSK-L modulation 366 341 * 367 342 * Please note that not all modulations are supported by a given standard. 368 343 * ··· 389 350 APSK_32, 390 351 DQPSK, 391 352 QAM_4_NR, 353 + QAM_1024, 354 + QAM_4096, 355 + APSK_8_L, 356 + APSK_16_L, 357 + APSK_32_L, 358 + APSK_64, 359 + APSK_64_L, 392 360 }; 393 361 394 362 /** ··· 450 404 * @GUARD_INTERVAL_PN420: PN length 420 (1/4) 451 405 * @GUARD_INTERVAL_PN595: PN length 595 (1/6) 452 406 * @GUARD_INTERVAL_PN945: PN length 945 (1/9) 407 + * @GUARD_INTERVAL_1_64: Guard interval 1/64 453 408 * 454 409 * Please note that not all guard intervals are supported by a given standard. 455 410 */ ··· 466 419 GUARD_INTERVAL_PN420, 467 420 GUARD_INTERVAL_PN595, 468 421 GUARD_INTERVAL_PN945, 422 + GUARD_INTERVAL_1_64, 469 423 }; 470 424 471 425 /** ··· 619 571 * @ROLLOFF_20: Roloff factor: α=20% 620 572 * @ROLLOFF_25: Roloff factor: α=25% 621 573 * @ROLLOFF_AUTO: Auto-detect the roloff factor. 574 + * @ROLLOFF_15: Rolloff factor: α=15% 575 + * @ROLLOFF_10: Rolloff factor: α=10% 576 + * @ROLLOFF_5: Rolloff factor: α=5% 622 577 * 623 578 * .. note: 624 579 * ··· 632 581 ROLLOFF_20, 633 582 ROLLOFF_25, 634 583 ROLLOFF_AUTO, 584 + ROLLOFF_15, 585 + ROLLOFF_10, 586 + ROLLOFF_5, 635 587 }; 636 588 637 589 /** ··· 648 594 * Cable TV: DVB-C following ITU-T J.83 Annex B spec (ClearQAM) 649 595 * @SYS_DVBC_ANNEX_C: 650 596 * Cable TV: DVB-C following ITU-T J.83 Annex C spec 597 + * @SYS_DVBC2: 598 + * Cable TV: DVB-C2 651 599 * @SYS_ISDBC: 652 600 * Cable TV: ISDB-C (no drivers yet) 653 601 * @SYS_DVBT: ··· 667 611 * @SYS_DVBS: 668 612 * Satellite TV: DVB-S 669 613 * @SYS_DVBS2: 670 - * Satellite TV: DVB-S2 614 + * Satellite TV: DVB-S2 and DVB-S2X 671 615 * @SYS_TURBO: 672 616 * Satellite TV: DVB-S Turbo 673 617 * @SYS_ISDBS: ··· 701 645 SYS_DVBT2, 702 646 SYS_TURBO, 703 647 SYS_DVBC_ANNEX_C, 648 + SYS_DVBC2, 704 649 }; 705 650 706 651 /* backward compatibility definitions for delivery systems */