Re: [PATCH v2 3/4] media: qcom: camss: always stop the pipeline in stop_streaming
From: Bryan O'Donoghue
Date: Mon Nov 09 2026 - 08:07:53 EST
On 09/11/2026 11:26, Allan Siriani wrote:
Fixes: 89013969e232 ("media: camss: sm8250: Pipeline starting and stopping for multiple virtual channels")
Reviewed-by: Bryan O'Donoghue<bryan.odonoghue@xxxxxxxxxx>
Signed-off-by: Allan Siriani<allan@xxxxxxxxxxxxxxxxxxx>
---
drivers/media/platform/qcom/camss/camss-video.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/media/platform/qcom/camss/camss-video.c b/drivers/media/platform/qcom/camss/camss-video.c
index 5de6ff5ec..8341666f9 100644
--- a/drivers/media/platform/qcom/camss/camss-video.c
+++ b/drivers/media/platform/qcom/camss/camss-video.c
@@ -313,12 +313,16 @@ static void video_stop_streaming(struct vb2_queue *q)
entity = pad->entity;
subdev = media_entity_to_v4l2_subdev(entity);
+ /*
+ * Subdevs without .s_stream(), such as a sensor pixel array
+ * entity, return -ENOIOCTLCMD, as at stream on. On a real error
+ * keep going: the pipeline must be stopped and the buffers
+ * returned to vb2 in any case.
+ */
this comment is completely redundant - it looks like LLM word-salad.
Please drop.
ret = v4l2_subdev_call(subdev, video, s_stream, 0);
-
- if (ret) {
- dev_err(video->camss->dev, "Video pipeline stop failed: %d\n", ret);
- return;
- }
+ if (ret && ret != -ENOIOCTLCMD)
+ dev_err(video->camss->dev,
+ "Failed to stop %s: %d\n", entity->name, ret);
}
video_device_pipeline_stop(vdev);
-- 2.43.0