Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[cascardo/linux.git] / Documentation / media / uapi / v4l / vidioc-subscribe-event.rst
index 3f28e8c..e4a5143 100644 (file)
@@ -16,7 +16,11 @@ VIDIOC_SUBSCRIBE_EVENT - VIDIOC_UNSUBSCRIBE_EVENT - Subscribe or unsubscribe eve
 Synopsis
 ========
 
-.. cpp:function:: int ioctl( int fd, int request, struct v4l2_event_subscription *argp )
+.. c:function:: int ioctl( int fd, VIDIOC_SUBSCRIBE_EVENT, struct v4l2_event_subscription *argp )
+    :name: VIDIOC_SUBSCRIBE_EVENT
+
+.. c:function:: int ioctl( int fd, VIDIOC_UNSUBSCRIBE_EVENT, struct v4l2_event_subscription *argp )
+    :name: VIDIOC_UNSUBSCRIBE_EVENT
 
 
 Arguments
@@ -25,9 +29,6 @@ Arguments
 ``fd``
     File descriptor returned by :ref:`open() <func-open>`.
 
-``request``
-    VIDIOC_SUBSCRIBE_EVENT, VIDIOC_UNSUBSCRIBE_EVENT
-
 ``argp``
 
 
@@ -38,54 +39,40 @@ Subscribe or unsubscribe V4L2 event. Subscribed events are dequeued by
 using the :ref:`VIDIOC_DQEVENT` ioctl.
 
 
-.. _v4l2-event-subscription:
+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
+
+.. c:type:: v4l2_event_subscription
 
 .. flat-table:: struct v4l2_event_subscription
     :header-rows:  0
     :stub-columns: 0
     :widths:       1 1 2
 
+    * - __u32
+      - ``type``
+      - Type of the event, see :ref:`event-type`.
 
-    -  .. row 1
-
-       -  __u32
-
-       -  ``type``
-
-       -  Type of the event, see :ref:`event-type`.
-
-         .. note:: ``V4L2_EVENT_ALL`` can be used with
-            :ref:`VIDIOC_UNSUBSCRIBE_EVENT <VIDIOC_SUBSCRIBE_EVENT>` for
-            unsubscribing all events at once.
-
-    -  .. row 2
-
-       -  __u32
-
-       -  ``id``
-
-       -  ID of the event source. If there is no ID associated with the
-         event source, then set this to 0. Whether or not an event needs an
-         ID depends on the event type.
-
-    -  .. row 3
-
-       -  __u32
-
-       -  ``flags``
+       .. note::
 
-       -  Event flags, see :ref:`event-flags`.
+          ``V4L2_EVENT_ALL`` can be used with
+          :ref:`VIDIOC_UNSUBSCRIBE_EVENT <VIDIOC_SUBSCRIBE_EVENT>` for
+          unsubscribing all events at once.
+    * - __u32
+      - ``id``
+      - ID of the event source. If there is no ID associated with the
+       event source, then set this to 0. Whether or not an event needs an
+       ID depends on the event type.
+    * - __u32
+      - ``flags``
+      - Event flags, see :ref:`event-flags`.
+    * - __u32
+      - ``reserved``\ [5]
+      - Reserved for future extensions. Drivers and applications must set
+       the array to zero.
 
-    -  .. row 4
-
-       -  __u32
-
-       -  ``reserved``\ [5]
-
-       -  Reserved for future extensions. Drivers and applications must set
-         the array to zero.
 
 
+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
 
 .. _event-flags:
 
@@ -94,40 +81,30 @@ using the :ref:`VIDIOC_DQEVENT` ioctl.
     :stub-columns: 0
     :widths:       3 1 4
 
-
-    -  .. row 1
-
-       -  ``V4L2_EVENT_SUB_FL_SEND_INITIAL``
-
-       -  0x0001
-
-       -  When this event is subscribed an initial event will be sent
-         containing the current status. This only makes sense for events
-         that are triggered by a status change such as ``V4L2_EVENT_CTRL``.
-         Other events will ignore this flag.
-
-    -  .. row 2
-
-       -  ``V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK``
-
-       -  0x0002
-
-       -  If set, then events directly caused by an ioctl will also be sent
-         to the filehandle that called that ioctl. For example, changing a
-         control using :ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` will cause
-         a V4L2_EVENT_CTRL to be sent back to that same filehandle.
-         Normally such events are suppressed to prevent feedback loops
-         where an application changes a control to a one value and then
-         another, and then receives an event telling it that that control
-         has changed to the first value.
-
-         Since it can't tell whether that event was caused by another
-         application or by the :ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>`
-         call it is hard to decide whether to set the control to the value
-         in the event, or ignore it.
-
-         Think carefully when you set this flag so you won't get into
-         situations like that.
+    * - ``V4L2_EVENT_SUB_FL_SEND_INITIAL``
+      - 0x0001
+      - When this event is subscribed an initial event will be sent
+       containing the current status. This only makes sense for events
+       that are triggered by a status change such as ``V4L2_EVENT_CTRL``.
+       Other events will ignore this flag.
+    * - ``V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK``
+      - 0x0002
+      - If set, then events directly caused by an ioctl will also be sent
+       to the filehandle that called that ioctl. For example, changing a
+       control using :ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` will cause
+       a V4L2_EVENT_CTRL to be sent back to that same filehandle.
+       Normally such events are suppressed to prevent feedback loops
+       where an application changes a control to a one value and then
+       another, and then receives an event telling it that that control
+       has changed to the first value.
+
+       Since it can't tell whether that event was caused by another
+       application or by the :ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>`
+       call it is hard to decide whether to set the control to the value
+       in the event, or ignore it.
+
+       Think carefully when you set this flag so you won't get into
+       situations like that.
 
 
 Return Value