* v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
@ 2011-12-10 4:43 Manu Abraham
2011-12-10 12:29 ` Mauro Carvalho Chehab
0 siblings, 1 reply; 12+ messages in thread
From: Manu Abraham @ 2011-12-10 4:43 UTC (permalink / raw)
To: Linux Media Mailing List
[-- Attachment #1: Type: text/plain, Size: 1 bytes --]
[-- Attachment #2: 0006-DVB-Use-a-unique-delivery-system-identifier-for-DVBC.patch --]
[-- Type: text/x-patch, Size: 1171 bytes --]
From 92a79a1e0a1b5403f06f60661f00ede365b10108 Mon Sep 17 00:00:00 2001
From: Manu Abraham <abraham.manu@gmail.com>
Date: Thu, 24 Nov 2011 17:09:09 +0530
Subject: [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C,
just like any other. DVBC_ANNEX_A and DVBC_ANNEX_C have slightly
different parameters and used in 2 geographically different
locations.
Signed-off-by: Manu Abraham <abraham.manu@gmail.com>
---
include/linux/dvb/frontend.h | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
index f80b863..a3c7623 100644
--- a/include/linux/dvb/frontend.h
+++ b/include/linux/dvb/frontend.h
@@ -335,7 +335,7 @@ typedef enum fe_rolloff {
typedef enum fe_delivery_system {
SYS_UNDEFINED,
- SYS_DVBC_ANNEX_AC,
+ SYS_DVBC_ANNEX_A,
SYS_DVBC_ANNEX_B,
SYS_DVBT,
SYS_DSS,
@@ -352,8 +352,13 @@ typedef enum fe_delivery_system {
SYS_DAB,
SYS_DVBT2,
SYS_TURBO,
+ SYS_DVBC_ANNEX_C,
} fe_delivery_system_t;
+
+#define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A
+
+
struct dtv_cmds_h {
char *name; /* A display name for debugging purposes */
--
1.7.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
2011-12-10 4:43 v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C Manu Abraham
@ 2011-12-10 12:29 ` Mauro Carvalho Chehab
2011-12-12 3:59 ` Manu Abraham
0 siblings, 1 reply; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2011-12-10 12:29 UTC (permalink / raw)
To: Manu Abraham; +Cc: Linux Media Mailing List
On 10-12-2011 02:43, Manu Abraham wrote:
> From 92a79a1e0a1b5403f06f60661f00ede365b10108 Mon Sep 17 00:00:00 2001
> From: Manu Abraham <abraham.manu@gmail.com>
> Date: Thu, 24 Nov 2011 17:09:09 +0530
> Subject: [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C,
> just like any other. DVBC_ANNEX_A and DVBC_ANNEX_C have slightly
> different parameters and used in 2 geographically different
> locations.
>
> Signed-off-by: Manu Abraham <abraham.manu@gmail.com>
> ---
> include/linux/dvb/frontend.h | 7 ++++++-
> 1 files changed, 6 insertions(+), 1 deletions(-)
>
> diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
> index f80b863..a3c7623 100644
> --- a/include/linux/dvb/frontend.h
> +++ b/include/linux/dvb/frontend.h
> @@ -335,7 +335,7 @@ typedef enum fe_rolloff {
>
> typedef enum fe_delivery_system {
> SYS_UNDEFINED,
> - SYS_DVBC_ANNEX_AC,
> + SYS_DVBC_ANNEX_A,
> SYS_DVBC_ANNEX_B,
> SYS_DVBT,
> SYS_DSS,
> @@ -352,8 +352,13 @@ typedef enum fe_delivery_system {
> SYS_DAB,
> SYS_DVBT2,
> SYS_TURBO,
> + SYS_DVBC_ANNEX_C,
> } fe_delivery_system_t;
>
> +
> +#define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A
> +
> +
> struct dtv_cmds_h {
> char *name; /* A display name for debugging purposes */
This patch conflicts with the approach given by this patch:
http://www.mail-archive.com/linux-media@vger.kernel.org/msg39262.html
merged as commit 39ce61a846c8e1fa00cb57ad5af021542e6e8403.
The approach there were to allow calls to SYS_DVBC_ANNEX_AC to replace the Annex A
roll-off factor of 0.15 by the one used on Annex C (0.13).
As this patch didn't show-up at an stable version, we can still change it to use a
separate delivery system for DVB-C annex C, but this patch needs to be reverted, and
a few changes on existing drivers are needed (drxk, xc5000 and tda18271c2dd explicitly
supports both standards).
So, let's discuss it a little more, and then take a decision on what approach to take.
In any case, I suggest to remove this patch from the series, to not impact on merging
the remaining ones, and add it on another patch series that would contain the needed
changes on other places, if we decide to go on that direction.
-
What ITU-T J83 04/97 defines for Annex C is:
The system employs the transport multiplexing based on MPEG-2 (see Reference [2]),
guaranteeing interoperability with other media such as digital broadcasting,
ISDN networks or packaged media. The framing structure and the channel
coding are the same as in Annex A. The modulation is 64-QAM, and the QAM symbol
rate and the roll-off factor are optimized for the 6 MHz channel plan.
So, as stated there, Annex C is a sub-set of Annex A, in terms of modulation, and uses a
smaller roll-off factor (0.13, instead of 0.15).
Also, all Annex A demods need to support QAM64, so it handles Annex C. Several of
them explicitly says that.
For the tuner, the only difference is how to estimate the needed bandwidth,
given a desired signal rate, in order to select the low-pass filter between 6MHz and
7MHz (in practice, affecting only Annex A, as, Annex C is not used on any Country
using more than 6MHz bandwidth).
In other words, SYS_DVBC_ANNEX_AC actually makes sense, as this covers the range of
devices that are able to work with both ways. I'm not aware of any pure Annex C demod.
If we ever found any, then I think we'll need a SYS_DVBC_ANNEX_C. Otherwise, it seems
to be an over-design to add it, while we are not aware of any driver needing it.
If we agree to replace SYS_DVBC_ANNEX_AC by SYS_DVBC_ANNEX_A/SYS_DVBC_ANNEX_C,
this means that it is needed to review every driver that supports SYS_DVBC_ANNEX_AC and
the FE_QAM logic, in order to be sure that the support for SYS_DVBC_ANNEX_C would be
there for all those drivers that support it, otherwise it would be a regression.
Regards,
Mauro
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
2011-12-10 12:29 ` Mauro Carvalho Chehab
@ 2011-12-12 3:59 ` Manu Abraham
2011-12-12 13:19 ` Mauro Carvalho Chehab
0 siblings, 1 reply; 12+ messages in thread
From: Manu Abraham @ 2011-12-12 3:59 UTC (permalink / raw)
To: Mauro Carvalho Chehab; +Cc: Linux Media Mailing List
On Sat, Dec 10, 2011 at 5:59 PM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
> On 10-12-2011 02:43, Manu Abraham wrote:
>
>
>> From 92a79a1e0a1b5403f06f60661f00ede365b10108 Mon Sep 17 00:00:00 2001
>> From: Manu Abraham <abraham.manu@gmail.com>
>> Date: Thu, 24 Nov 2011 17:09:09 +0530
>> Subject: [PATCH 06/10] DVB: Use a unique delivery system identifier for
>> DVBC_ANNEX_C,
>> just like any other. DVBC_ANNEX_A and DVBC_ANNEX_C have slightly
>> different parameters and used in 2 geographically different
>> locations.
>>
>> Signed-off-by: Manu Abraham <abraham.manu@gmail.com>
>> ---
>> include/linux/dvb/frontend.h | 7 ++++++-
>> 1 files changed, 6 insertions(+), 1 deletions(-)
>>
>> diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
>> index f80b863..a3c7623 100644
>> --- a/include/linux/dvb/frontend.h
>> +++ b/include/linux/dvb/frontend.h
>> @@ -335,7 +335,7 @@ typedef enum fe_rolloff {
>>
>> typedef enum fe_delivery_system {
>> SYS_UNDEFINED,
>> - SYS_DVBC_ANNEX_AC,
>> + SYS_DVBC_ANNEX_A,
>> SYS_DVBC_ANNEX_B,
>> SYS_DVBT,
>> SYS_DSS,
>> @@ -352,8 +352,13 @@ typedef enum fe_delivery_system {
>> SYS_DAB,
>> SYS_DVBT2,
>> SYS_TURBO,
>> + SYS_DVBC_ANNEX_C,
>> } fe_delivery_system_t;
>>
>> +
>> +#define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A
>> +
>> +
>> struct dtv_cmds_h {
>> char *name; /* A display name for debugging purposes */
>
>
> This patch conflicts with the approach given by this patch:
>
> http://www.mail-archive.com/linux-media@vger.kernel.org/msg39262.html
>
> merged as commit 39ce61a846c8e1fa00cb57ad5af021542e6e8403.
>
- For correct delivery system handling, the delivery system identifier
should be unique. Otherwise patch 01/10 is meaningless for devices
with DVBC_ANNEX_C, facing the same situations.
- Rolloff is provided only in the SI table and is not known prior to a
tune. So users must struggle to find the correct rolloff. So users
must know beforehand their experience what rolloff it is rather than
reading Service Information, which is broken by approach. It is much
easier for a user to state that he is living in Japan or some other
place which is using ANNEX_C, rather than creating confusion that
he has to use DVBC and rolloff of 0.15 or is it multiplied by a factor
of 10 or was it 100 ? (Oh, my god my application Y uses a factor
of 10, the X application uses 100 and the Z application uses 1000).
What a lovely confusing scenario. ;-) (Other than for the mentioned
issue that the rolloff can be read from the SI, which is available after
tuning; for tuning you need rolloff).
Really sexy setup indeed. ;-)
One thing that I should warn/mention to you is the lack of clarity on
what you say. You say that you want more discussion, but you
whack in patches which is never discussed, breaking many logical
concepts and ideas and broken by nature. How do you justify
yourself ? I don't think you can justify yourself.
> The approach there were to allow calls to SYS_DVBC_ANNEX_AC to replace the
> Annex A
> roll-off factor of 0.15 by the one used on Annex C (0.13).
>
> As this patch didn't show-up at an stable version, we can still change it to
> use a
> separate delivery system for DVB-C annex C, but this patch needs to be
> reverted, and
> a few changes on existing drivers are needed (drxk, xc5000 and tda18271c2dd
> explicitly
> supports both standards).
>
As I mentioned earlier, the patches were sent in the order that was
being worked upon. It is not complete, for all devices that are using
DVBC_ANNEX_C. Only the TDA18271, TDA18271DD were worked upon
initially.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
2011-12-12 3:59 ` Manu Abraham
@ 2011-12-12 13:19 ` Mauro Carvalho Chehab
2011-12-12 13:40 ` Manu Abraham
0 siblings, 1 reply; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2011-12-12 13:19 UTC (permalink / raw)
To: Manu Abraham; +Cc: Linux Media Mailing List
On 12-12-2011 01:59, Manu Abraham wrote:
> On Sat, Dec 10, 2011 at 5:59 PM, Mauro Carvalho Chehab
> <mchehab@redhat.com> wrote:
>> On 10-12-2011 02:43, Manu Abraham wrote:
>>
>>
>>> From 92a79a1e0a1b5403f06f60661f00ede365b10108 Mon Sep 17 00:00:00 2001
>>> From: Manu Abraham<abraham.manu@gmail.com>
>>> Date: Thu, 24 Nov 2011 17:09:09 +0530
>>> Subject: [PATCH 06/10] DVB: Use a unique delivery system identifier for
>>> DVBC_ANNEX_C,
>>> just like any other. DVBC_ANNEX_A and DVBC_ANNEX_C have slightly
>>> different parameters and used in 2 geographically different
>>> locations.
>>>
>>> Signed-off-by: Manu Abraham<abraham.manu@gmail.com>
>>> ---
>>> include/linux/dvb/frontend.h | 7 ++++++-
>>> 1 files changed, 6 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
>>> index f80b863..a3c7623 100644
>>> --- a/include/linux/dvb/frontend.h
>>> +++ b/include/linux/dvb/frontend.h
>>> @@ -335,7 +335,7 @@ typedef enum fe_rolloff {
>>>
>>> typedef enum fe_delivery_system {
>>> SYS_UNDEFINED,
>>> - SYS_DVBC_ANNEX_AC,
>>> + SYS_DVBC_ANNEX_A,
>>> SYS_DVBC_ANNEX_B,
>>> SYS_DVBT,
>>> SYS_DSS,
>>> @@ -352,8 +352,13 @@ typedef enum fe_delivery_system {
>>> SYS_DAB,
>>> SYS_DVBT2,
>>> SYS_TURBO,
>>> + SYS_DVBC_ANNEX_C,
>>> } fe_delivery_system_t;
>>>
>>> +
>>> +#define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A
>>> +
>>> +
>>> struct dtv_cmds_h {
>>> char *name; /* A display name for debugging purposes */
>>
>>
>> This patch conflicts with the approach given by this patch:
>>
>> http://www.mail-archive.com/linux-media@vger.kernel.org/msg39262.html
>>
>> merged as commit 39ce61a846c8e1fa00cb57ad5af021542e6e8403.
>>
>
> - For correct delivery system handling, the delivery system identifier
> should be unique. Otherwise patch 01/10 is meaningless for devices
> with DVBC_ANNEX_C, facing the same situations.
This is a good point.
>
> - Rolloff is provided only in the SI table and is not known prior to a
> tune. So users must struggle to find the correct rolloff. So users
> must know beforehand their experience what rolloff it is rather than
> reading Service Information, which is broken by approach. It is much
> easier for a user to state that he is living in Japan or some other
> place which is using ANNEX_C, rather than creating confusion that
> he has to use DVBC and rolloff of 0.15
Userspace can present it as Japan and hide the technical details. Most
applications do that already: kaffeine, w_scan, ...
The dvb-apps utils don't do it, but the scan file format it produces
doesn't support anything besides DVB-C/DVB-S/DVB-T/ATSC anyway.
> or is it multiplied by a factor
> of 10 or was it 100 ? (Oh, my god my application Y uses a factor
> of 10, the X application uses 100 and the Z application uses 1000).
> What a lovely confusing scenario. ;-) (Other than for the mentioned
> issue that the rolloff can be read from the SI, which is available after
> tuning; for tuning you need rolloff).
Sorry, but this argument doesn't make any sense to me. The same problem
exists on DVB-S2 already, where several rolloffs are supported. Except
if someone would code a channels.conf line in hand, the roll-off is not
visible by the end user.
> Really sexy setup indeed. ;-)
>
> One thing that I should warn/mention to you is the lack of clarity on
> what you say. You say that you want more discussion, but you
> whack in patches which is never discussed, breaking many logical
> concepts and ideas and broken by nature. How do you justify
> yourself ? I don't think you can justify yourself.
If we have a consensus around your approach, I'm OK to move for it,
provided that it doesn't cause regressions upstream.
As I said, this requires reviewing all DVB frontends to be sure that
they won't break, especially if is there any that it is capable of
auto-detecting the roll-off factor.
Both approaches have advantages and disadvantages.
The main advantage of my approach is that it is coherent with the current
DVBv5 API (e. g. SYS_DVBC_ANNEX_AC). So, the only changes are at the
frontends that need to decide between Annex A and Annex C (currently, only
drx-k - and the tuners used with it).
Advantages on your approach:
- Cleaner for the userspace API;
- It is possible to add Annex C only devices.
Disadvantages:
- Need to deprecate the existing SYS_DVBC_ANNEX_AC;
- The alias that SYS_DVBC_ANNEX_AC means only SYS_DVBC_ANNEX_A might
break some thing;
- Requires further changes at the DocBook API description;
- Need to review all DVB-C frontends.
If we're willing to take your approach, we need a patch series that addresses
all DVB-C frontends, to be sure that no regressions were added due to the change
ofSYS_DVBC_ANNEX_AC meaning.
It also requires that FE_QAM to be mapped to be both SYS_DVBC_ANNEX_A and SYS_DVBC_ANNEX_C,
if isn't there any issue for it to work with Annex C mode, or to just
SYS_DVBC_ANNEX_A, if there is enough confidence that such device doesn't
work at allwith annex C.
>> The approach there were to allow calls to SYS_DVBC_ANNEX_AC to replace the
>> Annex A
>> roll-off factor of 0.15 by the one used on Annex C (0.13).
>>
>> As this patch didn't show-up at an stable version, we can still change it to
>> use a
>> separate delivery system for DVB-C annex C, but this patch needs to be
>> reverted, and
>> a few changes on existing drivers are needed (drxk, xc5000 and tda18271c2dd
>> explicitly
>> supports both standards).
>>
>
> As I mentioned earlier, the patches were sent in the order that was
> being worked upon. It is not complete, for all devices that are using
> DVBC_ANNEX_C. Only the TDA18271, TDA18271DD were worked upon
> initially.
Ok. As I said, it is possible to change to your approach, but it requires
a patch series that addresses the frontends that currently supports DVB-C.
There aren't many, so maybe this is not much work.
$ git grep -l FE_QAM drivers/media/dvb/frontends/ drivers/media/common/tuners/
drivers/media/common/tuners/tda18271-fe.c
drivers/media/common/tuners/tda827x.c
drivers/media/common/tuners/tuner-xc2028.c
drivers/media/common/tuners/xc5000.c
drivers/media/dvb/frontends/cxd2820r_core.c
drivers/media/dvb/frontends/drxk_hard.c
drivers/media/dvb/frontends/dvb_dummy_fe.c
drivers/media/dvb/frontends/stv0297.c
drivers/media/dvb/frontends/stv0367.c
drivers/media/dvb/frontends/tda10021.c
drivers/media/dvb/frontends/tda10023.c
drivers/media/dvb/frontends/tda18271c2dd.c
drivers/media/dvb/frontends/ves1820.c
I did a quick research at the Internet for the above:
- tda827x has just a frequency table. Nothing needs to change
there;
- xc2028 is a false hit: itdoesn't implement DVB-C;
- cxd2820r says: Integrated matched filter 0.15 roll-off factor
http://www.framos-imaging.com/fileadmin/img/sony_cxd2820r.pdf
- dvb_dummy_fe doesn't need changes;
- tda18271, xc5000, drxk and tda18271c2dd for sure require changes;
- stv0297 is fully compliant with ITU-T J.83 Annexes A/C, according
to:
http://www.st.com/internet/imag_video/product/159180.jsp
- stv0367 is fully compliant with ITU-T J.83 Annexes A/C, according
with its data brief:
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/DM00030322.pdf
- tda10021 datasheet says that it has a programmable half
Nyquist filter (roll off = 0.15 or 0.13):
http://www.datasheetcatalog.org/datasheet/philips/TDA10021.pdf
- tda10023 factsheet says that it is Fully compliant DVB-C (Annex A and C)
and MCNS (Annex B) decoders:
http://www.datasheetarchive.com/indexdl/Datasheets-DAV2/DSADA0022343.pdf
- vez1820 says Half Nyquist filters (roll off = 15 %).
- xc5000, drxk and tda18271c2dd drivers are prepared to support both
standards;
- tda18271 is a worldwide tuner that supports all ITU-T J.83 annexes.
it requires the same approach used on xc5000/tda18271c2dd drivers to
adjust the low-pass filter based on signal rate and roll-off factor.
In summary:
It seems that there are two Annex A-only frontends: cxd2820r and ves1820.
All the others are dual Annex A/Annex C.
This is actually a very good reason to implement your approach,
as otherwise, it would be hard for userspace to detect that those
two devices that lack Annex C.
This also means that just doing an alias from FE_QAM and SYS_DVBC_ANNEX_AC to
SYS_DVBC_ANNEX_A may break something, as, for most devices, SYS_DVBC_ANNEX_AC
really means both Annex A and C.
I didn't look inside the drivers for stv0297, stv0367, tda10021 and tda10023.
I suspect that some will need an additional code to change the roll-off, based on
the delivery system.
Regards,
Mauro
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
2011-12-12 13:19 ` Mauro Carvalho Chehab
@ 2011-12-12 13:40 ` Manu Abraham
2011-12-12 13:56 ` Mauro Carvalho Chehab
[not found] ` <4EE6588E.4030607@deckpoint.ch>
0 siblings, 2 replies; 12+ messages in thread
From: Manu Abraham @ 2011-12-12 13:40 UTC (permalink / raw)
To: Mauro Carvalho Chehab; +Cc: Linux Media Mailing List
On Mon, Dec 12, 2011 at 6:49 PM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
> On 12-12-2011 01:59, Manu Abraham wrote:
>>
>> On Sat, Dec 10, 2011 at 5:59 PM, Mauro Carvalho Chehab
>> <mchehab@redhat.com> wrote:
>>>
>>> On 10-12-2011 02:43, Manu Abraham wrote:
>>>
>>>
>>>> From 92a79a1e0a1b5403f06f60661f00ede365b10108 Mon Sep 17 00:00:00 2001
>>>> From: Manu Abraham<abraham.manu@gmail.com>
>>>> Date: Thu, 24 Nov 2011 17:09:09 +0530
>>>> Subject: [PATCH 06/10] DVB: Use a unique delivery system identifier for
>>>> DVBC_ANNEX_C,
>>>> just like any other. DVBC_ANNEX_A and DVBC_ANNEX_C have slightly
>>>> different parameters and used in 2 geographically different
>>>> locations.
>>>>
>>>> Signed-off-by: Manu Abraham<abraham.manu@gmail.com>
>>>> ---
>>>> include/linux/dvb/frontend.h | 7 ++++++-
>>>> 1 files changed, 6 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
>>>> index f80b863..a3c7623 100644
>>>> --- a/include/linux/dvb/frontend.h
>>>> +++ b/include/linux/dvb/frontend.h
>>>> @@ -335,7 +335,7 @@ typedef enum fe_rolloff {
>>>>
>>>> typedef enum fe_delivery_system {
>>>> SYS_UNDEFINED,
>>>> - SYS_DVBC_ANNEX_AC,
>>>> + SYS_DVBC_ANNEX_A,
>>>> SYS_DVBC_ANNEX_B,
>>>> SYS_DVBT,
>>>> SYS_DSS,
>>>> @@ -352,8 +352,13 @@ typedef enum fe_delivery_system {
>>>> SYS_DAB,
>>>> SYS_DVBT2,
>>>> SYS_TURBO,
>>>> + SYS_DVBC_ANNEX_C,
>>>> } fe_delivery_system_t;
>>>>
>>>> +
>>>> +#define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A
>>>> +
>>>> +
>>>> struct dtv_cmds_h {
>>>> char *name; /* A display name for debugging purposes
>>>> */
>>>
>>>
>>>
>>> This patch conflicts with the approach given by this patch:
>>>
>>>
>>> http://www.mail-archive.com/linux-media@vger.kernel.org/msg39262.html
>>>
>>> merged as commit 39ce61a846c8e1fa00cb57ad5af021542e6e8403.
>>>
>>
>> - For correct delivery system handling, the delivery system identifier
>> should be unique. Otherwise patch 01/10 is meaningless for devices
>> with DVBC_ANNEX_C, facing the same situations.
>
>
> This is a good point.
>
>>
>> - Rolloff is provided only in the SI table and is not known prior to a
>> tune. So users must struggle to find the correct rolloff. So users
>> must know beforehand their experience what rolloff it is rather than
>> reading Service Information, which is broken by approach. It is much
>> easier for a user to state that he is living in Japan or some other
>> place which is using ANNEX_C, rather than creating confusion that
>> he has to use DVBC and rolloff of 0.15
>
>
> Userspace can present it as Japan and hide the technical details. Most
> applications do that already: kaffeine, w_scan, ...
>
> The dvb-apps utils don't do it, but the scan file format it produces
> doesn't support anything besides DVB-C/DVB-S/DVB-T/ATSC anyway.
>
>
>> or is it multiplied by a factor
>> of 10 or was it 100 ? (Oh, my god my application Y uses a factor
>> of 10, the X application uses 100 and the Z application uses 1000).
>> What a lovely confusing scenario. ;-) (Other than for the mentioned
>> issue that the rolloff can be read from the SI, which is available after
>> tuning; for tuning you need rolloff).
>
>
> Sorry, but this argument doesn't make any sense to me. The same problem
> exists on DVB-S2 already, where several rolloffs are supported. Except
> if someone would code a channels.conf line in hand, the roll-off is not
> visible by the end user.
DVB-S2 as what we see as broadcast has just a single rolloff. The same
rolloff is used in the SI alone. It's a mistake to handle rollolff as a user
input field. The other rolloff's are used for very specific applications,
such as DSNG, DVB-RCS etc, where bandwidth has to be really
conserved considering uplinks from trucks, vans etc; for which we don't
even have applications or users.
>
>> Really sexy setup indeed. ;-)
>>
>> One thing that I should warn/mention to you is the lack of clarity on
>> what you say. You say that you want more discussion, but you
>> whack in patches which is never discussed, breaking many logical
>> concepts and ideas and broken by nature. How do you justify
>> yourself ? I don't think you can justify yourself.
>
>
> If we have a consensus around your approach, I'm OK to move for it,
> provided that it doesn't cause regressions upstream.
>
> As I said, this requires reviewing all DVB frontends to be sure that
> they won't break, especially if is there any that it is capable of
> auto-detecting the roll-off factor.
>
> Both approaches have advantages and disadvantages.
>
> The main advantage of my approach is that it is coherent with the current
> DVBv5 API (e. g. SYS_DVBC_ANNEX_AC). So, the only changes are at the
> frontends that need to decide between Annex A and Annex C (currently, only
> drx-k - and the tuners used with it).
>
> Advantages on your approach:
> - Cleaner for the userspace API;
> - It is possible to add Annex C only devices.
> Disadvantages:
> - Need to deprecate the existing SYS_DVBC_ANNEX_AC;
> - The alias that SYS_DVBC_ANNEX_AC means only SYS_DVBC_ANNEX_A might
> break some thing;
> - Requires further changes at the DocBook API description;
> - Need to review all DVB-C frontends.
>
> If we're willing to take your approach, we need a patch series that
> addresses
> all DVB-C frontends, to be sure that no regressions were added due to the
> change
> ofSYS_DVBC_ANNEX_AC meaning.
>
> It also requires that FE_QAM to be mapped to be both SYS_DVBC_ANNEX_A and
> SYS_DVBC_ANNEX_C,
> if isn't there any issue for it to work with Annex C mode, or to just
> SYS_DVBC_ANNEX_A, if there is enough confidence that such device doesn't
> work at allwith annex C.
>
>
>>> The approach there were to allow calls to SYS_DVBC_ANNEX_AC to replace
>>> the
>>> Annex A
>>> roll-off factor of 0.15 by the one used on Annex C (0.13).
>>>
>>> As this patch didn't show-up at an stable version, we can still change it
>>> to
>>> use a
>>> separate delivery system for DVB-C annex C, but this patch needs to be
>>> reverted, and
>>> a few changes on existing drivers are needed (drxk, xc5000 and
>>> tda18271c2dd
>>> explicitly
>>> supports both standards).
>>>
>>
>> As I mentioned earlier, the patches were sent in the order that was
>> being worked upon. It is not complete, for all devices that are using
>> DVBC_ANNEX_C. Only the TDA18271, TDA18271DD were worked upon
>> initially.
>
>
> Ok. As I said, it is possible to change to your approach, but it requires
> a patch series that addresses the frontends that currently supports DVB-C.
> There aren't many, so maybe this is not much work.
>
> $ git grep -l FE_QAM drivers/media/dvb/frontends/
> drivers/media/common/tuners/
> drivers/media/common/tuners/tda18271-fe.c
> drivers/media/common/tuners/tda827x.c
> drivers/media/common/tuners/tuner-xc2028.c
> drivers/media/common/tuners/xc5000.c
> drivers/media/dvb/frontends/cxd2820r_core.c
> drivers/media/dvb/frontends/drxk_hard.c
> drivers/media/dvb/frontends/dvb_dummy_fe.c
> drivers/media/dvb/frontends/stv0297.c
> drivers/media/dvb/frontends/stv0367.c
> drivers/media/dvb/frontends/tda10021.c
> drivers/media/dvb/frontends/tda10023.c
> drivers/media/dvb/frontends/tda18271c2dd.c
> drivers/media/dvb/frontends/ves1820.c
>
> I did a quick research at the Internet for the above:
> - tda827x has just a frequency table. Nothing needs to change
> there;
> - xc2028 is a false hit: itdoesn't implement DVB-C;
> - cxd2820r says: Integrated matched filter 0.15 roll-off factor
> http://www.framos-imaging.com/fileadmin/img/sony_cxd2820r.pdf
> - dvb_dummy_fe doesn't need changes;
> - tda18271, xc5000, drxk and tda18271c2dd for sure require changes;
> - stv0297 is fully compliant with ITU-T J.83 Annexes A/C, according
> to:
> http://www.st.com/internet/imag_video/product/159180.jsp
> - stv0367 is fully compliant with ITU-T J.83 Annexes A/C, according
> with its data brief:
>
> http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/DM00030322.pdf
>
> - tda10021 datasheet says that it has a programmable half
> Nyquist filter (roll off = 0.15 or 0.13):
>
> http://www.datasheetcatalog.org/datasheet/philips/TDA10021.pdf
> - tda10023 factsheet says that it is Fully compliant DVB-C (Annex A
> and C)
> and MCNS (Annex B) decoders:
>
> http://www.datasheetarchive.com/indexdl/Datasheets-DAV2/DSADA0022343.pdf
> - vez1820 says Half Nyquist filters (roll off = 15 %).
> - xc5000, drxk and tda18271c2dd drivers are prepared to support both
> standards;
> - tda18271 is a worldwide tuner that supports all ITU-T J.83 annexes.
> it requires the same approach used on xc5000/tda18271c2dd drivers
> to
> adjust the low-pass filter based on signal rate and roll-off
> factor.
>
> In summary:
>
> It seems that there are two Annex A-only frontends: cxd2820r and ves1820.
> All the others are dual Annex A/Annex C.
>
> This is actually a very good reason to implement your approach,
> as otherwise, it would be hard for userspace to detect that those
> two devices that lack Annex C.
Ah, it's good to know that you've collected the list of drivers to be fixed. :-)
> This also means that just doing an alias from FE_QAM and SYS_DVBC_ANNEX_AC
> to
> SYS_DVBC_ANNEX_A may break something, as, for most devices,
> SYS_DVBC_ANNEX_AC
> really means both Annex A and C.
With the current approach, the application can determine whether
the hardware supports through the DELSYS enumeration.
So, if you have a device that needs to support both ANNEX_A and
ANNEX_C, it should be rather doing
case DTV_ENUM_DELSYS:
buffer.data[0] = SYS_DVBC_ANNEX_A;
buffer.data[1] = SYS_DVBC_ANNEX_C;
break;
> I didn't look inside the drivers for stv0297, stv0367, tda10021 and
> tda10023.
> I suspect that some will need an additional code to change the roll-off,
> based on
> the delivery system.
Of course, yes this would need to make the change across multiple
drivers.
We can fix the drivers, that's no issue at all, as it is a small change.
Regards,
Manu
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
2011-12-12 13:40 ` Manu Abraham
@ 2011-12-12 13:56 ` Mauro Carvalho Chehab
2011-12-12 15:00 ` Manu Abraham
2011-12-12 21:24 ` Andreas Oberritter
[not found] ` <4EE6588E.4030607@deckpoint.ch>
1 sibling, 2 replies; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2011-12-12 13:56 UTC (permalink / raw)
To: Manu Abraham; +Cc: Linux Media Mailing List
On 12-12-2011 11:40, Manu Abraham wrote:
> On Mon, Dec 12, 2011 at 6:49 PM, Mauro Carvalho Chehab
>> This also means that just doing an alias from FE_QAM and SYS_DVBC_ANNEX_AC
>> to
>> SYS_DVBC_ANNEX_A may break something, as, for most devices,
>> SYS_DVBC_ANNEX_AC
>> really means both Annex A and C.
>
>
>
> With the current approach, the application can determine whether
> the hardware supports through the DELSYS enumeration.
>
> So, if you have a device that needs to support both ANNEX_A and
> ANNEX_C, it should be rather doing
>
> case DTV_ENUM_DELSYS:
> buffer.data[0] = SYS_DVBC_ANNEX_A;
> buffer.data[1] = SYS_DVBC_ANNEX_C;
> break;
Sure, but we'll need a logic to handle queries for SYS_DVBC_ANNEX_AC
anyway, if any of the existing DVB-C drivers is currently prepared to
support both.
I'm not concerned with drx-k. The support for both standards are for
kernel 3.3. So, no backward compatibility is needed here.
While there is no explicit option, the code for stv0297, stv0367,
tda10021 and tda10023 drivers are not clear if they support both
(maybe roll-off might be auto-detected?) or just SYS_DVBC_ANNEX_A.
That's said, the difference between a 0.15 and a 0.13 rolloff is not big.
I won't doubt that a demod set to 0.15 rolloff would be capable of working
(non-optimized) with a 0.13 rolloff.
What I'm saing is that, if any of the existing drivers currently works
with both Annex A and Annex C, we'll need something equivalent to:
if (delsys == SYS_DVBC_ANNEX_AC) {
int ret = try_annex_a();
if (ret < 0)
ret = try_annex_c();
}
For FE_SET_FRONTEND (and the corresponding v5 logic), in order to avoid
regressions.
>
>
>> I didn't look inside the drivers for stv0297, stv0367, tda10021 and
>> tda10023.
>> I suspect that some will need an additional code to change the roll-off,
>> based on
>> the delivery system.
>
>
>
> Of course, yes this would need to make the change across multiple
> drivers.
>
> We can fix the drivers, that's no issue at all, as it is a small change.
Indeed, it is a small change. Tuners are trivial to change, but, at the
demod, we need to discover if roll-off is auto-detected somehow, or if
they require manual settings, in order to fix the demod drivers.
>
> Regards,
> Manu
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
2011-12-12 13:56 ` Mauro Carvalho Chehab
@ 2011-12-12 15:00 ` Manu Abraham
2011-12-12 16:22 ` Mauro Carvalho Chehab
2011-12-12 21:24 ` Andreas Oberritter
1 sibling, 1 reply; 12+ messages in thread
From: Manu Abraham @ 2011-12-12 15:00 UTC (permalink / raw)
To: Mauro Carvalho Chehab; +Cc: Linux Media Mailing List
On Mon, Dec 12, 2011 at 7:26 PM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
> On 12-12-2011 11:40, Manu Abraham wrote:
>>
>> On Mon, Dec 12, 2011 at 6:49 PM, Mauro Carvalho Chehab
>
>
>>> This also means that just doing an alias from FE_QAM and
>>> SYS_DVBC_ANNEX_AC
>>> to
>>> SYS_DVBC_ANNEX_A may break something, as, for most devices,
>>> SYS_DVBC_ANNEX_AC
>>> really means both Annex A and C.
>>
>>
>>
>>
>> With the current approach, the application can determine whether
>> the hardware supports through the DELSYS enumeration.
>>
>> So, if you have a device that needs to support both ANNEX_A and
>> ANNEX_C, it should be rather doing
>>
>> case DTV_ENUM_DELSYS:
>> buffer.data[0] = SYS_DVBC_ANNEX_A;
>> buffer.data[1] = SYS_DVBC_ANNEX_C;
>> break;
>
>
> Sure, but we'll need a logic to handle queries for SYS_DVBC_ANNEX_AC
> anyway, if any of the existing DVB-C drivers is currently prepared to
> support both.
>
> I'm not concerned with drx-k. The support for both standards are for
> kernel 3.3. So, no backward compatibility is needed here.
>
> While there is no explicit option, the code for stv0297, stv0367,
> tda10021 and tda10023 drivers are not clear if they support both
> (maybe roll-off might be auto-detected?) or just SYS_DVBC_ANNEX_A.
>
> That's said, the difference between a 0.15 and a 0.13 rolloff is not big.
> I won't doubt that a demod set to 0.15 rolloff would be capable of working
> (non-optimized) with a 0.13 rolloff.
>
> What I'm saing is that, if any of the existing drivers currently works
> with both Annex A and Annex C, we'll need something equivalent to:
>
> if (delsys == SYS_DVBC_ANNEX_AC) {
> int ret = try_annex_a();
> if (ret < 0)
> ret = try_annex_c();
> }
>
> For FE_SET_FRONTEND (and the corresponding v5 logic), in order to avoid
> regressions.
What I was implying:
set_frontend/search()
{
case SYS_DVBC_ANNEX_A:
// do whatever you need to do for annex A tuning and return
break;
case SYS_DVBC_ANNEX_C:
// do whatever you need to do for annex C tuning and return
break;
}
ANNEX_AC is a link to ANNEX_A; We never had any ? users to ANNEX_C, so
that issue might be simple to ignore.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
2011-12-12 15:00 ` Manu Abraham
@ 2011-12-12 16:22 ` Mauro Carvalho Chehab
2011-12-12 18:08 ` Manu Abraham
0 siblings, 1 reply; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2011-12-12 16:22 UTC (permalink / raw)
To: Manu Abraham; +Cc: Linux Media Mailing List
On 12-12-2011 13:00, Manu Abraham wrote:
> On Mon, Dec 12, 2011 at 7:26 PM, Mauro Carvalho Chehab
> <mchehab@redhat.com> wrote:
>> On 12-12-2011 11:40, Manu Abraham wrote:
>>>
>>> On Mon, Dec 12, 2011 at 6:49 PM, Mauro Carvalho Chehab
>>
>>
>>>> This also means that just doing an alias from FE_QAM and
>>>> SYS_DVBC_ANNEX_AC
>>>> to
>>>> SYS_DVBC_ANNEX_A may break something, as, for most devices,
>>>> SYS_DVBC_ANNEX_AC
>>>> really means both Annex A and C.
>>>
>>>
>>>
>>>
>>> With the current approach, the application can determine whether
>>> the hardware supports through the DELSYS enumeration.
>>>
>>> So, if you have a device that needs to support both ANNEX_A and
>>> ANNEX_C, it should be rather doing
>>>
>>> case DTV_ENUM_DELSYS:
>>> buffer.data[0] = SYS_DVBC_ANNEX_A;
>>> buffer.data[1] = SYS_DVBC_ANNEX_C;
>>> break;
>>
>>
>> Sure, but we'll need a logic to handle queries for SYS_DVBC_ANNEX_AC
>> anyway, if any of the existing DVB-C drivers is currently prepared to
>> support both.
>>
>> I'm not concerned with drx-k. The support for both standards are for
>> kernel 3.3. So, no backward compatibility is needed here.
>>
>> While there is no explicit option, the code for stv0297, stv0367,
>> tda10021 and tda10023 drivers are not clear if they support both
>> (maybe roll-off might be auto-detected?) or just SYS_DVBC_ANNEX_A.
>>
>> That's said, the difference between a 0.15 and a 0.13 rolloff is not big.
>> I won't doubt that a demod set to 0.15 rolloff would be capable of working
>> (non-optimized) with a 0.13 rolloff.
>>
>> What I'm saing is that, if any of the existing drivers currently works
>> with both Annex A and Annex C, we'll need something equivalent to:
>>
>> if (delsys == SYS_DVBC_ANNEX_AC) {
>> int ret = try_annex_a();
>> if (ret< 0)
>> ret = try_annex_c();
>> }
>>
>> For FE_SET_FRONTEND (and the corresponding v5 logic), in order to avoid
>> regressions.
>
>
> What I was implying:
>
> set_frontend/search()
> {
> case SYS_DVBC_ANNEX_A:
> // do whatever you need to do for annex A tuning and return
> break;
> case SYS_DVBC_ANNEX_C:
> // do whatever you need to do for annex C tuning and return
> break;
> }
>
>
> ANNEX_AC is a link to ANNEX_A;
Yes, I saw your approach.
> We never had any ? users to ANNEX_C, so
> that issue might be simple to ignore.
This is hard to say. What I'm saying is that, if any of the current
drivers works as-is with Annex C, we should assume that someone is using,
as we don't have any evidence otherwise.
I'm sure there are lots of people running Linux in Japan.
How many of them are using the DVB subsystem is hard to say. The low message
traffic at the ML for people *.jp is not a good measure, as due to language
barriers, people may not be posting things there.
A quick grep here on my local copy of the ML traffic (it currently has stored
about 380 days of email, as I moved the older ones to a separate storage space)
still shows 90 messages that has ".jp" inside:
$ grep -l "\.jp" * |wc -l
90
41 of them has the word DVB inside. Ok, there are some false positives there
too (due to *.jpg), but there are some valid hits also,
Including a commit on this changeset: e38030f3ff02684eb9e25e983a03ad318a10a2ea.
As the cx23885 driver does support DVB-C with stv0367, maybe the committer
might be using it for DVB-C.
Even if not, I suspect that it is likely to have some DVB-C Annex C users
out there.
Regards,
Mauro.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
2011-12-12 16:22 ` Mauro Carvalho Chehab
@ 2011-12-12 18:08 ` Manu Abraham
0 siblings, 0 replies; 12+ messages in thread
From: Manu Abraham @ 2011-12-12 18:08 UTC (permalink / raw)
To: Mauro Carvalho Chehab; +Cc: Linux Media Mailing List
On Mon, Dec 12, 2011 at 9:52 PM, Mauro Carvalho Chehab
<mchehab@redhat.com> wrote:
> On 12-12-2011 13:00, Manu Abraham wrote:
>>
>> On Mon, Dec 12, 2011 at 7:26 PM, Mauro Carvalho Chehab
>> <mchehab@redhat.com> wrote:
>>>
>>> On 12-12-2011 11:40, Manu Abraham wrote:
>>>>
>>>>
>>>> On Mon, Dec 12, 2011 at 6:49 PM, Mauro Carvalho Chehab
>>>
>>>
>>>
>>>>> This also means that just doing an alias from FE_QAM and
>>>>> SYS_DVBC_ANNEX_AC
>>>>> to
>>>>> SYS_DVBC_ANNEX_A may break something, as, for most devices,
>>>>> SYS_DVBC_ANNEX_AC
>>>>> really means both Annex A and C.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> With the current approach, the application can determine whether
>>>> the hardware supports through the DELSYS enumeration.
>>>>
>>>> So, if you have a device that needs to support both ANNEX_A and
>>>> ANNEX_C, it should be rather doing
>>>>
>>>> case DTV_ENUM_DELSYS:
>>>> buffer.data[0] = SYS_DVBC_ANNEX_A;
>>>> buffer.data[1] = SYS_DVBC_ANNEX_C;
>>>> break;
>>>
>>>
>>>
>>> Sure, but we'll need a logic to handle queries for SYS_DVBC_ANNEX_AC
>>> anyway, if any of the existing DVB-C drivers is currently prepared to
>>> support both.
>>>
>>> I'm not concerned with drx-k. The support for both standards are for
>>> kernel 3.3. So, no backward compatibility is needed here.
>>>
>>> While there is no explicit option, the code for stv0297, stv0367,
>>> tda10021 and tda10023 drivers are not clear if they support both
>>> (maybe roll-off might be auto-detected?) or just SYS_DVBC_ANNEX_A.
>>>
>>> That's said, the difference between a 0.15 and a 0.13 rolloff is not big.
>>> I won't doubt that a demod set to 0.15 rolloff would be capable of
>>> working
>>> (non-optimized) with a 0.13 rolloff.
>>>
>>> What I'm saing is that, if any of the existing drivers currently works
>>> with both Annex A and Annex C, we'll need something equivalent to:
>>>
>>> if (delsys == SYS_DVBC_ANNEX_AC) {
>>> int ret = try_annex_a();
>>> if (ret< 0)
>>> ret = try_annex_c();
>>> }
>>>
>>> For FE_SET_FRONTEND (and the corresponding v5 logic), in order to avoid
>>> regressions.
>>
>>
>>
>> What I was implying:
>>
>> set_frontend/search()
>> {
>> case SYS_DVBC_ANNEX_A:
>> // do whatever you need to do for annex A tuning and return
>> break;
>> case SYS_DVBC_ANNEX_C:
>> // do whatever you need to do for annex C tuning and return
>> break;
>> }
>>
>>
>> ANNEX_AC is a link to ANNEX_A;
>
>
> Yes, I saw your approach.
>
>
>> We never had any ? users to ANNEX_C, so
>> that issue might be simple to ignore.
>
>
> This is hard to say. What I'm saying is that, if any of the current
> drivers works as-is with Annex C, we should assume that someone is using,
> as we don't have any evidence otherwise.
>
> I'm sure there are lots of people running Linux in Japan.
>
> How many of them are using the DVB subsystem is hard to say. The low message
> traffic at the ML for people *.jp is not a good measure, as due to language
> barriers, people may not be posting things there.
>
> A quick grep here on my local copy of the ML traffic (it currently has
> stored
> about 380 days of email, as I moved the older ones to a separate storage
> space)
> still shows 90 messages that has ".jp" inside:
>
> $ grep -l "\.jp" * |wc -l
> 90
>
> 41 of them has the word DVB inside. Ok, there are some false positives there
> too (due to *.jpg), but there are some valid hits also,
>
> Including a commit on this changeset:
> e38030f3ff02684eb9e25e983a03ad318a10a2ea.
> As the cx23885 driver does support DVB-C with stv0367, maybe the committer
> might be using it for DVB-C.
>
> Even if not, I suspect that it is likely to have some DVB-C Annex C users
> out there.
As far as I am aware, most of the services use BCAS2 encryption. There
is no BCAS2 support available as Open Source, other than with sundtek.
Regards,
Manu
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
[not found] ` <4EE6588E.4030607@deckpoint.ch>
@ 2011-12-12 20:01 ` Manu Abraham
0 siblings, 0 replies; 12+ messages in thread
From: Manu Abraham @ 2011-12-12 20:01 UTC (permalink / raw)
To: Thomas Kernen; +Cc: Linux Media Mailing List
On Tue, Dec 13, 2011 at 1:09 AM, Thomas Kernen <tkernen@deckpoint.ch> wrote:
> On 12/12/11 2:40 PM, Manu Abraham wrote:
>
>>>> or is it multiplied by a factor
>>>> of 10 or was it 100 ? (Oh, my god my application Y uses a factor
>>>> of 10, the X application uses 100 and the Z application uses 1000).
>>>> What a lovely confusing scenario. ;-) (Other than for the mentioned
>>>> issue that the rolloff can be read from the SI, which is available after
>>>> tuning; for tuning you need rolloff).
>>>
>>>
>>>
>>> Sorry, but this argument doesn't make any sense to me. The same problem
>>> exists on DVB-S2 already, where several rolloffs are supported. Except
>>> if someone would code a channels.conf line in hand, the roll-off is not
>>> visible by the end user.
>>
>>
>>
>>
>> DVB-S2 as what we see as broadcast has just a single rolloff. The same
>> rolloff is used in the SI alone. It's a mistake to handle rollolff as a
>> user
>> input field. The other rolloff's are used for very specific applications,
>> such as DSNG, DVB-RCS etc, where bandwidth has to be really
>> conserved considering uplinks from trucks, vans etc; for which we don't
>> even have applications or users.
>
>
> AFAIK there is at least one card (TBS 6925) that is supporting DVB-S2
> applications aimed normally at contribution markets and whereby the rolloff
> may need to be specified.
As far as I am aware, that card uses a STV0900 or a 903,
more likely it is a STV0903 being a single input device.
The STV0900/903 chips are capable of auto detecting the
rolloff. All it needs is frequency and symbol rate.
Even if it is another different demodulator:
All the devices that I have seen which support the advanced
MODCOD's, they support auto detection of rolloff. AFAIK,
this is readable of the BBHEADER: MATYPE1, represented
by 2 bits, as specified as in the DVB-S2 specification.
There are other fields along with such as Single/Multiple
Input Streams etc.
Therefore no user intervention is required to determine
rolloff on such devices. (It is read directly off the BBHEADER
by the demod) and is available to the driver.
Regards,
Manu
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
2011-12-12 13:56 ` Mauro Carvalho Chehab
2011-12-12 15:00 ` Manu Abraham
@ 2011-12-12 21:24 ` Andreas Oberritter
2011-12-17 13:24 ` Mauro Carvalho Chehab
1 sibling, 1 reply; 12+ messages in thread
From: Andreas Oberritter @ 2011-12-12 21:24 UTC (permalink / raw)
To: Mauro Carvalho Chehab; +Cc: Manu Abraham, Linux Media Mailing List
On 12.12.2011 14:56, Mauro Carvalho Chehab wrote:
> On 12-12-2011 11:40, Manu Abraham wrote:
>> On Mon, Dec 12, 2011 at 6:49 PM, Mauro Carvalho Chehab
>
>>> This also means that just doing an alias from FE_QAM and
>>> SYS_DVBC_ANNEX_AC
>>> to
>>> SYS_DVBC_ANNEX_A may break something, as, for most devices,
>>> SYS_DVBC_ANNEX_AC
>>> really means both Annex A and C.
>>
>>
>>
>> With the current approach, the application can determine whether
>> the hardware supports through the DELSYS enumeration.
>>
>> So, if you have a device that needs to support both ANNEX_A and
>> ANNEX_C, it should be rather doing
>>
>> case DTV_ENUM_DELSYS:
>> buffer.data[0] = SYS_DVBC_ANNEX_A;
>> buffer.data[1] = SYS_DVBC_ANNEX_C;
>> break;
>
> Sure, but we'll need a logic to handle queries for SYS_DVBC_ANNEX_AC
> anyway, if any of the existing DVB-C drivers is currently prepared to
> support both.
>
> I'm not concerned with drx-k. The support for both standards are for
> kernel 3.3. So, no backward compatibility is needed here.
>
> While there is no explicit option, the code for stv0297, stv0367,
> tda10021 and tda10023 drivers are not clear if they support both
> (maybe roll-off might be auto-detected?) or just SYS_DVBC_ANNEX_A.
tda10021: Driver sets roll-off to 0.15. No auto-detection.
tda10023: Driver sets roll-off to 0.18. No auto-detection.
In general, auto-detection seems unlikely. Do you know any chip that
does it? Unless you do, we shouldn't expect it to exist. stv0297 doesn't
even detect IQ inversion.
> That's said, the difference between a 0.15 and a 0.13 rolloff is not big.
> I won't doubt that a demod set to 0.15 rolloff would be capable of working
> (non-optimized) with a 0.13 rolloff.
>
> What I'm saing is that, if any of the existing drivers currently works
> with both Annex A and Annex C, we'll need something equivalent to:
>
> if (delsys == SYS_DVBC_ANNEX_AC) {
> int ret = try_annex_a();
> if (ret < 0)
> ret = try_annex_c();
> }
I'd prefer treating ANNEX_AC just like ANNEX_A. It won't break anything,
because register writes for ANNEX_A will be the same. i.e. applications
using SYS_DVBC_ANNEX_AC will still get the same result as before.
What may change for a user: An updated application may allow him to
select between A and C, if the frontend advertises both. In this case,
both A and C are supposed to work, depending on the location of the
user. Someone who successfully used his tuner in Japan before, and who's
frontend doesn't advertise C, will still be able to choose A and thus
use the same register settings as before.
>>> I didn't look inside the drivers for stv0297, stv0367, tda10021 and
>>> tda10023.
>>> I suspect that some will need an additional code to change the roll-off,
>>> based on
>>> the delivery system.
>>
>>
>>
>> Of course, yes this would need to make the change across multiple
>> drivers.
>>
>> We can fix the drivers, that's no issue at all, as it is a small change.
>
> Indeed, it is a small change. Tuners are trivial to change, but, at the
> demod, we need to discover if roll-off is auto-detected somehow, or if
> they require manual settings, in order to fix the demod drivers.
tda10021: Register 0x3d & 0x01: 0 -> 0.15; 1 -> 0.13
tda10023: Register 0x3d & 0x03: 2 -> 0.15; 3 -> 0.13
Regards,
Andreas
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C
2011-12-12 21:24 ` Andreas Oberritter
@ 2011-12-17 13:24 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 12+ messages in thread
From: Mauro Carvalho Chehab @ 2011-12-17 13:24 UTC (permalink / raw)
To: Andreas Oberritter; +Cc: Manu Abraham, Linux Media Mailing List
Em 12-12-2011 19:24, Andreas Oberritter escreveu:
> On 12.12.2011 14:56, Mauro Carvalho Chehab wrote:
>> On 12-12-2011 11:40, Manu Abraham wrote:
>>> On Mon, Dec 12, 2011 at 6:49 PM, Mauro Carvalho Chehab
>>
>>>> This also means that just doing an alias from FE_QAM and
>>>> SYS_DVBC_ANNEX_AC
>>>> to
>>>> SYS_DVBC_ANNEX_A may break something, as, for most devices,
>>>> SYS_DVBC_ANNEX_AC
>>>> really means both Annex A and C.
>>>
>>>
>>>
>>> With the current approach, the application can determine whether
>>> the hardware supports through the DELSYS enumeration.
>>>
>>> So, if you have a device that needs to support both ANNEX_A and
>>> ANNEX_C, it should be rather doing
>>>
>>> case DTV_ENUM_DELSYS:
>>> buffer.data[0] = SYS_DVBC_ANNEX_A;
>>> buffer.data[1] = SYS_DVBC_ANNEX_C;
>>> break;
>>
>> Sure, but we'll need a logic to handle queries for SYS_DVBC_ANNEX_AC
>> anyway, if any of the existing DVB-C drivers is currently prepared to
>> support both.
>>
>> I'm not concerned with drx-k. The support for both standards are for
>> kernel 3.3. So, no backward compatibility is needed here.
>>
>> While there is no explicit option, the code for stv0297, stv0367,
>> tda10021 and tda10023 drivers are not clear if they support both
>> (maybe roll-off might be auto-detected?) or just SYS_DVBC_ANNEX_A.
>
> tda10021: Driver sets roll-off to 0.15. No auto-detection.
> tda10023: Driver sets roll-off to 0.18. No auto-detection.
>
> In general, auto-detection seems unlikely. Do you know any chip that
> does it? Unless you do, we shouldn't expect it to exist. stv0297 doesn't
> even detect IQ inversion.
>
>> That's said, the difference between a 0.15 and a 0.13 rolloff is not big.
>> I won't doubt that a demod set to 0.15 rolloff would be capable of working
>> (non-optimized) with a 0.13 rolloff.
>>
>> What I'm saing is that, if any of the existing drivers currently works
>> with both Annex A and Annex C, we'll need something equivalent to:
>>
>> if (delsys == SYS_DVBC_ANNEX_AC) {
>> int ret = try_annex_a();
>> if (ret < 0)
>> ret = try_annex_c();
>> }
>
> I'd prefer treating ANNEX_AC just like ANNEX_A. It won't break anything,
> because register writes for ANNEX_A will be the same. i.e. applications
> using SYS_DVBC_ANNEX_AC will still get the same result as before.
>
> What may change for a user: An updated application may allow him to
> select between A and C, if the frontend advertises both. In this case,
> both A and C are supposed to work, depending on the location of the
> user. Someone who successfully used his tuner in Japan before, and who's
> frontend doesn't advertise C, will still be able to choose A and thus
> use the same register settings as before.
As all existing DVB-C drivers currently upstream seem to be assuming a
Annex A, I don't have any troubles on doing that.
>
>>>> I didn't look inside the drivers for stv0297, stv0367, tda10021 and
>>>> tda10023.
>>>> I suspect that some will need an additional code to change the roll-off,
>>>> based on
>>>> the delivery system.
>>>
>>>
>>>
>>> Of course, yes this would need to make the change across multiple
>>> drivers.
>>>
>>> We can fix the drivers, that's no issue at all, as it is a small change.
>>
>> Indeed, it is a small change. Tuners are trivial to change, but, at the
>> demod, we need to discover if roll-off is auto-detected somehow, or if
>> they require manual settings, in order to fix the demod drivers.
>
> tda10021: Register 0x3d & 0x01: 0 -> 0.15; 1 -> 0.13
> tda10023: Register 0x3d & 0x03: 2 -> 0.15; 3 -> 0.13
Thanks for the info!
I'll prepare a patchset with Manu's patch 06 on it, plus the required
changes at the DocBook specs and the fixes for the drx-k based drivers
and for tda10021/tda10023. I should be sending the patches to the ML
later today.
>
> Regards,
> Andreas
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2011-12-17 13:24 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-10 4:43 v4 [PATCH 06/10] DVB: Use a unique delivery system identifier for DVBC_ANNEX_C Manu Abraham
2011-12-10 12:29 ` Mauro Carvalho Chehab
2011-12-12 3:59 ` Manu Abraham
2011-12-12 13:19 ` Mauro Carvalho Chehab
2011-12-12 13:40 ` Manu Abraham
2011-12-12 13:56 ` Mauro Carvalho Chehab
2011-12-12 15:00 ` Manu Abraham
2011-12-12 16:22 ` Mauro Carvalho Chehab
2011-12-12 18:08 ` Manu Abraham
2011-12-12 21:24 ` Andreas Oberritter
2011-12-17 13:24 ` Mauro Carvalho Chehab
[not found] ` <4EE6588E.4030607@deckpoint.ch>
2011-12-12 20:01 ` Manu Abraham
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).