diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 19 | 
1 files changed, 13 insertions, 6 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c index ac6fe0ae4609..0b7f4c4d58e5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c @@ -272,6 +272,7 @@ static int convert_atom_mem_type_to_vram_type(struct amdgpu_device *adev,  			break;  		case ATOM_DGPU_VRAM_TYPE_HBM2:  		case ATOM_DGPU_VRAM_TYPE_HBM2E: +		case ATOM_DGPU_VRAM_TYPE_HBM3:  			vram_type = AMDGPU_VRAM_TYPE_HBM;  			break;  		case ATOM_DGPU_VRAM_TYPE_GDDR6: @@ -326,10 +327,13 @@ amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev,  					mem_channel_number = igp_info->v11.umachannelnumber;  					if (!mem_channel_number)  						mem_channel_number = 1; -					/* channel width is 64 */ -					if (vram_width) -						*vram_width = mem_channel_number * 64;  					mem_type = igp_info->v11.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; @@ -344,10 +348,13 @@ amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev,  					mem_channel_number = igp_info->v21.umachannelnumber;  					if (!mem_channel_number)  						mem_channel_number = 1; -					/* channel width is 64 */ -					if (vram_width) -						*vram_width = mem_channel_number * 64;  					mem_type = igp_info->v21.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; |