drm/amdgpu: call ras_debugfs_create_all in debugfs_init
authorTao Zhou <tao.zhou1@amd.com>
Fri, 6 Mar 2020 04:24:06 +0000 (12:24 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 10 Mar 2020 19:55:11 +0000 (15:55 -0400)
and remove each ras IP's own debugfs creation

this is required to fix ras when the driver does not use the drm load
and unload callbacks due to ordering issues with the drm device node.

Signed-off-by: Tao Zhou <tao.zhou1@amd.com>
Signed-off-by: Stanley.Yang <Stanley.Yang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.c
drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c
drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c

index 831f70d..c573edf 100644 (file)
@@ -1294,6 +1294,7 @@ DEFINE_SIMPLE_ATTRIBUTE(fops_ib_preempt, NULL,
 DEFINE_SIMPLE_ATTRIBUTE(fops_sclk_set, NULL,
                        amdgpu_debugfs_sclk_set, "%llu\n");
 
+extern void amdgpu_ras_debugfs_create_all(struct amdgpu_device *adev);
 int amdgpu_debugfs_init(struct amdgpu_device *adev)
 {
        int r, i;
@@ -1366,6 +1367,8 @@ int amdgpu_debugfs_init(struct amdgpu_device *adev)
                }
        }
 
+       amdgpu_ras_debugfs_create_all(adev);
+
        return amdgpu_debugfs_add_files(adev, amdgpu_debugfs_list,
                                        ARRAY_SIZE(amdgpu_debugfs_list));
 }
index 952725e..6b9c919 100644 (file)
@@ -573,7 +573,6 @@ int amdgpu_gfx_ras_late_init(struct amdgpu_device *adev)
        int r;
        struct ras_fs_if fs_info = {
                .sysfs_name = "gfx_err_count",
-               .debugfs_name = "gfx_err_inject",
        };
        struct ras_ih_if ih_info = {
                .cb = amdgpu_gfx_process_ras_data_cb,
index 676c48c..ead3dc5 100644 (file)
@@ -32,7 +32,6 @@ int amdgpu_mmhub_ras_late_init(struct amdgpu_device *adev)
        };
        struct ras_fs_if fs_info = {
                .sysfs_name = "mmhub_err_count",
-               .debugfs_name = "mmhub_err_inject",
        };
 
        if (!adev->mmhub.ras_if) {
index 7d5c3a9..6201a5f 100644 (file)
@@ -30,7 +30,6 @@ int amdgpu_nbio_ras_late_init(struct amdgpu_device *adev)
        };
        struct ras_fs_if fs_info = {
                .sysfs_name = "pcie_bif_err_count",
-               .debugfs_name = "pcie_bif_err_inject",
        };
 
        if (!adev->nbio.ras_if) {
index 7f29e70..ce8548d 100644 (file)
@@ -1174,7 +1174,6 @@ static void amdgpu_ras_debugfs_remove_all(struct amdgpu_device *adev)
 static int amdgpu_ras_fs_init(struct amdgpu_device *adev)
 {
        amdgpu_ras_sysfs_create_feature_node(adev);
-       amdgpu_ras_debugfs_create_ctrl_node(adev);
 
        return 0;
 }
@@ -1878,8 +1877,6 @@ int amdgpu_ras_late_init(struct amdgpu_device *adev,
                        goto interrupt;
        }
 
-       amdgpu_ras_debugfs_create(adev, fs_info);
-
        r = amdgpu_ras_sysfs_create(adev, fs_info);
        if (r)
                goto sysfs;
@@ -1888,7 +1885,6 @@ int amdgpu_ras_late_init(struct amdgpu_device *adev,
 cleanup:
        amdgpu_ras_sysfs_remove(adev, ras_block);
 sysfs:
-       amdgpu_ras_debugfs_remove(adev, ras_block);
        if (ih_info->cb)
                amdgpu_ras_interrupt_remove_handler(adev, ih_info);
 interrupt:
@@ -1905,7 +1901,6 @@ void amdgpu_ras_late_fini(struct amdgpu_device *adev,
                return;
 
        amdgpu_ras_sysfs_remove(adev, ras_block);
-       amdgpu_ras_debugfs_remove(adev, ras_block);
        if (ih_info->cb)
                 amdgpu_ras_interrupt_remove_handler(adev, ih_info);
        amdgpu_ras_feature_enable(adev, ras_block, 0);
index 7854c05..250a309 100644 (file)
@@ -93,7 +93,6 @@ int amdgpu_sdma_ras_late_init(struct amdgpu_device *adev,
        struct ras_ih_if *ih_info = (struct ras_ih_if *)ras_ih_info;
        struct ras_fs_if fs_info = {
                .sysfs_name = "sdma_err_count",
-               .debugfs_name = "sdma_err_inject",
        };
 
        if (!ih_info)
index f4d4085..9dd51f0 100644 (file)
@@ -28,7 +28,6 @@ int amdgpu_umc_ras_late_init(struct amdgpu_device *adev)
        int r;
        struct ras_fs_if fs_info = {
                .sysfs_name = "umc_err_count",
-               .debugfs_name = "umc_err_inject",
        };
        struct ras_ih_if ih_info = {
                .cb = amdgpu_umc_process_ras_data_cb,
index 59d1715..95b3327 100644 (file)
@@ -598,7 +598,6 @@ int amdgpu_xgmi_ras_late_init(struct amdgpu_device *adev)
        };
        struct ras_fs_if fs_info = {
                .sysfs_name = "xgmi_wafl_err_count",
-               .debugfs_name = "xgmi_wafl_err_inject",
        };
 
        if (!adev->gmc.xgmi.supported ||