From: Hawking Zhang <[email protected]>

Navi10 will have toc built-in sos binary so that using header.ucode_size_bytes
minus sos_size_bytes actually is not sys_bin_size.

Using sos_offset_bytes works for both vega20 (psp_firmware_header_v1_0) and
navi10 (psp_firmware_header_v1_1)

Signed-off-by: Hawking Zhang <[email protected]>
Acked-by: Alex Deucher <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c 
b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
index 432b81baf5fe..4d6f07f4c91a 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
@@ -90,8 +90,7 @@ static int psp_v11_0_init_microcode(struct psp_context *psp)
                adev->psp.sos_fw_version = 
le32_to_cpu(sos_hdr->header.ucode_version);
                adev->psp.sos_feature_version = 
le32_to_cpu(sos_hdr->ucode_feature_version);
                adev->psp.sos_bin_size = le32_to_cpu(sos_hdr->sos_size_bytes);
-               adev->psp.sys_bin_size = 
le32_to_cpu(sos_hdr->header.ucode_size_bytes) -
-                               le32_to_cpu(sos_hdr->sos_size_bytes);
+               adev->psp.sys_bin_size = le32_to_cpu(sos_hdr->sos_offset_bytes);
                adev->psp.sys_start_addr = (uint8_t *)sos_hdr +
                                
le32_to_cpu(sos_hdr->header.ucode_array_offset_bytes);
                adev->psp.sos_start_addr = (uint8_t *)adev->psp.sys_start_addr +
-- 
2.20.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to