[AMD Public Use]

Reviewed-by: Roman Li <[email protected]>

-----Original Message-----
From: amd-gfx <[email protected]> On Behalf Of Nicholas 
Kazlauskas
Sent: Monday, June 29, 2020 4:49 PM
To: [email protected]
Cc: Lakha, Bhawanpreet <[email protected]>; Siqueira, Rodrigo 
<[email protected]>; Wu, Hersen <[email protected]>; Kazlauskas, 
Nicholas <[email protected]>
Subject: [PATCH] drm/amd/display: Only revalidate bandwidth on medium and fast 
updates

[Why]
Changes that are fast don't require updating DLG parameters making this call 
unnecessary. Considering this is an expensive call it should not be done on 
every flip.

DML touches clocks, p-state support, DLG params and a few other DC internal 
flags and these aren't expected during fast. A hang has been reported with this 
change when called on every flip which suggests that modifying these fields is 
not recommended behavior on fast updates.

[How]
Guard the validation to only happen if update type isn't FAST.

Bug: 
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.freedesktop.org%2Fdrm%2Famd%2F-%2Fissues%2F1191&amp;data=02%7C01%7Croman.li%40amd.com%7Cc98c2d3c363643a4fef208d81c6dfa68%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637290606647861029&amp;sdata=%2B3rZlvLgef1c2FOYTKx37U%2Fbr%2BWOxI9GXVI2K7HjH3E%3D&amp;reserved=0
Fixes: e1995f0909e3 ("drm/amd/display: Revalidate bandwidth before commiting DC 
updates")
Cc: Hersen Wu <[email protected]>
Cc: Bhawanpreet Lakha <[email protected]>
Cc: Rodrigo Siqueira <[email protected]>
Signed-off-by: Nicholas Kazlauskas <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/core/dc.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c 
b/drivers/gpu/drm/amd/display/dc/core/dc.c
index 67402d75e67e..942ceb0f6383 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -2607,10 +2607,12 @@ void dc_commit_updates_for_stream(struct dc *dc,
 
        copy_stream_update_to_stream(dc, context, stream, stream_update);
 
-       if (!dc->res_pool->funcs->validate_bandwidth(dc, context, false)) {
-               DC_ERROR("Mode validation failed for stream update!\n");
-               dc_release_state(context);
-               return;
+       if (update_type > UPDATE_TYPE_FAST) {
+               if (!dc->res_pool->funcs->validate_bandwidth(dc, context, 
false)) {
+                       DC_ERROR("Mode validation failed for stream update!\n");
+                       dc_release_state(context);
+                       return;
+               }
        }
 
        commit_planes_for_stream(
--
2.25.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=02%7C01%7Croman.li%40amd.com%7Cc98c2d3c363643a4fef208d81c6dfa68%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637290606647861029&amp;sdata=EPY6DwDOG88a944QieZj%2F8NSeBJTot2z1WLghTM2Iuw%3D&amp;reserved=0
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to