[PATCH 2/2] Add adreno430 power control

Rob Clark robdclark at gmail.com
Tue Feb 2 22:34:13 UTC 2016


On Tue, Feb 2, 2016 at 4:06 PM, C Stout <cstout at chromium.org> wrote:
> Change-Id: Ife53627e9985e1204cc319da0221338e5272eb81

thanks, looks good.  I should mention we usually drop the change-id
tag's upstream.  But I can fix that up when I apply the patch, so no
need to re-send.

BR,
-R

> ---
>  drivers/gpu/drm/msm/adreno/a4xx_gpu.c | 39 +++++++++++++++++++++++++++++++++--
>  1 file changed, 37 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/a4xx_gpu.c b/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
> index 9ed3abe..496732d 100644
> --- a/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
> +++ b/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
> @@ -559,12 +559,47 @@ static void a4xx_dump(struct msm_gpu *gpu)
>         adreno_dump(gpu);
>  }
>
> +static int a4xx_pm_resume(struct msm_gpu *gpu) {
> +       struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
> +       int ret;
> +
> +       ret = msm_gpu_pm_resume(gpu);
> +       if (ret)
> +               return ret;
> +
> +       if (adreno_is_a430(adreno_gpu)) {
> +               unsigned int reg;
> +               /* Set the default register values; set SW_COLLAPSE to 0 */
> +               gpu_write(gpu, REG_A4XX_RBBM_POWER_CNTL_IP, 0x778000);
> +               do {
> +                       udelay(5);
> +                       reg = gpu_read(gpu, REG_A4XX_RBBM_POWER_STATUS);
> +               } while (!(reg & SP_TP_PWR_ON));
> +       }
> +       return 0;
> +}
> +
> +static int a4xx_pm_suspend(struct msm_gpu *gpu) {
> +       struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
> +       int ret;
> +
> +       ret = msm_gpu_pm_suspend(gpu);
> +       if (ret)
> +               return ret;
> +
> +       if (adreno_is_a430(adreno_gpu)) {
> +               /* Set the default register values; set SW_COLLAPSE to 1 */
> +               gpu_write(gpu, REG_A4XX_RBBM_POWER_CNTL_IP, 0x778001);
> +       }
> +       return 0;
> +}
> +
>  static const struct adreno_gpu_funcs funcs = {
>         .base = {
>                 .get_param = adreno_get_param,
>                 .hw_init = a4xx_hw_init,
> -               .pm_suspend = msm_gpu_pm_suspend,
> -               .pm_resume = msm_gpu_pm_resume,
> +               .pm_suspend = a4xx_pm_suspend,
> +               .pm_resume = a4xx_pm_resume,
>                 .recover = a4xx_recover,
>                 .last_fence = adreno_last_fence,
>                 .submit = adreno_submit,
> --
> 2.1.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list