]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: Reorganize sysfs ini/fini calls
authorLijo Lazar <lijo.lazar@amd.com>
Tue, 7 Oct 2025 12:42:04 +0000 (18:12 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 13 Oct 2025 18:14:35 +0000 (14:14 -0400)
Aggregate sysfs ini/fini calls into separate functions. No functional
change.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Asad Kamal <asad.kamal@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

index b6d2b9c0bac0b600579d83c23f358b3d61a31958..86818aa9ba139a32236a9772bd1518a6375c715a 100644 (file)
@@ -4385,6 +4385,55 @@ static void amdgpu_device_set_mcbp(struct amdgpu_device *adev)
                dev_info(adev->dev, "MCBP is enabled\n");
 }
 
+static int amdgpu_device_sys_interface_init(struct amdgpu_device *adev)
+{
+       int r;
+
+       r = amdgpu_atombios_sysfs_init(adev);
+       if (r)
+               drm_err(&adev->ddev,
+                       "registering atombios sysfs failed (%d).\n", r);
+
+       r = amdgpu_pm_sysfs_init(adev);
+       if (r)
+               dev_err(adev->dev, "registering pm sysfs failed (%d).\n", r);
+
+       r = amdgpu_ucode_sysfs_init(adev);
+       if (r) {
+               adev->ucode_sysfs_en = false;
+               dev_err(adev->dev, "Creating firmware sysfs failed (%d).\n", r);
+       } else
+               adev->ucode_sysfs_en = true;
+
+       r = amdgpu_device_attr_sysfs_init(adev);
+       if (r)
+               dev_err(adev->dev, "Could not create amdgpu device attr\n");
+
+       r = devm_device_add_group(adev->dev, &amdgpu_board_attrs_group);
+       if (r)
+               dev_err(adev->dev,
+                       "Could not create amdgpu board attributes\n");
+
+       amdgpu_fru_sysfs_init(adev);
+       amdgpu_reg_state_sysfs_init(adev);
+       amdgpu_xcp_sysfs_init(adev);
+
+       return r;
+}
+
+static void amdgpu_device_sys_interface_fini(struct amdgpu_device *adev)
+{
+       if (adev->pm.sysfs_initialized)
+               amdgpu_pm_sysfs_fini(adev);
+       if (adev->ucode_sysfs_en)
+               amdgpu_ucode_sysfs_fini(adev);
+       amdgpu_device_attr_sysfs_fini(adev);
+       amdgpu_fru_sysfs_fini(adev);
+
+       amdgpu_reg_state_sysfs_fini(adev);
+       amdgpu_xcp_sysfs_fini(adev);
+}
+
 /**
  * amdgpu_device_init - initialize the driver
  *
@@ -4813,34 +4862,7 @@ fence_driver_init:
         * operations performed in `late_init` might affect the sysfs
         * interfaces creating.
         */
-       r = amdgpu_atombios_sysfs_init(adev);
-       if (r)
-               drm_err(&adev->ddev,
-                       "registering atombios sysfs failed (%d).\n", r);
-
-       r = amdgpu_pm_sysfs_init(adev);
-       if (r)
-               dev_err(adev->dev, "registering pm sysfs failed (%d).\n", r);
-
-       r = amdgpu_ucode_sysfs_init(adev);
-       if (r) {
-               adev->ucode_sysfs_en = false;
-               dev_err(adev->dev, "Creating firmware sysfs failed (%d).\n", r);
-       } else
-               adev->ucode_sysfs_en = true;
-
-       r = amdgpu_device_attr_sysfs_init(adev);
-       if (r)
-               dev_err(adev->dev, "Could not create amdgpu device attr\n");
-
-       r = devm_device_add_group(adev->dev, &amdgpu_board_attrs_group);
-       if (r)
-               dev_err(adev->dev,
-                       "Could not create amdgpu board attributes\n");
-
-       amdgpu_fru_sysfs_init(adev);
-       amdgpu_reg_state_sysfs_init(adev);
-       amdgpu_xcp_sysfs_init(adev);
+       r = amdgpu_device_sys_interface_init(adev);
 
        if (IS_ENABLED(CONFIG_PERF_EVENTS))
                r = amdgpu_pmu_init(adev);
@@ -4962,15 +4984,7 @@ void amdgpu_device_fini_hw(struct amdgpu_device *adev)
        }
        amdgpu_fence_driver_hw_fini(adev);
 
-       if (adev->pm.sysfs_initialized)
-               amdgpu_pm_sysfs_fini(adev);
-       if (adev->ucode_sysfs_en)
-               amdgpu_ucode_sysfs_fini(adev);
-       amdgpu_device_attr_sysfs_fini(adev);
-       amdgpu_fru_sysfs_fini(adev);
-
-       amdgpu_reg_state_sysfs_fini(adev);
-       amdgpu_xcp_sysfs_fini(adev);
+       amdgpu_device_sys_interface_fini(adev);
 
        /* disable ras feature must before hw fini */
        amdgpu_ras_pre_fini(adev);