RE: [PATCH] drm/amdgpu/vcn: Need to pause dpg before stop dpg

2023-06-20 Thread Deng, Emily
[AMD Official Use Only - General]

Hi Leo,
Sorry, need to correct the commit message, it is unpasue, during unloading 
driver,  I haven't seen any place call un-pause dpg for vcn4.0 for hw fini. And 
it will report "[drm] Register(1) [regUVD_POWER_STATUS] failed to reach value
>0x0001 != 0xn ", and with adding calling un-pause dpg, then issue 
>disappears.

Best wishes
Emily Deng

>-Original Message-
>From: Liu, Leo 
>Sent: Monday, June 19, 2023 9:27 PM
>To: Deng, Emily ; amd-gfx@lists.freedesktop.org
>Cc: Deng, Emily 
>Subject: RE: [PATCH] drm/amdgpu/vcn: Need to pause dpg before stop dpg
>
>[AMD Official Use Only - General]
>
>Hi Emily,
>
>Do you want to pause or un-pause dpg mode based on and change and commit
>message?
>
>With bare metal, before calling the stop, the state of dpg should be un-paused
>within the call the of amdgpu_vcn_idle_work_handler, is it not the case for
>SRIOV?
>
>Regards,
>Leo
>
>
>-Original Message-
>From: amd-gfx  On Behalf Of Emily
>Deng
>Sent: Monday, June 19, 2023 6:24 AM
>To: amd-gfx@lists.freedesktop.org
>Cc: Deng, Emily 
>Subject: [PATCH] drm/amdgpu/vcn: Need to pause dpg before stop dpg
>
>Need to pause dpg first, or it will hit follow error during stop dpg:
>"[drm] Register(1) [regUVD_POWER_STATUS] failed to reach value
>0x0001 != 0xn"
>
>Signed-off-by: Emily Deng 
>---
> drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 2 ++
> 1 file changed, 2 insertions(+)
>
>diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
>b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
>index b48bb5212488..259795098173 100644
>--- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
>+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
>@@ -1424,8 +1424,10 @@ static int vcn_v4_0_start_sriov(struct
>amdgpu_device *adev)
>  */
> static void vcn_v4_0_stop_dpg_mode(struct amdgpu_device *adev, int
>inst_idx)  {
>+   struct dpg_pause_state state = {.fw_based =
>VCN_DPG_STATE__UNPAUSE};
>uint32_t tmp;
>
>+   vcn_v4_0_pause_dpg_mode(adev, inst_idx, &state);
>/* Wait for power status to be 1 */
>SOC15_WAIT_ON_RREG(VCN, inst_idx, regUVD_POWER_STATUS, 1,
>UVD_POWER_STATUS__UVD_POWER_STATUS_MASK);
>--
>2.36.1
>



RE: [PATCH] drm/amdgpu/vcn: Need to pause dpg before stop dpg

2023-06-19 Thread Liu, Leo
[AMD Official Use Only - General]

Hi Emily,

Do you want to pause or un-pause dpg mode based on and change and commit 
message?

With bare metal, before calling the stop, the state of dpg should be un-paused 
within the call the of amdgpu_vcn_idle_work_handler, is it not the case for 
SRIOV?

Regards,
Leo


-Original Message-
From: amd-gfx  On Behalf Of Emily Deng
Sent: Monday, June 19, 2023 6:24 AM
To: amd-gfx@lists.freedesktop.org
Cc: Deng, Emily 
Subject: [PATCH] drm/amdgpu/vcn: Need to pause dpg before stop dpg

Need to pause dpg first, or it will hit follow error during stop dpg:
"[drm] Register(1) [regUVD_POWER_STATUS] failed to reach value 0x0001 != 
0xn"

Signed-off-by: Emily Deng 
---
 drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
index b48bb5212488..259795098173 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
@@ -1424,8 +1424,10 @@ static int vcn_v4_0_start_sriov(struct amdgpu_device 
*adev)
  */
 static void vcn_v4_0_stop_dpg_mode(struct amdgpu_device *adev, int inst_idx)  {
+   struct dpg_pause_state state = {.fw_based = VCN_DPG_STATE__UNPAUSE};
uint32_t tmp;

+   vcn_v4_0_pause_dpg_mode(adev, inst_idx, &state);
/* Wait for power status to be 1 */
SOC15_WAIT_ON_RREG(VCN, inst_idx, regUVD_POWER_STATUS, 1,
UVD_POWER_STATUS__UVD_POWER_STATUS_MASK);
--
2.36.1



[PATCH] drm/amdgpu/vcn: Need to pause dpg before stop dpg

2023-06-19 Thread Emily Deng
Need to pause dpg first, or it will hit follow error during stop dpg:
"[drm] Register(1) [regUVD_POWER_STATUS] failed to reach value 0x0001 != 
0xn"

Signed-off-by: Emily Deng 
---
 drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
index b48bb5212488..259795098173 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
@@ -1424,8 +1424,10 @@ static int vcn_v4_0_start_sriov(struct amdgpu_device 
*adev)
  */
 static void vcn_v4_0_stop_dpg_mode(struct amdgpu_device *adev, int inst_idx)
 {
+   struct dpg_pause_state state = {.fw_based = VCN_DPG_STATE__UNPAUSE};
uint32_t tmp;
 
+   vcn_v4_0_pause_dpg_mode(adev, inst_idx, &state);
/* Wait for power status to be 1 */
SOC15_WAIT_ON_RREG(VCN, inst_idx, regUVD_POWER_STATUS, 1,
UVD_POWER_STATUS__UVD_POWER_STATUS_MASK);
-- 
2.36.1