Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc108ec7 authored by Trigger Huang's avatar Trigger Huang Committed by Alex Deucher
Browse files

drm/amdgpu: Fix firmware UCODE_ID_STORAGE issue (v2)



In Tonga's virtualization environment, for firmware UCODE_ID_STORAGE,
there is no actual firmware data, but we still need alloc a BO and
tell the BO's mc address to HW, or world switch will hang on VFs.

v2: fix coding style (Alex)

Signed-off-by: default avatarTrigger Huang <trigger.huang@amd.com>
Reviewed-by: default avatarXiangliang Yu <Xiangliang.Yu@amd.com>
Reviewed-by: default avatarMonk Liu <monk.liu@amd.com>
Acked-by: default avatarHuang Rui <ray.huang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent cbcbea98
Loading
Loading
Loading
Loading
+7 −3
Original line number Original line Diff line number Diff line
@@ -382,10 +382,14 @@ int amdgpu_ucode_init_bo(struct amdgpu_device *adev)
	 * if SMU loaded firmware, it needn't add SMC, UVD, and VCE
	 * if SMU loaded firmware, it needn't add SMC, UVD, and VCE
	 * ucode info here
	 * ucode info here
	 */
	 */
	if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP)
	if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) {
		adev->firmware.max_ucodes = AMDGPU_UCODE_ID_MAXIMUM - 4;
		if (amdgpu_sriov_vf(adev))
			adev->firmware.max_ucodes = AMDGPU_UCODE_ID_MAXIMUM - 3;
		else
		else
			adev->firmware.max_ucodes = AMDGPU_UCODE_ID_MAXIMUM - 4;
	} else {
		adev->firmware.max_ucodes = AMDGPU_UCODE_ID_MAXIMUM;
		adev->firmware.max_ucodes = AMDGPU_UCODE_ID_MAXIMUM;
	}


	for (i = 0; i < adev->firmware.max_ucodes; i++) {
	for (i = 0; i < adev->firmware.max_ucodes; i++) {
		ucode = &adev->firmware.ucode[i];
		ucode = &adev->firmware.ucode[i];