Message ID | 20230911-topic-mars-v2-6-3dac84b88c4b@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | Venus cleanups | expand |
On 2/10/2024 2:39 AM, Konrad Dybcio wrote: > There is no reason to keep reset_get code local to HFIv4/v6. > > Move it to the common part. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > --- > drivers/media/platform/qcom/venus/core.c | 9 ++++++++- > drivers/media/platform/qcom/venus/pm_helpers.c | 23 ----------------------- > 2 files changed, 8 insertions(+), 24 deletions(-) > > diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c > index 5ab3c414ec0f..0652065cb113 100644 > --- a/drivers/media/platform/qcom/venus/core.c > +++ b/drivers/media/platform/qcom/venus/core.c > @@ -15,6 +15,7 @@ > #include <linux/of_platform.h> > #include <linux/platform_device.h> > #include <linux/pm_opp.h> > +#include <linux/reset.h> > #include <linux/slab.h> > #include <linux/types.h> > #include <linux/pm_domain.h> > @@ -286,7 +287,7 @@ static int venus_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > struct venus_core *core; > - int ret; > + int i, ret; > > core = devm_kzalloc(dev, sizeof(*core), GFP_KERNEL); > if (!core) > @@ -324,6 +325,12 @@ static int venus_probe(struct platform_device *pdev) > if (ret) > return ret; > > + for (i = 0; i < core->res->resets_num; i++) { > + core->resets[i] = devm_reset_control_get_exclusive(dev, core->res->resets[i]); > + if (IS_ERR(core->resets[i])) > + return PTR_ERR(core->resets[i]); > + } > + > if (core->pm_ops->core_get) { > ret = core->pm_ops->core_get(core); > if (ret) > diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c > index 7193075e8c04..6017a9236bff 100644 > --- a/drivers/media/platform/qcom/venus/pm_helpers.c > +++ b/drivers/media/platform/qcom/venus/pm_helpers.c > @@ -939,25 +939,6 @@ static int core_resets_reset(struct venus_core *core) > return ret; > } > > -static int core_resets_get(struct venus_core *core) > -{ > - struct device *dev = core->dev; > - const struct venus_resources *res = core->res; > - unsigned int i; > - int ret; > - > - for (i = 0; i < res->resets_num; i++) { > - core->resets[i] = > - devm_reset_control_get_exclusive(dev, res->resets[i]); > - if (IS_ERR(core->resets[i])) { > - ret = PTR_ERR(core->resets[i]); > - return ret; > - } > - } > - > - return 0; > -} > - resets are applicable to only v6 so it should be ok to keep this only in core_get_v4 which is invoked for v6 as well. common code should be common for all SOCs. > static int core_get_v4(struct venus_core *core) > { > struct device *dev = core->dev; > @@ -981,10 +962,6 @@ static int core_get_v4(struct venus_core *core) > if (ret) > return ret; > > - ret = core_resets_get(core); > - if (ret) > - return ret; > - > if (legacy_binding) > return 0; > >
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c index 5ab3c414ec0f..0652065cb113 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -15,6 +15,7 @@ #include <linux/of_platform.h> #include <linux/platform_device.h> #include <linux/pm_opp.h> +#include <linux/reset.h> #include <linux/slab.h> #include <linux/types.h> #include <linux/pm_domain.h> @@ -286,7 +287,7 @@ static int venus_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct venus_core *core; - int ret; + int i, ret; core = devm_kzalloc(dev, sizeof(*core), GFP_KERNEL); if (!core) @@ -324,6 +325,12 @@ static int venus_probe(struct platform_device *pdev) if (ret) return ret; + for (i = 0; i < core->res->resets_num; i++) { + core->resets[i] = devm_reset_control_get_exclusive(dev, core->res->resets[i]); + if (IS_ERR(core->resets[i])) + return PTR_ERR(core->resets[i]); + } + if (core->pm_ops->core_get) { ret = core->pm_ops->core_get(core); if (ret) diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c index 7193075e8c04..6017a9236bff 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -939,25 +939,6 @@ static int core_resets_reset(struct venus_core *core) return ret; } -static int core_resets_get(struct venus_core *core) -{ - struct device *dev = core->dev; - const struct venus_resources *res = core->res; - unsigned int i; - int ret; - - for (i = 0; i < res->resets_num; i++) { - core->resets[i] = - devm_reset_control_get_exclusive(dev, res->resets[i]); - if (IS_ERR(core->resets[i])) { - ret = PTR_ERR(core->resets[i]); - return ret; - } - } - - return 0; -} - static int core_get_v4(struct venus_core *core) { struct device *dev = core->dev; @@ -981,10 +962,6 @@ static int core_get_v4(struct venus_core *core) if (ret) return ret; - ret = core_resets_get(core); - if (ret) - return ret; - if (legacy_binding) return 0;
There is no reason to keep reset_get code local to HFIv4/v6. Move it to the common part. Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> --- drivers/media/platform/qcom/venus/core.c | 9 ++++++++- drivers/media/platform/qcom/venus/pm_helpers.c | 23 ----------------------- 2 files changed, 8 insertions(+), 24 deletions(-)