mirror of
https://github.com/armbian/build.git
synced 2025-08-09 12:46:58 +02:00
I have changed the way the patches are generated a bit. Instead of using orange-pi branch from megous tree for 6.6 kernel, I have used the following kernel branches a83t-suspend, af8133j, anx, audio, axp, cam, drm, err, fixes, mbus, modem, opi3, pb, pinetab, pp, ppkb, samuel, speed, tbs-a711, ths These branches were carefully chosen to include only allwinner related patches and remove importing of the rockchip related patches into the allwinner kernel. Following patches are modified to fix patch application failure - patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch - patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch - patches.armbian/arm64-dts-allwinner-h616-Add-efuse_xlate-cpu-frequency-scaling-v1_6_2.patch - patches.armbian/arm64-dts-allwinner-h616-LED-green_power_on-red_status_heartbeat.patch - patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch - patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1.patch Following patches are modified because of kernel api change to fix compilation failure - patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch - patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch
58 lines
2.2 KiB
Diff
58 lines
2.2 KiB
Diff
From 5ea9d06c14e2c254e90a36cc97e6e8cdd86a9b66 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 034/170] 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 9d34e5785..0a17ed0dc 100644
|
|
--- a/drivers/staging/media/sunxi/cedrus/cedrus.h
|
|
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.h
|
|
@@ -168,6 +168,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 33726175d..9bb82c8e0 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.35.3
|
|
|