The KFDTopologyTest.BasicTest will failed if skip smc, sdma, sos, ta
and asd fw in SRIOV for vega10, so adjust above fw and skip load them
in SRIOV only for navi12.
v2: remove unnecessary asic type check.
Signed-off-by: Stanley.Yang <Stanley.Yang@amd.com>
Reviewed-by: Guchun Chen <guchun.chen@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
        struct amdgpu_firmware_info *info = NULL;
        const struct common_firmware_header *header = NULL;
 
-       if (amdgpu_sriov_vf(adev))
-               return 0;
-
        DRM_DEBUG("\n");
 
        switch (adev->asic_type) {
 
        const struct common_firmware_header *header = NULL;
        const struct sdma_firmware_header_v1_0 *hdr;
 
-       if (amdgpu_sriov_vf(adev))
+       if (amdgpu_sriov_vf(adev) && (adev->asic_type == CHIP_NAVI12))
                return 0;
 
        DRM_DEBUG("\n");
 
        struct amdgpu_firmware_info *info = NULL;
        const struct common_firmware_header *header = NULL;
 
-       if (amdgpu_sriov_vf(adev))
-               return 0;
-
        DRM_DEBUG("\n");
 
        switch (adev->asic_type) {
 
        int ret;
        struct cgs_firmware_info info = {0};
 
-       if (!amdgpu_sriov_vf((struct amdgpu_device *)hwmgr->adev)) {
-               ret = cgs_get_firmware_info(hwmgr->device,
-                                               CGS_UCODE_ID_SMU,
-                                               &info);
-               if (ret || !info.kptr)
-                       return -EINVAL;
-       }
+       ret = cgs_get_firmware_info(hwmgr->device,
+                                       CGS_UCODE_ID_SMU,
+                                       &info);
+       if (ret || !info.kptr)
+               return -EINVAL;
 
        priv = kzalloc(sizeof(struct vega10_smumgr), GFP_KERNEL);
 
 
        smu->smu_dpm.dpm_level = AMD_DPM_FORCED_LEVEL_AUTO;
        smu->smu_dpm.requested_dpm_level = AMD_DPM_FORCED_LEVEL_AUTO;
 
-       if (!amdgpu_sriov_vf(adev)) {
+       if (!amdgpu_sriov_vf(adev) || (adev->asic_type != CHIP_NAVI12)) {
                ret = smu_init_microcode(smu);
                if (ret) {
                        dev_err(adev->dev, "Failed to load smu firmware!\n");