Some SoCs have  several clocks defined and the OPP core
needs to know the exact name of the clk to use.

Set the clock name to "core".

Signed-off-by: Clément Péron <peron.c...@gmail.com>
---
 drivers/gpu/drm/panfrost/panfrost_devfreq.c | 13 +++++++++++++
 drivers/gpu/drm/panfrost/panfrost_devfreq.h |  1 +
 2 files changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/panfrost/panfrost_devfreq.c 
b/drivers/gpu/drm/panfrost/panfrost_devfreq.c
index 9ffea0d4a087..6bf3541b4d53 100644
--- a/drivers/gpu/drm/panfrost/panfrost_devfreq.c
+++ b/drivers/gpu/drm/panfrost/panfrost_devfreq.c
@@ -103,6 +103,14 @@ int panfrost_devfreq_init(struct panfrost_device *pfdev)
 
        spin_lock_init(&pfdevfreq->lock);
 
+       opp_table = dev_pm_opp_set_clkname(dev, "core");
+       if (IS_ERR(opp_table)) {
+               ret = PTR_ERR(opp_table);
+               goto err_fini;
+       }
+
+       pfdevfreq->clkname_opp_table = opp_table;
+
        opp_table = dev_pm_opp_set_regulators(dev, pfdev->comp->supply_names,
                                              pfdev->comp->num_supplies);
        if (IS_ERR(opp_table)) {
@@ -176,6 +184,11 @@ void panfrost_devfreq_fini(struct panfrost_device *pfdev)
                dev_pm_opp_put_regulators(pfdevfreq->regulators_opp_table);
                pfdevfreq->regulators_opp_table = NULL;
        }
+
+       if (pfdevfreq->clkname_opp_table) {
+               dev_pm_opp_put_clkname(pfdevfreq->clkname_opp_table);
+               pfdevfreq->clkname_opp_table = NULL;
+       }
 }
 
 void panfrost_devfreq_resume(struct panfrost_device *pfdev)
diff --git a/drivers/gpu/drm/panfrost/panfrost_devfreq.h 
b/drivers/gpu/drm/panfrost/panfrost_devfreq.h
index 347cde4786cf..1f2475e1d034 100644
--- a/drivers/gpu/drm/panfrost/panfrost_devfreq.h
+++ b/drivers/gpu/drm/panfrost/panfrost_devfreq.h
@@ -16,6 +16,7 @@ struct panfrost_device;
 struct panfrost_devfreq {
        struct devfreq *devfreq;
        struct opp_table *regulators_opp_table;
+       struct opp_table *clkname_opp_table;
        struct thermal_cooling_device *cooling;
        bool opp_of_table_added;
 
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to