Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static screen use cases"

2023-10-03 Thread Hamza Mahfooz

On 10/2/23 13:47, ivlip...@amd.com wrote:

From: Ivan Lipski 

This reverts commit a92da5bc33ea99a861f6c422192af6072c145d2d.

V2: Reword commit message

[WHY]
This commit caused regression in which eDP's with PSR support,
but no Replay support (Sink support <= 0x03), failed enabling PSR
and all IGT amd_psr tests.

[HOW]
Reverted the patch.

Signed-off-by: Ivan Lipski 


Applied, thanks!


---
  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 ---
  .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c|  9 +---
  drivers/gpu/drm/amd/include/amd_shared.h  |  2 --
  3 files changed, 1 insertion(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 32156609fbcf..f69b2e9ecd98 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -66,7 +66,6 @@
  #include "amdgpu_dm_debugfs.h"
  #endif
  #include "amdgpu_dm_psr.h"
-#include "amdgpu_dm_replay.h"
  
  #include "ivsrcid/ivsrcid_vislands30.h"
  
@@ -4423,7 +4422,6 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)

enum dc_connection_type new_connection_type = dc_connection_none;
const struct dc_plane_cap *plane;
bool psr_feature_enabled = false;
-   bool replay_feature_enabled = false;
int max_overlay = dm->dc->caps.max_slave_planes;
  
  	dm->display_indexes_num = dm->dc->caps.max_streams;

@@ -4535,21 +4533,6 @@ static int amdgpu_dm_initialize_drm_device(struct 
amdgpu_device *adev)
}
}
  
