diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | 14 | 
1 files changed, 10 insertions, 4 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c index a6a491569022..a0d10c9c0405 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c @@ -200,15 +200,21 @@ void amdgpu_sdma_destroy_inst_ctx(struct amdgpu_device *adev,  }  int amdgpu_sdma_init_microcode(struct amdgpu_device *adev, -			       char *fw_name, u32 instance, -			       bool duplicate) +			       u32 instance, bool duplicate)  {  	struct amdgpu_firmware_info *info = NULL;  	const struct common_firmware_header *header = NULL; -	int err = 0, i; +	int err, i;  	const struct sdma_firmware_header_v2_0 *sdma_hdr;  	uint16_t version_major; - +	char ucode_prefix[30]; +	char fw_name[40]; + +	amdgpu_ucode_ip_version_decode(adev, SDMA0_HWIP, ucode_prefix, sizeof(ucode_prefix)); +	if (instance == 0) +		snprintf(fw_name, sizeof(fw_name), "amdgpu/%s.bin", ucode_prefix); +	else +		snprintf(fw_name, sizeof(fw_name), "amdgpu/%s%d.bin", ucode_prefix, instance);  	err = amdgpu_ucode_request(adev, &adev->sdma.instance[instance].fw, fw_name);  	if (err)  		goto out; | 
