drm/amdgpu: Skip pcie_replay_count sysfs creation for VF
[ Upstream commit 9c05636ca72a2dbf41bf0900380f438a0de47319 ] VFs cannot read the NAK_COUNTER register. This information is only available through PMFW metrics. Signed-off-by: Victor Skvortsov <victor.skvortsov@amd.com> Reviewed-by: Lijo Lazar <lijo.lazar@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
67bb217509
commit
dca76ee1f0
@@ -170,6 +170,24 @@ static ssize_t amdgpu_device_get_pcie_replay_count(struct device *dev,
|
|||||||
static DEVICE_ATTR(pcie_replay_count, 0444,
|
static DEVICE_ATTR(pcie_replay_count, 0444,
|
||||||
amdgpu_device_get_pcie_replay_count, NULL);
|
amdgpu_device_get_pcie_replay_count, NULL);
|
||||||
|
|
||||||
|
static int amdgpu_device_attr_sysfs_init(struct amdgpu_device *adev)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
if (!amdgpu_sriov_vf(adev))
|
||||||
|
ret = sysfs_create_file(&adev->dev->kobj,
|
||||||
|
&dev_attr_pcie_replay_count.attr);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void amdgpu_device_attr_sysfs_fini(struct amdgpu_device *adev)
|
||||||
|
{
|
||||||
|
if (!amdgpu_sriov_vf(adev))
|
||||||
|
sysfs_remove_file(&adev->dev->kobj,
|
||||||
|
&dev_attr_pcie_replay_count.attr);
|
||||||
|
}
|
||||||
|
|
||||||
static ssize_t amdgpu_sysfs_reg_state_get(struct file *f, struct kobject *kobj,
|
static ssize_t amdgpu_sysfs_reg_state_get(struct file *f, struct kobject *kobj,
|
||||||
struct bin_attribute *attr, char *buf,
|
struct bin_attribute *attr, char *buf,
|
||||||
loff_t ppos, size_t count)
|
loff_t ppos, size_t count)
|
||||||
@@ -4030,11 +4048,6 @@ static bool amdgpu_device_check_iommu_remap(struct amdgpu_device *adev)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const struct attribute *amdgpu_dev_attributes[] = {
|
|
||||||
&dev_attr_pcie_replay_count.attr,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
static void amdgpu_device_set_mcbp(struct amdgpu_device *adev)
|
static void amdgpu_device_set_mcbp(struct amdgpu_device *adev)
|
||||||
{
|
{
|
||||||
if (amdgpu_mcbp == 1)
|
if (amdgpu_mcbp == 1)
|
||||||
@@ -4477,7 +4490,7 @@ fence_driver_init:
|
|||||||
} else
|
} else
|
||||||
adev->ucode_sysfs_en = true;
|
adev->ucode_sysfs_en = true;
|
||||||
|
|
||||||
r = sysfs_create_files(&adev->dev->kobj, amdgpu_dev_attributes);
|
r = amdgpu_device_attr_sysfs_init(adev);
|
||||||
if (r)
|
if (r)
|
||||||
dev_err(adev->dev, "Could not create amdgpu device attr\n");
|
dev_err(adev->dev, "Could not create amdgpu device attr\n");
|
||||||
|
|
||||||
@@ -4614,7 +4627,7 @@ void amdgpu_device_fini_hw(struct amdgpu_device *adev)
|
|||||||
amdgpu_pm_sysfs_fini(adev);
|
amdgpu_pm_sysfs_fini(adev);
|
||||||
if (adev->ucode_sysfs_en)
|
if (adev->ucode_sysfs_en)
|
||||||
amdgpu_ucode_sysfs_fini(adev);
|
amdgpu_ucode_sysfs_fini(adev);
|
||||||
sysfs_remove_files(&adev->dev->kobj, amdgpu_dev_attributes);
|
amdgpu_device_attr_sysfs_fini(adev);
|
||||||
amdgpu_fru_sysfs_fini(adev);
|
amdgpu_fru_sysfs_fini(adev);
|
||||||
|
|
||||||
amdgpu_reg_state_sysfs_fini(adev);
|
amdgpu_reg_state_sysfs_fini(adev);
|
||||||
|
|||||||
Reference in New Issue
Block a user