diff options
| author | Dave Airlie <[email protected]> | 2024-05-23 12:49:41 +1000 | 
|---|---|---|
| committer | Dave Airlie <[email protected]> | 2024-05-23 12:49:44 +1000 | 
| commit | c99eb9cc2a5249b07abf1dd70bd0285f8a8cdc71 (patch) | |
| tree | 30239f8545e983b1096c14690bf45b0cd63465f2 /drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | |
| parent | 3e3eb55e2b5fec69d5128896061149e0ba6b39c8 (diff) | |
| parent | e64e8f7c178e5228e0b2dbb504b9dc75953a319f (diff) | |
Merge tag 'amd-drm-fixes-6.10-2024-05-22' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
amd-drm-fixes-6.10-2024-05-22:
amdgpu:
- Handle vbios table integrated info v2.3
amdkfd:
- Handle duplicate BOs in reserve_bo_and_cond_vms
- Handle memory limitations on small APUs
Signed-off-by: Dave Airlie <[email protected]>
From: Alex Deucher <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c index a6d64bdbbb14..108003bdf1e9 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c @@ -212,6 +212,7 @@ union igp_info {  	struct atom_integrated_system_info_v1_11 v11;  	struct atom_integrated_system_info_v1_12 v12;  	struct atom_integrated_system_info_v2_1 v21; +	struct atom_integrated_system_info_v2_3 v23;  };  union umc_info { @@ -360,6 +361,20 @@ amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev,  					if (vram_type)  						*vram_type = convert_atom_mem_type_to_vram_type(adev, mem_type);  					break; +				case 3: +					mem_channel_number = igp_info->v23.umachannelnumber; +					if (!mem_channel_number) +						mem_channel_number = 1; +					mem_type = igp_info->v23.memorytype; +					if (mem_type == LpDdr5MemType) +						mem_channel_width = 32; +					else +						mem_channel_width = 64; +					if (vram_width) +						*vram_width = mem_channel_number * mem_channel_width; +					if (vram_type) +						*vram_type = convert_atom_mem_type_to_vram_type(adev, mem_type); +					break;  				default:  					return -EINVAL;  				}  |