Re: [RFC v2 00/10] Preparing the request API

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

 



On 03/25/2018 05:12 PM, Hans Verkuil wrote:
> Hi all,
> 
> On 03/23/2018 10:17 PM, Sakari Ailus wrote:
>> Hi folks,
>>
>> This preliminary RFC patchset prepares for the request API. What's new
>> here is support for binding arbitrary configuration or resources to
>> requests.
>>
>> There are a few new concepts here:
>>
>> Class --- a type of configuration or resource a driver (or e.g. the V4L2
>> framework) can attach to a resource. E.g. a video buffer queue would be a
>> class.
>>
>> Object --- an instance of the class. This may be either configuration (in
>> which case the setting will stay until changed, e.g. V4L2 format on a
>> video node) or a resource (such as a video buffer).
>>
>> Reference --- a reference to an object. If a configuration is not changed
>> in a request, instead of allocating a new object, a reference to an
>> existing object is used. This saves time and memory.
>>
>> I expect Laurent to comment on aligning the concept names between the
>> request API and DRM. As far as I understand, the respective DRM names for
>> "class" and "object" used in this set would be "object" and "state".
>>
>> The drivers will need to interact with the requests in three ways:
>>
>> - Allocate new configurations or resources. Drivers are free to store
>>   their own data into request objects as well. These callbacks are
>>   specific to classes.
>>
>> - Validate and queue callbacks. These callbacks are used to try requests
>>   (validate only) as well as queue them (validate and queue). These
>>   callbacks are media device wide, at least for now.
>>
>> The lifetime of the objects related to requests is based on refcounting
>> both requests and request objects. This fits well for existing use cases
>> whether or not based on refcounting; what still needs most of the
>> attention is likely that the number of gets and puts matches once the
>> object is no longer needed.
>>
>> Configuration can be bound to the request the usual way (V4L2 IOCTLs with
>> the request_fd field set to the request). Once queued, request completion
>> is signalled through polling the request file handle (POLLPRI).
>>
>> I'm posting this as an RFC because it's not complete yet. The code
>> compiles but no testing has been done yet.
> 
> Thank you for this patch series. There are some good ideas here, but it is
> quite far from being useful with Alexandre's RFCv4 series.
> 
> So this weekend I worked on a merger of this work and the RFCv4 Request API
> patch series, taking what I think are the best bits of both.
> 
> It is available here:
> 
> https://git.linuxtv.org/hverkuil/media_tree.git/log/?h=reqv6

I reorganized/cleaned up the patch series. So look here instead:

https://git.linuxtv.org/hverkuil/media_tree.git/log/?h=reqv7

It's easier to follow.

Regards,

	Hans



[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