[PATCH v12 70/86] media: ipu6: Always request a capture ack

Sakari Ailus
2026-04-09T20:15:09Z

Always request a capture ack from a queued buffer. If streaming is
disabled, no buffers would have been queued in the first place. Remove the
streaming field from struct ipu6_isys_stream as well.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
drivers/media/pci/intel/ipu6/ipu6-isys-queue.c | 10 ++--------
drivers/media/pci/intel/ipu6/ipu6-isys-video.h | 1 -
2 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
index 7f24b113338c..13d759b27ca0 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
@@ -266,10 +266,7 @@ ipu6_isys_buf_to_fw_frame_buf(struct ipu6_fw_isys_frame_buff_set_abi *set,
set->send_irq_eof = 0;
set->send_resp_eof = 0;

- if (stream->streaming)
- set->send_irq_capture_ack = 0;
- else
- set->send_irq_capture_ack = 1;
+ set->send_irq_capture_ack = 1;
set->send_irq_capture_done = 0;

set->send_resp_capture_ack = 1;
@@ -299,8 +296,6 @@ static int ipu6_isys_stream_start(struct ipu6_isys_video *av)
if (ret)
return ret;

- stream->streaming = 1;
-
do {
struct ipu6_fw_isys_frame_buff_set_abi *buf = NULL;
struct isys_fw_msgs *msg;
@@ -631,13 +626,12 @@ static void stop_streaming(struct vb2_queue *q)
ipu6_isys_update_stream_watermark(av, false);

mutex_lock(&av->isys->stream_mutex);
- if (stream->nr_streaming == stream->nr_queues && stream->streaming)
+ if (stream->nr_streaming == stream->nr_queues)
ipu6_isys_video_set_streaming(av, 0);
list_del(&aq->node);
mutex_unlock(&av->isys->stream_mutex);

stream->nr_streaming--;
- stream->streaming = 0;
mutex_unlock(&stream->mutex);

ipu6_isys_stream_cleanup(av);
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.h b/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
index 72d413026d3e..d07c16e79877 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
@@ -53,7 +53,6 @@ struct ipu6_isys_stream {

int nr_queues; /* Number of capture queues */
int nr_streaming;
- int streaming; /* Has streaming been really started? */
struct list_head queues;
struct completion stream_open_completion;
struct completion stream_close_completion;
--
2.47.3