[AMD Official Use Only - AMD Internal Distribution Only] Acked-by: Mangesh Gadre <mangesh.ga...@amd.com>
>-----Original Message----- >From: Lazar, Lijo <lijo.la...@amd.com> >Sent: Thursday, May 29, 2025 2:00 PM >To: amd-gfx@lists.freedesktop.org >Cc: Zhang, Hawking <hawking.zh...@amd.com>; Deucher, Alexander ><alexander.deuc...@amd.com>; Kamal, Asad <asad.ka...@amd.com>; Gadre, >Mangesh <mangesh.ga...@amd.com> >Subject: [PATCH 1/2] drm/amdgpu: Check pcie replays reporting support > >Check if pcie replay count reporting is supported before creating sysfs >attribute. > >Signed-off-by: Lijo Lazar <lijo.la...@amd.com> >--- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 ++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c | 9 +++++++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h | 2 ++ > 3 files changed, 13 insertions(+), 2 deletions(-) > >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >index 72e41781afb0..9eaee8dacea7 100644 >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >@@ -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); > } >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c >b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c >index d085687a47ea..e56ba93a8df6 100644 >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c >@@ -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; >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h >b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h >index 79c2f807b9fe..b528de6a01f6 100644 >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h >@@ -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 >-- >2.25.1