Re: [PATCH] drm/amdgpu/vcn: fix vcn ring test failure in igt reload test

2022-03-15 Thread Yin, Tianci (Rico)
[AMD Official Use Only]

Thank you for reviewing James!

Regards,
Rico

From: Zhu, James 
Sent: Tuesday, March 15, 2022 20:01
To: Yin, Tianci (Rico) ; amd-gfx@lists.freedesktop.org 

Cc: Chen, Guchun ; Zhu, James ; Wang, 
Yu (Charlie) 
Subject: Re: [PATCH] drm/amdgpu/vcn: fix vcn ring test failure in igt reload 
test

This patch is Reviewed-by: James Zhu 

On 2022-03-14 10:33 p.m., Tianci Yin wrote:
> From: "Tianci.Yin" 
>
> [why]
> On Renoir, vcn ring test failed on the second time insmod in the reload
> test. After invetigation, it proves that vcn only can disable dpg under
> dpg unpause mode (dpg unpause mode is default for dec only, dpg pause
> mode is for dec/enc).
>
> [how]
> unpause dpg in dpg stopping procedure.
>
> Change-Id: If6ec3af694e1d6b63ebce386a563f03ca6d291c1
> Signed-off-by: Tianci.Yin 
> ---
>   drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c 
> b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
> index 319ac8ea434b..6e0972cd1f2f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
> @@ -1098,8 +1098,10 @@ static int vcn_v2_0_start(struct amdgpu_device *adev)
>
>   static int vcn_v2_0_stop_dpg_mode(struct amdgpu_device *adev)
>   {
> + struct dpg_pause_state state = {.fw_based = VCN_DPG_STATE__UNPAUSE};
>uint32_t tmp;
>
> + vcn_v2_0_pause_dpg_mode(adev, 0, &state);
>/* Wait for power status to be 1 */
>SOC15_WAIT_ON_RREG(UVD, 0, mmUVD_POWER_STATUS, 1,
>UVD_POWER_STATUS__UVD_POWER_STATUS_MASK);


Re: [PATCH] drm/amdgpu/vcn: fix vcn ring test failure in igt reload test

2022-03-15 Thread James Zhu

This patch is Reviewed-by: James Zhu 

On 2022-03-14 10:33 p.m., Tianci Yin wrote:

From: "Tianci.Yin" 

[why]
On Renoir, vcn ring test failed on the second time insmod in the reload
test. After invetigation, it proves that vcn only can disable dpg under
dpg unpause mode (dpg unpause mode is default for dec only, dpg pause
mode is for dec/enc).

[how]
unpause dpg in dpg stopping procedure.

Change-Id: If6ec3af694e1d6b63ebce386a563f03ca6d291c1
Signed-off-by: Tianci.Yin 
---
  drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
index 319ac8ea434b..6e0972cd1f2f 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
@@ -1098,8 +1098,10 @@ static int vcn_v2_0_start(struct amdgpu_device *adev)
  
  static int vcn_v2_0_stop_dpg_mode(struct amdgpu_device *adev)

  {
+   struct dpg_pause_state state = {.fw_based = VCN_DPG_STATE__UNPAUSE};
uint32_t tmp;
  
+	vcn_v2_0_pause_dpg_mode(adev, 0, &state);

/* Wait for power status to be 1 */
SOC15_WAIT_ON_RREG(UVD, 0, mmUVD_POWER_STATUS, 1,
UVD_POWER_STATUS__UVD_POWER_STATUS_MASK);


Re: [PATCH] drm/amdgpu/vcn: fix vcn ring test failure in igt reload test

2022-03-15 Thread Paul Menzel

Dear Tianci,


Am 15.03.22 um 03:33 schrieb Tianci Yin:

From: "Tianci.Yin" 


Please remove the dot/period in the name. (`git config --global 
user.name "Tianci Yin"`.



[why]
On Renoir, vcn ring test failed on the second time insmod in the reload
test.


Does Linux log a warning/error? Please paste it.


After invetigation, it proves that vcn only can disable dpg under


investigation


dpg unpause mode (dpg unpause mode is default for dec only, dpg pause
mode is for dec/enc).


Is that documented in a datasheet? Please mention name, revision, and 
section.


Why is this only needed for VCN v2.0 and not the other implementations?


[how]
unpause dpg in dpg stopping procedure.

Change-Id: If6ec3af694e1d6b63ebce386a563f03ca6d291c1


Remove?


Signed-off-by: Tianci.Yin 


Ditto.

How did you test this exactly? Did you turn on DRM debug messages to 
verify that the function was called?



---
  drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
index 319ac8ea434b..6e0972cd1f2f 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
@@ -1098,8 +1098,10 @@ static int vcn_v2_0_start(struct amdgpu_device *adev)
  
  static int vcn_v2_0_stop_dpg_mode(struct amdgpu_device *adev)

  {
+   struct dpg_pause_state state = {.fw_based = VCN_DPG_STATE__UNPAUSE};
uint32_t tmp;
  
+	vcn_v2_0_pause_dpg_mode(adev, 0, &state);

/* Wait for power status to be 1 */
SOC15_WAIT_ON_RREG(UVD, 0, mmUVD_POWER_STATUS, 1,
UVD_POWER_STATUS__UVD_POWER_STATUS_MASK);



Kind regards,

Paul


[PATCH] drm/amdgpu/vcn: fix vcn ring test failure in igt reload test

2022-03-14 Thread Tianci Yin
From: "Tianci.Yin" 

[why]
On Renoir, vcn ring test failed on the second time insmod in the reload
test. After invetigation, it proves that vcn only can disable dpg under
dpg unpause mode (dpg unpause mode is default for dec only, dpg pause
mode is for dec/enc).

[how]
unpause dpg in dpg stopping procedure.

Change-Id: If6ec3af694e1d6b63ebce386a563f03ca6d291c1
Signed-off-by: Tianci.Yin 
---
 drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
index 319ac8ea434b..6e0972cd1f2f 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
@@ -1098,8 +1098,10 @@ static int vcn_v2_0_start(struct amdgpu_device *adev)
 
 static int vcn_v2_0_stop_dpg_mode(struct amdgpu_device *adev)
 {
+   struct dpg_pause_state state = {.fw_based = VCN_DPG_STATE__UNPAUSE};
uint32_t tmp;
 
+   vcn_v2_0_pause_dpg_mode(adev, 0, &state);
/* Wait for power status to be 1 */
SOC15_WAIT_ON_RREG(UVD, 0, mmUVD_POWER_STATUS, 1,
UVD_POWER_STATUS__UVD_POWER_STATUS_MASK);
-- 
2.25.1