]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg...
[linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_ucode.c
index b14127429f3036e060afde459d8627734afd5a60..d334e42fe0ebe648e3efafb3970f650b615f716d 100644 (file)
@@ -1062,7 +1062,8 @@ int amdgpu_ucode_create_bo(struct amdgpu_device *adev)
 {
        if (adev->firmware.load_type != AMDGPU_FW_LOAD_DIRECT) {
                amdgpu_bo_create_kernel(adev, adev->firmware.fw_size, PAGE_SIZE,
-                       amdgpu_sriov_vf(adev) ? AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT,
+                       (amdgpu_sriov_vf(adev) || fw_bo_location == 1) ?
+                       AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT,
                        &adev->firmware.fw_buf,
                        &adev->firmware.fw_buf_mc,
                        &adev->firmware.fw_buf_ptr);
@@ -1397,9 +1398,13 @@ int amdgpu_ucode_request(struct amdgpu_device *adev, const struct firmware **fw,
 
        if (err)
                return -ENODEV;
+
        err = amdgpu_ucode_validate(*fw);
-       if (err)
+       if (err) {
                dev_dbg(adev->dev, "\"%s\" failed to validate\n", fw_name);
+               release_firmware(*fw);
+               *fw = NULL;
+       }
 
        return err;
 }
This page took 0.036013 seconds and 4 git commands to generate.