some old kernels do not export pci_driver.dev_groups, so the
"ptl" sub-directory is not create whle HAVE_PCI_DRIVER_DEV_GROUPS is
set as false by kcl.

Move the sysfs creation path into amdgpu_device_sys_interface_init() /
amdgpu_device_sys_interface_fini() so that both new and old kernels
use the same amdgpu_ptl_attr_group definition while keeping the
implementation in one place.

Signed-off-by: Perry Yuan <[email protected]>
Reviewed-by: Yifan Zhang <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |  2 ++
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c    |  1 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c    | 16 ++++++++++++++++
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 5e73b9d67325..6e422da88b7e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -4337,6 +4337,7 @@ static int amdgpu_device_sys_interface_init(struct 
amdgpu_device *adev)
        amdgpu_reg_state_sysfs_init(adev);
        amdgpu_xcp_sysfs_init(adev);
        amdgpu_uma_sysfs_init(adev);
+       amdgpu_ptl_sysfs_init(adev);
 
        return r;
 }
@@ -4353,6 +4354,7 @@ static void amdgpu_device_sys_interface_fini(struct 
amdgpu_device *adev)
        amdgpu_reg_state_sysfs_fini(adev);
        amdgpu_xcp_sysfs_fini(adev);
        amdgpu_uma_sysfs_fini(adev);
+       amdgpu_ptl_sysfs_fini(adev);
 }
 
 /**
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index d88da1beb532..95d26f086d54 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -3146,7 +3146,6 @@ static const struct attribute_group 
*amdgpu_sysfs_groups[] = {
        &amdgpu_vram_mgr_attr_group,
        &amdgpu_gtt_mgr_attr_group,
        &amdgpu_flash_attr_group,
-       &amdgpu_ptl_attr_group,
        NULL,
 };
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index a5f101ef51ef..2b197cdefe31 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -1424,6 +1424,22 @@ static umode_t amdgpu_ptl_is_visible(struct kobject 
*kobj, struct attribute *att
        return attr->mode;
 }
 
+int amdgpu_ptl_sysfs_init(struct amdgpu_device *adev)
+{
+       if (!adev->psp.ptl_hw_supported)
+               return 0;
+
+       return sysfs_create_group(&adev->dev->kobj, &amdgpu_ptl_attr_group);
+}
+
+void amdgpu_ptl_sysfs_fini(struct amdgpu_device *adev)
+{
+       if (!adev->psp.ptl_hw_supported)
+               return;
+
+       sysfs_remove_group(&adev->dev->kobj, &amdgpu_ptl_attr_group);
+}
+
 int psp_spatial_partition(struct psp_context *psp, int mode)
 {
        struct psp_gfx_cmd_resp *cmd;
-- 
2.34.1

Reply via email to