瀏覽代碼

drm/amdgpu: add a ucode size member into firmware info

This will be used for newer asics.

Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Huang Rui 8 年之前
父節點
當前提交
daf42c314d
共有 2 個文件被更改,包括 7 次插入2 次删除
  1. 5 2
      drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c
  2. 2 0
      drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h

+ 5 - 2
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c

@@ -232,9 +232,12 @@ static int amdgpu_ucode_init_single_fw(struct amdgpu_firmware_info *ucode,
 		return 0;
 
 	header = (const struct common_firmware_header *)ucode->fw->data;
+
+	ucode->ucode_size = le32_to_cpu(header->ucode_size_bytes);
+
 	memcpy(ucode->kaddr, (void *)((uint8_t *)ucode->fw->data +
-		le32_to_cpu(header->ucode_array_offset_bytes)),
-		le32_to_cpu(header->ucode_size_bytes));
+	       le32_to_cpu(header->ucode_array_offset_bytes)),
+	       ucode->ucode_size);
 
 	return 0;
 }

+ 2 - 0
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h

@@ -161,6 +161,8 @@ struct amdgpu_firmware_info {
 	uint64_t mc_addr;
 	/* kernel linear address */
 	void *kaddr;
+	/* ucode_size_bytes */
+	uint32_t ucode_size;
 };
 
 void amdgpu_ucode_print_mc_hdr(const struct common_firmware_header *hdr);