Commit 196aefea authored by Lijo Lazar's avatar Lijo Lazar Committed by Alex Deucher
Browse files

drm/amdgpu: Check pcie replays reporting support



Check if pcie replay count reporting is supported before creating sysfs
attribute.

Signed-off-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Acked-by: default avatarMangesh Gadre <Mangesh.Gadre@amd.com>
Reviewed-by: default avatarAsad Kamal <asad.kamal@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent c09910b5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -232,7 +232,7 @@ static int amdgpu_device_attr_sysfs_init(struct amdgpu_device *adev)
{
	int ret = 0;

	if (!amdgpu_sriov_vf(adev))
	if (amdgpu_nbio_is_replay_cnt_supported(adev))
		ret = sysfs_create_file(&adev->dev->kobj,
					&dev_attr_pcie_replay_count.attr);

@@ -241,7 +241,7 @@ static int amdgpu_device_attr_sysfs_init(struct amdgpu_device *adev)

static void amdgpu_device_attr_sysfs_fini(struct amdgpu_device *adev)
{
	if (!amdgpu_sriov_vf(adev))
	if (amdgpu_nbio_is_replay_cnt_supported(adev))
		sysfs_remove_file(&adev->dev->kobj,
				  &dev_attr_pcie_replay_count.attr);
}
+9 −0
Original line number Diff line number Diff line
@@ -53,6 +53,15 @@ u64 amdgpu_nbio_get_pcie_replay_count(struct amdgpu_device *adev)
	return 0;
}

bool amdgpu_nbio_is_replay_cnt_supported(struct amdgpu_device *adev)
{
	if (amdgpu_sriov_vf(adev) || !adev->asic_funcs->get_pcie_replay_count ||
	    (!adev->nbio.funcs || !adev->nbio.funcs->get_pcie_replay_count))
		return false;

	return true;
}

int amdgpu_nbio_ras_late_init(struct amdgpu_device *adev, struct ras_common_if *ras_block)
{
	int r;
+2 −0
Original line number Diff line number Diff line
@@ -119,4 +119,6 @@ int amdgpu_nbio_ras_sw_init(struct amdgpu_device *adev);
int amdgpu_nbio_ras_late_init(struct amdgpu_device *adev, struct ras_common_if *ras_block);
u64 amdgpu_nbio_get_pcie_replay_count(struct amdgpu_device *adev);

bool amdgpu_nbio_is_replay_cnt_supported(struct amdgpu_device *adev);

#endif