Jelajahi Sumber

drm/amdgpu/smu: skip SMC ucode loading on SR-IOV capable boards (v2)

VBIOS does this for us in asic_init.

v2: update iceland as well

Reviewed-by: Monk Liu <monk.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Alex Deucher 9 tahun lalu
induk
melakukan
b87c032b4b

+ 6 - 0
drivers/gpu/drm/amd/amdgpu/fiji_smc.c

@@ -272,6 +272,12 @@ static int fiji_smu_upload_firmware_image(struct amdgpu_device *adev)
 	if (!adev->pm.fw)
 	if (!adev->pm.fw)
 		return -EINVAL;
 		return -EINVAL;
 
 
+	/* Skip SMC ucode loading on SR-IOV capable boards.
+	 * vbios does this for us in asic_init in that case.
+	 */
+	if (adev->virtualization.supports_sr_iov)
+		return 0;
+
 	hdr = (const struct smc_firmware_header_v1_0 *)adev->pm.fw->data;
 	hdr = (const struct smc_firmware_header_v1_0 *)adev->pm.fw->data;
 	amdgpu_ucode_print_smc_hdr(&hdr->header);
 	amdgpu_ucode_print_smc_hdr(&hdr->header);
 
 

+ 6 - 0
drivers/gpu/drm/amd/amdgpu/iceland_smc.c

@@ -279,6 +279,12 @@ static int iceland_smu_upload_firmware_image(struct amdgpu_device *adev)
 	if (!adev->pm.fw)
 	if (!adev->pm.fw)
 		return -EINVAL;
 		return -EINVAL;
 
 
+	/* Skip SMC ucode loading on SR-IOV capable boards.
+	 * vbios does this for us in asic_init in that case.
+	 */
+	if (adev->virtualization.supports_sr_iov)
+		return 0;
+
 	hdr = (const struct smc_firmware_header_v1_0 *)adev->pm.fw->data;
 	hdr = (const struct smc_firmware_header_v1_0 *)adev->pm.fw->data;
 	amdgpu_ucode_print_smc_hdr(&hdr->header);
 	amdgpu_ucode_print_smc_hdr(&hdr->header);
 
 

+ 6 - 0
drivers/gpu/drm/amd/amdgpu/tonga_smc.c

@@ -272,6 +272,12 @@ static int tonga_smu_upload_firmware_image(struct amdgpu_device *adev)
 	if (!adev->pm.fw)
 	if (!adev->pm.fw)
 		return -EINVAL;
 		return -EINVAL;
 
 
+	/* Skip SMC ucode loading on SR-IOV capable boards.
+	 * vbios does this for us in asic_init in that case.
+	 */
+	if (adev->virtualization.supports_sr_iov)
+		return 0;
+
 	hdr = (const struct smc_firmware_header_v1_0 *)adev->pm.fw->data;
 	hdr = (const struct smc_firmware_header_v1_0 *)adev->pm.fw->data;
 	amdgpu_ucode_print_smc_hdr(&hdr->header);
 	amdgpu_ucode_print_smc_hdr(&hdr->header);