summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h70
1 files changed, 3 insertions, 67 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h
index a86ab65aa2f0..c53f911d5729 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h
@@ -31,7 +31,6 @@
#include "ta_ras_if.h"
#include "amdgpu_ras_eeprom.h"
#include "amdgpu_smuio.h"
-#include "amdgpu_aca.h"
struct amdgpu_iv_entry;
@@ -466,14 +465,6 @@ struct ras_query_context {
typedef int (*pasid_notify)(struct amdgpu_device *adev,
uint16_t pasid, void *data);
-struct ras_poison_msg {
- enum amdgpu_ras_block block;
- uint16_t pasid;
- uint32_t reset;
- pasid_notify pasid_fn;
- void *data;
-};
-
struct ras_err_pages {
uint32_t count;
uint64_t *pfn;
@@ -492,8 +483,6 @@ struct ras_ecc_err {
struct ras_ecc_log_info {
struct mutex lock;
struct radix_tree_root de_page_tree;
- uint64_t de_queried_count;
- uint64_t consumption_q_count;
};
struct ras_critical_region {
@@ -503,32 +492,6 @@ struct ras_critical_region {
uint64_t size;
};
-struct ras_eeprom_table_version {
- uint32_t minor : 16;
- uint32_t major : 16;
-};
-
-struct ras_eeprom_smu_funcs {
- int (*get_ras_table_version)(struct amdgpu_device *adev,
- uint32_t *table_version);
- int (*get_badpage_count)(struct amdgpu_device *adev, uint32_t *count, uint32_t timeout);
- int (*get_badpage_mca_addr)(struct amdgpu_device *adev, uint16_t index, uint64_t *mca_addr);
- int (*set_timestamp)(struct amdgpu_device *adev, uint64_t timestamp);
- int (*get_timestamp)(struct amdgpu_device *adev,
- uint16_t index, uint64_t *timestamp);
- int (*get_badpage_ipid)(struct amdgpu_device *adev, uint16_t index, uint64_t *ipid);
- int (*erase_ras_table)(struct amdgpu_device *adev, uint32_t *result);
-};
-
-enum ras_smu_feature_flags {
- RAS_SMU_FEATURE_BIT__RAS_EEPROM = BIT_ULL(0),
-};
-
-struct ras_smu_drv {
- const struct ras_eeprom_smu_funcs *smu_eeprom_funcs;
- void (*ras_smu_feature_flags)(struct amdgpu_device *adev, uint64_t *flags);
-};
-
struct amdgpu_ras {
void *ras_mgr;
/* ras infrastructure */
@@ -549,7 +512,6 @@ struct amdgpu_ras {
/* gpu recovery */
struct work_struct recovery_work;
atomic_t in_recovery;
- atomic_t rma_in_recovery;
struct amdgpu_device *adev;
/* error handler data */
struct ras_err_handler_data *eh_data;
@@ -581,22 +543,15 @@ struct amdgpu_ras {
/* Indicates smu whether need update bad channel info */
bool update_channel_flag;
/* Record status of smu mca debug mode */
- bool is_aca_debug_mode;
+ bool is_mca_debug_mode;
bool is_rma;
/* Record special requirements of gpu reset caller */
uint32_t gpu_reset_flags;
- struct task_struct *page_retirement_thread;
- wait_queue_head_t page_retirement_wq;
struct mutex page_retirement_lock;
- atomic_t page_retirement_req_cnt;
- atomic_t poison_creation_count;
- atomic_t poison_consumption_count;
struct mutex page_rsv_lock;
- DECLARE_KFIFO(poison_fifo, struct ras_poison_msg, 128);
struct ras_ecc_log_info umc_ecc_log;
- struct delayed_work page_retirement_dwork;
/* ras errors detected */
unsigned long ras_err_state;
@@ -615,12 +570,8 @@ struct amdgpu_ras {
struct list_head critical_region_head;
struct mutex critical_region_lock;
- /* Protect poison injection */
- struct mutex poison_lock;
-
/* Disable/Enable uniras switch */
bool uniras_enabled;
- const struct ras_smu_drv *ras_smu_drv;
};
struct ras_fs_data {
@@ -702,8 +653,6 @@ struct ras_manager {
struct ras_ih_data ih_data;
struct ras_err_data err_data;
-
- struct aca_handle aca_handle;
};
struct ras_badpage {
@@ -964,8 +913,7 @@ struct amdgpu_ras* amdgpu_ras_get_context(struct amdgpu_device *adev);
int amdgpu_ras_set_context(struct amdgpu_device *adev, struct amdgpu_ras *ras_con);
int amdgpu_ras_set_mca_debug_mode(struct amdgpu_device *adev, bool enable);
-int amdgpu_ras_set_aca_debug_mode(struct amdgpu_device *adev, bool enable);
-bool amdgpu_ras_get_aca_debug_mode(struct amdgpu_device *adev);
+bool amdgpu_ras_get_mca_debug_mode(struct amdgpu_device *adev);
bool amdgpu_ras_get_error_query_mode(struct amdgpu_device *adev,
unsigned int *mode);
@@ -1002,16 +950,7 @@ int amdgpu_ras_error_statistic_ce_count(struct ras_err_data *err_data,
int amdgpu_ras_error_statistic_ue_count(struct ras_err_data *err_data,
struct amdgpu_smuio_mcm_config_info *mcm_info,
u64 count);
-int amdgpu_ras_error_statistic_de_count(struct ras_err_data *err_data,
- struct amdgpu_smuio_mcm_config_info *mcm_info,
- u64 count);
void amdgpu_ras_query_boot_status(struct amdgpu_device *adev, u32 num_instances);
-int amdgpu_ras_bind_aca(struct amdgpu_device *adev, enum amdgpu_ras_block blk,
- const struct aca_info *aca_info, void *data);
-int amdgpu_ras_unbind_aca(struct amdgpu_device *adev, enum amdgpu_ras_block blk);
-
-ssize_t amdgpu_ras_aca_sysfs_read(struct device *dev, struct device_attribute *attr,
- struct aca_handle *handle, char *buf, void *data);
void amdgpu_ras_set_fed(struct amdgpu_device *adev, bool status);
bool amdgpu_ras_get_fed_status(struct amdgpu_device *adev);
@@ -1029,10 +968,6 @@ int amdgpu_ras_reserve_page(struct amdgpu_device *adev, uint64_t pfn);
int amdgpu_ras_add_critical_region(struct amdgpu_device *adev, struct amdgpu_bo *bo);
bool amdgpu_ras_check_critical_address(struct amdgpu_device *adev, uint64_t addr);
-int amdgpu_ras_put_poison_req(struct amdgpu_device *adev,
- enum amdgpu_ras_block block, uint16_t pasid,
- pasid_notify pasid_fn, void *data, uint32_t reset);
-
bool amdgpu_ras_in_recovery(struct amdgpu_device *adev);
__printf(3, 4)
@@ -1045,4 +980,5 @@ void amdgpu_ras_pre_reset(struct amdgpu_device *adev,
struct list_head *device_list);
void amdgpu_ras_post_reset(struct amdgpu_device *adev,
struct list_head *device_list);
+int amdgpu_ras_resume_after_reset(struct amdgpu_device *adev);
#endif