From: Andreas Oberritter <obi@linuxtv.org>
To: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: Linux Media Mailing List <linux-media@vger.kernel.org>
Subject: Re: [PATCH RFC 01/91] [media] dvb-core: allow demods to specify the supported delivery systems supported standards.
Date: Tue, 27 Dec 2011 21:37:26 +0100 [thread overview]
Message-ID: <4EFA2C86.5040604@linuxtv.org> (raw)
In-Reply-To: <4EF9FB1A.5090509@infradead.org>
On 27.12.2011 18:06, Mauro Carvalho Chehab wrote:
> On 27-12-2011 12:33, Andreas Oberritter wrote:
>> On 27.12.2011 14:28, Mauro Carvalho Chehab wrote:
>>> On 27-12-2011 10:11, Andreas Oberritter wrote:
>>>> On 27.12.2011 02:07, Mauro Carvalho Chehab wrote:
>>>>> DVB-S and DVB-T, as those were the standards supported by DVBv3.
>>>>
>>>> The description seems to be incomplete.
>>>>
>>>>> New standards like DSS, ISDB and CTTB don't fit on any of the
>>>>> above types.
>>>>>
>>>>> while there's a way for the drivers to explicitly change whatever
>>>>> default DELSYS were filled inside the core, still a fake value is
>>>>> needed there, and a "compat" code to allow DVBv3 applications to
>>>>> work with those delivery systems is needed. This is good for a
>>>>> short term solution, while applications aren't using DVBv5 directly.
>>>>>
>>>>> However, at long term, this is bad, as the compat code runs even
>>>>> if the application is using DVBv5. Also, the compat code is not
>>>>> perfect, and only works when the frontend is capable of auto-detecting
>>>>> the parameters that aren't visible by the faked delivery systems.
>>>>>
>>>>> So, let the frontend fill the supported delivery systems at the
>>>>> device properties directly, and, in the future, let the core to use
>>>>> the delsys to fill the reported info::type based on the delsys.
>>>>>
>>>>> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
>>>>> ---
>>>>> drivers/media/dvb/dvb-core/dvb_frontend.c | 13 +++++++++++++
>>>>> drivers/media/dvb/dvb-core/dvb_frontend.h | 8 ++++++++
>>>>> 2 files changed, 21 insertions(+), 0 deletions(-)
>>>>>
>>>>> diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
>>>>> index 8dedff4..f17c411 100644
>>>>> --- a/drivers/media/dvb/dvb-core/dvb_frontend.c
>>>>> +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
>>>>> @@ -1252,6 +1252,19 @@ static void dtv_set_default_delivery_caps(const struct dvb_frontend *fe, struct
>>>>> const struct dvb_frontend_info *info = &fe->ops.info;
>>>>> u32 ncaps = 0;
>>>>>
>>>>> + /*
>>>>> + * If the frontend explicitly sets a list, use it, instead of
>>>>> + * filling based on the info->type
>>>>> + */
>>>>> + if (fe->ops.delsys[ncaps]) {
>>>>> + while (fe->ops.delsys[ncaps] && ncaps < MAX_DELSYS) {
>>>>> + p->u.buffer.data[ncaps] = fe->ops.delsys[ncaps];
>>>>> + ncaps++;
>>>>> + }
>>>>> + p->u.buffer.len = ncaps;
>>>>> + return;
>>>>> + }
>>>>> +
>>>>
>>>> I don't understand what this is trying to solve. This is already handled
>>>> by the get_property driver callback.
>>>>
>>>> dtv_set_default_delivery_caps() only sets some defaults for drivers not
>>>> implementing get_property yet.
>>>
>>> dtv_set_default_delivery_caps() does the wrong thing for delivery systems
>>> like ISDB-T, ISDB-S, DSS, DMB-TH, as it fills data with a fake value that
>>> is there at fe->ops.info.type.
>>>
>>> The fake values there should be used only for DVBv3 legacy calls emulation
>>> on those delivery systems that are not fully compatible with a DVBv3 call.
>>
>> That's right. Still, there's no need to introduce fe->ops.delsys,
>> because the drivers in question could just implement get_property
>> instead. At least that's what we discussed and AFAIR agreed upon when
>> Manu recently submitted his patches regarding enumeration of delivery
>> systems.
>
> Manu's patches were applied (well, except for two patches related to af9013
> driver that are/were under discussion between Manu and Antti).
>
> Manu's approach is good, as it provided a way to enumerate the
> standards without much changes, offering a way for userspace to
> query the delivery system, at the expense of serializing a driver
> call for each property.
>
> Yet, it doesn't allow the DVB core to detect the supported
> delivery systems on a sane way [1].
>
> The addition of fe->ops.delsys is going one step further, as it will
> allow, at the long term, the removal of info.type.
You can't remove info.type, as it would break userspace. What you can do
is deprecate its use inside drivers.
> There are two reasons why we need to get rid of info.type:
>
> 1) dvb_frontend core can be changed to use fe->ops.delsys
> internally, instead of info.type, in order to fix some
> bugs inside it, where it does the wrong assumption, because
> the frontend is lying about the delivery system;
>
> 2) There is no sane way to fill fe->ops.info.type for Multi delivery
> system frontends, like DRX-K, that supports both DVB-T and DVB-C.
> The type can be filled with either FE_QAM or FE_OFDM, not with both.
> So, choosing either type will be plain wrong, and may cause bad
> side effects inside dvb_frontend.
>
> [1] Ok, it would be possible to do a hack internally, for it to call
> get_property() but it is a way more sane to just read fe->ops.delsys.
I don't see why using the already defined interface to query the
possible delivery systems would be a hack.
I also don't see what the enumeration has to do with the deprecation of
fe->ops.info.type. If you want to replace fe->ops.info.type, then what
you need to know is the currently selected delivery system, not the
supported delivery systems. The currently selected system is available
from the property cache.
next prev parent reply other threads:[~2011-12-27 20:37 UTC|newest]
Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-27 1:07 [PATCH RFC 00/91] Only use DVBv5 internally on frontend drivers Mauro Carvalho Chehab
2011-12-27 1:07 ` [PATCH RFC 01/91] [media] dvb-core: allow demods to specify the supported delivery systems supported standards Mauro Carvalho Chehab
2011-12-27 1:07 ` [PATCH RFC 02/91] [media] Rename set_frontend fops to set_frontend_legacy Mauro Carvalho Chehab
2011-12-27 1:07 ` [PATCH RFC 03/91] [media] dvb-core: add support for a DVBv5 get_frontend() callback Mauro Carvalho Chehab
2011-12-27 1:07 ` [PATCH RFC 04/91] [media] af9013: convert set_fontend to use DVBv5 parameters Mauro Carvalho Chehab
2011-12-27 1:07 ` [PATCH RFC 05/91] [media] atbm8830: convert set_fontend to new way and fix delivery system Mauro Carvalho Chehab
2011-12-27 1:07 ` [PATCH RFC 06/91] [media] au8522_dig: convert set_fontend to use DVBv5 parameters Mauro Carvalho Chehab
2011-12-27 1:07 ` [PATCH RFC 07/91] [media] bcm3510: " Mauro Carvalho Chehab
2011-12-27 1:07 ` [PATCH RFC 08/91] [media] cx22700: " Mauro Carvalho Chehab
2011-12-27 1:07 ` [PATCH RFC 09/91] [media] cx22702: " Mauro Carvalho Chehab
2011-12-27 1:07 ` [PATCH RFC 10/91] [media] cx24110: " Mauro Carvalho Chehab
2011-12-27 1:07 ` [PATCH RFC 11/91] [media] cx24116: report delivery system and cleanups Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 12/91] [media] cx23123: remove an unused argument from cx24123_pll_writereg() Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 13/91] [media] av7110: convert set_fontend to use DVBv5 parameters Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 14/91] [media] cx23123: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 15/91] [media] cxd2820r: report delivery system and cleanups Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 16/91] [media] dibx000: convert set_fontend to use DVBv5 parameters Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 17/91] [media] dib9000: remove unused parameters Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 18/91] [media] cx24113: cleanup: remove unused init Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 19/91] [media] dib9000: Get rid of the remaining DVBv3 legacy stuff Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 20/91] [media] dib3000mb: convert set_fontend to use DVBv5 parameters Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 21/91] [media] dib8000: Remove the old DVBv3 struct from it and add delsys Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 22/91] [media] dib9000: get rid of unused dvb_frontend_parameters Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 23/91] [media] zl10353: convert set_fontend to use DVBv5 parameters Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 24/91] [media] em28xx-dvb: don't initialize drx-d non-used fields with zero Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 25/91] [media] drxd: convert set_fontend to use DVBv5 parameters Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 26/91] [media] drxk: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 27/91] [media] ds3000: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 28/91] [media] dvb_dummy_fe: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 29/91] [media] ec100: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 30/91] [media] it913x-fe: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 31/91] [media] l64781: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 32/91] [media] lgs8gl5: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 33/91] [media] lgdt330x: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 34/91] [media] lgdt3305: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 35/91] [media] lgs8gxx: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 36/91] [media] vez1x93: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 37/91] [media] mb86a16: Add delivery system type at fe struct Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 38/91] [media] mb86a20s: convert set_fontend to use DVBv5 parameters Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 39/91] [media] mt352: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 40/91] [media] nxt6000: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 41/91] [media] s5h1432: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 42/91] [media] sp8870: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 43/91] [media] sp887x: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 44/91] [media] stv0367: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 45/91] [media] tda10048: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 46/91] [media] tda1004x: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 47/91] [media] s921: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 48/91] [media] mt312: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 49/91] [media] s5h1420: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 50/91] [media] si21xx: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 51/91] [media] stb0899: convert get_frontend to the new struct Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 52/91] [media] stb6100: use get_frontend, instead of get_frontend_legacy() Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 53/91] [media] stv0288: convert set_fontend to use DVBv5 parameters Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 54/91] [media] stv0297: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 55/91] [media] stv0299: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 56/91] [media] stv900: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 57/91] [media] stv090x: use .delsys property, instead of get_property() Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 58/91] [media] tda10021: convert set_fontend to use DVBv5 parameters Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 59/91] [media] tda10023: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 60/91] [media] tda10071: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 61/91] [media] tda10086: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 62/91] [media] nxt200x: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 63/91] [media] or51132: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 64/91] [media] or51211: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 65/91] [media] s5h1409: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 66/91] [media] s55h1411: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 67/91] [media] tda8083: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 68/91] [media] vez1820: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 69/91] [media] staging/as102: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 70/91] [media] dst: " Mauro Carvalho Chehab
2011-12-27 1:08 ` [PATCH RFC 71/91] [media] af9005-fe: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 72/91] [media] cinergyT2-fe: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 73/91] [media] dtt200u-fe: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 74/91] [media] friio-fe: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 75/91] [media] gp8psk-fe: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 76/91] [media] mxl111sf-demod: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 77/91] [media] vp702x-fe: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 78/91] [media] vp7045-fe: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 79/91] [media] firedtv: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 80/91] [media] siano: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 81/91] [media] ttusb-dec: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 82/91] [media] tlg2300: " Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 83/91] [media] dvb-core: remove get|set_frontend_legacy Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 84/91] [media] dvb: simplify get_tune_settings() struct Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 85/91] [media] dvb-core: Don't pass DVBv3 parameters on tune() fops Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 86/91] [media] dvb: don't pass a DVBv3 parameter for search() fops Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 87/91] [media] dvb: remove the track() fops Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 88/91] [media] dvb-core: don't use fe_bandwidth_t on driver Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 89/91] [media] dvb: don't use DVBv3 bandwidth macros Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 90/91] cx23885-dvb: Remove a dirty hack that would require DVBv3 Mauro Carvalho Chehab
2011-12-27 1:09 ` [PATCH RFC 91/91] [media] dvb-core: be sure that drivers won't use DVBv3 internally Mauro Carvalho Chehab
2011-12-27 12:25 ` [PATCH RFC 24/91] [media] em28xx-dvb: don't initialize drx-d non-used fields with zero Andreas Oberritter
2011-12-27 10:28 ` [PATCH RFC 04/91] [media] af9013: convert set_fontend to use DVBv5 parameters Antti Palosaari
2011-12-27 11:58 ` Mauro Carvalho Chehab
2011-12-27 12:21 ` [PATCH RFC 03/91] [media] dvb-core: add support for a DVBv5 get_frontend() callback Andreas Oberritter
2011-12-27 13:49 ` Mauro Carvalho Chehab
2011-12-27 14:47 ` Andreas Oberritter
2011-12-27 17:26 ` Mauro Carvalho Chehab
2011-12-27 20:44 ` Andreas Oberritter
2011-12-27 22:33 ` Mauro Carvalho Chehab
2011-12-27 20:47 ` Andreas Oberritter
2011-12-27 22:36 ` Mauro Carvalho Chehab
2011-12-30 14:41 ` Mauro Carvalho Chehab
2011-12-27 22:43 ` Mauro Carvalho Chehab
2011-12-27 12:11 ` [PATCH RFC 01/91] [media] dvb-core: allow demods to specify the supported delivery systems supported standards Andreas Oberritter
2011-12-27 13:28 ` Mauro Carvalho Chehab
2011-12-27 14:33 ` Andreas Oberritter
2011-12-27 17:06 ` Mauro Carvalho Chehab
2011-12-27 17:33 ` Antti Palosaari
2011-12-27 17:46 ` Mauro Carvalho Chehab
2011-12-27 20:37 ` Andreas Oberritter [this message]
2011-12-27 22:07 ` Mauro Carvalho Chehab
2012-01-02 6:20 ` Manu Abraham
2011-12-27 12:31 ` [PATCH RFC 00/91] Only use DVBv5 internally on frontend drivers Andreas Oberritter
2011-12-27 13:19 ` Mauro Carvalho Chehab
2011-12-27 13:55 ` Mauro Carvalho Chehab
2011-12-28 15:50 ` e9hack
2011-12-30 13:19 ` Mauro Carvalho Chehab
2011-12-30 17:16 ` e9hack
2011-12-30 17:36 ` Mauro Carvalho Chehab
2011-12-30 17:37 ` [PATCH] [media] tda18271c2dd: fix support for DVB-C Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EFA2C86.5040604@linuxtv.org \
--to=obi@linuxtv.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).