Commit df2ce459 authored by Luben Tuikov's avatar Luben Tuikov Committed by Daniel Vetter
Browse files

drm/amdgpu: Convert to using devm_drm_dev_alloc() (v2)



Convert to using devm_drm_dev_alloc(),
as drm_dev_init() is going away.

v2: Remove drm_dev_put() since
    a) devres doesn't do refcounting, see
    Documentation/driver-api/driver-model/devres.rst,
    Section 4, paragraph 1; and since
    b) devres acts as garbage collector when
    the DRM device's parent's devres "action" callback
    is called to free the container device (amdgpu_device),
    which embeds the DRM dev.

Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarLuben Tuikov <luben.tuikov@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20200918132505.2316382-4-daniel.vetter@ffwll.ch
parent cd01269d
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
@@ -1142,25 +1142,20 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
	if (ret)
		return ret;

	adev = kzalloc(sizeof(*adev), GFP_KERNEL);
	if (!adev)
		return -ENOMEM;
	adev = devm_drm_dev_alloc(&pdev->dev, &kms_driver, typeof(*adev), ddev);
	if (IS_ERR(adev))
		return PTR_ERR(adev);

	adev->dev  = &pdev->dev;
	adev->pdev = pdev;
	ddev = adev_to_drm(adev);
	ret = drm_dev_init(ddev, &kms_driver, &pdev->dev);
	if (ret)
		goto err_free;

	drmm_add_final_kfree(ddev, adev);

	if (!supports_atomic)
		ddev->driver_features &= ~DRIVER_ATOMIC;

	ret = pci_enable_device(pdev);
	if (ret)
		goto err_free;
		return ret;

	ddev->pdev = pdev;
	pci_set_drvdata(pdev, ddev);
@@ -1188,8 +1183,6 @@ retry_init:

err_pci:
	pci_disable_device(pdev);
err_free:
	drm_dev_put(ddev);
	return ret;
}

@@ -1206,7 +1199,6 @@ amdgpu_pci_remove(struct pci_dev *pdev)
	amdgpu_driver_unload_kms(dev);
	pci_disable_device(pdev);
	pci_set_drvdata(pdev, NULL);
	drm_dev_put(dev);
}

static void