Instead of expecting an error from dev_pm_opp_of_add_table() do a simple device_property_present() check.
Signed-off-by: Clément Péron peron.clem@gmail.com --- drivers/gpu/drm/panfrost/panfrost_devfreq.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/panfrost/panfrost_devfreq.c b/drivers/gpu/drm/panfrost/panfrost_devfreq.c index d9007f44b772..fce21c682414 100644 --- a/drivers/gpu/drm/panfrost/panfrost_devfreq.c +++ b/drivers/gpu/drm/panfrost/panfrost_devfreq.c @@ -96,15 +96,19 @@ int panfrost_devfreq_init(struct panfrost_device *pfdev) struct thermal_cooling_device *cooling; struct panfrost_devfreq *pfdevfreq = &pfdev->pfdevfreq;
- ret = dev_pm_opp_of_add_table(dev); - if (ret == -ENODEV) /* Optional, continue without devfreq */ + if (!device_property_present(dev, "operating-points-v2")) + /* Optional, continue without devfreq */ return 0; - else if (ret) - return ret; - pfdevfreq->opp_of_table_added = true;
spin_lock_init(&pfdevfreq->lock);
+ ret = dev_pm_opp_of_add_table(dev); + if (ret) { + DRM_DEV_ERROR(dev, "Couldn't add OPP table\n"); + goto err_fini; + } + pfdevfreq->opp_of_table_added = true; + panfrost_devfreq_reset(pfdevfreq);
cur_freq = clk_get_rate(pfdev->clock);