-	if (!(amdgpu_dc_debug_mask & DC_DISABLE_REPLAY)) {

-   switch (amdgpu_ip_version(adev, DCE_HWIP, 0)) {
-   case IP_VERSION(3, 1, 4):
-   case IP_VERSION(3, 1, 5):
-   case IP_VERSION(3, 1, 6):
-   case IP_VERSION(3, 2, 0):
-   case IP_VERSION(3, 2, 1):
-   case IP_VERSION(3, 5, 0):
-   replay_feature_enabled = true;
-   break;
-   default:
-   replay_feature_enabled = amdgpu_dc_feature_mask & 
DC_REPLAY_MASK;
-   break;
-   }
-   }
/* loops over all connectors on the board */
for (i = 0; i < link_cnt; i++) {
struct dc_link *link = NULL;
@@ -4618,12 +4601,6 @@ static int amdgpu_dm_initialize_drm_device(struct 
amdgpu_device *adev)

amdgpu_dm_update_connector_after_detect(aconnector);
setup_backlight_device(dm, aconnector);
  
-/*

-* Disable psr if replay can be enabled
-*/
-   if (replay_feature_enabled && 
amdgpu_dm_setup_replay(link, aconnector))
-   psr_feature_enabled = false;
-
if (psr_feature_enabled)
amdgpu_dm_set_psr_caps(link);
  
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c

index fb51ec4f8d31..440fc0869a34 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
@@ -29,7 +29,6 @@
  #include "dc.h"
  #include "amdgpu.h"
  #include "amdgpu_dm_psr.h"
-#include "amdgpu_dm_replay.h"
  #include "amdgpu_dm_crtc.h"
  #include "amdgpu_dm_plane.h"
  #include "amdgpu_dm_trace.h"
@@ -124,12 +123,7 @@ static void vblank_control_worker(struct work_struct *work)
 * fill_dc_dirty_rects().
 */
if (vblank_work->stream && vblank_work->stream->link) {
-   /*
-* Prioritize replay, instead of psr
-*/
-   if 
(vblank_work->stream->link->replay_settings.replay_feature_enabled)
-   amdgpu_dm_replay_enable(vblank_work->stream, false);
-   else if (vblank_work->enable) {
+   if (vblank_work->enable) {
if (vblank_work->stream->link->psr_settings.psr_version < 
DC_PSR_VERSION_SU_1 &&

vblank_work->stream->link->psr_settings.psr_allow_active)
amdgpu_dm_psr_disable(vblank_work->stream);
@@ -138,7 +132,6 @@ static void vblank_control_worker(struct work_struct *work)
  #ifdef CONFIG_DRM_AMD_SECURE_DISPLAY
   
!amdgpu_dm_crc_window_is_activated(_work->acrtc->base) &&
  #endif
-  vblank_work->stream->link->panel_config.psr.disallow_replay 
&&
   vblank_work->acrtc->dm_irq_params.allow_psr_entry) {
amdgpu_dm_psr_enable(vblank_work->stream);
}
diff --git a/drivers/gpu/drm/amd/include/amd_shared.h 
b/drivers/gpu/drm/amd/include/amd_shared.h
index 314fd44ec018..ce75351204bb 100644
--- 

Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static screen use cases"

2023-10-03 Thread Lakha, Bhawanpreet
[AMD Official Use Only - General]

You can revert it for now, but that is a bug as replay_feature_enabled should 
stop all replay related calls.

From: LIPSKI, IVAN 
Sent: October 3, 2023 4:11 PM
To: Lakha, Bhawanpreet ; Li, Sun peng (Leo) 
; amd-gfx@lists.freedesktop.org 

Cc: Siqueira, Rodrigo ; Mahfooz, Hamza 
; Wentland, Harry ; Deucher, 
Alexander ; Chung, ChiaHsuan (Tom) 

Subject: Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static 
screen use cases"


[AMD Official Use Only - General]

Setting 'replay_feature_enabled' to false did not fix the issue, and PSR could 
not be enabled on an eDP without Replay support (Sink support 0x03 in my case).


Thank you,

Ivan Lipski




From: Lakha, Bhawanpreet 
Sent: October 3, 2023 1:03 PM
To: Li, Sun peng (Leo) ; LIPSKI, IVAN 
; amd-gfx@lists.freedesktop.org 

Cc: Siqueira, Rodrigo ; Mahfooz, Hamza 
; Wentland, Harry ; Deucher, 
Alexander ; Chung, ChiaHsuan (Tom) 

Subject: Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static 
screen use cases"


[AMD Official Use Only - General]

yes, it will disable replay.

From: Li, Sun peng (Leo) 
Sent: October 3, 2023 11:40 AM
To: Lakha, Bhawanpreet ; LIPSKI, IVAN 
; amd-gfx@lists.freedesktop.org 

Cc: Siqueira, Rodrigo ; Mahfooz, Hamza 
; Wentland, Harry ; Deucher, 
Alexander ; Chung, ChiaHsuan (Tom) 

Subject: Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static 
screen use cases"



On 2023-10-03 11:23, Lakha, Bhawanpreet wrote:
> [AMD Official Use Only - General]
>
>
> Why not just set replay_feature_enabled = true; to false?

Would that be the right fix? If so, we can send out a patch
with that instead.

- Leo

> 
> *From:* Li, Sun peng (Leo) 
> *Sent:* October 3, 2023 11:20 AM
> *To:* Lakha, Bhawanpreet ; LIPSKI, IVAN
> ; amd-gfx@lists.freedesktop.org
> 
> *Cc:* Siqueira, Rodrigo ; Mahfooz, Hamza
> ; Wentland, Harry ;
> Deucher, Alexander ; Chung, ChiaHsuan (Tom)
> 
> *Subject:* Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for
> static screen use cases"
>
>
> On 2023-10-03 11:13, Lakha, Bhawanpreet wrote:
>> [AMD Official Use Only - General]
>>
>>
>> Any reason for reverting this instead of looking into
>> "amdgpu_dm_setup_replay()" and "replay_feature_enabled" to see why reply
>> is being enabled?
>
> It causes a regression in amd_psr. Unless there's a quick fix, we should
> revert for now. It sounds like this can break existing support for
> PSR/PSR SU.
>
> Acked-by: Leo Li 
>
> - Leo
>
>>
>> Bhawan
>> 
>> *From:* LIPSKI, IVAN 
>> *Sent:* October 2, 2023 1:47 PM
>> *To:* amd-gfx@lists.freedesktop.org 
>> *Cc:* Siqueira, Rodrigo ; Mahfooz, Hamza
>> ; Wentland, Harry ;
>> Lakha, Bhawanpreet ; Deucher, Alexander
>> ; Li, Sun peng (Leo) ;
>> Chung, ChiaHsuan (Tom) ; LIPSKI, IVAN
>> ; LIPSKI, IVAN 
>> *Subject:* [PATCH v2] Revert "drm/amd/display: Enable Replay for static
>> screen use cases"
>> From: Ivan Lipski 
>>
>> This reverts commit a92da5bc33ea99a861f6c422192af6072c145d2d.
>>
>> V2: Reword commit message
>>
>> [WHY]
>> This commit caused regression in which eDP's with PSR support,
>> but no Replay support (Sink support <= 0x03), failed enabling PSR
>> and all IGT amd_psr tests.
>>
>> [HOW]
>> Reverted the patch.
>>
>> Signed-off-by: Ivan Lipski 
>> ---
>>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 ---
>>   .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c|  9 +---
>>   drivers/gpu/drm/amd/include/amd_shared.h  |  2 --
>>   3 files changed, 1 insertion(+), 33 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> index 32156609fbcf..f69b2e9ecd98 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> @@ -66,7 +66,6 @@
>>   #include "amdgpu_dm_debugfs.h"
>>   #endif
>>   #include "amdgpu_dm_psr.h"
>> -#include "amdgpu_dm_replay.h"
>>
>>   #include "ivsrcid/ivsrcid_vislands30.h"
>>
>> @@ -4423,7 +4422,6 @@ static int amdgpu_dm_initialize_drm_device(struct
>> amdgpu_device *adev)
>>   enum dc_connection_type new_connection_type = dc_connection_none;
>>   const struct dc_plane_cap 

Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static screen use cases"

2023-10-03 Thread LIPSKI, IVAN
[AMD Official Use Only - General]

Setting 'replay_feature_enabled' to false did not fix the issue, and PSR could 
not be enabled on an eDP without Replay support (Sink support 0x03 in my case).


Thank you,

Ivan Lipski




From: Lakha, Bhawanpreet 
Sent: October 3, 2023 1:03 PM
To: Li, Sun peng (Leo) ; LIPSKI, IVAN 
; amd-gfx@lists.freedesktop.org 

Cc: Siqueira, Rodrigo ; Mahfooz, Hamza 
; Wentland, Harry ; Deucher, 
Alexander ; Chung, ChiaHsuan (Tom) 

Subject: Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static 
screen use cases"


[AMD Official Use Only - General]

yes, it will disable replay.

From: Li, Sun peng (Leo) 
Sent: October 3, 2023 11:40 AM
To: Lakha, Bhawanpreet ; LIPSKI, IVAN 
; amd-gfx@lists.freedesktop.org 

Cc: Siqueira, Rodrigo ; Mahfooz, Hamza 
; Wentland, Harry ; Deucher, 
Alexander ; Chung, ChiaHsuan (Tom) 

Subject: Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static 
screen use cases"



On 2023-10-03 11:23, Lakha, Bhawanpreet wrote:
> [AMD Official Use Only - General]
>
>
> Why not just set replay_feature_enabled = true; to false?

Would that be the right fix? If so, we can send out a patch
with that instead.

- Leo

> 
> *From:* Li, Sun peng (Leo) 
> *Sent:* October 3, 2023 11:20 AM
> *To:* Lakha, Bhawanpreet ; LIPSKI, IVAN
> ; amd-gfx@lists.freedesktop.org
> 
> *Cc:* Siqueira, Rodrigo ; Mahfooz, Hamza
> ; Wentland, Harry ;
> Deucher, Alexander ; Chung, ChiaHsuan (Tom)
> 
> *Subject:* Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for
> static screen use cases"
>
>
> On 2023-10-03 11:13, Lakha, Bhawanpreet wrote:
>> [AMD Official Use Only - General]
>>
>>
>> Any reason for reverting this instead of looking into
>> "amdgpu_dm_setup_replay()" and "replay_feature_enabled" to see why reply
>> is being enabled?
>
> It causes a regression in amd_psr. Unless there's a quick fix, we should
> revert for now. It sounds like this can break existing support for
> PSR/PSR SU.
>
> Acked-by: Leo Li 
>
> - Leo
>
>>
>> Bhawan
>> 
>> *From:* LIPSKI, IVAN 
>> *Sent:* October 2, 2023 1:47 PM
>> *To:* amd-gfx@lists.freedesktop.org 
>> *Cc:* Siqueira, Rodrigo ; Mahfooz, Hamza
>> ; Wentland, Harry ;
>> Lakha, Bhawanpreet ; Deucher, Alexander
>> ; Li, Sun peng (Leo) ;
>> Chung, ChiaHsuan (Tom) ; LIPSKI, IVAN
>> ; LIPSKI, IVAN 
>> *Subject:* [PATCH v2] Revert "drm/amd/display: Enable Replay for static
>> screen use cases"
>> From: Ivan Lipski 
>>
>> This reverts commit a92da5bc33ea99a861f6c422192af6072c145d2d.
>>
>> V2: Reword commit message
>>
>> [WHY]
>> This commit caused regression in which eDP's with PSR support,
>> but no Replay support (Sink support <= 0x03), failed enabling PSR
>> and all IGT amd_psr tests.
>>
>> [HOW]
>> Reverted the patch.
>>
>> Signed-off-by: Ivan Lipski 
>> ---
>>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 ---
>>   .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c|  9 +---
>>   drivers/gpu/drm/amd/include/amd_shared.h  |  2 --
>>   3 files changed, 1 insertion(+), 33 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> index 32156609fbcf..f69b2e9ecd98 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> @@ -66,7 +66,6 @@
>>   #include "amdgpu_dm_debugfs.h"
>>   #endif
>>   #include "amdgpu_dm_psr.h"
>> -#include "amdgpu_dm_replay.h"
>>
>>   #include "ivsrcid/ivsrcid_vislands30.h"
>>
>> @@ -4423,7 +4422,6 @@ static int amdgpu_dm_initialize_drm_device(struct
>> amdgpu_device *adev)
>>   enum dc_connection_type new_connection_type = dc_connection_none;
>>   const struct dc_plane_cap *plane;
>>   bool psr_feature_enabled = false;
>> -   bool replay_feature_enabled = false;
>>   int max_overlay = dm->dc->caps.max_slave_planes;
>>
>>   dm->display_indexes_num = dm->dc->caps.max_streams;
>> @@ -4535,21 +4533,6 @@ static int amdgpu_dm_initialize_drm_device(struct
>> amdgpu_device *adev)
>>   }
>>   }
>>
>> -   if (!(amdgpu_dc_debu

Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static screen use cases"

2023-10-03 Thread Lakha, Bhawanpreet
[AMD Official Use Only - General]

yes, it will disable replay.

From: Li, Sun peng (Leo) 
Sent: October 3, 2023 11:40 AM
To: Lakha, Bhawanpreet ; LIPSKI, IVAN 
; amd-gfx@lists.freedesktop.org 

Cc: Siqueira, Rodrigo ; Mahfooz, Hamza 
; Wentland, Harry ; Deucher, 
Alexander ; Chung, ChiaHsuan (Tom) 

Subject: Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static 
screen use cases"



On 2023-10-03 11:23, Lakha, Bhawanpreet wrote:
> [AMD Official Use Only - General]
>
>
> Why not just set replay_feature_enabled = true; to false?

Would that be the right fix? If so, we can send out a patch
with that instead.

- Leo

> 
> *From:* Li, Sun peng (Leo) 
> *Sent:* October 3, 2023 11:20 AM
> *To:* Lakha, Bhawanpreet ; LIPSKI, IVAN
> ; amd-gfx@lists.freedesktop.org
> 
> *Cc:* Siqueira, Rodrigo ; Mahfooz, Hamza
> ; Wentland, Harry ;
> Deucher, Alexander ; Chung, ChiaHsuan (Tom)
> 
> *Subject:* Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for
> static screen use cases"
>
>
> On 2023-10-03 11:13, Lakha, Bhawanpreet wrote:
>> [AMD Official Use Only - General]
>>
>>
>> Any reason for reverting this instead of looking into
>> "amdgpu_dm_setup_replay()" and "replay_feature_enabled" to see why reply
>> is being enabled?
>
> It causes a regression in amd_psr. Unless there's a quick fix, we should
> revert for now. It sounds like this can break existing support for
> PSR/PSR SU.
>
> Acked-by: Leo Li 
>
> - Leo
>
>>
>> Bhawan
>> 
>> *From:* LIPSKI, IVAN 
>> *Sent:* October 2, 2023 1:47 PM
>> *To:* amd-gfx@lists.freedesktop.org 
>> *Cc:* Siqueira, Rodrigo ; Mahfooz, Hamza
>> ; Wentland, Harry ;
>> Lakha, Bhawanpreet ; Deucher, Alexander
>> ; Li, Sun peng (Leo) ;
>> Chung, ChiaHsuan (Tom) ; LIPSKI, IVAN
>> ; LIPSKI, IVAN 
>> *Subject:* [PATCH v2] Revert "drm/amd/display: Enable Replay for static
>> screen use cases"
>> From: Ivan Lipski 
>>
>> This reverts commit a92da5bc33ea99a861f6c422192af6072c145d2d.
>>
>> V2: Reword commit message
>>
>> [WHY]
>> This commit caused regression in which eDP's with PSR support,
>> but no Replay support (Sink support <= 0x03), failed enabling PSR
>> and all IGT amd_psr tests.
>>
>> [HOW]
>> Reverted the patch.
>>
>> Signed-off-by: Ivan Lipski 
>> ---
>>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 ---
>>   .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c|  9 +---
>>   drivers/gpu/drm/amd/include/amd_shared.h  |  2 --
>>   3 files changed, 1 insertion(+), 33 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> index 32156609fbcf..f69b2e9ecd98 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> @@ -66,7 +66,6 @@
>>   #include "amdgpu_dm_debugfs.h"
>>   #endif
>>   #include "amdgpu_dm_psr.h"
>> -#include "amdgpu_dm_replay.h"
>>
>>   #include "ivsrcid/ivsrcid_vislands30.h"
>>
>> @@ -4423,7 +4422,6 @@ static int amdgpu_dm_initialize_drm_device(struct
>> amdgpu_device *adev)
>>   enum dc_connection_type new_connection_type = dc_connection_none;
>>   const struct dc_plane_cap *plane;
>>   bool psr_feature_enabled = false;
>> -   bool replay_feature_enabled = false;
>>   int max_overlay = dm->dc->caps.max_slave_planes;
>>
>>   dm->display_indexes_num = dm->dc->caps.max_streams;
>> @@ -4535,21 +4533,6 @@ static int amdgpu_dm_initialize_drm_device(struct
>> amdgpu_device *adev)
>>   }
>>   }
>>
>> -   if (!(amdgpu_dc_debug_mask & DC_DISABLE_REPLAY)) {
>> -   switch (amdgpu_ip_version(adev, DCE_HWIP, 0)) {
>> -   case IP_VERSION(3, 1, 4):
>> -   case IP_VERSION(3, 1, 5):
>> -   case IP_VERSION(3, 1, 6):
>> -   case IP_VERSION(3, 2, 0):
>> -   case IP_VERSION(3, 2, 1):
>> -   case IP_VERSION(3, 5, 0):
>> -   replay_feature_enabled = true;
>> -   break;
>> -   default:

Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static screen use cases"

2023-10-03 Thread Leo Li




On 2023-10-03 11:23, Lakha, Bhawanpreet wrote:

[AMD Official Use Only - General]


Why not just set replay_feature_enabled = true; to false?


Would that be the right fix? If so, we can send out a patch
with that instead.

- Leo



*From:* Li, Sun peng (Leo) 
*Sent:* October 3, 2023 11:20 AM
*To:* Lakha, Bhawanpreet ; LIPSKI, IVAN 
; amd-gfx@lists.freedesktop.org 

*Cc:* Siqueira, Rodrigo ; Mahfooz, Hamza 
; Wentland, Harry ; 
Deucher, Alexander ; Chung, ChiaHsuan (Tom) 

*Subject:* Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for 
static screen use cases"



On 2023-10-03 11:13, Lakha, Bhawanpreet wrote:

[AMD Official Use Only - General]


Any reason for reverting this instead of looking into 
"amdgpu_dm_setup_replay()" and "replay_feature_enabled" to see why reply 
is being enabled?


It causes a regression in amd_psr. Unless there's a quick fix, we should
revert for now. It sounds like this can break existing support for
PSR/PSR SU.

Acked-by: Leo Li 

- Leo



Bhawan

*From:* LIPSKI, IVAN 
*Sent:* October 2, 2023 1:47 PM
*To:* amd-gfx@lists.freedesktop.org 
*Cc:* Siqueira, Rodrigo ; Mahfooz, Hamza 
; Wentland, Harry ; 
Lakha, Bhawanpreet ; Deucher, Alexander 
; Li, Sun peng (Leo) ; 
Chung, ChiaHsuan (Tom) ; LIPSKI, IVAN 
; LIPSKI, IVAN 
*Subject:* [PATCH v2] Revert "drm/amd/display: Enable Replay for static 
screen use cases"

From: Ivan Lipski 

This reverts commit a92da5bc33ea99a861f6c422192af6072c145d2d.

V2: Reword commit message

[WHY]
This commit caused regression in which eDP's with PSR support,
but no Replay support (Sink support <= 0x03), failed enabling PSR
and all IGT amd_psr tests.

[HOW]
Reverted the patch.

Signed-off-by: Ivan Lipski 
---
   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 ---
   .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c    |  9 +---
   drivers/gpu/drm/amd/include/amd_shared.h  |  2 --
   3 files changed, 1 insertion(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 32156609fbcf..f69b2e9ecd98 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -66,7 +66,6 @@
   #include "amdgpu_dm_debugfs.h"
   #endif
   #include "amdgpu_dm_psr.h"
-#include "amdgpu_dm_replay.h"

   #include "ivsrcid/ivsrcid_vislands30.h"

@@ -4423,7 +4422,6 @@ static int amdgpu_dm_initialize_drm_device(struct 
amdgpu_device *adev)

   enum dc_connection_type new_connection_type = dc_connection_none;
   const struct dc_plane_cap *plane;
   bool psr_feature_enabled = false;
-   bool replay_feature_enabled = false;
   int max_overlay = dm->dc->caps.max_slave_planes;

   dm->display_indexes_num = dm->dc->caps.max_streams;
@@ -4535,21 +4533,6 @@ static int amdgpu_dm_initialize_drm_device(struct 
amdgpu_device *adev)

   }
   }

-   if (!(amdgpu_dc_debug_mask & DC_DISABLE_REPLAY)) {
-   switch (amdgpu_ip_version(adev, DCE_HWIP, 0)) {
-   case IP_VERSION(3, 1, 4):
-   case IP_VERSION(3, 1, 5):
-   case IP_VERSION(3, 1, 6):
-   case IP_VERSION(3, 2, 0):
-   case IP_VERSION(3, 2, 1):
-   case IP_VERSION(3, 5, 0):
-   replay_feature_enabled = true;
-   break;
-   default:
-   replay_feature_enabled = amdgpu_dc_feature_mask 
& DC_REPLAY_MASK;

-   break;
-   }
-   }
   /* loops over all connectors on the board */
   for (i = 0; i < link_cnt; i++) {
   struct dc_link *link = NULL;
@@ -4618,12 +4601,6 @@ static int amdgpu_dm_initialize_drm_device(struct 
amdgpu_device *adev)
  
amdgpu_dm_update_connector_after_detect(aconnector);

   setup_backlight_device(dm, aconnector);

-   /*
-    * Disable psr if replay can be enabled
-    */
-   if (replay_feature_enabled && 
amdgpu_dm_setup_replay(link, aconnector))

-   psr_feature_enabled = false;
-
   if (psr_feature_enabled)
   amdgpu_dm_set_psr_caps(link);

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c

index fb51ec4f8d31..440fc0869a34 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
@@

Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static screen use cases"

2023-10-03 Thread Lakha, Bhawanpreet
[AMD Official Use Only - General]

Why not just set replay_feature_enabled = true; to false?

From: Li, Sun peng (Leo) 
Sent: October 3, 2023 11:20 AM
To: Lakha, Bhawanpreet ; LIPSKI, IVAN 
; amd-gfx@lists.freedesktop.org 

Cc: Siqueira, Rodrigo ; Mahfooz, Hamza 
; Wentland, Harry ; Deucher, 
Alexander ; Chung, ChiaHsuan (Tom) 

Subject: Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static 
screen use cases"



On 2023-10-03 11:13, Lakha, Bhawanpreet wrote:
> [AMD Official Use Only - General]
>
>
> Any reason for reverting this instead of looking into
> "amdgpu_dm_setup_replay()" and "replay_feature_enabled" to see why reply
> is being enabled?

It causes a regression in amd_psr. Unless there's a quick fix, we should
revert for now. It sounds like this can break existing support for
PSR/PSR SU.

Acked-by: Leo Li 

- Leo

>
> Bhawan
> 
> *From:* LIPSKI, IVAN 
> *Sent:* October 2, 2023 1:47 PM
> *To:* amd-gfx@lists.freedesktop.org 
> *Cc:* Siqueira, Rodrigo ; Mahfooz, Hamza
> ; Wentland, Harry ;
> Lakha, Bhawanpreet ; Deucher, Alexander
> ; Li, Sun peng (Leo) ;
> Chung, ChiaHsuan (Tom) ; LIPSKI, IVAN
> ; LIPSKI, IVAN 
> *Subject:* [PATCH v2] Revert "drm/amd/display: Enable Replay for static
> screen use cases"
> From: Ivan Lipski 
>
> This reverts commit a92da5bc33ea99a861f6c422192af6072c145d2d.
>
> V2: Reword commit message
>
> [WHY]
> This commit caused regression in which eDP's with PSR support,
> but no Replay support (Sink support <= 0x03), failed enabling PSR
> and all IGT amd_psr tests.
>
> [HOW]
> Reverted the patch.
>
> Signed-off-by: Ivan Lipski 
> ---
>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 ---
>   .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c|  9 +---
>   drivers/gpu/drm/amd/include/amd_shared.h  |  2 --
>   3 files changed, 1 insertion(+), 33 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 32156609fbcf..f69b2e9ecd98 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -66,7 +66,6 @@
>   #include "amdgpu_dm_debugfs.h"
>   #endif
>   #include "amdgpu_dm_psr.h"
> -#include "amdgpu_dm_replay.h"
>
>   #include "ivsrcid/ivsrcid_vislands30.h"
>
> @@ -4423,7 +4422,6 @@ static int amdgpu_dm_initialize_drm_device(struct
> amdgpu_device *adev)
>   enum dc_connection_type new_connection_type = dc_connection_none;
>   const struct dc_plane_cap *plane;
>   bool psr_feature_enabled = false;
> -   bool replay_feature_enabled = false;
>   int max_overlay = dm->dc->caps.max_slave_planes;
>
>   dm->display_indexes_num = dm->dc->caps.max_streams;
> @@ -4535,21 +4533,6 @@ static int amdgpu_dm_initialize_drm_device(struct
> amdgpu_device *adev)
>   }
>   }
>
> -   if (!(amdgpu_dc_debug_mask & DC_DISABLE_REPLAY)) {
> -   switch (amdgpu_ip_version(adev, DCE_HWIP, 0)) {
> -   case IP_VERSION(3, 1, 4):
> -   case IP_VERSION(3, 1, 5):
> -   case IP_VERSION(3, 1, 6):
> -   case IP_VERSION(3, 2, 0):
> -   case IP_VERSION(3, 2, 1):
> -   case IP_VERSION(3, 5, 0):
> -   replay_feature_enabled = true;
> -   break;
> -   default:
> -   replay_feature_enabled = amdgpu_dc_feature_mask
> & DC_REPLAY_MASK;
> -   break;
> -   }
> -   }
>   /* loops over all connectors on the board */
>   for (i = 0; i < link_cnt; i++) {
>   struct dc_link *link = NULL;
> @@ -4618,12 +4601,6 @@ static int amdgpu_dm_initialize_drm_device(struct
> amdgpu_device *adev)
>
> amdgpu_dm_update_connector_after_detect(aconnector);
>   setup_backlight_device(dm, aconnector);
>
> -   /*
> -* Disable psr if replay can be enabled
> -*/
> -   if (replay_feature_enabled &&
> amdgpu_dm_setup_replay(link, aconnector))
> -   psr_feature_enabled = false;
> -
>   if (psr_feature_enabled)
>   amdgpu_dm_set_psr_caps(link);
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu

Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static screen use cases"

2023-10-03 Thread Leo Li




On 2023-10-03 11:13, Lakha, Bhawanpreet wrote:

[AMD Official Use Only - General]


Any reason for reverting this instead of looking into 
"amdgpu_dm_setup_replay()" and "replay_feature_enabled" to see why reply 
is being enabled?


It causes a regression in amd_psr. Unless there's a quick fix, we should
revert for now. It sounds like this can break existing support for
PSR/PSR SU.

Acked-by: Leo Li 

- Leo



Bhawan

*From:* LIPSKI, IVAN 
*Sent:* October 2, 2023 1:47 PM
*To:* amd-gfx@lists.freedesktop.org 
*Cc:* Siqueira, Rodrigo ; Mahfooz, Hamza 
; Wentland, Harry ; 
Lakha, Bhawanpreet ; Deucher, Alexander 
; Li, Sun peng (Leo) ; 
Chung, ChiaHsuan (Tom) ; LIPSKI, IVAN 
; LIPSKI, IVAN 
*Subject:* [PATCH v2] Revert "drm/amd/display: Enable Replay for static 
screen use cases"

From: Ivan Lipski 

This reverts commit a92da5bc33ea99a861f6c422192af6072c145d2d.

V2: Reword commit message

[WHY]
This commit caused regression in which eDP's with PSR support,
but no Replay support (Sink support <= 0x03), failed enabling PSR
and all IGT amd_psr tests.

[HOW]
Reverted the patch.

Signed-off-by: Ivan Lipski 
---
  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 ---
  .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c    |  9 +---
  drivers/gpu/drm/amd/include/amd_shared.h  |  2 --
  3 files changed, 1 insertion(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 32156609fbcf..f69b2e9ecd98 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -66,7 +66,6 @@
  #include "amdgpu_dm_debugfs.h"
  #endif
  #include "amdgpu_dm_psr.h"
-#include "amdgpu_dm_replay.h"

  #include "ivsrcid/ivsrcid_vislands30.h"

@@ -4423,7 +4422,6 @@ static int amdgpu_dm_initialize_drm_device(struct 
amdgpu_device *adev)

  enum dc_connection_type new_connection_type = dc_connection_none;
  const struct dc_plane_cap *plane;
  bool psr_feature_enabled = false;
-   bool replay_feature_enabled = false;
  int max_overlay = dm->dc->caps.max_slave_planes;

  dm->display_indexes_num = dm->dc->caps.max_streams;
@@ -4535,21 +4533,6 @@ static int amdgpu_dm_initialize_drm_device(struct 
amdgpu_device *adev)

  }
  }

-   if (!(amdgpu_dc_debug_mask & DC_DISABLE_REPLAY)) {
-   switch (amdgpu_ip_version(adev, DCE_HWIP, 0)) {
-   case IP_VERSION(3, 1, 4):
-   case IP_VERSION(3, 1, 5):
-   case IP_VERSION(3, 1, 6):
-   case IP_VERSION(3, 2, 0):
-   case IP_VERSION(3, 2, 1):
-   case IP_VERSION(3, 5, 0):
-   replay_feature_enabled = true;
-   break;
-   default:
-   replay_feature_enabled = amdgpu_dc_feature_mask 
& DC_REPLAY_MASK;

-   break;
-   }
-   }
  /* loops over all connectors on the board */
  for (i = 0; i < link_cnt; i++) {
  struct dc_link *link = NULL;
@@ -4618,12 +4601,6 @@ static int amdgpu_dm_initialize_drm_device(struct 
amdgpu_device *adev)
  
amdgpu_dm_update_connector_after_detect(aconnector);

  setup_backlight_device(dm, aconnector);

-   /*
-    * Disable psr if replay can be enabled
-    */
-   if (replay_feature_enabled && 
amdgpu_dm_setup_replay(link, aconnector))

-   psr_feature_enabled = false;
-
  if (psr_feature_enabled)
  amdgpu_dm_set_psr_caps(link);

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c

index fb51ec4f8d31..440fc0869a34 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
@@ -29,7 +29,6 @@
  #include "dc.h"
  #include "amdgpu.h"
  #include "amdgpu_dm_psr.h"
-#include "amdgpu_dm_replay.h"
  #include "amdgpu_dm_crtc.h"
  #include "amdgpu_dm_plane.h"
  #include "amdgpu_dm_trace.h"
@@ -124,12 +123,7 @@ static void vblank_control_worker(struct 
work_struct *work)

   * fill_dc_dirty_rects().
   */
  if (vblank_work->stream && vblank_work->stream->link) {
-   /*
-    * Prioritize replay, instead of psr
-    */
-   if 
(vblank_work->stream->link->replay_settings.replay_feature_enabled)

-   amdgpu_dm_replay_enable(vblank_work->stream, false);
-   else if (vblank_work->enable) {
+   if (vblank_work->enable) {
  if 

Re: [PATCH v2] Revert "drm/amd/display: Enable Replay for static screen use cases"

2023-10-03 Thread Lakha, Bhawanpreet
[AMD Official Use Only - General]

Any reason for reverting this instead of looking into 
"amdgpu_dm_setup_replay()" and "replay_feature_enabled" to see why reply is 
being enabled?

Bhawan

From: LIPSKI, IVAN 
Sent: October 2, 2023 1:47 PM
To: amd-gfx@lists.freedesktop.org 
Cc: Siqueira, Rodrigo ; Mahfooz, Hamza 
; Wentland, Harry ; Lakha, 
Bhawanpreet ; Deucher, Alexander 
; Li, Sun peng (Leo) ; Chung, 
ChiaHsuan (Tom) ; LIPSKI, IVAN ; 
LIPSKI, IVAN 
Subject: [PATCH v2] Revert "drm/amd/display: Enable Replay for static screen 
use cases"

From: Ivan Lipski 

This reverts commit a92da5bc33ea99a861f6c422192af6072c145d2d.

V2: Reword commit message

[WHY]
This commit caused regression in which eDP's with PSR support,
but no Replay support (Sink support <= 0x03), failed enabling PSR
and all IGT amd_psr tests.

[HOW]
Reverted the patch.

Signed-off-by: Ivan Lipski 
---
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 ---
 .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c|  9 +---
 drivers/gpu/drm/amd/include/amd_shared.h  |  2 --
 3 files changed, 1 insertion(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 32156609fbcf..f69b2e9ecd98 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -66,7 +66,6 @@
 #include "amdgpu_dm_debugfs.h"
 #endif
 #include "amdgpu_dm_psr.h"
-#include "amdgpu_dm_replay.h"

 #include "ivsrcid/ivsrcid_vislands30.h"

@@ -4423,7 +4422,6 @@ static int amdgpu_dm_initialize_drm_device(struct 
amdgpu_device *adev)
 enum dc_connection_type new_connection_type = dc_connection_none;
 const struct dc_plane_cap *plane;
 bool psr_feature_enabled = false;
-   bool replay_feature_enabled = false;
 int max_overlay = dm->dc->caps.max_slave_planes;

 dm->display_indexes_num = dm->dc->caps.max_streams;
@@ -4535,21 +4533,6 @@ static int amdgpu_dm_initialize_drm_device(struct 
amdgpu_device *adev)
 }
 }

-   if (!(amdgpu_dc_debug_mask & DC_DISABLE_REPLAY)) {
-   switch (amdgpu_ip_version(adev, DCE_HWIP, 0)) {
-   case IP_VERSION(3, 1, 4):
-   case IP_VERSION(3, 1, 5):
-   case IP_VERSION(3, 1, 6):
-   case IP_VERSION(3, 2, 0):
-   case IP_VERSION(3, 2, 1):
-   case IP_VERSION(3, 5, 0):
-   replay_feature_enabled = true;
-   break;
-   default:
-   replay_feature_enabled = amdgpu_dc_feature_mask & 
DC_REPLAY_MASK;
-   break;
-   }
-   }
 /* loops over all connectors on the board */
 for (i = 0; i < link_cnt; i++) {
 struct dc_link *link = NULL;
@@ -4618,12 +4601,6 @@ static int amdgpu_dm_initialize_drm_device(struct 
amdgpu_device *adev)
 
amdgpu_dm_update_connector_after_detect(aconnector);
 setup_backlight_device(dm, aconnector);

-   /*
-* Disable psr if replay can be enabled
-*/
-   if (replay_feature_enabled && 
amdgpu_dm_setup_replay(link, aconnector))
-   psr_feature_enabled = false;
-
 if (psr_feature_enabled)
 amdgpu_dm_set_psr_caps(link);

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
index fb51ec4f8d31..440fc0869a34 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
@@ -29,7 +29,6 @@
 #include "dc.h"
 #include "amdgpu.h"
 #include "amdgpu_dm_psr.h"
-#include "amdgpu_dm_replay.h"
 #include "amdgpu_dm_crtc.h"
 #include "amdgpu_dm_plane.h"
 #include "amdgpu_dm_trace.h"
@@ -124,12 +123,7 @@ static void vblank_control_worker(struct work_struct *work)
  * fill_dc_dirty_rects().
  */
 if (vblank_work->stream && vblank_work->stream->link) {
-   /*
-* Prioritize replay, instead of psr
-*/
-   if 
(vblank_work->stream->link->replay_settings.replay_feature_enabled)
-   amdgpu_dm_replay_enable(vblank_work->stream, false);
-   else if (vblank_work->enable) {
+   if (vblank_work->enable) {
 if 
(vblank_work->stream->link->psr_settings.psr_version < DC_PSR_VERSION_SU_1 &&
 
vblank_work->stream->link->psr_settings.psr_allow_active)
 amdgpu_dm_psr_disable(vblank_work->stream);
@@ -138,7 +132,6 @@ static void vblank_control_worker(struct work_struct *work)