Commit b441e9ac authored by Yang Wang's avatar Yang Wang Committed by Alex Deucher
Browse files

drm/amdgpu: refine vcn firmware loading



refine vcn firmware loading

Signed-off-by: default avatarYang Wang <kevinyang.wang@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 9817f061
Loading
Loading
Loading
Loading
+5 −9
Original line number Diff line number Diff line
@@ -94,18 +94,14 @@ static void amdgpu_vcn_idle_work_handler(struct work_struct *work);
int amdgpu_vcn_early_init(struct amdgpu_device *adev)
{
	char ucode_prefix[25];
	char fw_name[40];
	int r, i;

	for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
	amdgpu_ucode_ip_version_decode(adev, UVD_HWIP, ucode_prefix, sizeof(ucode_prefix));
		snprintf(fw_name, sizeof(fw_name), "amdgpu/%s.bin", ucode_prefix);
		if (amdgpu_ip_version(adev, UVD_HWIP, 0) ==  IP_VERSION(4, 0, 6) &&
			i == 1) {
			snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_%d.bin", ucode_prefix, i);
		}

		r = amdgpu_ucode_request(adev, &adev->vcn.fw[i], fw_name);
	for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
		if (i == 1 && amdgpu_ip_version(adev, UVD_HWIP, 0) ==  IP_VERSION(4, 0, 6))
			r = amdgpu_ucode_request(adev, &adev->vcn.fw[i], "amdgpu/%s_%d.bin", ucode_prefix, i);
		else
			r = amdgpu_ucode_request(adev, &adev->vcn.fw[i], "amdgpu/%s.bin", ucode_prefix);
		if (r) {
			amdgpu_ucode_release(&adev->vcn.fw[i]);
			return r;