Merge tag 'drm-misc-next-fixes-2021-09-09' of git://anongit.freedesktop.org/drm/drm...
[linux-2.6-microblaze.git] / drivers / gpu / drm / amd / amdgpu / psp_v12_0.c
index 618e5b6..cc64940 100644 (file)
@@ -67,7 +67,7 @@ static int psp_v12_0_init_microcode(struct psp_context *psp)
 
        err = psp_init_asd_microcode(psp, chip_name);
        if (err)
-               goto out;
+               return err;
 
        snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name);
        err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev);
@@ -80,35 +80,34 @@ static int psp_v12_0_init_microcode(struct psp_context *psp)
        } else {
                err = amdgpu_ucode_validate(adev->psp.ta_fw);
                if (err)
-                       goto out2;
+                       goto out;
 
                ta_hdr = (const struct ta_firmware_header_v1_0 *)
                                 adev->psp.ta_fw->data;
-               adev->psp.ta_hdcp_ucode_version =
-                       le32_to_cpu(ta_hdr->ta_hdcp_ucode_version);
-               adev->psp.ta_hdcp_ucode_size =
-                       le32_to_cpu(ta_hdr->ta_hdcp_size_bytes);
-               adev->psp.ta_hdcp_start_addr =
+               adev->psp.hdcp.feature_version =
+                       le32_to_cpu(ta_hdr->hdcp.fw_version);
+               adev->psp.hdcp.size_bytes =
+                       le32_to_cpu(ta_hdr->hdcp.size_bytes);
+               adev->psp.hdcp.start_addr =
                        (uint8_t *)ta_hdr +
                        le32_to_cpu(ta_hdr->header.ucode_array_offset_bytes);
 
                adev->psp.ta_fw_version = le32_to_cpu(ta_hdr->header.ucode_version);
 
-               adev->psp.ta_dtm_ucode_version =
-                       le32_to_cpu(ta_hdr->ta_dtm_ucode_version);
-               adev->psp.ta_dtm_ucode_size =
-                       le32_to_cpu(ta_hdr->ta_dtm_size_bytes);
-               adev->psp.ta_dtm_start_addr =
-                       (uint8_t *)adev->psp.ta_hdcp_start_addr +
-                       le32_to_cpu(ta_hdr->ta_dtm_offset_bytes);
+               adev->psp.dtm.feature_version =
+                       le32_to_cpu(ta_hdr->dtm.fw_version);
+               adev->psp.dtm.size_bytes =
+                       le32_to_cpu(ta_hdr->dtm.size_bytes);
+               adev->psp.dtm.start_addr =
+                       (uint8_t *)adev->psp.hdcp.start_addr +
+                       le32_to_cpu(ta_hdr->dtm.offset_bytes);
        }
 
        return 0;
 
-out2:
+out:
        release_firmware(adev->psp.ta_fw);
        adev->psp.ta_fw = NULL;
-out:
        if (err) {
                dev_err(adev->dev,
                        "psp v12.0: Failed to load firmware \"%s\"\n",
@@ -139,7 +138,7 @@ static int psp_v12_0_bootloader_load_sysdrv(struct psp_context *psp)
                return ret;
 
        /* Copy PSP System Driver binary to memory */
-       psp_copy_fw(psp, psp->sys_start_addr, psp->sys_bin_size);
+       psp_copy_fw(psp, psp->sys.start_addr, psp->sys.size_bytes);
 
        /* Provide the sys driver to bootloader */
        WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_36,
@@ -178,7 +177,7 @@ static int psp_v12_0_bootloader_load_sos(struct psp_context *psp)
                return ret;
 
        /* Copy Secure OS binary to PSP memory */
-       psp_copy_fw(psp, psp->sos_start_addr, psp->sos_bin_size);
+       psp_copy_fw(psp, psp->sos.start_addr, psp->sos.size_bytes);
 
        /* Provide the PSP secure OS to bootloader */
        WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_36,