[PATCH v2] drm/panfrost: make devfreq optional again
Ezequiel Garcia
ezequiel at collabora.com
Wed Jun 5 18:50:58 UTC 2019
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 at baylibre.com>
Reviewed-by: Ezequiel Garcia <ezequiel at 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;
>
More information about the dri-devel
mailing list