Re: [PATCH v2] drm/panfrost: make devfreq optional again
On Wed, Jun 5, 2019 at 9:02 AM 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 > --- > 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. ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2] drm/panfrost: make devfreq optional again
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 Reviewed-by: Ezequiel Garcia 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(>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; > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH v2] drm/panfrost: make devfreq optional again
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 --- 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(>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; -- 2.21.0 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel