linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drm/panfrost: Remove core stack power management
@ 2020-01-09 13:31 Steven Price
  2020-01-09 13:43 ` Alyssa Rosenzweig
  0 siblings, 1 reply; 3+ messages in thread
From: Steven Price @ 2020-01-09 13:31 UTC (permalink / raw)
  To: Daniel Vetter, David Airlie, Rob Herring, Tomeu Vizoso
  Cc: Alyssa Rosenzweig, dri-devel, linux-kernel, Robin Murphy, Steven Price

Explict management of the GPU's core stacks is only necessary in the
case of a broken integration with the PDC. Since there are no known
platforms which have such a broken integration let's remove the explict
control from the driver since this apparently causes problems on other
platforms and will have a small performance penality.

The out of tree mali_kbase driver contains this text regarding
controlling the core stack (CONFIGMALI_CORESTACK):

  Enabling this feature on supported GPUs will let the driver powering
  on/off the GPU core stack independently without involving the Power
  Domain Controller. This should only be enabled on platforms which
  integration of the PDC to the Mali GPU is known to be problematic.
  This feature is currently only supported on t-Six and t-HEx GPUs.

  If unsure, say N.

Signed-off-by: Steven Price <steven.price@arm.com>
---
 drivers/gpu/drm/panfrost/panfrost_gpu.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
index 8822ec13a0d6..460fc190de6e 100644
--- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
+++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
@@ -309,10 +309,6 @@ void panfrost_gpu_power_on(struct panfrost_device *pfdev)
 	ret = readl_relaxed_poll_timeout(pfdev->iomem + L2_READY_LO,
 		val, val == pfdev->features.l2_present, 100, 1000);
 
-	gpu_write(pfdev, STACK_PWRON_LO, pfdev->features.stack_present);
-	ret |= readl_relaxed_poll_timeout(pfdev->iomem + STACK_READY_LO,
-		val, val == pfdev->features.stack_present, 100, 1000);
-
 	gpu_write(pfdev, SHADER_PWRON_LO, pfdev->features.shader_present);
 	ret |= readl_relaxed_poll_timeout(pfdev->iomem + SHADER_READY_LO,
 		val, val == pfdev->features.shader_present, 100, 1000);
@@ -329,7 +325,6 @@ void panfrost_gpu_power_off(struct panfrost_device *pfdev)
 {
 	gpu_write(pfdev, TILER_PWROFF_LO, 0);
 	gpu_write(pfdev, SHADER_PWROFF_LO, 0);
-	gpu_write(pfdev, STACK_PWROFF_LO, 0);
 	gpu_write(pfdev, L2_PWROFF_LO, 0);
 }
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/panfrost: Remove core stack power management
  2020-01-09 13:31 [PATCH] drm/panfrost: Remove core stack power management Steven Price
@ 2020-01-09 13:43 ` Alyssa Rosenzweig
  2020-01-10  3:30   ` Nicolas Boichat
  0 siblings, 1 reply; 3+ messages in thread
From: Alyssa Rosenzweig @ 2020-01-09 13:43 UTC (permalink / raw)
  To: Steven Price
  Cc: Daniel Vetter, David Airlie, Rob Herring, Tomeu Vizoso,
	dri-devel, linux-kernel, Robin Murphy

[-- Attachment #1: Type: text/plain, Size: 2244 bytes --]

A-b

On Thu, Jan 09, 2020 at 01:31:04PM +0000, Steven Price wrote:
> Explict management of the GPU's core stacks is only necessary in the
> case of a broken integration with the PDC. Since there are no known
> platforms which have such a broken integration let's remove the explict
> control from the driver since this apparently causes problems on other
> platforms and will have a small performance penality.
> 
> The out of tree mali_kbase driver contains this text regarding
> controlling the core stack (CONFIGMALI_CORESTACK):
> 
>   Enabling this feature on supported GPUs will let the driver powering
>   on/off the GPU core stack independently without involving the Power
>   Domain Controller. This should only be enabled on platforms which
>   integration of the PDC to the Mali GPU is known to be problematic.
>   This feature is currently only supported on t-Six and t-HEx GPUs.
> 
>   If unsure, say N.
> 
> Signed-off-by: Steven Price <steven.price@arm.com>
> ---
>  drivers/gpu/drm/panfrost/panfrost_gpu.c | 5 -----
>  1 file changed, 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> index 8822ec13a0d6..460fc190de6e 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> @@ -309,10 +309,6 @@ void panfrost_gpu_power_on(struct panfrost_device *pfdev)
>  	ret = readl_relaxed_poll_timeout(pfdev->iomem + L2_READY_LO,
>  		val, val == pfdev->features.l2_present, 100, 1000);
>  
> -	gpu_write(pfdev, STACK_PWRON_LO, pfdev->features.stack_present);
> -	ret |= readl_relaxed_poll_timeout(pfdev->iomem + STACK_READY_LO,
> -		val, val == pfdev->features.stack_present, 100, 1000);
> -
>  	gpu_write(pfdev, SHADER_PWRON_LO, pfdev->features.shader_present);
>  	ret |= readl_relaxed_poll_timeout(pfdev->iomem + SHADER_READY_LO,
>  		val, val == pfdev->features.shader_present, 100, 1000);
> @@ -329,7 +325,6 @@ void panfrost_gpu_power_off(struct panfrost_device *pfdev)
>  {
>  	gpu_write(pfdev, TILER_PWROFF_LO, 0);
>  	gpu_write(pfdev, SHADER_PWROFF_LO, 0);
> -	gpu_write(pfdev, STACK_PWROFF_LO, 0);
>  	gpu_write(pfdev, L2_PWROFF_LO, 0);
>  }
>  
> -- 
> 2.20.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/panfrost: Remove core stack power management
  2020-01-09 13:43 ` Alyssa Rosenzweig
