int res = -EFAULT;
size_t data_len;
- /* pmfw manages eeprom data by itself */
- if (amdgpu_ras_smu_eeprom_supported(adev))
- return 0;
-
mutex_lock(&control->ras_tbl_mutex);
/* We want *pos - data_len > 0, which means there's
struct amdgpu_ras_eeprom_control *control;
int res;
- if (!__is_ras_eeprom_supported(adev) || !ras ||
- amdgpu_ras_smu_eeprom_supported(adev))
+ if (!__is_ras_eeprom_supported(adev) || !ras)
return;
control = &ras->eeprom_control;
if (!control->is_eeprom_valid)
return;
}
-static const struct ras_smu_drv *amdgpu_ras_get_smu_ras_drv(struct amdgpu_device *adev)
-{
- struct amdgpu_ras *ras = amdgpu_ras_get_context(adev);
-
- if (!ras)
- return NULL;
-
- return ras->ras_smu_drv;
-}
-
-static uint64_t amdgpu_ras_smu_get_feature_flags(struct amdgpu_device *adev)
-{
- const struct ras_smu_drv *ras_smu_drv = amdgpu_ras_get_smu_ras_drv(adev);
- uint64_t flags = 0ULL;
-
- if (!ras_smu_drv)
- goto out;
-
- if (ras_smu_drv->ras_smu_feature_flags)
- ras_smu_drv->ras_smu_feature_flags(adev, &flags);
-
-out:
- return flags;
-}
-
-bool amdgpu_ras_smu_eeprom_supported(struct amdgpu_device *adev)
-{
- const struct ras_smu_drv *smu_ras_drv = amdgpu_ras_get_smu_ras_drv(adev);
- uint64_t flags = 0ULL;
-
- if (!__is_ras_eeprom_supported(adev) || !smu_ras_drv)
- return false;
-
- if (!smu_ras_drv->smu_eeprom_funcs)
- return false;
-
- flags = amdgpu_ras_smu_get_feature_flags(adev);
-
- return !!(flags & RAS_SMU_FEATURE_BIT__RAS_EEPROM);
-}
-
void amdgpu_ras_check_bad_page_status(struct amdgpu_device *adev)
{
struct amdgpu_ras *ras = amdgpu_ras_get_context(adev);
void amdgpu_ras_eeprom_check_and_recover(struct amdgpu_device *adev);
-bool amdgpu_ras_smu_eeprom_supported(struct amdgpu_device *adev);
-
int amdgpu_ras_eeprom_read_idx(struct amdgpu_ras_eeprom_control *control,
struct eeprom_table_record *record, u32 rec_idx,
const u32 num);
if ((amdgpu_bad_page_threshold != 0) &&
err_data->err_addr_cnt) {
amdgpu_ras_add_bad_pages(adev, err_data->err_addr,
- err_data->err_addr_cnt, amdgpu_ras_smu_eeprom_supported(adev));
+ err_data->err_addr_cnt, false);
amdgpu_ras_save_bad_pages(adev, &err_count);
amdgpu_dpm_send_hbm_bad_pages_num(adev,