mirror of
https://github.com/Fishwaldo/build.git
synced 2025-04-28 00:41:40 +00:00
* Attach Meson64 to mainline with a bunch of patches. Tested, but need further work. * Enable DVFS on N2 which sometimes works, sometime doesn't, cleanup * Enable beta targets for Meson64 kernel family * Bump with version
70 lines
2.1 KiB
Diff
70 lines
2.1 KiB
Diff
|
|
vb2_request_get_buf() returns the N-th buffer attached to a media
|
|
request.
|
|
|
|
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
|
|
---
|
|
Changes in v3:
|
|
* None
|
|
|
|
Changes in v2:
|
|
* Adjust the kernel doc as suggested by Hans
|
|
---
|
|
.../media/common/videobuf2/videobuf2-core.c | 23 +++++++++++++++++++
|
|
include/media/videobuf2-core.h | 11 +++++++++
|
|
2 files changed, 34 insertions(+)
|
|
|
|
diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
|
|
index 4489744fbbd9..c4c7980dcb0d 100644
|
|
--- a/drivers/media/common/videobuf2/videobuf2-core.c
|
|
+++ b/drivers/media/common/videobuf2/videobuf2-core.c
|
|
@@ -1416,6 +1416,29 @@ unsigned int vb2_request_buffer_cnt(struct media_request *req)
|
|
}
|
|
EXPORT_SYMBOL_GPL(vb2_request_buffer_cnt);
|
|
|
|
+struct vb2_buffer *vb2_request_get_buf(struct media_request *req,
|
|
+ unsigned int n)
|
|
+{
|
|
+ struct media_request_object *obj;
|
|
+ struct vb2_buffer *buf = NULL;
|
|
+ unsigned int nbufs = 0;
|
|
+ unsigned long flags;
|
|
+
|
|
+ spin_lock_irqsave(&req->lock, flags);
|
|
+ list_for_each_entry(obj, &req->objects, list) {
|
|
+ if (!vb2_request_object_is_buffer(obj) ||
|
|
+ nbufs++ < n)
|
|
+ continue;
|
|
+
|
|
+ buf = container_of(obj, struct vb2_buffer, req_obj);
|
|
+ break;
|
|
+ }
|
|
+ spin_unlock_irqrestore(&req->lock, flags);
|
|
+
|
|
+ return buf;
|
|
+}
|
|
+EXPORT_SYMBOL_GPL(vb2_request_get_buf);
|
|
+
|
|
int vb2_core_prepare_buf(struct vb2_queue *q, unsigned int index, void *pb)
|
|
{
|
|
struct vb2_buffer *vb;
|
|
diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h
|
|
index a2b2208b02da..6206e25df764 100644
|
|
--- a/include/media/videobuf2-core.h
|
|
+++ b/include/media/videobuf2-core.h
|
|
@@ -1225,4 +1225,15 @@ bool vb2_request_object_is_buffer(struct media_request_object *obj);
|
|
*/
|
|
unsigned int vb2_request_buffer_cnt(struct media_request *req);
|
|
|
|
+/**
|
|
+ * vb2_request_get_buf() - return the buffer at index @idx
|
|
+ *
|
|
+ * @req: the request.
|
|
+ * @n: search for the Nth buffer in the req object list
|
|
+ *
|
|
+ * Return a vb2 buffer or NULL if there's no buffer at the specified position
|
|
+ */
|
|
+struct vb2_buffer *vb2_request_get_buf(struct media_request *req,
|
|
+ unsigned int n);
|
|
+
|
|
#endif /* _MEDIA_VIDEOBUF2_CORE_H */
|