diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c | 20 | 
1 files changed, 20 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c index bd8acb55f76f..0db6d1bd2002 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c @@ -1382,6 +1382,26 @@ int amdgpu_ras_eeprom_init(struct amdgpu_ras_eeprom_control *control)  	}  	control->ras_fri = RAS_OFFSET_TO_INDEX(control, hdr->first_rec_offset); +	return res < 0 ? res : 0; +} + +int amdgpu_ras_eeprom_check(struct amdgpu_ras_eeprom_control *control) +{ +	struct amdgpu_device *adev = to_amdgpu_device(control); +	struct amdgpu_ras_eeprom_table_header *hdr = &control->tbl_hdr; +	struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); +	int res; + +	if (!__is_ras_eeprom_supported(adev)) +		return 0; + +	/* Verify i2c adapter is initialized */ +	if (!adev->pm.ras_eeprom_i2c_bus || !adev->pm.ras_eeprom_i2c_bus->algo) +		return -ENOENT; + +	if (!__get_eeprom_i2c_addr(adev, control)) +		return -EINVAL; +  	if (hdr->header == RAS_TABLE_HDR_VAL) {  		DRM_DEBUG_DRIVER("Found existing EEPROM table with %d records",  				 control->ras_num_recs); | 
