OSDN Git Service

drm/amdgpu: drop legacy drm load and unload callbacks
authorAlex Deucher <alexander.deucher@amd.com>
Tue, 4 Feb 2020 18:21:52 +0000 (13:21 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 26 Feb 2020 19:21:13 +0000 (14:21 -0500)
We've moved the debugfs handling into a centralized place
so we can remove the legacy load an unload callbacks.

Tested-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c

index 008797c..7878698 100644 (file)
@@ -3120,10 +3120,6 @@ fence_driver_init:
        } else
                adev->ucode_sysfs_en = true;
 
-       r = amdgpu_debugfs_init(adev);
-       if (r)
-               DRM_ERROR("Creating debugfs files failed (%d).\n", r);
-
        if ((amdgpu_testing & 1)) {
                if (adev->accel_working)
                        amdgpu_test_moves(adev);
@@ -3245,7 +3241,6 @@ void amdgpu_device_fini(struct amdgpu_device *adev)
                amdgpu_ucode_sysfs_fini(adev);
        if (IS_ENABLED(CONFIG_PERF_EVENTS))
                amdgpu_pmu_fini(adev);
-       amdgpu_debugfs_fini(adev);
        if (amdgpu_discovery && adev->asic_type >= CHIP_NAVI10)
                amdgpu_discovery_fini(adev);
 }
index 16fa1e2..2c8c53f 100644 (file)
@@ -1021,6 +1021,7 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
                            const struct pci_device_id *ent)
 {
        struct drm_device *dev;
+       struct amdgpu_device *adev;
        unsigned long flags = ent->driver_data;
        int ret, retry = 0;
        bool supports_atomic = false;
@@ -1090,6 +1091,8 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
 
        pci_set_drvdata(pdev, dev);
 
+       amdgpu_driver_load_kms(dev, ent->driver_data);
+
 retry_init:
        ret = drm_dev_register(dev, ent->driver_data);
        if (ret == -EAGAIN && ++retry <= 3) {
@@ -1100,6 +1103,11 @@ retry_init:
        } else if (ret)
                goto err_pci;
 
+       adev = dev->dev_private;
+       ret = amdgpu_debugfs_init(adev);
+       if (ret)
+               DRM_ERROR("Creating debugfs files failed (%d).\n", ret);
+
        return 0;
 
 err_pci:
@@ -1113,6 +1121,7 @@ static void
 amdgpu_pci_remove(struct pci_dev *pdev)
 {
        struct drm_device *dev = pci_get_drvdata(pdev);
+       struct amdgpu_device *adev = dev->dev_private;
 
 #ifdef MODULE
        if (THIS_MODULE->state != MODULE_STATE_GOING)
@@ -1120,6 +1129,8 @@ amdgpu_pci_remove(struct pci_dev *pdev)
                DRM_ERROR("Hotplug removal is not supported\n");
        drm_dev_unplug(dev);
        drm_dev_put(dev);
+       amdgpu_debugfs_fini(adev);
+       amdgpu_driver_unload_kms(dev);
        pci_disable_device(pdev);
        pci_set_drvdata(pdev, NULL);
 }
@@ -1398,11 +1409,9 @@ static struct drm_driver kms_driver = {
            DRIVER_GEM |
            DRIVER_RENDER | DRIVER_MODESET | DRIVER_SYNCOBJ |
            DRIVER_SYNCOBJ_TIMELINE,
-       .load = amdgpu_driver_load_kms,
        .open = amdgpu_driver_open_kms,
        .postclose = amdgpu_driver_postclose_kms,
        .lastclose = amdgpu_driver_lastclose_kms,
-       .unload = amdgpu_driver_unload_kms,
        .get_vblank_counter = amdgpu_get_vblank_counter_kms,
        .enable_vblank = amdgpu_enable_vblank_kms,
        .disable_vblank = amdgpu_disable_vblank_kms,