Commit e2a6a4e6 authored by Hawking Zhang's avatar Hawking Zhang Committed by Alex Deucher
Browse files

drm/amdgpu: Initialize vram_info for gmc v12_1



Initialize vram_info for gmc v12_1

Signed-off-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: default avatarLikun Gao <Likun.Gao@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent bb418f99
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -781,12 +781,15 @@ static int gmc_v12_0_sw_init(struct amdgpu_ip_block *ip_block)

	spin_lock_init(&adev->gmc.invalidate_lock);

	if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(12, 1, 0)) {
		gmc_v12_1_init_vram_info(adev);
	} else {
		r = amdgpu_atomfirmware_get_vram_info(adev,
			      &vram_width, &vram_type, &vram_vendor);
		adev->gmc.vram_width = vram_width;

		adev->gmc.vram_type = vram_type;
		adev->gmc.vram_vendor = vram_vendor;
	}

	switch (amdgpu_ip_version(adev, GC_HWIP, 0)) {
	case IP_VERSION(12, 0, 0):
+7 −0
Original line number Diff line number Diff line
@@ -597,3 +597,10 @@ void gmc_v12_1_set_irq_funcs(struct amdgpu_device *adev)
	adev->gmc.vm_fault.num_types = 1;
	adev->gmc.vm_fault.funcs = &gmc_v12_1_irq_funcs;
}

void gmc_v12_1_init_vram_info(struct amdgpu_device *adev)
{
	/* TODO: query vram_info from ip discovery binary */
	adev->gmc.vram_type = AMDGPU_VRAM_TYPE_HBM4;
	adev->gmc.vram_width = 384 * 64;
}
+1 −1
Original line number Diff line number Diff line
@@ -26,5 +26,5 @@

void gmc_v12_1_set_gmc_funcs(struct amdgpu_device *adev);
void gmc_v12_1_set_irq_funcs(struct amdgpu_device *adev);

void gmc_v12_1_init_vram_info(struct amdgpu_device *adev);
#endif