armbian_build/patch/kernel/archive/meson64-6.8/general-meson-vdec-check-if-parser-has-really-parser.patch
SteeManMI d4093bd18e
Bump meson64 edge from 6.7 to 6.8 (#6454)
* Bump meson64 edge from 6.7 to 6.8

 Changes to be committed:
	modified:   config/sources/families/include/meson64_common.inc
	renamed:    patch/kernel/archive/meson64-6.7 -> patch/kernel/archive/meson64-6.8
	modified:   patch/kernel/archive/meson64-6.8/board-bananapi-cm4-cm4io-fixes.patch
	modified:   patch/kernel/archive/meson64-6.8/general-input-touchscreen-Add-D-WAV-Multitouch.patch
	new file:   patch/kernel/archive/meson64-6.8/kernel-6.8-tools-cgroup-makefile.patch

* updates from rewrite-kernel-patches

* updates from rewrite-kernel-config
2024-04-01 07:43:40 -04:00

52 lines
1.7 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Mon, 22 Nov 2021 09:15:21 +0000
Subject: WIP: drivers: meson: vdec: check if parser has really parser before
marking input buffer as error
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
drivers/staging/media/meson/vdec/esparser.c | 14 +++++++---
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c
index 6e0500bb807d..43a489162035 100644
--- a/drivers/staging/media/meson/vdec/esparser.c
+++ b/drivers/staging/media/meson/vdec/esparser.c
@@ -299,6 +299,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf)
u32 num_dst_bufs = 0;
u32 offset;
u32 pad_size;
+ u32 wp, wp2;
/*
* When max ref frame is held by VP9, this should be -= 3 to prevent a
@@ -352,15 +353,20 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf)
}
pad_size = esparser_pad_start_code(core, vb, payload_size);
+ wp = amvdec_read_parser(core, PARSER_VIDEO_WP);
ret = esparser_write_data(core, phy, payload_size + pad_size);
+ wp2 = amvdec_read_parser(core, PARSER_VIDEO_WP);
if (ret <= 0) {
- dev_warn(core->dev, "esparser: input parsing error\n");
- amvdec_remove_ts(sess, vb->timestamp);
- v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_ERROR);
amvdec_write_parser(core, PARSER_FETCH_CMD, 0);
- return 0;
+ if (ret < 0 || wp2 == wp) {
+ dev_err(core->dev, "esparser: input parsing error ret %d (%x <=> %x)\n", ret, wp, wp2);
+ amvdec_remove_ts(sess, vb->timestamp);
+ v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_ERROR);
+
+ return 0;
+ }
}
atomic_inc(&sess->esparser_queued_bufs);
--
Armbian