media: intel/ipu6: Remove pin_ready function pointer

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>
This commit is contained in:
Stanislaw Gruszka 2025-05-02 17:44:42 +02:00 committed by Hans Verkuil
parent b240df2913
commit c139c1ac06
4 changed files with 6 additions and 14 deletions

View 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;

View 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;

View 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;
};

View 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);