aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@s-opensource.com>2016-07-22 06:27:06 -0400
committerMauro Carvalho Chehab <mchehab@s-opensource.com>2016-07-23 07:04:21 -0400
commit9d4ee1ad925ffc77fe3b8d6f6a188c54d65af5dc (patch)
treef4895bf715a91f731a90cbd3277a8f9e38629aaa
parent8f511fc4a32dba7451c4b9e6e82cfec881d9e67f (diff)
[media] v4l2-event.h: document all functions
Several functions weren't documented. Document them all. While here, makes checkpatch.pl happy. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
-rw-r--r--include/media/v4l2-event.h125
1 files changed, 113 insertions, 12 deletions
diff --git a/include/media/v4l2-event.h b/include/media/v4l2-event.h
index 9792f906423b..ca854203b8b9 100644
--- a/include/media/v4l2-event.h
+++ b/include/media/v4l2-event.h
@@ -73,14 +73,15 @@ struct video_device;
73 * @list: List node for the v4l2_fh->available list. 73 * @list: List node for the v4l2_fh->available list.
74 * @sev: Pointer to parent v4l2_subscribed_event. 74 * @sev: Pointer to parent v4l2_subscribed_event.
75 * @event: The event itself. 75 * @event: The event itself.
76 */ 76 */
77struct v4l2_kevent { 77struct v4l2_kevent {
78 struct list_head list; 78 struct list_head list;
79 struct v4l2_subscribed_event *sev; 79 struct v4l2_subscribed_event *sev;
80 struct v4l2_event event; 80 struct v4l2_event event;
81}; 81};
82 82
83/** struct v4l2_subscribed_event_ops - Subscribed event operations. 83/**
84 * struct v4l2_subscribed_event_ops - Subscribed event operations.
84 * 85 *
85 * @add: Optional callback, called when a new listener is added 86 * @add: Optional callback, called when a new listener is added
86 * @del: Optional callback, called when a listener stops listening 87 * @del: Optional callback, called when a listener stops listening
@@ -88,20 +89,23 @@ struct v4l2_kevent {
88 * @merge: Optional callback that can merge event 'old' into event 'new'. 89 * @merge: Optional callback that can merge event 'old' into event 'new'.
89 */ 90 */
90struct v4l2_subscribed_event_ops { 91struct v4l2_subscribed_event_ops {
91 int (*add)(struct v4l2_subscribed_event *sev, unsigned elems); 92 int (*add)(struct v4l2_subscribed_event *sev, unsigned int elems);
92 void (*del)(struct v4l2_subscribed_event *sev); 93 void (*del)(struct v4l2_subscribed_event *sev);
93 void (*replace)(struct v4l2_event *old, const struct v4l2_event *new); 94 void (*replace)(struct v4l2_event *old, const struct v4l2_event *new);
94 void (*merge)(const struct v4l2_event *old, struct v4l2_event *new); 95 void (*merge)(const struct v4l2_event *old, struct v4l2_event *new);
95}; 96};
96 97
97/** 98/**
98 * struct v4l2_subscribed_event - Internal struct representing a subscribed event. 99 * struct v4l2_subscribed_event - Internal struct representing a subscribed
100 * event.
101 *
99 * @list: List node for the v4l2_fh->subscribed list. 102 * @list: List node for the v4l2_fh->subscribed list.
100 * @type: Event type. 103 * @type: Event type.
101 * @id: Associated object ID (e.g. control ID). 0 if there isn't any. 104 * @id: Associated object ID (e.g. control ID). 0 if there isn't any.
102 * @flags: Copy of v4l2_event_subscription->flags. 105 * @flags: Copy of v4l2_event_subscription->flags.
103 * @fh: Filehandle that subscribed to this event. 106 * @fh: Filehandle that subscribed to this event.
104 * @node: List node that hooks into the object's event list (if there is one). 107 * @node: List node that hooks into the object's event list
108 * (if there is one).
105 * @ops: v4l2_subscribed_event_ops 109 * @ops: v4l2_subscribed_event_ops
106 * @elems: The number of elements in the events array. 110 * @elems: The number of elements in the events array.
107 * @first: The index of the events containing the oldest available event. 111 * @first: The index of the events containing the oldest available event.
@@ -116,27 +120,124 @@ struct v4l2_subscribed_event {
116 struct v4l2_fh *fh; 120 struct v4l2_fh *fh;
117 struct list_head node; 121 struct list_head node;
118 const struct v4l2_subscribed_event_ops *ops; 122 const struct v4l2_subscribed_event_ops *ops;
119 unsigned elems; 123 unsigned int elems;
120 unsigned first; 124 unsigned int first;
121 unsigned in_use; 125 unsigned int in_use;
122 struct v4l2_kevent events[]; 126 struct v4l2_kevent events[];
123}; 127};
124 128
129/**
130 * v4l2_event_dequeue - Dequeue events from video device.
131 *
132 * @fh: pointer to struct v4l2_fh
133 * @event: pointer to struct v4l2_event
134 * @nonblocking: if not zero, waits for an event to arrive
135 */
125int v4l2_event_dequeue(struct v4l2_fh *fh, struct v4l2_event *event, 136int v4l2_event_dequeue(struct v4l2_fh *fh, struct v4l2_event *event,
126 int nonblocking); 137 int nonblocking);
138
139/**
140 * v4l2_event_queue - Queue events to video device.
141 *
142 * @vdev: pointer to &struct video_device
143 * @ev: pointer to &struct v4l2_event
144 *
145 * The event will be queued for all &struct v4l2_fh file handlers.
146 *
147 * .. note::
148 * The driver's only responsibility is to fill in the type and the data
149 * fields.The other fields will be filled in by V4L2.
150 */
127void v4l2_event_queue(struct video_device *vdev, const struct v4l2_event *ev); 151void v4l2_event_queue(struct video_device *vdev, const struct v4l2_event *ev);
152
153/**
154 * v4l2_event_queue_fh - Queue events to video device.
155 *
156 * @fh: pointer to &struct v4l2_fh
157 * @ev: pointer to &struct v4l2_event
158 *
159 *
160 * The event will be queued only for the specified &struct v4l2_fh file handler.
161 *
162 * .. note::
163 * The driver's only responsibility is to fill in the type and the data
164 * fields.The other fields will be filled in by V4L2.
165 */
128void v4l2_event_queue_fh(struct v4l2_fh *fh, const struct v4l2_event *ev); 166void v4l2_event_queue_fh(struct v4l2_fh *fh, const struct v4l2_event *ev);
167
168/**
169 * v4l2_event_pending - Check if an event is available
170 *
171 * @fh: pointer to &struct v4l2_fh
172 *
173 * Returns the number of pending events.
174 */
129int v4l2_event_pending(struct v4l2_fh *fh); 175int v4l2_event_pending(struct v4l2_fh *fh);
176
177/**
178 * v4l2_event_subscribe - Subscribes to an event
179 *
180 * @fh: pointer to &struct v4l2_fh
181 * @sub: pointer to &struct v4l2_event_subscription
182 * @elems: size of the events queue
183 * @ops: pointer to &v4l2_subscribed_event_ops
184 *
185 * .. note::
186 *
187 * if @elems is zero, the framework will fill in a default value,
188 * with is currently 1 element.
189 */
130int v4l2_event_subscribe(struct v4l2_fh *fh, 190int v4l2_event_subscribe(struct v4l2_fh *fh,
131 const struct v4l2_event_subscription *sub, unsigned elems, 191 const struct v4l2_event_subscription *sub,
192 unsigned int elems,
132 const struct v4l2_subscribed_event_ops *ops); 193 const struct v4l2_subscribed_event_ops *ops);
194/**
195 * v4l2_event_unsubscribe - Unsubscribes to an event
196 *
197 * @fh: pointer to &struct v4l2_fh
198 * @sub: pointer to &struct v4l2_event_subscription
199 */
133int v4l2_event_unsubscribe(struct v4l2_fh *fh, 200int v4l2_event_unsubscribe(struct v4l2_fh *fh,
134 const struct v4l2_event_subscription *sub); 201 const struct v4l2_event_subscription *sub);
202/**
203 * v4l2_event_unsubscribe_all - Unsubscribes to all events
204 *
205 * @fh: pointer to &struct v4l2_fh
206 */
135void v4l2_event_unsubscribe_all(struct v4l2_fh *fh); 207void v4l2_event_unsubscribe_all(struct v4l2_fh *fh);
136int v4l2_event_subdev_unsubscribe(struct v4l2_subdev *sd, struct v4l2_fh *fh, 208
209/**
210 * v4l2_event_subdev_unsubscribe - Subdev variant of v4l2_event_unsubscribe()
211 *
212 * @sd: pointer to &struct v4l2_subdev
213 * @fh: pointer to &struct v4l2_fh
214 * @sub: pointer to &struct v4l2_event_subscription
215 *
216 * .. note::
217 *
218 * This function should be used for the &struct v4l2_subdev_core_ops
219 * %unsubscribe_event field.
220 */
221int v4l2_event_subdev_unsubscribe(struct v4l2_subdev *sd,
222 struct v4l2_fh *fh,
137 struct v4l2_event_subscription *sub); 223 struct v4l2_event_subscription *sub);
224/**
225 * v4l2_src_change_event_subscribe -
226 *
227 * @fh: pointer to struct v4l2_fh
228 * @sub: pointer to &struct v4l2_event_subscription
229 */
138int v4l2_src_change_event_subscribe(struct v4l2_fh *fh, 230int v4l2_src_change_event_subscribe(struct v4l2_fh *fh,
139 const struct v4l2_event_subscription *sub); 231 const struct v4l2_event_subscription *sub);
232/**
233 * v4l2_src_change_event_subdev_subscribe - Variant of v4l2_event_subscribe(),
234 * meant to subscribe only events of the type %V4L2_EVENT_SOURCE_CHANGE.
235 *
236 * @sd: pointer to &struct v4l2_subdev
237 * @fh: pointer to &struct v4l2_fh
238 * @sub: pointer to &struct v4l2_event_subscription
239 */
140int v4l2_src_change_event_subdev_subscribe(struct v4l2_subdev *sd, 240int v4l2_src_change_event_subdev_subscribe(struct v4l2_subdev *sd,
141 struct v4l2_fh *fh, struct v4l2_event_subscription *sub); 241 struct v4l2_fh *fh,
242 struct v4l2_event_subscription *sub);
142#endif /* V4L2_EVENT_H */ 243#endif /* V4L2_EVENT_H */