lkml.org 
[lkml]   [2024]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH v3 16/19] media: venus: pm_helpers: Commonize getting clocks and GenPDs
    As has been the story with the past few commits, much of the resource
    acquisition logic is totally identical between different generations
    and there's no good reason to invent a new function for each one.

    Commonize core_get() and rename it to venus_get_resources() to be more
    meaningful.

    Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
    ---
    drivers/media/platform/qcom/venus/core.c | 8 +++-----
    drivers/media/platform/qcom/venus/pm_helpers.c | 5 +----
    drivers/media/platform/qcom/venus/pm_helpers.h | 3 +--
    3 files changed, 5 insertions(+), 11 deletions(-)

    diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
    index 1f4a86b1bd73..6914fa991efb 100644
    --- a/drivers/media/platform/qcom/venus/core.c
    +++ b/drivers/media/platform/qcom/venus/core.c
    @@ -334,11 +334,9 @@ static int venus_probe(struct platform_device *pdev)
    return PTR_ERR(core->resets[i]);
    }

    - if (core->pm_ops->core_get) {
    - ret = core->pm_ops->core_get(core);
    - if (ret)
    - return ret;
    - }
    + ret = venus_get_resources(core);
    + if (ret)
    + return ret;

    ret = dma_set_mask_and_coherent(dev, res->dma_mask);
    if (ret)
    diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c
    index 583153bbb74e..ba5199d9e5c9 100644
    --- a/drivers/media/platform/qcom/venus/pm_helpers.c
    +++ b/drivers/media/platform/qcom/venus/pm_helpers.c
    @@ -326,7 +326,6 @@ static int load_scale_v1(struct venus_inst *inst)
    }

    static const struct venus_pm_ops pm_ops_v1 = {
    - .core_get = venus_clks_get,
    .load_scale = load_scale_v1,
    };

    @@ -395,7 +394,6 @@ static int venc_power_v3(struct device *dev, int on)
    }

    static const struct venus_pm_ops pm_ops_v3 = {
    - .core_get = venus_clks_get,
    .vdec_get = vdec_get_v3,
    .vdec_power = vdec_power_v3,
    .venc_get = venc_get_v3,
    @@ -920,7 +918,7 @@ static int core_resets_reset(struct venus_core *core)
    return ret;
    }

    -static int core_get_v4(struct venus_core *core)
    +int venus_get_resources(struct venus_core *core)
    {
    struct device *dev = core->dev;
    const struct venus_resources *res = core->res;
    @@ -1109,7 +1107,6 @@ static int load_scale_v4(struct venus_inst *inst)
    }

    static const struct venus_pm_ops pm_ops_v4 = {
    - .core_get = core_get_v4,
    .vdec_get = vdec_get_v4,
    .vdec_put = vdec_put_v4,
    .vdec_power = vdec_power_v4,
    diff --git a/drivers/media/platform/qcom/venus/pm_helpers.h b/drivers/media/platform/qcom/venus/pm_helpers.h
    index 3014b39aa6e3..7a55a55029f3 100644
    --- a/drivers/media/platform/qcom/venus/pm_helpers.h
    +++ b/drivers/media/platform/qcom/venus/pm_helpers.h
    @@ -10,8 +10,6 @@ struct venus_core;
    #define POWER_OFF 0

    struct venus_pm_ops {
    - int (*core_get)(struct venus_core *core);
    -
    int (*vdec_get)(struct device *dev);
    void (*vdec_put)(struct device *dev);
    int (*vdec_power)(struct device *dev, int on);
    @@ -28,6 +26,7 @@ struct venus_pm_ops {
    const struct venus_pm_ops *venus_pm_get(enum hfi_version version);
    int venus_core_power(struct venus_core *core, int on);
    void vcodec_domains_put(struct venus_core *core);
    +int venus_get_resources(struct venus_core *core);

    static inline int venus_pm_load_scale(struct venus_inst *inst)
    {
    --
    2.44.0


    \
     
     \ /
      Last update: 2024-05-27 16:12    [W:3.435 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site