Commit 274ed9e9 authored by Daniel Vetter's avatar Daniel Vetter
Browse files

drm/i915: Use devm_drm_dev_alloc



Luckily we're already well set up in the main driver, with
drm_dev_put() being the last thing in both the unload error case and
the pci remove function.

Acked-by: default avatarJani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-39-daniel.vetter@ffwll.ch
parent e304f8a0
Loading
Loading
Loading
Loading
+4 −13
Original line number Diff line number Diff line
@@ -877,19 +877,11 @@ i915_driver_create(struct pci_dev *pdev, const struct pci_device_id *ent)
		(struct intel_device_info *)ent->driver_data;
	struct intel_device_info *device_info;
	struct drm_i915_private *i915;
	int err;

	i915 = kzalloc(sizeof(*i915), GFP_KERNEL);
	if (!i915)
		return ERR_PTR(-ENOMEM);

	err = drm_dev_init(&i915->drm, &driver, &pdev->dev);
	if (err) {
		kfree(i915);
		return ERR_PTR(err);
	}

	drmm_add_final_kfree(&i915->drm, i915);
	i915 = devm_drm_dev_alloc(&pdev->dev, &driver,
				  struct drm_i915_private, drm);
	if (IS_ERR(i915))
		return i915;

	i915->drm.pdev = pdev;
	pci_set_drvdata(pdev, i915);
@@ -1006,7 +998,6 @@ out_pci_disable:
	pci_disable_device(pdev);
out_fini:
	i915_probe_error(i915, "Device initialization failed (%d)\n", ret);
	drm_dev_put(&i915->drm);
	return ret;
}

+0 −2
Original line number Diff line number Diff line
@@ -920,8 +920,6 @@ static void i915_pci_remove(struct pci_dev *pdev)

	i915_driver_remove(i915);
	pci_set_drvdata(pdev, NULL);

	drm_dev_put(&i915->drm);
}

/* is device_id present in comma separated list of ids */