mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 16:12:59 +02:00
drm/amdgpu: add get_retire_flip_bits for UMC
Add the general interface to get flip bits for RAS bad page retirement. Signed-off-by: Tao Zhou <tao.zhou1@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
80f66ca7a4
commit
699bff37a5
|
|
@ -3473,6 +3473,10 @@ int amdgpu_ras_init_badpage_info(struct amdgpu_device *adev)
|
|||
if (!adev->umc.ras || !adev->umc.ras->convert_ras_err_addr)
|
||||
control->ras_num_pa_recs = control->ras_num_recs;
|
||||
|
||||
if (adev->umc.ras &&
|
||||
adev->umc.ras->get_retire_flip_bits)
|
||||
adev->umc.ras->get_retire_flip_bits(adev);
|
||||
|
||||
if (control->ras_num_recs) {
|
||||
ret = amdgpu_ras_load_bad_pages(adev);
|
||||
if (ret)
|
||||
|
|
|
|||
|
|
@ -78,6 +78,18 @@
|
|||
#define UMC_NPS_SHIFT 40
|
||||
#define UMC_NPS_MASK 0xffULL
|
||||
|
||||
/* three column bits and one row bit in MCA address flip
|
||||
* in bad page retirement
|
||||
*/
|
||||
#define RETIRE_FLIP_BITS_NUM 4
|
||||
|
||||
struct amdgpu_umc_flip_bits {
|
||||
uint32_t flip_bits_in_pa[RETIRE_FLIP_BITS_NUM];
|
||||
uint32_t flip_row_bit;
|
||||
uint32_t r13_in_pa;
|
||||
uint32_t bit_num;
|
||||
};
|
||||
|
||||
typedef int (*umc_func)(struct amdgpu_device *adev, uint32_t node_inst,
|
||||
uint32_t umc_inst, uint32_t ch_inst, void *data);
|
||||
|
||||
|
|
@ -100,6 +112,7 @@ struct amdgpu_umc_ras {
|
|||
bool dump_addr);
|
||||
uint32_t (*get_die_id_from_pa)(struct amdgpu_device *adev,
|
||||
uint64_t mca_addr, uint64_t retired_page);
|
||||
void (*get_retire_flip_bits)(struct amdgpu_device *adev);
|
||||
};
|
||||
|
||||
struct amdgpu_umc_funcs {
|
||||
|
|
@ -130,6 +143,8 @@ struct amdgpu_umc {
|
|||
|
||||
/* active mask for umc node instance */
|
||||
unsigned long active_mask;
|
||||
|
||||
struct amdgpu_umc_flip_bits flip_bits;
|
||||
};
|
||||
|
||||
int amdgpu_umc_ras_sw_init(struct amdgpu_device *adev);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user