[PATCH 1/2] media: iris: enable pipe for hfi gen2 encoder
Sachin Kumar Garg <[email protected]> Thu, 30 Jul 2026 20:25:26 +0530
| Newsgroups | org.kernel.vger.linux-media,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Currently the PIPE capability (HFI_PROP_PIPE / work-route) is only wired up for the HFI Gen2 decoder. Add a PIPE entry to the HFI Gen2 encoder instance capability table, and extend the encoder branch of iris_session_init_caps() to derive PIPE's min/max/value from the platform's num_vpp_pipe, mirroring the existing decoder handling. Signed-off-by: Sachin Kumar Garg <[email protected]> --- drivers/media/platform/qcom/iris/iris_ctrls.c | 16 +++++++++++++--- drivers/media/platform/qcom/iris/iris_hfi_gen2.c | 7 +++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/qcom/iris/iris_ctrls.c b/drivers/media/platform/qcom/iris/iris_ctrls.c index 10e33b8a73f6..33114d80aa68 100644 --- a/drivers/media/platform/qcom/iris/iris_ctrls.c +++ b/drivers/media/platform/qcom/iris/iris_ctrls.c @@ -453,13 +453,23 @@ void iris_session_init_caps(struct iris_core *core) continue; core->inst_fw_caps_enc[cap_id].cap_id = caps[i].cap_id; - core->inst_fw_caps_enc[cap_id].min = caps[i].min; - core->inst_fw_caps_enc[cap_id].max = caps[i].max; core->inst_fw_caps_enc[cap_id].step_or_mask = caps[i].step_or_mask; - core->inst_fw_caps_enc[cap_id].value = caps[i].value; core->inst_fw_caps_enc[cap_id].flags = caps[i].flags; core->inst_fw_caps_enc[cap_id].hfi_id = caps[i].hfi_id; core->inst_fw_caps_enc[cap_id].set = caps[i].set; + + if (cap_id == PIPE) { + core->inst_fw_caps_enc[cap_id].value = + core->iris_platform_data->num_vpp_pipe; + core->inst_fw_caps_enc[cap_id].min = + core->iris_platform_data->num_vpp_pipe; + core->inst_fw_caps_enc[cap_id].max = + core->iris_platform_data->num_vpp_pipe; + } else { + core->inst_fw_caps_enc[cap_id].min = caps[i].min; + core->inst_fw_caps_enc[cap_id].max = caps[i].max; + core->inst_fw_caps_enc[cap_id].value = caps[i].value; + } } } diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2.c index acc0ed8adda1..45a418fde7e9 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2.c @@ -365,6 +365,13 @@ static const struct platform_inst_fw_cap inst_fw_cap_sm8550_enc[] = { .hfi_id = HFI_PROP_STAGE, .set = iris_set_stage, }, + { + .cap_id = PIPE, + /* .max, .min and .value are set via platform data */ + .step_or_mask = 1, + .hfi_id = HFI_PROP_PIPE, + .set = iris_set_pipe, + }, { .cap_id = HEADER_MODE, .min = V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, -- 2.34.1