]> Git Repo - J-linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
Merge tag 'kbuild-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy...
[J-linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_ucode.c
index b14127429f3036e060afde459d8627734afd5a60..0867fd9e15ba5e3115f4be616604147eb0488884 100644 (file)
@@ -556,6 +556,8 @@ amdgpu_ucode_get_load_type(struct amdgpu_device *adev, int load_type)
        default:
                if (!load_type)
                        return AMDGPU_FW_LOAD_DIRECT;
+               else if (load_type == 3)
+                       return AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO;
                else
                        return AMDGPU_FW_LOAD_PSP;
        }
@@ -678,6 +680,8 @@ const char *amdgpu_ucode_name(enum AMDGPU_UCODE_ID ucode_id)
                return "UMSCH_MM_DATA";
        case AMDGPU_UCODE_ID_UMSCH_MM_CMD_BUFFER:
                return "UMSCH_MM_CMD_BUFFER";
+       case AMDGPU_UCODE_ID_JPEG_RAM:
+               return "JPEG";
        default:
                return "UNKNOWN UCODE";
        }
@@ -1060,9 +1064,11 @@ static int amdgpu_ucode_patch_jt(struct amdgpu_firmware_info *ucode,
 
 int amdgpu_ucode_create_bo(struct amdgpu_device *adev)
 {
-       if (adev->firmware.load_type != AMDGPU_FW_LOAD_DIRECT) {
+       if ((adev->firmware.load_type != AMDGPU_FW_LOAD_DIRECT) &&
+           (adev->firmware.load_type != AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO)) {
                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) || adev->debug_use_vram_fw_buf) ?
+                       AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT,
                        &adev->firmware.fw_buf,
                        &adev->firmware.fw_buf_mc,
                        &adev->firmware.fw_buf_ptr);
@@ -1397,9 +1403,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.030572 seconds and 4 git commands to generate.