drm/amdgpu: implement common gmc_ras_late_init
common gmc_ecc_late_init can be shared among all generations of gmc v2: rename gmc_ecc_late_init to gmc_ras_late_init Signed-off-by: Tao Zhou <tao.zhou1@amd.com> Reviewed-by: Guchun Chen <guchun.chen@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>alistair/sunxi64-5.5-dsi
parent
be5b39d87a
commit
ba08349214
|
@ -308,6 +308,25 @@ bool amdgpu_gmc_filter_faults(struct amdgpu_device *adev, uint64_t addr,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int amdgpu_gmc_ras_late_init(struct amdgpu_device *adev)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
|
||||||
|
if (adev->umc.funcs && adev->umc.funcs->ras_late_init) {
|
||||||
|
r = adev->umc.funcs->ras_late_init(adev);
|
||||||
|
if (r)
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (adev->mmhub.funcs && adev->mmhub.funcs->ras_late_init) {
|
||||||
|
r = adev->mmhub.funcs->ras_late_init(adev);
|
||||||
|
if (r)
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
return amdgpu_xgmi_ras_late_init(adev);
|
||||||
|
}
|
||||||
|
|
||||||
void amdgpu_gmc_ras_fini(struct amdgpu_device *adev)
|
void amdgpu_gmc_ras_fini(struct amdgpu_device *adev)
|
||||||
{
|
{
|
||||||
amdgpu_umc_ras_fini(adev);
|
amdgpu_umc_ras_fini(adev);
|
||||||
|
|
|
@ -233,6 +233,7 @@ void amdgpu_gmc_agp_location(struct amdgpu_device *adev,
|
||||||
struct amdgpu_gmc *mc);
|
struct amdgpu_gmc *mc);
|
||||||
bool amdgpu_gmc_filter_faults(struct amdgpu_device *adev, uint64_t addr,
|
bool amdgpu_gmc_filter_faults(struct amdgpu_device *adev, uint64_t addr,
|
||||||
uint16_t pasid, uint64_t timestamp);
|
uint16_t pasid, uint64_t timestamp);
|
||||||
|
int amdgpu_gmc_ras_late_init(struct amdgpu_device *adev);
|
||||||
void amdgpu_gmc_ras_fini(struct amdgpu_device *adev);
|
void amdgpu_gmc_ras_fini(struct amdgpu_device *adev);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -736,26 +736,6 @@ static int gmc_v9_0_allocate_vm_inv_eng(struct amdgpu_device *adev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int gmc_v9_0_ecc_late_init(void *handle)
|
|
||||||
{
|
|
||||||
int r;
|
|
||||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
|
||||||
|
|
||||||
if (adev->umc.funcs && adev->umc.funcs->ras_late_init) {
|
|
||||||
r = adev->umc.funcs->ras_late_init(adev);
|
|
||||||
if (r)
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (adev->mmhub.funcs && adev->mmhub.funcs->ras_late_init) {
|
|
||||||
r = adev->mmhub.funcs->ras_late_init(adev);
|
|
||||||
if (r)
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
return amdgpu_xgmi_ras_late_init(adev);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int gmc_v9_0_late_init(void *handle)
|
static int gmc_v9_0_late_init(void *handle)
|
||||||
{
|
{
|
||||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||||
|
@ -793,7 +773,7 @@ static int gmc_v9_0_late_init(void *handle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
r = gmc_v9_0_ecc_late_init(handle);
|
r = amdgpu_gmc_ras_late_init(adev);
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue