From: Eric Yang <eric.ya...@amd.com>

[Why]
Previous implementation we may have residual chroma address offset
if transition from wa enable -> wa disable.

[How]
Clear address offset cache when viewport updates. Also update the
vp size check condition to account for rotation angle

Signed-off-by: Eric Yang <eric.ya...@amd.com>
Reviewed-by: Tony Cheng <tony.ch...@amd.com>
Acked-by: Harry Wentland <harry.wentl...@amd.com>
Acked-by: Rodrigo Siqueira <rodrigo.sique...@amd.com>
---
 .../gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c    | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c 
b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c
index 216ae170bc50..4d2564f79395 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c
@@ -251,10 +251,20 @@ static void hubp21_apply_PLAT_54186_wa(
                        ROTATION_ANGLE, &rotation_angle,
                        H_MIRROR_EN, &h_mirror_en);
 
-       /* apply wa only for NV12 surface with scatter gather enabled with view 
port > 512 */
+       /* reset persistent cached data */
+       hubp21->PLAT_54186_wa_chroma_addr_offset = 0;
+       /* apply wa only for NV12 surface with scatter gather enabled with 
viewport > 512 along
+        * the vertical direction*/
        if (address->type != PLN_ADDR_TYPE_VIDEO_PROGRESSIVE ||
-                       address->video_progressive.luma_addr.high_part == 0xf4
-                       || viewport_c_height <= 512)
+                       address->video_progressive.luma_addr.high_part == 0xf4)
+               return;
+
+       if ((rotation_angle == 0 || rotation_angle == 180)
+                       && viewport_c_height <= 512)
+               return;
+
+       if ((rotation_angle == 90 || rotation_angle == 270)
+                               && viewport_c_width <= 512)
                return;
 
        switch (rotation_angle) {
-- 
2.24.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to