Add FEC rates, S2X params and 64K transmission
v3 cover Add FEC rates, S2X params and 64K transmission
From: Daniel Scheller <[email protected]>
Note: This v3 doesn't yet implement anything to allow userspace to detect bits regarding S2X, nor does it implement anything new to report frontend capabilities. At the moment, the main purpose for this is to enable any demod frontend to report the current signal parameters more accurate. Right now this (partially) is for the stv0910 demod, and with additional hardware currently in development in mind which supports more S2X bits. There's quite a lot missing from fe_caps right now which almost all demods autodetect anyway, so let's at least properly report signal stats.
dddvb brings a few additional FEC rates (1/4 and 1/3), 64/128/256APSK modulations and more rolloff factors (DVB-S2X), and 64K transmission mode (DVB-T2). These rather trivial patches bring them to mainline, and puts these missing bits into the stv0910's get_frontend() callback (FEC 1/4 and 1/3 are handled throughout the rest of the demod driver already). In addition (as suggestion from Richard Scobie), the stv0910 driver now reports it's active delivery system.
Changes from v2 to v3:
- API bits squashed into one commit, stv0910 changes squashed into another single commit
- DVB-S2X related bits added to the uAPI docs
- DVB API bumped to v5.12
Changes from v1 to v2:
- DVB-S2X rolloff factors and reporting
- report of the active delivery system in stv0910:get_frontend()
Daniel Scheller (3):
[media] dvb_frontend: add S2X and misc. other enums [media] docs: documentation bits for S2X and the 64K transmission mode [media] dvb-frontends/stv0910: more detailed reporting in
get_frontend()
Documentation/media/frontend.h.rst.exceptions | 9 ++++ .../media/uapi/dvb/fe_property_parameters.rst | 50 ++++++++++++++-------- .../dvb/frontend-property-satellite-systems.rst | 8 ++-- drivers/media/dvb-core/dvb_frontend.c | 9 ++++ drivers/media/dvb-frontends/stv0910.c | 16 ++++--- include/uapi/linux/dvb/frontend.h | 29 ++++++++++--- include/uapi/linux/dvb/version.h | 2 +- 7 files changed, 90 insertions(+), 33 deletions(-)
Signature · 1 line
2.16.1
PATCH v3 1/3 dvb_frontend: add S2X and misc. other enums
From: Daniel Scheller <[email protected]>
Additional enums:
* FEC ratios 1/4 and 1/3
* 64/128/256-APSK modulations (DVB-S2X)
* 15%, 10% and 5% rolloff factors (DVB-S2X)
* 64K transmission mode (DVB-T2)
Add these enums to the frontend.h docs exceptions aswell (uapi docs are updated separately).
Also, bump the DVB API version to 5.12 to make userspace aware of these new enums.
---
v2 to v3:
- All new enum patches squashed into one commit
- DVB API bump to 5.12
Please take note of some additional things in the cover letter.
Documentation/media/frontend.h.rst.exceptions | 9 +++++++++ drivers/media/dvb-core/dvb_frontend.c | 9 +++++++++ include/uapi/linux/dvb/frontend.h | 29 ++++++++++++++++++++++----- include/uapi/linux/dvb/version.h | 2 +- 4 files changed, 43 insertions(+), 6 deletions(-)
Documentation/media/frontend.h.rst.exceptions +9 -0
@@ -84,6 +84,9 @@ ignore symbol APSK_16 ignore symbol APSK_32 ignore symbol DQPSK ignore symbol QAM_4_NR +ignore symbol APSK_64 +ignore symbol APSK_128 +ignore symbol APSK_256 ignore symbol SEC_VOLTAGE_13 ignore symbol SEC_VOLTAGE_18
@@ -117,6 +120,8 @@ ignore symbol FEC_AUTO ignore symbol FEC_3_5 ignore symbol FEC_9_10 ignore symbol FEC_2_5 +ignore symbol FEC_1_4 +ignore symbol FEC_1_3 ignore symbol TRANSMISSION_MODE_AUTO ignore symbol TRANSMISSION_MODE_1K
@@ -129,6 +134,7 @@ ignore symbol TRANSMISSION_MODE_C1 ignore symbol TRANSMISSION_MODE_C3780 ignore symbol TRANSMISSION_MODE_2K ignore symbol TRANSMISSION_MODE_8K +ignore symbol TRANSMISSION_MODE_64K ignore symbol GUARD_INTERVAL_AUTO ignore symbol GUARD_INTERVAL_1_128
@@ -161,6 +167,9 @@ ignore symbol ROLLOFF_35 ignore symbol ROLLOFF_20 ignore symbol ROLLOFF_25 ignore symbol ROLLOFF_AUTO +ignore symbol ROLLOFF_15 +ignore symbol ROLLOFF_10 +ignore symbol ROLLOFF_5 ignore symbol INVERSION_ON ignore symbol INVERSION_OFF
drivers/media/dvb-core/dvb_frontend.c +9 -0
@@ -2183,6 +2183,15 @@ static int dtv_set_frontend(struct dvb_frontend *fe)break ;case SYS_DVBS2 :switch (c->rolloff) { +case ROLLOFF_5 : + rolloff =105 ; +break ; +case ROLLOFF_10 : + rolloff =110 ; +break ; +case ROLLOFF_15 : + rolloff =115 ; +break ;case ROLLOFF_20 : rolloff =120 ;break ;
include/uapi/linux/dvb/frontend.h +24 -5
@@ -296,6 +296,8 @@ 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_4: Forward Error Correction Code 1/4 +* @FEC_1_3: Forward Error Correction Code 1/3 * * Please note that not all FEC types are supported by a given standard. */
@@ -313,6 +315,8 @@ enum fe_code_rate {FEC_3_5 ,FEC_9_10 ,FEC_2_5 , +FEC_1_4 , + FEC_1_3, };/**
@@ -331,6 +335,9 @@ enum fe_code_rate {* @APSK_32: 32-APSK modulation * @DQPSK: DQPSK modulation * @QAM_4_NR: 4-QAM-NR modulation +* @APSK_64: 64-APSK modulation +* @APSK_128: 128-APSK modulation +* @APSK_256: 256-APSK modulation * * Please note that not all modulations are supported by a given standard. *
@@ -350,6 +357,9 @@ enum fe_modulation {APSK_32 ,DQPSK ,QAM_4_NR , +APSK_64 , +APSK_128 , + APSK_256, };/**
@@ -374,6 +384,8 @@ enum fe_modulation {* Single Carrier (C=1) transmission mode (DTMB only) * @TRANSMISSION_MODE_C3780: * Multi Carrier (C=3780) transmission mode (DTMB only) +* @TRANSMISSION_MODE_64K: +* Transmission mode 64K * * Please note that not all transmission modes are supported by a given * standard.
@@ -388,6 +400,7 @@ enum fe_transmit_mode {TRANSMISSION_MODE_32K ,TRANSMISSION_MODE_C1 ,TRANSMISSION_MODE_C3780 , + TRANSMISSION_MODE_64K, };/**
@@ -567,20 +580,26 @@ enum fe_pilot {/** * enum fe_rolloff - Rolloff factor -* @ROLLOFF_35: Roloff factor: α=35% -* @ROLLOFF_20: Roloff factor: α=20% -* @ROLLOFF_25: Roloff factor: α=25% -* @ROLLOFF_AUTO: Auto-detect the roloff factor. +* @ROLLOFF_35: Rolloff factor: α=35% +* @ROLLOFF_20: Rolloff factor: α=20% +* @ROLLOFF_25: Rolloff factor: α=25% +* @ROLLOFF_AUTO: Auto-detect the rolloff factor. +* @ROLLOFF_15: Rolloff factor: α=15% +* @ROLLOFF_10: Rolloff factor: α=10% +* @ROLLOFF_5: Rolloff factor: α=5% * * .. note: * -* Roloff factor of 35% is implied on DVB-S. On DVB-S2, it is default. +* Rolloff factor of 35% is implied on DVB-S. On DVB-S2, it is default. */ enum fe_rolloff {ROLLOFF_35 ,ROLLOFF_20 ,ROLLOFF_25 ,ROLLOFF_AUTO , +ROLLOFF_15 , +ROLLOFF_10 , +ROLLOFF_5 , };/**
include/uapi/linux/dvb/version.h +1 -1
@@ -25,6 +25,6 @@#define _DVBVERSION_H_#define DVB_API_VERSION 5 -#define DVB_API_VERSION_MINOR 11 +#define DVB_API_VERSION_MINOR 12#endif /*_DVBVERSION_H_*/
Signature · 1 line
2.16.1
PATCH v3 2/3 docs: documentation bits for S2X and the 64K transmission mode
In reply to Daniel SchellerFrom: Daniel Scheller <[email protected]>
Add documentation bits regarding DVB-S2X. Since S2X only brings more APSK modulations and rolloff's, notice that S2 equals S2X where appropriate, and mention the additional modulations and rolloff's at the appropriate places.
---
v2 to v3:
- Added these documentation bits
Please take note of some additional things in the cover letter.
.../media/uapi/dvb/fe_property_parameters.rst | 50 ++++++++++++++-------- .../dvb/frontend-property-satellite-systems.rst | 8 ++-- 2 files changed, 36 insertions(+), 22 deletions(-)
Documentation/media/uapi/dvb/fe_property_parameters.rst +32 -18
@@ -92,7 +92,8 @@ DVB-C Annex B 64-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-S2(X) QPSK, 8-PSK, 16-APSK and 32-APSK. DVB-S2X additionally + supports 64-APSK, 128-APSK and 256-APSK. ISDB-T QPSK, DQPSK, 16-QAM and 64-QAM. ISDB-S 8-PSK, QPSK and BPSK. ======================= =======================================================
@@ -146,7 +147,8 @@ ISDB-T 5MHz, 6MHz, 7MHz and 8MHz, although most places :ref:`DTV-SYMBOL-RATE`, and the rolloff factor, with is fixed for DVB-C and DVB-S. - For DVB-S2, the rolloff should also be set via :ref:`DTV-ROLLOFF`. + For DVB-S2 and DVB-S2X, the rolloff should also be set via + :ref:`DTV-ROLLOFF`. .. _DTV-INVERSION:
@@ -215,9 +217,9 @@ Currently not used. DTV_PILOT ========= -Used on DVB-S2. +Used on DVB-S2 and DVB-S2X. -Sets DVB-S2 pilot. +Sets DVB-S2(X) pilot. The acceptable values are defined by :c:type:`fe_pilot`.
@@ -227,12 +229,17 @@ The acceptable values are defined by :c:type:`fe_pilot`. DTV_ROLLOFF =========== -Used on DVB-S2. +Used on DVB-S2 and DVB-S2X. -Sets DVB-S2 rolloff. +Sets DVB-S2(X) rolloff. The acceptable values are defined by :c:type:`fe_rolloff`. +.. note:: + + Rolloff factors 15%, 10% an 5% are part of the DVB-S2X specifications + and thus are valid only for S2X-modulated transponders. + .. _DTV-DISEQC-SLAVE-REPLY:
@@ -267,6 +274,12 @@ Specifies the type of the delivery system. The acceptable values are defined by :c:type:`fe_delivery_system`. +.. note:: + + Since DVB-S2X only defines more rolloff's and more APSK modulations + without adding more attributes, DVB-S2X is handled via the DVB-S2 + delivery system. + .. _DTV-ISDBT-PARTIAL-RECEPTION:
@@ -894,7 +907,7 @@ The acceptable values are defined by :c:type:`fe_transmit_mode`. #. DVB-T specifies 2K and 8K as valid sizes. - #. DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K. + #. DVB-T2 specifies 1K, 2K, 4K, 8K, 16K, 32K and 64K. #. DTMB specifies C1 and C3780.
@@ -916,14 +929,14 @@ 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-S2(X), 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, +DVB-S2(X), 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-S2(X) 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.
@@ -994,13 +1007,14 @@ use the special macro LNA_AUTO to set LNA auto DTV_SCRAMBLING_SEQUENCE_INDEX ============================= -Used on DVB-S2. +Used on DVB-S2 and DVB-S2X. -This 18 bit field, when present, carries the index of the DVB-S2 physical -layer scrambling sequence as defined in clause 5.5.4 of EN 302 307. -There is no explicit signalling method to convey scrambling sequence index -to the receiver. If S2 satellite delivery system descriptor is available -it can be used to read the scrambling sequence index (EN 300 468 table 41). +This 18 bit field, when present, carries the index of the DVB-S2(X) +physical layer scrambling sequence as defined in clause 5.5.4 of +EN 302 307. There is no explicit signalling method to convey scrambling +sequence index to the receiver. If S2 satellite delivery system descriptor +is available it can be used to read the scrambling sequence index +(EN 300 468 table 41). By default, gold scrambling sequence index 0 is used.
Documentation/media/uapi/dvb/frontend-property-satellite-systems.rst +4 -4
@@ -46,11 +46,11 @@ Future implementations might add those two missing parameters: .. _dvbs2-params: -DVB-S2 delivery system -====================== +DVB-S2 and -S2X delivery systems +================================ -In addition to all parameters valid for DVB-S, DVB-S2 supports the -following parameters: +In addition to all parameters valid for DVB-S, both DVB-S2 and DVB-S2X +support the following parameters: - :ref:`DTV_MODULATION <DTV-MODULATION>`
Signature · 1 line
2.16.1
PATCH v3 3/3 dvb-frontends/stv0910: more detailed reporting in get_frontend()
In reply to Daniel SchellerFrom: Daniel Scheller <[email protected]>
The first two missing FECs in the modcod2fec fe_code_rate table were 1/4 and 1/3. Add them as they're now defined by the API. Also, report the currently used S2 rolloff factor in get_frontend(). For cosmetic reasons, also change all feroll_off occurences to fe_rolloff. In addition, Richard Scobie <[email protected]> suggested to report the currently active delivery system aswell, so add this while at it.
---
v2 to v3:
- Squashed all stv0910 get_frontend() reporting into a single commit
Please take note of some additional things in the cover letter.
drivers/media/dvb-frontends/stv0910.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-)
drivers/media/dvb-frontends/stv0910.c +11 -5
@@ -113,7 +113,7 @@ struct stv {enum fe_stv0910_mod_cod mod_cod;enum dvbs2_fectype fectype;u32 pilots; -enum fe_stv0910_roll_off feroll_off; +enum fe_stv0910_roll_off fe_rolloff;int is_standard_broadcast;int is_vcm;
@@ -541,7 +541,7 @@ static int get_signal_parameters(struct stv *state) } state->is_vcm =0 ; state->is_standard_broadcast =1 ; - state->feroll_off =FE_SAT_35 ; + state->fe_rolloff =FE_SAT_35 ; }return 0 ; }
@@ -1300,14 +1300,14 @@ static int manage_matype_info(struct stv *state)read_regs (state,RSTV0910_P2_MATSTR1 + state->regoff, bbheader,2 ); - state->feroll_off = + state->fe_rolloff = (enum fe_stv0910_roll_off )(bbheader[0 ] &0x03 ); state->is_vcm = (bbheader[0 ] &0x10 ) ==0 ; state->is_standard_broadcast = (bbheader[0 ] &0xFC ) ==0xF0 ; }else if (state->receive_mode ==RCVMODE_DVBS ) { state->is_vcm =0 ; state->is_standard_broadcast =1 ; - state->feroll_off =FE_SAT_35 ; + state->fe_rolloff =FE_SAT_35 ; }return 0 ; }
@@ -1562,7 +1562,7 @@ static int get_frontend(struct dvb_frontend *fe, APSK_32, };const enum fe_code_rate modcod2fec[0x20 ] = { -FEC_NONE ,FEC_NONE ,FEC_NONE ,FEC_2_5 , +FEC_NONE ,FEC_1_4 ,FEC_1_3 ,FEC_2_5 ,FEC_1_2 ,FEC_3_5 ,FEC_2_3 ,FEC_3_4 ,FEC_4_5 ,FEC_5_6 ,FEC_8_9 ,FEC_9_10 ,FEC_3_5 ,FEC_2_3 ,FEC_3_4 ,FEC_5_6 ,
@@ -1571,11 +1571,16 @@ static int get_frontend(struct dvb_frontend *fe,FEC_3_4 ,FEC_4_5 ,FEC_5_6 ,FEC_8_9 , FEC_9_10 }; +const enum fe_rolloff ro2ro[4 ] = { +ROLLOFF_35 ,ROLLOFF_25 ,ROLLOFF_20 ,ROLLOFF_15 , + };read_reg (state,RSTV0910_P2_DMDMODCOD + state->regoff, &tmp); mc = ((tmp &0x7c ) >>2 ); p->pilot = (tmp &0x01 ) ?PILOT_ON :PILOT_OFF ; p->modulation = modcod2mod[mc]; p->fec_inner = modcod2fec[mc]; + p->rolloff = ro2ro[state->fe_rolloff]; + p->delivery_system =SYS_DVBS2 ; }else if (state->receive_mode ==RCVMODE_DVBS ) {read_reg (state,RSTV0910_P2_VITCURPUN + state->regoff, &tmp);switch (tmp &0x1F ) {
@@ -1599,6 +1604,7 @@ static int get_frontend(struct dvb_frontend *fe,break ; } p->rolloff =ROLLOFF_35 ; + p->delivery_system =SYS_DVBS ; }if (state->receive_mode !=RCVMODE_NONE ) {
Signature · 1 line
2.16.1
Re: [PATCH v3 1/3] [media] dvb_frontend: add S2X and misc. other enums
In reply to Daniel SchellerEm Tue, 13 Mar 2018 23:18:03 +0100
Daniel Scheller <[email protected]> escreveu:
Quoted 8 lines
From: Daniel Scheller <[email protected]>
Additional enums:
* FEC ratios 1/4 and 1/3
* 64/128/256-APSK modulations (DVB-S2X)
* 15%, 10% and 5% rolloff factors (DVB-S2X)
* 64K transmission mode (DVB-T2)
Quoted 5 lines
Add these enums to the
frontend.hdocs exceptions aswell (uapi docs are updated separately).Also, bump the DVB API version to 5.12 to make userspace aware of these new enums.
Series look good, except for one detail: how userspace would know if a device supports S2(X) or not?
Quoted 172 lines
Signed-off-by Daniel Scheller <[email protected]>---
v2 to v3:
- All new enum patches squashed into one commit
- DVB API bump to 5.12Please take note of some additional things in the cover letter.
Documentation/media/frontend.h.rst.exceptions | 9 +++++++++ drivers/media/dvb-core/dvb_frontend.c | 9 +++++++++ include/uapi/linux/dvb/frontend.h | 29 ++++++++++++++++++++++----- include/uapi/linux/dvb/version.h | 2 +- 4 files changed, 43 insertions(+), 6 deletions(-)Documentation/media/frontend.h.rst.exceptions +9
-0@@ -84,6 +84,9 @@ ignore symbol APSK_16 ignore symbol APSK_32 ignore symbol DQPSK ignore symbol QAM_4_NR +ignore symbol APSK_64 +ignore symbol APSK_128 +ignore symbol APSK_256 ignore symbol SEC_VOLTAGE_13 ignore symbol SEC_VOLTAGE_18@@ -117,6 +120,8 @@ ignore symbol FEC_AUTO ignore symbol FEC_3_5 ignore symbol FEC_9_10 ignore symbol FEC_2_5 +ignore symbol FEC_1_4 +ignore symbol FEC_1_3 ignore symbol TRANSMISSION_MODE_AUTO ignore symbol TRANSMISSION_MODE_1K@@ -129,6 +134,7 @@ ignore symbol TRANSMISSION_MODE_C1 ignore symbol TRANSMISSION_MODE_C3780 ignore symbol TRANSMISSION_MODE_2K ignore symbol TRANSMISSION_MODE_8K +ignore symbol TRANSMISSION_MODE_64K ignore symbol GUARD_INTERVAL_AUTO ignore symbol GUARD_INTERVAL_1_128@@ -161,6 +167,9 @@ ignore symbol ROLLOFF_35 ignore symbol ROLLOFF_20 ignore symbol ROLLOFF_25 ignore symbol ROLLOFF_AUTO +ignore symbol ROLLOFF_15 +ignore symbol ROLLOFF_10 +ignore symbol ROLLOFF_5 ignore symbol INVERSION_ON ignore symbol INVERSION_OFFdrivers/media/dvb-core/dvb_frontend.c +9
-0@@ -2183,6 +2183,15 @@ static int dtv_set_frontend(struct dvb_frontend *fe)break ;case SYS_DVBS2 :switch (c->rolloff) { +case ROLLOFF_5 : + rolloff =105 ; +break ; +case ROLLOFF_10 : + rolloff =110 ; +break ; +case ROLLOFF_15 : + rolloff =115 ; +break ;case ROLLOFF_20 : rolloff =120 ;break ;include/uapi/linux/dvb/frontend.h +24
-5@@ -296,6 +296,8 @@ 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_4: Forward Error Correction Code 1/4 +* @FEC_1_3: Forward Error Correction Code 1/3 * * Please note that not all FEC types are supported by a given standard. */ @@ -313,6 +315,8 @@ enum fe_code_rate {FEC_3_5 ,FEC_9_10 ,FEC_2_5 , +FEC_1_4 , + FEC_1_3, };/** @@ -331,6 +335,9 @@ enum fe_code_rate {* @APSK_32: 32-APSK modulation * @DQPSK: DQPSK modulation * @QAM_4_NR: 4-QAM-NR modulation +* @APSK_64: 64-APSK modulation +* @APSK_128: 128-APSK modulation +* @APSK_256: 256-APSK modulation * * Please note that not all modulations are supported by a given standard. * @@ -350,6 +357,9 @@ enum fe_modulation {APSK_32 ,DQPSK ,QAM_4_NR , +APSK_64 , +APSK_128 , + APSK_256, };/** @@ -374,6 +384,8 @@ enum fe_modulation {* Single Carrier (C=1) transmission mode (DTMB only) * @TRANSMISSION_MODE_C3780: * Multi Carrier (C=3780) transmission mode (DTMB only) +* @TRANSMISSION_MODE_64K: +* Transmission mode 64K * * Please note that not all transmission modes are supported by a given * standard. @@ -388,6 +400,7 @@ enum fe_transmit_mode {TRANSMISSION_MODE_32K ,TRANSMISSION_MODE_C1 ,TRANSMISSION_MODE_C3780 , + TRANSMISSION_MODE_64K, };/** @@ -567,20 +580,26 @@ enum fe_pilot {/** * enum fe_rolloff - Rolloff factor -* @ROLLOFF_35: Roloff factor: α=35% -* @ROLLOFF_20: Roloff factor: α=20% -* @ROLLOFF_25: Roloff factor: α=25% -* @ROLLOFF_AUTO: Auto-detect the roloff factor. +* @ROLLOFF_35: Rolloff factor: α=35% +* @ROLLOFF_20: Rolloff factor: α=20% +* @ROLLOFF_25: Rolloff factor: α=25% +* @ROLLOFF_AUTO: Auto-detect the rolloff factor. +* @ROLLOFF_15: Rolloff factor: α=15% +* @ROLLOFF_10: Rolloff factor: α=10% +* @ROLLOFF_5: Rolloff factor: α=5% * * .. note: * -* Roloff factor of 35% is implied on DVB-S. On DVB-S2, it is default. +* Rolloff factor of 35% is implied on DVB-S. On DVB-S2, it is default. */ enum fe_rolloff {ROLLOFF_35 ,ROLLOFF_20 ,ROLLOFF_25 ,ROLLOFF_AUTO , +ROLLOFF_15 , +ROLLOFF_10 , +ROLLOFF_5 , };/** include/uapi/linux/dvb/version.h +0
-0
include/uapi/linux/dvb/version.h line 30
Quoted 7 lines
include/uapi/linux/dvb/version.h +1
-1@@ -25,6 +25,6 @@#define _DVBVERSION_H_#define DVB_API_VERSION 5 -#define DVB_API_VERSION_MINOR 11 +#define DVB_API_VERSION_MINOR 12#endif /*_DVBVERSION_H_*/
Thanks,
Mauro
Re: [PATCH v3 1/3] [media] dvb_frontend: add S2X and misc. other enums
Am Fri, 4 May 2018 12:51:02 -0300
schrieb Mauro Carvalho Chehab <[email protected]>:
Quoted 11 lines
Em Tue, 13 Mar 2018 23:18:03 +0100
Daniel Scheller <[email protected]> escreveu:Quoted 8 lines
From: Daniel Scheller <[email protected]>
Additional enums:
* FEC ratios 1/4 and 1/3
* 64/128/256-APSK modulations (DVB-S2X)
* 15%, 10% and 5% rolloff factors (DVB-S2X)
* 64K transmission mode (DVB-T2)
Quoted 8 lines
Quoted 5 lines
Add these enums to the
frontend.hdocs exceptions aswell (uapi docs are updated separately).Also, bump the DVB API version to 5.12 to make userspace aware of these new enums.
Series look good, except for one detail: how userspace would know if a device supports S2(X) or not?
I don't think userspace (applications) actually do really need to know since there's nothing additionally applications have to set up wrt dealing with S2X. They simply set frequency, symbolrate and optionally SYS_DVBS2 (and I have a feeling they don't even have to do this since drivers or demods, even, will care about S or S2, or S2X themselves). In fact, all that these patches do (and what is necessary, and what S2X is about) is to add the enum values which demod drivers then can report via the get_frontend IOCTL.
Of course we can add a SYS_DVBS2X and put that to the caps fe_ops of S2X supporting drivers, but in the end we would only change all
if (SYS_DVBS2...) {}
to
if (SYS_DVBS2 || SYS_DVBS2X...) {}as there are no new fancy properties for S2X but only more rolloffs and modulation types. Adding a FE_CAN_DVBS2X won't work at this time since there are no more bits left on this caps value.
So (since you marked the series as "Changes requested"), please maybe reconsider, and I believe a SYS_DVBS2X would add more clutter than it'd help. Or: Please advise.
Note: If you prefer to overhaul all the caps things (as we had a quick chat about on IRC), I prefer to leave this task up to someone else due to lack of time, and someone else even might even better know what's necessary.
Quoted 175 lines
Quoted 175 lines
Signed-off-by Daniel Scheller <[email protected]>---
v2 to v3:
- All new enum patches squashed into one commit
- DVB API bump to 5.12Please take note of some additional things in the cover letter.
Documentation/media/frontend.h.rst.exceptions | 9 +++++++++ drivers/media/dvb-core/dvb_frontend.c | 9 +++++++++ include/uapi/linux/dvb/frontend.h | 29 ++++++++++++++++++++++----- include/uapi/linux/dvb/version.h | 2 +- 4 files changed, 43 insertions(+), 6 deletions(-)Documentation/media/frontend.h.rst.exceptions +9
-0@@ -84,6 +84,9 @@ ignore symbol APSK_16 ignore symbol APSK_32 ignore symbol DQPSK ignore symbol QAM_4_NR +ignore symbol APSK_64 +ignore symbol APSK_128 +ignore symbol APSK_256 ignore symbol SEC_VOLTAGE_13 ignore symbol SEC_VOLTAGE_18@@ -117,6 +120,8 @@ ignore symbol FEC_AUTO ignore symbol FEC_3_5 ignore symbol FEC_9_10 ignore symbol FEC_2_5 +ignore symbol FEC_1_4 +ignore symbol FEC_1_3 ignore symbol TRANSMISSION_MODE_AUTO ignore symbol TRANSMISSION_MODE_1K@@ -129,6 +134,7 @@ ignore symbol TRANSMISSION_MODE_C1 ignore symbol TRANSMISSION_MODE_C3780 ignore symbol TRANSMISSION_MODE_2K ignore symbol TRANSMISSION_MODE_8K +ignore symbol TRANSMISSION_MODE_64K ignore symbol GUARD_INTERVAL_AUTO ignore symbol GUARD_INTERVAL_1_128@@ -161,6 +167,9 @@ ignore symbol ROLLOFF_35 ignore symbol ROLLOFF_20 ignore symbol ROLLOFF_25 ignore symbol ROLLOFF_AUTO +ignore symbol ROLLOFF_15 +ignore symbol ROLLOFF_10 +ignore symbol ROLLOFF_5 ignore symbol INVERSION_ON ignore symbol INVERSION_OFFdrivers/media/dvb-core/dvb_frontend.c +9
-0@@ -2183,6 +2183,15 @@ static int dtv_set_frontend(struct dvb_frontend *fe)break ;case SYS_DVBS2 :switch (c->rolloff) { +case ROLLOFF_5 : + rolloff =105 ; +break ; +case ROLLOFF_10 : + rolloff =110 ; +break ; +case ROLLOFF_15 : + rolloff =115 ; +break ;case ROLLOFF_20 : rolloff =120 ;break ;include/uapi/linux/dvb/frontend.h +24
-5@@ -296,6 +296,8 @@ 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_4: Forward Error Correction Code 1/4 +* @FEC_1_3: Forward Error Correction Code 1/3 * * Please note that not all FEC types are supported by a given standard. */ @@ -313,6 +315,8 @@ enum fe_code_rate {FEC_3_5 ,FEC_9_10 ,FEC_2_5 , +FEC_1_4 , + FEC_1_3, };/** @@ -331,6 +335,9 @@ enum fe_code_rate {* @APSK_32: 32-APSK modulation * @DQPSK: DQPSK modulation * @QAM_4_NR: 4-QAM-NR modulation +* @APSK_64: 64-APSK modulation +* @APSK_128: 128-APSK modulation +* @APSK_256: 256-APSK modulation * * Please note that not all modulations are supported by a given standard. * @@ -350,6 +357,9 @@ enum fe_modulation {APSK_32 ,DQPSK ,QAM_4_NR , +APSK_64 , +APSK_128 , + APSK_256, };/** @@ -374,6 +384,8 @@ enum fe_modulation {* Single Carrier (C=1) transmission mode (DTMB only) * @TRANSMISSION_MODE_C3780: * Multi Carrier (C=3780) transmission mode (DTMB only) +* @TRANSMISSION_MODE_64K: +* Transmission mode 64K * * Please note that not all transmission modes are supported by a given * standard. @@ -388,6 +400,7 @@ enum fe_transmit_mode {TRANSMISSION_MODE_32K ,TRANSMISSION_MODE_C1 ,TRANSMISSION_MODE_C3780 , + TRANSMISSION_MODE_64K, };/** @@ -567,20 +580,26 @@ enum fe_pilot {/** * enum fe_rolloff - Rolloff factor -* @ROLLOFF_35: Roloff factor: α=35% -* @ROLLOFF_20: Roloff factor: α=20% -* @ROLLOFF_25: Roloff factor: α=25% -* @ROLLOFF_AUTO: Auto-detect the roloff factor. +* @ROLLOFF_35: Rolloff factor: α=35% +* @ROLLOFF_20: Rolloff factor: α=20% +* @ROLLOFF_25: Rolloff factor: α=25% +* @ROLLOFF_AUTO: Auto-detect the rolloff factor. +* @ROLLOFF_15: Rolloff factor: α=15% +* @ROLLOFF_10: Rolloff factor: α=10% +* @ROLLOFF_5: Rolloff factor: α=5% * * .. note: * -* Roloff factor of 35% is implied on DVB-S. On DVB-S2, it is default. +* Rolloff factor of 35% is implied on DVB-S. On DVB-S2, it is default. */ enum fe_rolloff {ROLLOFF_35 ,ROLLOFF_20 ,ROLLOFF_25 ,ROLLOFF_AUTO , +ROLLOFF_15 , +ROLLOFF_10 , +ROLLOFF_5 , };/** include/uapi/linux/dvb/version.h +0
-0@@ -25,6 +25,6 @@#define _DVBVERSION_H_
Quoted 8 lines
include/uapi/linux/dvb/version.h line 30
Quoted 5 lines
include/uapi/linux/dvb/version.h +1
-1#define DVB_API_VERSION 5 -#define DVB_API_VERSION_MINOR 11 +#define DVB_API_VERSION_MINOR 12#endif /*_DVBVERSION_H_*/ Thanks,
Mauro
Best regards,
Daniel Scheller
Signature · 1 line
https://github.com/herrnst