RE: [PATCH] Revert "drm/amdgpu: drop runtime pm disablement quirk on several sienna cichlid cards"

2022-09-07 Thread Chen, Guchun
Good point. Looks we need to disable BACO entry/exit together, not limited to 
runtime PM. I will drop this revert and provide a new patch accordingly.

Regards,
Guchun

-Original Message-
From: Lazar, Lijo  
Sent: Wednesday, September 7, 2022 1:58 PM
To: Chen, Guchun ; amd-gfx@lists.freedesktop.org; Deucher, 
Alexander ; Zhang, Hawking ; 
Quan, Evan ; Feng, Kenneth 
Subject: Re: [PATCH] Revert "drm/amdgpu: drop runtime pm disablement quirk on 
several sienna cichlid cards"



On 9/7/2022 10:23 AM, Guchun Chen wrote:
> This reverts commit e2994d23d8afa2fb465fdb8cf544b736f67ab8ba.
> 
> Frequent BACO enter/exit will cause EMI failure, so disable runtime PM 
> on these server SKUs.
> 

Apart from this, any BACO entry/exit in quick succession could cause the same 
failure. If BACO is used for reset in these SKUs, that also may not work.

Thanks,
Lijo

> Signed-off-by: Guchun Chen 
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 13 +
>   1 file changed, 13 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> index 1369c25448dc..4f6473faaf24 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> @@ -43,6 +43,17 @@
>   #include "amdgpu_display.h"
>   #include "amdgpu_ras.h"
>   
> +static void amdgpu_runtime_pm_quirk(struct amdgpu_device *adev) {
> + /*
> +  * Add below quirk on several sienna_cichlid cards to disable
> +  * runtime pm to fix EMI failures.
> +  */
> + if (((adev->pdev->device == 0x73A1) && (adev->pdev->revision == 0x00)) 
> ||
> + ((adev->pdev->device == 0x73BF) && (adev->pdev->revision == 0xCF)))
> + adev->pm.rpm_mode = AMDGPU_RUNPM_NONE; }
> +
>   void amdgpu_unregister_gpu_instance(struct amdgpu_device *adev)
>   {
>   struct amdgpu_gpu_instance *gpu_instance; @@ -176,6 +187,8 @@ int 
> amdgpu_driver_load_kms(struct amdgpu_device *adev, unsigned long flags)
>   break;
>   }
>   
> + amdgpu_runtime_pm_quirk(adev);
> +
>   if (adev->pm.rpm_mode == AMDGPU_RUNPM_BACO)
>   dev_info(adev->dev, "Using BACO for runtime pm\n");
>   }
> 


Re: [PATCH] Revert "drm/amdgpu: drop runtime pm disablement quirk on several sienna cichlid cards"

2022-09-06 Thread Lazar, Lijo




On 9/7/2022 10:23 AM, Guchun Chen wrote:

This reverts commit e2994d23d8afa2fb465fdb8cf544b736f67ab8ba.

Frequent BACO enter/exit will cause EMI failure, so disable runtime PM
on these server SKUs.



Apart from this, any BACO entry/exit in quick succession could cause the 
same failure. If BACO is used for reset in these SKUs, that also may not 
work.


Thanks,
Lijo


Signed-off-by: Guchun Chen 
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 13 +
  1 file changed, 13 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 1369c25448dc..4f6473faaf24 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -43,6 +43,17 @@
  #include "amdgpu_display.h"
  #include "amdgpu_ras.h"
  
+static void amdgpu_runtime_pm_quirk(struct amdgpu_device *adev)

+{
+   /*
+* Add below quirk on several sienna_cichlid cards to disable
+* runtime pm to fix EMI failures.
+*/
+   if (((adev->pdev->device == 0x73A1) && (adev->pdev->revision == 0x00)) 
||
+   ((adev->pdev->device == 0x73BF) && (adev->pdev->revision == 0xCF)))
+   adev->pm.rpm_mode = AMDGPU_RUNPM_NONE;
+}
+
  void amdgpu_unregister_gpu_instance(struct amdgpu_device *adev)
  {
struct amdgpu_gpu_instance *gpu_instance;
@@ -176,6 +187,8 @@ int amdgpu_driver_load_kms(struct amdgpu_device *adev, 
unsigned long flags)
break;
}
  
+		amdgpu_runtime_pm_quirk(adev);

+
if (adev->pm.rpm_mode == AMDGPU_RUNPM_BACO)
dev_info(adev->dev, "Using BACO for runtime pm\n");
}



RE: [PATCH] Revert "drm/amdgpu: drop runtime pm disablement quirk on several sienna cichlid cards"

2022-09-06 Thread Quan, Evan
[AMD Official Use Only - General]

Reviewed-by: Evan Quan 

> -Original Message-
> From: Chen, Guchun 
> Sent: Wednesday, September 7, 2022 12:53 PM
> To: amd-gfx@lists.freedesktop.org; Deucher, Alexander
> ; Zhang, Hawking
> ; Lazar, Lijo ; Quan, Evan
> ; Feng, Kenneth 
> Cc: Chen, Guchun 
> Subject: [PATCH] Revert "drm/amdgpu: drop runtime pm disablement quirk
> on several sienna cichlid cards"
> 
> This reverts commit e2994d23d8afa2fb465fdb8cf544b736f67ab8ba.
> 
> Frequent BACO enter/exit will cause EMI failure, so disable runtime PM
> on these server SKUs.
> 
> Signed-off-by: Guchun Chen 
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 13 +
>  1 file changed, 13 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> index 1369c25448dc..4f6473faaf24 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> @@ -43,6 +43,17 @@
>  #include "amdgpu_display.h"
>  #include "amdgpu_ras.h"
> 
> +static void amdgpu_runtime_pm_quirk(struct amdgpu_device *adev)
> +{
> + /*
> +  * Add below quirk on several sienna_cichlid cards to disable
> +  * runtime pm to fix EMI failures.
> +  */
> + if (((adev->pdev->device == 0x73A1) && (adev->pdev->revision ==
> 0x00)) ||
> + ((adev->pdev->device == 0x73BF) && (adev->pdev->revision ==
> 0xCF)))
> + adev->pm.rpm_mode = AMDGPU_RUNPM_NONE;
> +}
> +
>  void amdgpu_unregister_gpu_instance(struct amdgpu_device *adev)
>  {
>   struct amdgpu_gpu_instance *gpu_instance;
> @@ -176,6 +187,8 @@ int amdgpu_driver_load_kms(struct amdgpu_device
> *adev, unsigned long flags)
>   break;
>   }
> 
> + amdgpu_runtime_pm_quirk(adev);
> +
>   if (adev->pm.rpm_mode == AMDGPU_RUNPM_BACO)
>   dev_info(adev->dev, "Using BACO for runtime
> pm\n");
>   }
> --
> 2.25.1