Message ID | 20190605150233.32722-1-narmstrong@baylibre.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drm/panfrost: make devfreq optional again | expand |
On Wed, 2019-06-05 at 17:02 +0200, Neil Armstrong wrote: > Devfreq runtime usage was made mandatory, thus making panfrost fail to probe > on Amlogic S912 SoCs missing the "operating-points-v2" property. > Make it optional again, leaving PM_DEVFREQ selected by default. > > Fixes: f3617b449d ("drm/panfrost: Select devfreq") > Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com> Thanks for the fix, Eze > --- > Changes since v1: > - fixed else/if logic in panfrost_devfreq_init > > drivers/gpu/drm/panfrost/panfrost_devfreq.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/panfrost/panfrost_devfreq.c b/drivers/gpu/drm/panfrost/panfrost_devfreq.c > index 29fcffdf2d57..db798532b0b6 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_devfreq.c > +++ b/drivers/gpu/drm/panfrost/panfrost_devfreq.c > @@ -140,7 +140,9 @@ int panfrost_devfreq_init(struct panfrost_device *pfdev) > return 0; > > ret = dev_pm_opp_of_add_table(&pfdev->pdev->dev); > - if (ret) > + if (ret == -ENODEV) /* Optional, continue without devfreq */ > + return 0; > + else if (ret) > return ret; > > panfrost_devfreq_reset(pfdev); > @@ -170,6 +172,9 @@ void panfrost_devfreq_resume(struct panfrost_device *pfdev) > { > int i; > > + if (!pfdev->devfreq.devfreq) > + return; > + > panfrost_devfreq_reset(pfdev); > for (i = 0; i < NUM_JOB_SLOTS; i++) > pfdev->devfreq.slot[i].busy = false; > @@ -179,6 +184,9 @@ void panfrost_devfreq_resume(struct panfrost_device *pfdev) > > void panfrost_devfreq_suspend(struct panfrost_device *pfdev) > { > + if (!pfdev->devfreq.devfreq) > + return; > + > devfreq_suspend_device(pfdev->devfreq.devfreq); > } > > @@ -188,6 +196,9 @@ static void panfrost_devfreq_update_utilization(struct panfrost_device *pfdev, i > ktime_t now; > ktime_t last; > > + if (!pfdev->devfreq.devfreq) > + return; > + > now = ktime_get(); > last = pfdev->devfreq.slot[slot].time_last_update; >
On Wed, Jun 5, 2019 at 9:02 AM Neil Armstrong <narmstrong@baylibre.com> wrote: > > Devfreq runtime usage was made mandatory, thus making panfrost fail to probe > on Amlogic S912 SoCs missing the "operating-points-v2" property. > Make it optional again, leaving PM_DEVFREQ selected by default. > > Fixes: f3617b449d ("drm/panfrost: Select devfreq") > Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> > --- > Changes since v1: > - fixed else/if logic in panfrost_devfreq_init > > drivers/gpu/drm/panfrost/panfrost_devfreq.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) Applied.
diff --git a/drivers/gpu/drm/panfrost/panfrost_devfreq.c b/drivers/gpu/drm/panfrost/panfrost_devfreq.c index 29fcffdf2d57..db798532b0b6 100644 --- a/drivers/gpu/drm/panfrost/panfrost_devfreq.c +++ b/drivers/gpu/drm/panfrost/panfrost_devfreq.c @@ -140,7 +140,9 @@ int panfrost_devfreq_init(struct panfrost_device *pfdev) return 0; ret = dev_pm_opp_of_add_table(&pfdev->pdev->dev); - if (ret) + if (ret == -ENODEV) /* Optional, continue without devfreq */ + return 0; + else if (ret) return ret; panfrost_devfreq_reset(pfdev); @@ -170,6 +172,9 @@ void panfrost_devfreq_resume(struct panfrost_device *pfdev) { int i; + if (!pfdev->devfreq.devfreq) + return; + panfrost_devfreq_reset(pfdev); for (i = 0; i < NUM_JOB_SLOTS; i++) pfdev->devfreq.slot[i].busy = false; @@ -179,6 +184,9 @@ void panfrost_devfreq_resume(struct panfrost_device *pfdev) void panfrost_devfreq_suspend(struct panfrost_device *pfdev) { + if (!pfdev->devfreq.devfreq) + return; + devfreq_suspend_device(pfdev->devfreq.devfreq); } @@ -188,6 +196,9 @@ static void panfrost_devfreq_update_utilization(struct panfrost_device *pfdev, i ktime_t now; ktime_t last; + if (!pfdev->devfreq.devfreq) + return; + now = ktime_get(); last = pfdev->devfreq.slot[slot].time_last_update;
Devfreq runtime usage was made mandatory, thus making panfrost fail to probe on Amlogic S912 SoCs missing the "operating-points-v2" property. Make it optional again, leaving PM_DEVFREQ selected by default. Fixes: f3617b449d ("drm/panfrost: Select devfreq") Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> --- Changes since v1: - fixed else/if logic in panfrost_devfreq_init drivers/gpu/drm/panfrost/panfrost_devfreq.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)