]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: intel/ipu6: Remove pin_ready function pointer
authorStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Fri, 2 May 2025 15:44:42 +0000 (17:44 +0200)
committerHans Verkuil <hverkuil@xs4all.nl>
Tue, 6 May 2025 11:06:31 +0000 (13:06 +0200)
We can call ipu6_isys_queue_buf_ready() directly. The only current
usage is pin_ready pointer is to check if pin was prepared before
IPU6_FW_ISYS_RESP_TYPE_PIN_DATA_READY interrupt, we can use queue
pointer for that purpose.

Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
drivers/media/pci/intel/ipu6/ipu6-isys-video.c
drivers/media/pci/intel/ipu6/ipu6-isys-video.h
drivers/media/pci/intel/ipu6/ipu6-isys.c

index a9127b1c4d45cfa49df22581bd9e3b8a005bcfa6..aa2cf7287477cc53f2f91b2f7dd9a98314523cb4 100644 (file)
@@ -738,7 +738,7 @@ static void
 ipu6_stream_buf_ready(struct ipu6_isys_stream *stream, u8 pin_id, u32 pin_addr,
                      u64 time, bool error_check)
 {
-       struct ipu6_isys_queue *aq = stream->output_pins[pin_id].aq;
+       struct ipu6_isys_queue *aq = stream->output_pins_queue[pin_id];
        struct ipu6_isys *isys = stream->isys;
        struct device *dev = &isys->adev->auxdev.dev;
        struct ipu6_isys_buffer *ib;
index 959869a885564ac809ca84f2a1782b127556ce5e..33ff938caa709d7f29ac2a5591b995436fb43f1e 100644 (file)
@@ -486,8 +486,7 @@ static int ipu6_isys_fw_pin_cfg(struct ipu6_isys_video *av,
 
        output_pins = cfg->nof_output_pins++;
        aq->fw_output = output_pins;
-       stream->output_pins[output_pins].pin_ready = ipu6_isys_queue_buf_ready;
-       stream->output_pins[output_pins].aq = aq;
+       stream->output_pins_queue[output_pins] = aq;
 
        output_pin = &cfg->output_pins[output_pins];
        output_pin->input_pin_id = input_pins;
index 1d945be2b879216808554e686a859cd89a7811ba..1dd36f2a077e99d3aac60c1dbaaa8851ff2c6eb1 100644 (file)
@@ -37,12 +37,6 @@ struct sequence_info {
        u64 timestamp;
 };
 
-struct output_pin_data {
-       void (*pin_ready)(struct ipu6_isys_stream *stream,
-                         struct ipu6_fw_isys_resp_info_abi *info);
-       struct ipu6_isys_queue *aq;
-};
-
 /*
  * Align with firmware stream. Each stream represents a CSI virtual channel.
  * May map to multiple video devices
@@ -68,7 +62,7 @@ struct ipu6_isys_stream {
        struct completion stream_stop_completion;
        struct ipu6_isys *isys;
 
-       struct output_pin_data output_pins[IPU6_ISYS_OUTPUT_PINS];
+       struct ipu6_isys_queue *output_pins_queue[IPU6_ISYS_OUTPUT_PINS];
        int error;
        u8 vc;
 };
index 8df1d83a74b5af1373f95fa74af5a7d292d4cb5b..7b09782ab679280b29cded3ebbabb49fbba78321 100644 (file)
@@ -1294,12 +1294,11 @@ static int isys_isr_one(struct ipu6_bus_device *adev)
                 */
                ipu6_put_fw_msg_buf(ipu6_bus_get_drvdata(adev), resp->buf_id);
                if (resp->pin_id < IPU6_ISYS_OUTPUT_PINS &&
-                   stream->output_pins[resp->pin_id].pin_ready)
-                       stream->output_pins[resp->pin_id].pin_ready(stream,
-                                                                   resp);
+                   stream->output_pins_queue[resp->pin_id])
+                       ipu6_isys_queue_buf_ready(stream, resp);
                else
                        dev_warn(&adev->auxdev.dev,
-                                "%d:No data pin ready handler for pin id %d\n",
+                                "%d:No queue for pin id %d\n",
                                 resp->stream_handle, resp->pin_id);
                if (csi2)
                        ipu6_isys_csi2_error(csi2);