diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 22 | 
1 files changed, 17 insertions, 5 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c index fdd52d86a4d7..29f767e026e4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c @@ -2022,11 +2022,6 @@ int amdgpu_atombios_init(struct amdgpu_device *adev)  	if (adev->is_atom_fw) {  		amdgpu_atomfirmware_scratch_regs_init(adev);  		amdgpu_atomfirmware_allocate_fb_scratch(adev); -		ret = amdgpu_atomfirmware_get_mem_train_info(adev); -		if (ret) { -			DRM_ERROR("Failed to get mem train fb location.\n"); -			return ret; -		}  	} else {  		amdgpu_atombios_scratch_regs_init(adev);  		amdgpu_atombios_allocate_fb_scratch(adev); @@ -2041,3 +2036,20 @@ int amdgpu_atombios_init(struct amdgpu_device *adev)  	return 0;  } +int amdgpu_atombios_get_data_table(struct amdgpu_device *adev, +				   uint32_t table, +				   uint16_t *size, +				   uint8_t *frev, +				   uint8_t *crev, +				   uint8_t **addr) +{ +	uint16_t data_start; + +	if (!amdgpu_atom_parse_data_header(adev->mode_info.atom_context, table, +					   size, frev, crev, &data_start)) +		return -EINVAL; + +	*addr = (uint8_t *)adev->mode_info.atom_context->bios + data_start; + +	return 0; +} | 
