media: v4l2-subdev.rst: Update doc regarding subdev descriptors
Update the doc to describe the new method of adding subdevice descriptors to async notifiers. Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
Родитель
66beb323e4
Коммит
c4a570179c
|
@ -247,20 +247,28 @@ performed using the :c:func:`v4l2_async_unregister_subdev` call. Subdevices
|
|||
registered this way are stored in a global list of subdevices, ready to be
|
||||
picked up by bridge drivers.
|
||||
|
||||
Bridge drivers in turn have to register a notifier object with an array of
|
||||
subdevice descriptors that the bridge device needs for its operation. This is
|
||||
Bridge drivers in turn have to register a notifier object. This is
|
||||
performed using the :c:func:`v4l2_async_notifier_register` call. To
|
||||
unregister the notifier the driver has to call
|
||||
:c:func:`v4l2_async_notifier_unregister`. The former of the two functions
|
||||
takes two arguments: a pointer to struct :c:type:`v4l2_device` and a pointer to
|
||||
struct :c:type:`v4l2_async_notifier`. The latter contains a pointer to an array
|
||||
of pointers to subdevice descriptors of type struct :c:type:`v4l2_async_subdev`
|
||||
type. The V4L2 core will then use these descriptors to match asynchronously
|
||||
registered
|
||||
subdevices to them. If a match is detected the ``.bound()`` notifier callback
|
||||
is called. After all subdevices have been located the .complete() callback is
|
||||
called. When a subdevice is removed from the system the .unbind() method is
|
||||
called. All three callbacks are optional.
|
||||
takes two arguments: a pointer to struct :c:type:`v4l2_device` and a
|
||||
pointer to struct :c:type:`v4l2_async_notifier`.
|
||||
|
||||
Before registering the notifier, bridge drivers must do two things:
|
||||
first, the notifier must be initialized using the
|
||||
:c:func:`v4l2_async_notifier_init`. Second, bridge drivers can then
|
||||
begin to form a list of subdevice descriptors that the bridge device
|
||||
needs for its operation. Subdevice descriptors are added to the notifier
|
||||
using the :c:func:`v4l2_async_notifier_add_subdev` call. This function
|
||||
takes two arguments: a pointer to struct :c:type:`v4l2_async_notifier`,
|
||||
and a pointer to the subdevice descripter, which is of type struct
|
||||
:c:type:`v4l2_async_subdev`.
|
||||
|
||||
The V4L2 core will then use these descriptors to match asynchronously
|
||||
registered subdevices to them. If a match is detected the ``.bound()``
|
||||
notifier callback is called. After all subdevices have been located the
|
||||
.complete() callback is called. When a subdevice is removed from the
|
||||
system the .unbind() method is called. All three callbacks are optional.
|
||||
|
||||
V4L2 sub-device userspace API
|
||||
-----------------------------
|
||||
|
|
Загрузка…
Ссылка в новой задаче