Merge tag 'dt-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-2.6-microblaze.git] / drivers / gpu / drm / amd / amdgpu / psp_v3_1.c
index 908664a..1ed357c 100644 (file)
@@ -102,10 +102,8 @@ static int psp_v3_1_bootloader_load_sysdrv(struct psp_context *psp)
        if (ret)
                return ret;
 
-       memset(psp->fw_pri_buf, 0, PSP_1_MEG);
-
        /* Copy PSP System Driver binary to memory */
-       memcpy(psp->fw_pri_buf, 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,
@@ -143,10 +141,8 @@ static int psp_v3_1_bootloader_load_sos(struct psp_context *psp)
        if (ret)
                return ret;
 
-       memset(psp->fw_pri_buf, 0, PSP_1_MEG);
-
        /* Copy Secure OS binary to PSP memory */
-       memcpy(psp->fw_pri_buf, 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,
@@ -231,6 +227,7 @@ static int psp_v3_1_ring_create(struct psp_context *psp,
        psp_v3_1_reroute_ih(psp);
 
        if (amdgpu_sriov_vf(adev)) {
+               ring->ring_wptr = 0;
                ret = psp_v3_1_ring_stop(psp, ring_type);
                if (ret) {
                        DRM_ERROR("psp_v3_1_ring_stop_sriov failed!\n");