From: Smitha T Murthy <smitha.t@samsung.com>
To: linux-arm-kernel@lists.infradead.org,
linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org
Cc: m.szyprowski@samsung.com, andrzej.hajda@intel.com,
mchehab@kernel.org, hverkuil-cisco@xs4all.nl,
ezequiel@vanguardiasur.com.ar, jernej.skrabec@gmail.com,
benjamin.gaignard@collabora.com, stanimir.varbanov@linaro.org,
dillon.minfei@gmail.com, david.plowman@raspberrypi.com,
mark.rutland@arm.com, robh+dt@kernel.org, krzk+dt@kernel.org,
andi@etezian.org, alim.akhtar@samsung.com,
aswani.reddy@samsung.com, pankaj.dubey@samsung.com,
Smitha T Murthy <smitha.t@samsung.com>,
linux-fsd@tesla.com
Subject: [PATCH 16/20] media: s5p-mfc: Fix to handle reference queue during finishing
Date: Tue, 17 May 2022 18:25:44 +0530 [thread overview]
Message-ID: <20220517125548.14746-17-smitha.t@samsung.com> (raw)
In-Reply-To: <20220517125548.14746-1-smitha.t@samsung.com>
On receiving last buffer driver puts MFC to
MFCINST_FINISHING state which in turn skips
transferring of frame from SRC to REF queue.
This causes driver to stop MFC encoding and
last frame is lost.
This patch guarantees safe handling of frames
during MFCINST_FINISHING and correct clearing
of workbit to avoid early stopping of encoding.
Cc: linux-fsd@tesla.com
Signed-off-by: Smitha T Murthy <smitha.t@samsung.com>
---
drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c
index 95e18f1cabb0..91b7ff07feff 100644
--- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c
+++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c
@@ -1411,6 +1411,7 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
unsigned long mb_y_addr, mb_c_addr, mb_c_1_addr;
int slice_type;
unsigned int strm_size;
+ bool src_ready;
slice_type = s5p_mfc_hw_call(dev->mfc_ops, get_enc_slice_type, dev);
strm_size = s5p_mfc_hw_call(dev->mfc_ops, get_enc_strm_size, dev);
@@ -1464,7 +1465,8 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
}
}
}
- if ((ctx->src_queue_cnt > 0) && (ctx->state == MFCINST_RUNNING)) {
+ if ((ctx->src_queue_cnt > 0) && (ctx->state == MFCINST_RUNNING ||
+ ctx->state == MFCINST_FINISHING)) {
mb_entry = list_entry(ctx->src_queue.next, struct s5p_mfc_buf,
list);
if (mb_entry->flags & MFC_BUF_FLAG_USED) {
@@ -1495,7 +1497,13 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
vb2_set_plane_payload(&mb_entry->b->vb2_buf, 0, strm_size);
vb2_buffer_done(&mb_entry->b->vb2_buf, VB2_BUF_STATE_DONE);
}
- if ((ctx->src_queue_cnt == 0) || (ctx->dst_queue_cnt == 0))
+
+ src_ready = true;
+ if ((ctx->state == MFCINST_RUNNING) && (ctx->src_queue_cnt == 0))
+ src_ready = false;
+ if ((ctx->state == MFCINST_FINISHING) && (ctx->ref_queue_cnt == 0))
+ src_ready = false;
+ if ((!src_ready) || (ctx->dst_queue_cnt == 0))
clear_work_bit(ctx);
return 0;
--
2.17.1
next prev parent reply other threads:[~2022-05-17 13:02 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20220517125511epcas5p4e9a4e3c327771dd1faf0a50057a2c17b@epcas5p4.samsung.com>
2022-05-17 12:55 ` [PATCH 00/20] Add MFC v12 support Smitha T Murthy
2022-05-17 12:55 ` [PATCH 01/20] MAINTAINERS: Add git repo path for MFC Smitha T Murthy
2022-05-17 13:35 ` Krzysztof Kozlowski
2022-05-17 12:55 ` [PATCH 02/20] dt-bindings: media: s5p-mfc: Convert s5p-mfc.txt to new DT schema Smitha T Murthy
2022-05-17 13:55 ` Krzysztof Kozlowski
2022-07-05 11:44 ` Smitha T Murthy
2022-07-05 12:08 ` Krzysztof Kozlowski
2022-05-17 20:19 ` Rob Herring
2022-05-17 12:55 ` [PATCH 03/20] dt-bindings: media: s5p-mfc: Add mfcv12 variant Smitha T Murthy
2022-05-17 13:58 ` Krzysztof Kozlowski
2022-07-05 11:46 ` Smitha T Murthy
2022-05-17 12:55 ` [PATCH 04/20] media: s5p-mfc: Rename IS_MFCV10 macro Smitha T Murthy
2022-05-18 8:41 ` Andrzej Hajda
2022-05-19 6:46 ` Andrzej Hajda
2022-05-17 12:55 ` [PATCH 05/20] media: s5p-mfc: Add initial support for MFCv12 Smitha T Murthy
2022-05-18 11:38 ` Andrzej Hajda
2022-05-17 12:55 ` [PATCH 06/20] Documention: v4l: Documentation for VP9 CIDs Smitha T Murthy
2022-05-17 13:13 ` Nicolas Dufresne
2022-07-05 11:26 ` Smitha T Murthy
2022-05-18 9:45 ` Hans Verkuil
2022-05-17 12:55 ` [PATCH 07/20] media: v4l2: Add v4l2 control IDs for VP9 encoder Smitha T Murthy
2022-05-17 12:55 ` [PATCH 08/20] media: s5p-mfc: Add support " Smitha T Murthy
2022-05-17 12:55 ` [PATCH 09/20] media: s5p-mfc: Add YV12 and I420 multiplanar format support Smitha T Murthy
2022-05-17 12:55 ` [PATCH 10/20] media: s5p-mfc: Add support for rate controls in MFCv12 Smitha T Murthy
2022-05-17 12:55 ` [PATCH 11/20] media: s5p-mfc: Add support for UHD encoding Smitha T Murthy
2022-05-18 9:50 ` Hans Verkuil
2022-05-17 12:55 ` [PATCH 12/20] media: s5p-mfc: Add support for DMABUF for encoder Smitha T Murthy
2022-05-17 12:55 ` [PATCH 13/20] media: s5p-mfc: Set context for valid case before calling try_run Smitha T Murthy
2022-05-17 12:55 ` [PATCH 14/20] media: s5p-mfc: Load firmware for each run in MFCv12 Smitha T Murthy
2022-05-17 12:55 ` [PATCH 15/20] media: s5p-mfc: DPB Count Independent of VIDIOC_REQBUF Smitha T Murthy
2022-05-17 13:59 ` Krzysztof Kozlowski
2022-07-05 11:47 ` Smitha T Murthy
2022-05-17 12:55 ` Smitha T Murthy [this message]
2022-05-17 14:04 ` [PATCH 16/20] media: s5p-mfc: Fix to handle reference queue during finishing Krzysztof Kozlowski
2022-05-17 12:55 ` [PATCH 17/20] media: s5p-mfc: Clear workbit to handle error condition Smitha T Murthy
2022-05-17 14:04 ` Krzysztof Kozlowski
2022-07-05 11:52 ` Smitha T Murthy
2022-05-17 12:55 ` [PATCH 18/20] media: s5p-mfc: Correction in register read and write for H264 Smitha T Murthy
2022-05-17 14:04 ` Krzysztof Kozlowski
2022-07-05 11:50 ` Smitha T Murthy
2022-05-17 12:55 ` [PATCH 19/20] arm64: dts: fsd: Add MFC related DT enteries Smitha T Murthy
2022-05-17 14:02 ` Krzysztof Kozlowski
2022-07-05 11:49 ` Smitha T Murthy
2022-05-17 12:55 ` [PATCH 20/20] arm64 defconfig: Add MFC in defconfig Smitha T Murthy
2022-05-17 14:03 ` Krzysztof Kozlowski
2022-05-18 9:42 ` [PATCH 00/20] Add MFC v12 support Hans Verkuil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220517125548.14746-17-smitha.t@samsung.com \
--to=smitha.t@samsung.com \
--cc=alim.akhtar@samsung.com \
--cc=andi@etezian.org \
--cc=andrzej.hajda@intel.com \
--cc=aswani.reddy@samsung.com \
--cc=benjamin.gaignard@collabora.com \
--cc=david.plowman@raspberrypi.com \
--cc=devicetree@vger.kernel.org \
--cc=dillon.minfei@gmail.com \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=hverkuil-cisco@xs4all.nl \
--cc=jernej.skrabec@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-fsd@tesla.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=mark.rutland@arm.com \
--cc=mchehab@kernel.org \
--cc=pankaj.dubey@samsung.com \
--cc=robh+dt@kernel.org \
--cc=stanimir.varbanov@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox