Re: [PATCH v2] drm/panfrost: make devfreq optional again

2019-06-10 Thread Rob Herring
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

2019-06-05 Thread Ezequiel Garcia
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

2019-06-05 Thread Neil Armstrong
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