mirror of
https://github.com/armbian/build.git
synced 2025-08-09 20:56:57 +02:00
* Recycling of megous v5.16.4 patches The patches were sorted as far as possible. Some patches are renamed according to their place of application. The length of the patch name has been changed to improve readability using the `git format-patch --filename-max-length=75` method. The folder containing the patches will have the name `patches.name` and the corresponding file `series.name` for the convenience of processing and moving them upstream. But the control file remains `series.conf`. Signed-off-by: The-going <48602507+The-going@users.noreply.github.com> * Add a series of armbian patches for 5.16 Signed-off-by: The-going <48602507+The-going@users.noreply.github.com> * Remove patches whose fixes are already in the kernel Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
58 lines
2.2 KiB
Diff
58 lines
2.2 KiB
Diff
From 93b5b1670e96f2a3a8dd1d5a9ac9d2b38c295917 Mon Sep 17 00:00:00 2001
|
|
From: Jernej Skrabec <jernej.skrabec@siol.net>
|
|
Date: Sat, 9 Nov 2019 13:06:15 +0100
|
|
Subject: [PATCH 048/101] drv:media: cedrus: Add callback for buffer cleanup
|
|
|
|
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
|
|
---
|
|
drivers/staging/media/sunxi/cedrus/cedrus.h | 1 +
|
|
drivers/staging/media/sunxi/cedrus/cedrus_video.c | 13 +++++++++++++
|
|
2 files changed, 14 insertions(+)
|
|
|
|
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h b/drivers/staging/media/sunxi/cedrus/cedrus.h
|
|
index c790963ef..35faf42f2 100644
|
|
--- a/drivers/staging/media/sunxi/cedrus/cedrus.h
|
|
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.h
|
|
@@ -166,6 +166,7 @@ struct cedrus_dec_ops {
|
|
int (*start)(struct cedrus_ctx *ctx);
|
|
void (*stop)(struct cedrus_ctx *ctx);
|
|
void (*trigger)(struct cedrus_ctx *ctx);
|
|
+ void (*buf_cleanup)(struct cedrus_ctx *ctx, struct cedrus_buffer *buf);
|
|
};
|
|
|
|
struct cedrus_variant {
|
|
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
|
|
index 6e1486987..80e33775b 100644
|
|
--- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c
|
|
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
|
|
@@ -469,6 +469,18 @@ static int cedrus_buf_prepare(struct vb2_buffer *vb)
|
|
return 0;
|
|
}
|
|
|
|
+static void cedrus_buf_cleanup(struct vb2_buffer *vb)
|
|
+{
|
|
+ struct vb2_queue *vq = vb->vb2_queue;
|
|
+ struct cedrus_ctx *ctx = vb2_get_drv_priv(vq);
|
|
+ struct cedrus_dev *dev = ctx->dev;
|
|
+ struct cedrus_dec_ops *ops = dev->dec_ops[ctx->current_codec];
|
|
+
|
|
+ if (!V4L2_TYPE_IS_OUTPUT(vq->type) && ops->buf_cleanup)
|
|
+ ops->buf_cleanup(ctx,
|
|
+ vb2_to_cedrus_buffer(vq->bufs[vb->index]));
|
|
+}
|
|
+
|
|
static int cedrus_start_streaming(struct vb2_queue *vq, unsigned int count)
|
|
{
|
|
struct cedrus_ctx *ctx = vb2_get_drv_priv(vq);
|
|
@@ -551,6 +563,7 @@ static void cedrus_buf_request_complete(struct vb2_buffer *vb)
|
|
static struct vb2_ops cedrus_qops = {
|
|
.queue_setup = cedrus_queue_setup,
|
|
.buf_prepare = cedrus_buf_prepare,
|
|
+ .buf_cleanup = cedrus_buf_cleanup,
|
|
.buf_queue = cedrus_buf_queue,
|
|
.buf_out_validate = cedrus_buf_out_validate,
|
|
.buf_request_complete = cedrus_buf_request_complete,
|
|
--
|
|
2.31.1
|
|
|