diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/cik.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/cik.c | 13 | 
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c index 07c1f239e9c3..3a4f20766a39 100644 --- a/drivers/gpu/drm/amd/amdgpu/cik.c +++ b/drivers/gpu/drm/amd/amdgpu/cik.c @@ -1804,6 +1804,18 @@ static bool cik_need_reset_on_init(struct amdgpu_device *adev)  	return false;  } +static uint64_t cik_get_pcie_replay_count(struct amdgpu_device *adev) +{ +	uint64_t nak_r, nak_g; + +	/* Get the number of NAKs received and generated */ +	nak_r = RREG32_PCIE(ixPCIE_RX_NUM_NAK); +	nak_g = RREG32_PCIE(ixPCIE_RX_NUM_NAK_GENERATED); + +	/* Add the total number of NAKs, i.e the number of replays */ +	return (nak_r + nak_g); +} +  static const struct amdgpu_asic_funcs cik_asic_funcs =  {  	.read_disabled_bios = &cik_read_disabled_bios, @@ -1821,6 +1833,7 @@ static const struct amdgpu_asic_funcs cik_asic_funcs =  	.init_doorbell_index = &legacy_doorbell_index_init,  	.get_pcie_usage = &cik_get_pcie_usage,  	.need_reset_on_init = &cik_need_reset_on_init, +	.get_pcie_replay_count = &cik_get_pcie_replay_count,  };  static int cik_common_early_init(void *handle)  | 

