diff mbox series

drm/panfrost: increase readl_relaxed_poll_timeout values

Message ID 20201008141738.13560-1-christianshewitt@gmail.com (mailing list archive)
State New, archived
Headers show
Series drm/panfrost: increase readl_relaxed_poll_timeout values | expand

Commit Message

Christian Hewitt Oct. 8, 2020, 2:17 p.m. UTC
Amlogic SoC devices report the following errors frequently causing excessive
dmesg log spam and early log rotataion, although the errors appear to be
harmless as everything works fine:

[    7.202702] panfrost ffe40000.gpu: error powering up gpu L2
[    7.203760] panfrost ffe40000.gpu: error powering up gpu shader

ARM staff have advised increasing the timeout values to eliminate the errors
in most normal scenarios, and testing with several different G31/G52 devices
shows 20000 to be a reliable value.

Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver")
Suggested-by: Steven Price <steven.price@arm.com>
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
 drivers/gpu/drm/panfrost/panfrost_gpu.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Steven Price Oct. 9, 2020, 3:54 p.m. UTC | #1
On 08/10/2020 15:17, Christian Hewitt wrote:
> Amlogic SoC devices report the following errors frequently causing excessive
> dmesg log spam and early log rotataion, although the errors appear to be
> harmless as everything works fine:
> 
> [    7.202702] panfrost ffe40000.gpu: error powering up gpu L2
> [    7.203760] panfrost ffe40000.gpu: error powering up gpu shader
> 
> ARM staff have advised increasing the timeout values to eliminate the errors
> in most normal scenarios, and testing with several different G31/G52 devices
> shows 20000 to be a reliable value.
> 
> Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver")
> Suggested-by: Steven Price <steven.price@arm.com>
> Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>

Reviewed-by: Steven Price <steven.price@arm.com>

I'll push this to drm-misc-next-fixes so it should coincide with the 
Bifrost support already in drm-misc-next.

Steve

> ---
>   drivers/gpu/drm/panfrost/panfrost_gpu.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> index e1b2a3376624..2aae636f1cf5 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> @@ -325,13 +325,13 @@ void panfrost_gpu_power_on(struct panfrost_device *pfdev)
>   	/* Just turn on everything for now */
>   	gpu_write(pfdev, L2_PWRON_LO, pfdev->features.l2_present);
>   	ret = readl_relaxed_poll_timeout(pfdev->iomem + L2_READY_LO,
> -		val, val == pfdev->features.l2_present, 100, 1000);
> +		val, val == pfdev->features.l2_present, 100, 20000);
>   	if (ret)
>   		dev_err(pfdev->dev, "error powering up gpu L2");
>   
>   	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);
> +		val, val == pfdev->features.shader_present, 100, 20000);
>   	if (ret)
>   		dev_err(pfdev->dev, "error powering up gpu shader");
>   
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
index e1b2a3376624..2aae636f1cf5 100644
--- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
+++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
@@ -325,13 +325,13 @@  void panfrost_gpu_power_on(struct panfrost_device *pfdev)
 	/* Just turn on everything for now */
 	gpu_write(pfdev, L2_PWRON_LO, pfdev->features.l2_present);
 	ret = readl_relaxed_poll_timeout(pfdev->iomem + L2_READY_LO,
-		val, val == pfdev->features.l2_present, 100, 1000);
+		val, val == pfdev->features.l2_present, 100, 20000);
 	if (ret)
 		dev_err(pfdev->dev, "error powering up gpu L2");
 
 	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);
+		val, val == pfdev->features.shader_present, 100, 20000);
 	if (ret)
 		dev_err(pfdev->dev, "error powering up gpu shader");