drm/amd/display: Add PSP FW version mask.
authorYongqiang Sun <yongqiang.sun@amd.com>
Fri, 18 Oct 2019 01:44:50 +0000 (21:44 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 13 Nov 2019 20:29:42 +0000 (15:29 -0500)
[Why]
PSP version format is AB.CD.EF.GH, where CD and GH is the main version.
current psp version check for dmcub loading dmcu check 0x00110029, in
case of some psp version eg: 0x00110227 which main version should be
0x00110027, will result in unexpeceted dmcub loading dmcu FW.

[How]
Add psp version mask 0x00FF00FF for checking version.

Signed-off-by: Yongqiang Sun <yongqiang.sun@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Hersen Wu <hersenxs.wu@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c

index 3417100..3276944 100644 (file)
@@ -886,7 +886,7 @@ static void dcn21_dmcu_construct(
 
        if (!IS_FPGA_MAXIMUS_DC(ctx->dce_environment)) {
                psp_version = dm_read_reg(ctx, mmMP0_SMN_C2PMSG_58);
-               dmcu_dce->base.auto_load_dmcu = (psp_version > 0x00110029);
+               dmcu_dce->base.auto_load_dmcu = ((psp_version & 0x00FF00FF) > 0x00110029);
                dmcu_dce->base.psp_version = psp_version;
        }
 }