On Fri Jul 31 02:48:27 2026 +0300, Dikshita Agarwal wrote:
> The set_preset_registers sequence is currently shared across all
> supported devices. Starting with Qualcomm QCM2290 (AR50LT), the register
> programming would differ.
> 
> Move set_preset_register into a vpu_op to allow per-device
> customization.
> 
> This change prepares the driver for upcoming hardware variants.
> No functional change so far for existing devices.
> 
> Reviewed-by: Dmitry Baryshkov <[email protected]>
> Signed-off-by: Dikshita Agarwal <[email protected]>
> Reviewed-by: Vishnu Reddy <[email protected]>
> Reviewed-by: Vikash Garodia <[email protected]>
> Signed-off-by: Dmitry Baryshkov <[email protected]>
> Signed-off-by: Bryan O'Donoghue <[email protected]>

Patch committed.

Thanks,
Bryan O'Donoghue

 drivers/media/platform/qcom/iris/iris_vpu2.c       | 1 +
 drivers/media/platform/qcom/iris/iris_vpu3x.c      | 3 +++
 drivers/media/platform/qcom/iris/iris_vpu4x.c      | 1 +
 drivers/media/platform/qcom/iris/iris_vpu_common.c | 2 +-
 drivers/media/platform/qcom/iris/iris_vpu_common.h | 1 +
 5 files changed, 7 insertions(+), 1 deletion(-)

---

diff --git a/drivers/media/platform/qcom/iris/iris_vpu2.c 
b/drivers/media/platform/qcom/iris/iris_vpu2.c
index b8714dcbad10..2dc121a3f5e8 100644
--- a/drivers/media/platform/qcom/iris/iris_vpu2.c
+++ b/drivers/media/platform/qcom/iris/iris_vpu2.c
@@ -45,4 +45,5 @@ const struct vpu_ops iris_vpu2_ops = {
        .power_on_controller = iris_vpu_power_on_controller,
        .calc_freq = iris_vpu2_calc_freq,
        .set_hwmode = iris_vpu_set_hwmode,
+       .set_preset_registers = iris_vpu_set_preset_registers,
 };
diff --git a/drivers/media/platform/qcom/iris/iris_vpu3x.c 
b/drivers/media/platform/qcom/iris/iris_vpu3x.c
index 3dad47be78b5..dc02ced1b931 100644
--- a/drivers/media/platform/qcom/iris/iris_vpu3x.c
+++ b/drivers/media/platform/qcom/iris/iris_vpu3x.c
@@ -261,6 +261,7 @@ const struct vpu_ops iris_vpu3_ops = {
        .power_on_controller = iris_vpu_power_on_controller,
        .calc_freq = iris_vpu3x_vpu4x_calculate_frequency,
        .set_hwmode = iris_vpu_set_hwmode,
+       .set_preset_registers = iris_vpu_set_preset_registers,
 };
 
 const struct vpu_ops iris_vpu33_ops = {
@@ -270,6 +271,7 @@ const struct vpu_ops iris_vpu33_ops = {
        .power_on_controller = iris_vpu_power_on_controller,
        .calc_freq = iris_vpu3x_vpu4x_calculate_frequency,
        .set_hwmode = iris_vpu_set_hwmode,
+       .set_preset_registers = iris_vpu_set_preset_registers,
 };
 
 const struct vpu_ops iris_vpu35_ops = {
@@ -280,4 +282,5 @@ const struct vpu_ops iris_vpu35_ops = {
        .program_bootup_registers = iris_vpu35_vpu4x_program_bootup_registers,
        .calc_freq = iris_vpu3x_vpu4x_calculate_frequency,
        .set_hwmode = iris_vpu_set_hwmode,
+       .set_preset_registers = iris_vpu_set_preset_registers,
 };
diff --git a/drivers/media/platform/qcom/iris/iris_vpu4x.c 
b/drivers/media/platform/qcom/iris/iris_vpu4x.c
index 02e100a4045f..f608a297d4a3 100644
--- a/drivers/media/platform/qcom/iris/iris_vpu4x.c
+++ b/drivers/media/platform/qcom/iris/iris_vpu4x.c
@@ -368,4 +368,5 @@ const struct vpu_ops iris_vpu4x_ops = {
        .program_bootup_registers = iris_vpu35_vpu4x_program_bootup_registers,
        .calc_freq = iris_vpu3x_vpu4x_calculate_frequency,
        .set_hwmode = iris_vpu4x_set_hwmode,
+       .set_preset_registers = iris_vpu_set_preset_registers,
 };
diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.c 
b/drivers/media/platform/qcom/iris/iris_vpu_common.c
index c9f5dc851d9f..54181474f1ad 100644
--- a/drivers/media/platform/qcom/iris/iris_vpu_common.c
+++ b/drivers/media/platform/qcom/iris/iris_vpu_common.c
@@ -488,7 +488,7 @@ int iris_vpu_power_on(struct iris_core *core)
 
        iris_opp_set_rate(core->dev, freq);
 
-       iris_vpu_set_preset_registers(core);
+       core->iris_platform_data->vpu_ops->set_preset_registers(core);
 
        iris_vpu_interrupt_init(core);
        core->intr_status = 0;
diff --git a/drivers/media/platform/qcom/iris/iris_vpu_common.h 
b/drivers/media/platform/qcom/iris/iris_vpu_common.h
index 09799a375c14..21ed4c9bd5e3 100644
--- a/drivers/media/platform/qcom/iris/iris_vpu_common.h
+++ b/drivers/media/platform/qcom/iris/iris_vpu_common.h
@@ -22,6 +22,7 @@ struct vpu_ops {
        void (*program_bootup_registers)(struct iris_core *core);
        u64 (*calc_freq)(struct iris_inst *inst, size_t data_size);
        int (*set_hwmode)(struct iris_core *core);
+       void (*set_preset_registers)(struct iris_core *core);
 };
 
 int iris_vpu_boot_firmware(struct iris_core *core);
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to