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
WARNING: multiple messages have this Message-ID (diff)
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 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-05-17 13:02 UTC|newest] Thread overview: 92+ 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 ` Smitha T Murthy [not found] ` <CGME20220517125551epcas5p42cca7f0a2db6dc1d16d0e27265c43f56@epcas5p4.samsung.com> 2022-05-17 12:55 ` [PATCH 01/20] MAINTAINERS: Add git repo path for MFC Smitha T Murthy 2022-05-17 12:55 ` Smitha T Murthy 2022-05-17 13:35 ` Krzysztof Kozlowski 2022-05-17 13:35 ` Krzysztof Kozlowski [not found] ` <CGME20220517125554epcas5p4e87a71471525056281f1578f4f80f760@epcas5p4.samsung.com> 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 12:55 ` Smitha T Murthy 2022-05-17 13:55 ` Krzysztof Kozlowski 2022-05-17 13:55 ` Krzysztof Kozlowski 2022-07-05 11:44 ` Smitha T Murthy 2022-07-05 11:44 ` Smitha T Murthy 2022-07-05 12:08 ` Krzysztof Kozlowski 2022-07-05 12:08 ` Krzysztof Kozlowski 2022-05-17 20:19 ` Rob Herring 2022-05-17 20:19 ` Rob Herring [not found] ` <CGME20220517125558epcas5p228cdf5f665468d3fd065d88a5d0ad157@epcas5p2.samsung.com> 2022-05-17 12:55 ` [PATCH 03/20] dt-bindings: media: s5p-mfc: Add mfcv12 variant Smitha T Murthy 2022-05-17 12:55 ` Smitha T Murthy 2022-05-17 13:58 ` Krzysztof Kozlowski 2022-05-17 13:58 ` Krzysztof Kozlowski 2022-07-05 11:46 ` Smitha T Murthy 2022-07-05 11:46 ` Smitha T Murthy [not found] ` <CGME20220517125601epcas5p47dfcac0c5e0c412eb0c335759c51c941@epcas5p4.samsung.com> 2022-05-17 12:55 ` [PATCH 04/20] media: s5p-mfc: Rename IS_MFCV10 macro Smitha T Murthy 2022-05-17 12:55 ` Smitha T Murthy 2022-05-18 8:41 ` Andrzej Hajda 2022-05-18 8:41 ` Andrzej Hajda 2022-05-19 6:46 ` Andrzej Hajda 2022-05-19 6:46 ` Andrzej Hajda [not found] ` <CGME20220517125605epcas5p44cbb77e6bc15ceb32a934e326fc777ef@epcas5p4.samsung.com> 2022-05-17 12:55 ` [PATCH 05/20] media: s5p-mfc: Add initial support for MFCv12 Smitha T Murthy 2022-05-17 12:55 ` Smitha T Murthy 2022-05-18 11:38 ` Andrzej Hajda 2022-05-18 11:38 ` Andrzej Hajda [not found] ` <CGME20220517125608epcas5p48b5d2f91c711e5728f993169b1d4b9a1@epcas5p4.samsung.com> 2022-05-17 12:55 ` [PATCH 06/20] Documention: v4l: Documentation for VP9 CIDs Smitha T Murthy 2022-05-17 12:55 ` Smitha T Murthy 2022-05-17 13:13 ` Nicolas Dufresne 2022-05-17 13:13 ` Nicolas Dufresne 2022-07-05 11:26 ` Smitha T Murthy 2022-07-05 11:26 ` Smitha T Murthy 2022-05-18 9:45 ` Hans Verkuil 2022-05-18 9:45 ` Hans Verkuil [not found] ` <CGME20220517125612epcas5p28e4cc7a208d1ac68267fa845e932ccc9@epcas5p2.samsung.com> 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 ` Smitha T Murthy [not found] ` <CGME20220517125615epcas5p200c1b10090dc03e430d720d1435afccf@epcas5p2.samsung.com> 2022-05-17 12:55 ` [PATCH 08/20] media: s5p-mfc: Add support " Smitha T Murthy 2022-05-17 12:55 ` Smitha T Murthy [not found] ` <CGME20220517125618epcas5p2e52b4a0e2895c7bd3dab3df27ae2ea1d@epcas5p2.samsung.com> 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 ` Smitha T Murthy [not found] ` <CGME20220517125622epcas5p324e57e1a7d76f77898d54eb01686945a@epcas5p3.samsung.com> 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 ` Smitha T Murthy [not found] ` <CGME20220517125625epcas5p3a5d6e217570e2e2f4e11b4c099d45767@epcas5p3.samsung.com> 2022-05-17 12:55 ` [PATCH 11/20] media: s5p-mfc: Add support for UHD encoding Smitha T Murthy 2022-05-17 12:55 ` Smitha T Murthy 2022-05-18 9:50 ` Hans Verkuil 2022-05-18 9:50 ` Hans Verkuil [not found] ` <CGME20220517125629epcas5p4c99993ea5e464b296ff6dfec85b4c441@epcas5p4.samsung.com> 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 ` Smitha T Murthy [not found] ` <CGME20220517125634epcas5p40259b75a9ea07495330144310d61a5c9@epcas5p4.samsung.com> 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 ` Smitha T Murthy [not found] ` <CGME20220517125637epcas5p4f691d6c9011d3e82f2d776c440816d98@epcas5p4.samsung.com> 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 ` Smitha T Murthy [not found] ` <CGME20220517125641epcas5p48fc3d48ad5e4a02879a1063da36c0063@epcas5p4.samsung.com> 2022-05-17 12:55 ` [PATCH 15/20] media: s5p-mfc: DPB Count Independent of VIDIOC_REQBUF Smitha T Murthy 2022-05-17 12:55 ` Smitha T Murthy 2022-05-17 13:59 ` Krzysztof Kozlowski 2022-05-17 13:59 ` Krzysztof Kozlowski 2022-07-05 11:47 ` Smitha T Murthy 2022-07-05 11:47 ` Smitha T Murthy [not found] ` <CGME20220517125644epcas5p3fcabdc953c042cc9f2697f7fbfc74121@epcas5p3.samsung.com> 2022-05-17 12:55 ` Smitha T Murthy [this message] 2022-05-17 12:55 ` [PATCH 16/20] media: s5p-mfc: Fix to handle reference queue during finishing Smitha T Murthy 2022-05-17 14:04 ` Krzysztof Kozlowski 2022-05-17 14:04 ` Krzysztof Kozlowski [not found] ` <CGME20220517125648epcas5p22201053e8a71dcd5ccc8d0566511b635@epcas5p2.samsung.com> 2022-05-17 12:55 ` [PATCH 17/20] media: s5p-mfc: Clear workbit to handle error condition Smitha T Murthy 2022-05-17 12:55 ` Smitha T Murthy 2022-05-17 14:04 ` Krzysztof Kozlowski 2022-05-17 14:04 ` Krzysztof Kozlowski 2022-07-05 11:52 ` Smitha T Murthy 2022-07-05 11:52 ` Smitha T Murthy [not found] ` <CGME20220517125652epcas5p31abe2138fbff6218c9031da714bfb448@epcas5p3.samsung.com> 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 12:55 ` Smitha T Murthy 2022-05-17 14:04 ` Krzysztof Kozlowski 2022-05-17 14:04 ` Krzysztof Kozlowski 2022-07-05 11:50 ` Smitha T Murthy 2022-07-05 11:50 ` Smitha T Murthy [not found] ` <CGME20220517125656epcas5p1cc1296b200ff8801f24243aa47de8fe1@epcas5p1.samsung.com> 2022-05-17 12:55 ` [PATCH 19/20] arm64: dts: fsd: Add MFC related DT enteries Smitha T Murthy 2022-05-17 12:55 ` Smitha T Murthy 2022-05-17 14:02 ` Krzysztof Kozlowski 2022-05-17 14:02 ` Krzysztof Kozlowski 2022-07-05 11:49 ` Smitha T Murthy 2022-07-05 11:49 ` Smitha T Murthy [not found] ` <CGME20220517125659epcas5p4f344138f5b8a64f9e49c6cba4f0af92f@epcas5p4.samsung.com> 2022-05-17 12:55 ` [PATCH 20/20] arm64 defconfig: Add MFC in defconfig Smitha T Murthy 2022-05-17 12:55 ` Smitha T Murthy 2022-05-17 14:03 ` Krzysztof Kozlowski 2022-05-17 14:03 ` Krzysztof Kozlowski 2022-05-18 9:42 ` [PATCH 00/20] Add MFC v12 support Hans Verkuil 2022-05-18 9:42 ` 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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.