Re: [PATCH 0/9] dvb_frontend: Don't rely on drivers filling ops->info.type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 2, 2012 at 8:03 PM, Mauro Carvalho Chehab
<mchehab@xxxxxxxxxx> wrote:
> On 02-01-2012 09:48, Manu Abraham wrote:
>> On Mon, Jan 2, 2012 at 4:25 PM, Mauro Carvalho Chehab
>> <mchehab@xxxxxxxxxx> wrote:
>>> On 02-01-2012 05:31, Manu Abraham wrote:
>>>> On Mon, Jan 2, 2012 at 1:41 AM, Mauro Carvalho Chehab
>>>> <mchehab@xxxxxxxxxx> wrote:
>>>>> This is likely the last patch series from my series of DVB cleanups.
>>>>> I still intend to work on DRX-K frontend merge patch, but this will
>>>>> need to wait until my return to my home town. Of course, if you're
>>>>> hurry with this, patches are welcome.
>>>>>
>>>>> This series changes dvb_frontend to use ops->delsys instead of ops->info.type,
>>>>> as the source for the frontend support. With this series:
>>>>>
>>>>> 1) the first delivery system is reported as info.type for DVBv3 apps;
>>>>> 2) all subsequent checks are made against the current delivery system
>>>>>   (c->delivery_system);
>>>>> 3) An attempt to use an un-suported delivery system will either return
>>>>>   an error, or enter into the emulation mode, if the frontend is
>>>>>   using a newer delivery system.
>>>>> 4) Lots of cleanup at the cache sync logic. Now, a pure DVBv5 call
>>>>>   shouldn't fill the DVBv3 structs. Still, as events are generated,
>>>>>   the event will dynamically generate a DVBv3 compat struct.
>>>>>
>>>>> The emulation logic is not perfect (but it were not perfect before this
>>>>> patch series). The emulation will work worse for devices that have
>>>>> support for different "ops->info.type", as there's no way for a DVBv3
>>>>> application to work properly with those devices.
>>>>>
>>>>> TODO:
>>>>>
>>>>> There are a few things left to do, with regards to DVB frontend cleanup.
>>>>> They're more related to the DVBv5 API, so they were out of the scope
>>>>> of this series. Maybe some work for this upcoming year!
>>>>>
>>>>> They are:
>>>>>
>>>>>        1) Fix the capabilities flags. There are several capabilities
>>>>> not reported, like several modulations, etc. There are not enough flags
>>>>> for them. It was suggested that the delivery system (DTV_ENUM_DELSYS)
>>>>> would be enough, but it doesn't seem so. For example, there are several
>>>>> SYS_ATSC devices that only support VSB_8. So, we'll end by needing to
>>>>> either extend the current way (but we lack bits) or to implement a DVBv5
>>>>> way for that;
>>>>>
>>>>
>>>> If an ATSC device supports fewer modulations, things should be
>>>> even simpler. Just return INVALID Frontend setup if it is trying to
>>>> setup something invalid, that which is not supported. Advertising
>>>> the available modulations doesn't help in any sense.
>>>> A53 spec talks about devices supporting 2 modes, Terrestrial
>>>> mode and High data rate mode. It is unlikely and yet maybe
>>>> some devices don't adhere to specifications supporting only
>>>> 8VSB, but even in those cases, just returning -EINVAL would be
>>>> sufficient for 16VSB.
>>>>
>>>> What you suggest, just adds confusion alone to applications as
>>>> to what to do with all the exported fields/flags.
>>>
>>> Returning -EINVAL works from kernel POV, but at least one userpsace
>>> application developer sent me an email those days complaining that
>>> applications need to know what are the supported capabilities, in order
>>> to provide a proper userspace gui.
>>
>>
>> FWIW, userapps shouldn't really bother about all the
>> hardware details. If user application were to really
>> bother about all the tiny intricacies (I can point out
>> a large amount of tiny intricacies that which might
>> sound pretty, as you are stating) then there wouldn't
>> be the need for a driver API -- the application itself
>> can contain the driver code. In short, providing too
>> much information to application is also not nice.
>>
>> The user application should simply set the parameters
>> and try to demodulate, return error if it cannot.
>
> -EINVAL could mean an error on any parameter, not just on
> modulation.

This suggestion of FE_CAN_MODULATION_X/Y/Z just follows
an earlier discussion about the FE_CAN_ bits where almost
everyone came to the conclusion and eventually agreed
that those are superfluous and such fine grained-ness is
not useful.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux