From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
To: Dikshita Agarwal <quic_dikshita@quicinc.com>,
Vikash Garodia <quic_vgarodia@quicinc.com>,
Abhinav Kumar <abhinav.kumar@linux.dev>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Hans Verkuil <hverkuil@xs4all.nl>,
Stefan Schmidt <stefan.schmidt@linaro.org>,
Vedang Nagar <quic_vnagar@quicinc.com>
Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-kernel@vger.kernel.org,
Renjiang Han <quic_renjiang@quicinc.com>,
Wangao Wang <quic_wangaow@quicinc.com>
Subject: Re: [PATCH v2 08/24] media: iris: Allow stop on firmware only if start was issued.
Date: Sat, 16 Aug 2025 12:07:15 +0100 [thread overview]
Message-ID: <4fe5d966-f788-4fd7-9e74-6d63ecc8dcb3@linaro.org> (raw)
In-Reply-To: <20250813-iris-video-encoder-v2-8-c725ff673078@quicinc.com>
On 13/08/2025 10:37, Dikshita Agarwal wrote:
> For HFI Gen1, the instances substate is changed to LOAD_RESOURCES only
> when a START command is issues to the firmware. If STOP is called
> without a prior START, the firmware may reject the command and throw
> some erros.
> Handle this by adding a substate check before issuing STOP command to
> the firmware.
>
> Fixes: 11712ce70f8e ("media: iris: implement vb2 streaming ops")
> Reviewed-by: Vikash Garodia <quic_vgarodia@quicinc.com>
> Tested-by: Vikash Garodia <quic_vgarodia@quicinc.com> # X1E80100
> Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
> ---
> drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c b/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c
> index 5fc30d54af4dc34616cfd08813940aa0b7044a20..5f1748ab80f88393215fc2d82c5c6b4af1266090 100644
> --- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c
> +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c
> @@ -184,11 +184,12 @@ static int iris_hfi_gen1_session_stop(struct iris_inst *inst, u32 plane)
> u32 flush_type = 0;
> int ret = 0;
>
> - if ((V4L2_TYPE_IS_OUTPUT(plane) &&
> - inst->state == IRIS_INST_INPUT_STREAMING) ||
> + if (((V4L2_TYPE_IS_OUTPUT(plane) &&
> + inst->state == IRIS_INST_INPUT_STREAMING) ||
this is becoming a highly complex clause
if (((V4L2_TYPE_IS_OUTPUT(plane) &&
inst->state == IRIS_INST_INPUT_STREAMING) ||
(V4L2_TYPE_IS_CAPTURE(plane) &&
inst->state == IRIS_INST_OUTPUT_STREAMING) ||
inst->state == IRIS_INST_ERROR) &&
inst->sub_state & IRIS_INST_SUB_LOAD_RESOURCES) {
can we not reduce down the number of conjunctions and dis-junctions here ?
Its getting hard to follow.
For example pivot on if (inst->sub_state & IRIS_INST_SUB_LOAD_RESOURCES)
or make it into a switch for inst->state... no that wouldn't work
Either way the complexity of this clause is indicating to me we need to
do some decomposition.
Please consider if you can rationalise the logic here and make the code
more readable.
> (V4L2_TYPE_IS_CAPTURE(plane) &&
> inst->state == IRIS_INST_OUTPUT_STREAMING) ||
> - inst->state == IRIS_INST_ERROR) {
> + inst->state == IRIS_INST_ERROR) &&
> + inst->sub_state & IRIS_INST_SUB_LOAD_RESOURCES) {
> reinit_completion(&inst->completion);
> iris_hfi_gen1_packet_session_cmd(inst, &pkt, HFI_CMD_SESSION_STOP);
> ret = iris_hfi_queue_cmd_write(core, &pkt, pkt.shdr.hdr.size);
>
---
bod
next prev parent reply other threads:[~2025-08-16 11:07 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-13 9:37 [PATCH v2 00/24] Enable H.264/H.265 encoder support and fixes in common code Dikshita Agarwal
2025-08-13 9:37 ` [PATCH v2 01/24] media: iris: Fix buffer count reporting in internal buffer check Dikshita Agarwal
2025-08-13 9:37 ` [PATCH v2 02/24] media: iris: Report unreleased PERSIST buffers on session close Dikshita Agarwal
2025-08-13 10:53 ` Jorge Ramirez
2025-08-13 12:16 ` Dikshita Agarwal
2025-08-13 9:37 ` [PATCH v2 03/24] media: iris: Fix memory leak by freeing untracked persist buffer Dikshita Agarwal
2025-08-16 10:15 ` Bryan O'Donoghue
2025-08-18 3:10 ` Dikshita Agarwal
2025-08-13 9:37 ` [PATCH v2 04/24] media: iris: Fix port streaming handling Dikshita Agarwal
2025-08-16 10:40 ` Bryan O'Donoghue
2025-08-18 9:45 ` Dikshita Agarwal
2025-08-19 13:34 ` Bryan O'Donoghue
2025-08-13 9:37 ` [PATCH v2 05/24] media: iris: Allow substate transition to load resources during output streaming Dikshita Agarwal
2025-08-13 21:51 ` Bryan O'Donoghue
2025-08-13 21:55 ` Bryan O'Donoghue
2025-08-13 22:55 ` Konrad Dybcio
2025-08-14 6:13 ` Krzysztof Kozlowski
2025-08-14 7:50 ` Dikshita Agarwal
2025-08-13 9:37 ` [PATCH v2 06/24] media: iris: Always destroy internal buffers on firmware release response Dikshita Agarwal
2025-08-16 10:44 ` Bryan O'Donoghue
2025-08-13 9:37 ` [PATCH v2 07/24] media: iris: Update vbuf flags before v4l2_m2m_buf_done Dikshita Agarwal
2025-08-16 10:49 ` Bryan O'Donoghue
2025-08-13 9:37 ` [PATCH v2 08/24] media: iris: Allow stop on firmware only if start was issued Dikshita Agarwal
2025-08-16 11:07 ` Bryan O'Donoghue [this message]
2025-08-19 7:29 ` Dikshita Agarwal
2025-08-13 9:37 ` [PATCH v2 09/24] media: iris: Send dummy buffer address for all codecs during drain Dikshita Agarwal
2025-08-16 11:11 ` Bryan O'Donoghue
2025-08-13 9:38 ` [PATCH v2 10/24] media: iris: Fix missing LAST flag handling " Dikshita Agarwal
2025-08-16 11:17 ` Bryan O'Donoghue
2025-08-13 9:38 ` [PATCH v2 11/24] media: iris: Add support for video encoder device Dikshita Agarwal
2025-08-14 14:11 ` Vikash Garodia
2025-08-16 11:21 ` Bryan O'Donoghue
2025-08-18 3:28 ` Dikshita Agarwal
2025-08-13 9:38 ` [PATCH v2 12/24] media: iris: Initialize and deinitialize encoder instance structure Dikshita Agarwal
2025-08-14 14:25 ` Vikash Garodia
2025-08-18 3:21 ` Dikshita Agarwal
2025-08-18 6:08 ` Vikash Garodia
2025-08-16 9:03 ` Bryan O'Donoghue
2025-08-16 11:23 ` Bryan O'Donoghue
2025-08-18 3:27 ` Dikshita Agarwal
2025-08-13 9:38 ` [PATCH v2 13/24] media: iris: Add support for ENUM_FMT, S/G/TRY_FMT encoder Dikshita Agarwal
2025-08-14 14:32 ` Vikash Garodia
2025-08-13 9:38 ` [PATCH v2 14/24] media: iris: Add support for ENUM_FRAMESIZES/FRAMEINTERVALS for encoder Dikshita Agarwal
2025-08-14 14:43 ` Vikash Garodia
2025-08-18 3:21 ` Dikshita Agarwal
2025-08-18 6:10 ` Vikash Garodia
2025-08-13 9:38 ` [PATCH v2 15/24] media: iris: Add support for VIDIOC_QUERYCAP for encoder video device Dikshita Agarwal
2025-08-14 14:46 ` Vikash Garodia
2025-08-13 9:38 ` [PATCH v2 16/24] media: iris: Add encoder support for V4L2 event subscription Dikshita Agarwal
2025-08-14 14:48 ` Vikash Garodia
2025-08-13 9:38 ` [PATCH v2 17/24] media: iris: Add support for G/S_SELECTION for encoder video device Dikshita Agarwal
2025-08-14 14:54 ` Vikash Garodia
2025-08-18 3:25 ` Dikshita Agarwal
2025-08-18 6:11 ` Vikash Garodia
2025-08-13 9:38 ` [PATCH v2 18/24] media: iris: Add support for G/S_PARM " Dikshita Agarwal
2025-08-14 15:01 ` Vikash Garodia
2025-08-18 7:29 ` Dikshita Agarwal
2025-08-18 7:34 ` Vikash Garodia
2025-08-13 9:38 ` [PATCH v2 19/24] media: iris: Add platform-specific capabilities " Dikshita Agarwal
2025-08-14 15:05 ` Vikash Garodia
2025-08-18 7:25 ` Dikshita Agarwal
2025-08-18 7:27 ` Vikash Garodia
2025-08-13 9:38 ` [PATCH v2 20/24] media: iris: Add V4L2 streaming support " Dikshita Agarwal
2025-08-13 9:38 ` [PATCH v2 21/24] media: iris: Set platform capabilities to firmware " Dikshita Agarwal
2025-08-13 9:38 ` [PATCH v2 22/24] media: iris: Allocate and queue internal buffers " Dikshita Agarwal
2025-08-13 9:38 ` [PATCH v2 23/24] media: iris: Add support for buffer management ioctls for encoder device Dikshita Agarwal
2025-08-13 9:38 ` [PATCH v2 24/24] media: iris: Add support for drain sequence in encoder video device Dikshita Agarwal
2025-08-13 15:27 ` [PATCH v2 00/24] Enable H.264/H.265 encoder support and fixes in common code Neil Armstrong
2025-08-18 11:47 ` Dikshita Agarwal
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=4fe5d966-f788-4fd7-9e74-6d63ecc8dcb3@linaro.org \
--to=bryan.odonoghue@linaro.org \
--cc=abhinav.kumar@linux.dev \
--cc=hverkuil@xs4all.nl \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=quic_dikshita@quicinc.com \
--cc=quic_renjiang@quicinc.com \
--cc=quic_vgarodia@quicinc.com \
--cc=quic_vnagar@quicinc.com \
--cc=quic_wangaow@quicinc.com \
--cc=stefan.schmidt@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;
as well as URLs for NNTP newsgroup(s).