@ 2020-01-10  3:30   ` Nicolas Boichat
  0 siblings, 0 replies; 3+ messages in thread
From: Nicolas Boichat @ 2020-01-10  3:30 UTC (permalink / raw)
  To: Alyssa Rosenzweig
  Cc: Steven Price, Daniel Vetter, David Airlie, Rob Herring,
	Tomeu Vizoso, dri-devel, lkml, Robin Murphy

On Thu, Jan 9, 2020 at 9:44 PM Alyssa Rosenzweig
<alyssa.rosenzweig@collabora.com> wrote:
>
> A-b
>
> On Thu, Jan 09, 2020 at 01:31:04PM +0000, Steven Price wrote:
> > Explict management of the GPU's core stacks is only necessary in the
> > case of a broken integration with the PDC. Since there are no known
> > platforms which have such a broken integration let's remove the explict
> > control from the driver since this apparently causes problems on other
> > platforms and will have a small performance penality.
> >
> > The out of tree mali_kbase driver contains this text regarding
> > controlling the core stack (CONFIGMALI_CORESTACK):
> >
> >   Enabling this feature on supported GPUs will let the driver powering
> >   on/off the GPU core stack independently without involving the Power
> >   Domain Controller. This should only be enabled on platforms which
> >   integration of the PDC to the Mali GPU is known to be problematic.
> >   This feature is currently only supported on t-Six and t-HEx GPUs.
> >
> >   If unsure, say N.
> >

Work on my G-72 Bifrost, no more errors on power on!

Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Tested-by: Nicolas Boichat <drinkcat@chromium.org>

> > Signed-off-by: Steven Price <steven.price@arm.com>
> > ---
> >  drivers/gpu/drm/panfrost/panfrost_gpu.c | 5 -----
> >  1 file changed, 5 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> > index 8822ec13a0d6..460fc190de6e 100644
> > --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
> > +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> > @@ -309,10 +309,6 @@ void panfrost_gpu_power_on(struct panfrost_device *pfdev)
> >       ret = readl_relaxed_poll_timeout(pfdev->iomem + L2_READY_LO,
> >               val, val == pfdev->features.l2_present, 100, 1000);
> >
> > -     gpu_write(pfdev, STACK_PWRON_LO, pfdev->features.stack_present);
> > -     ret |= readl_relaxed_poll_timeout(pfdev->iomem + STACK_READY_LO,
> > -             val, val == pfdev->features.stack_present, 100, 1000);
> > -
> >       gpu_write(pfdev, SHADER_PWRON_LO, pfdev->features.shader_present);
> >       ret |= readl_relaxed_poll_timeout(pfdev->iomem + SHADER_READY_LO,
> >               val, val == pfdev->features.shader_present, 100, 1000);
> > @@ -329,7 +325,6 @@ void panfrost_gpu_power_off(struct panfrost_device *pfdev)
> >  {
> >       gpu_write(pfdev, TILER_PWROFF_LO, 0);
> >       gpu_write(pfdev, SHADER_PWROFF_LO, 0);
> > -     gpu_write(pfdev, STACK_PWROFF_LO, 0);
> >       gpu_write(pfdev, L2_PWROFF_LO, 0);
> >  }
> >
> > --
> > 2.20.1
> >

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-01-10  3:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-09 13:31 [PATCH] drm/panfrost: Remove core stack power management Steven Price
2020-01-09 13:43 ` Alyssa Rosenzweig
2020-01-10  3:30   ` Nicolas Boichat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).