Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65ff442f authored by Imre Deak's avatar Imre Deak
Browse files

drm/i915: Fix power domain HW state cleanup on error path



Move the cleanup of the power domain HW state on the error path to the
same function where the corresponding init call was called from. I
noticed this problem when loading the module with load failure injection
enabled, making i915_load_modeset_init() fail.

CC: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/1458128348-15730-19-git-send-email-imre.deak@intel.com
parent 432f856d
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -453,6 +453,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
	intel_teardown_gmbus(dev);
cleanup_csr:
	intel_csr_ucode_fini(dev_priv);
	intel_power_domains_fini(dev_priv);
	vga_switcheroo_unregister_client(dev->pdev);
cleanup_vga_client:
	vga_client_register(dev->pdev, NULL, NULL, NULL);
@@ -1306,7 +1307,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
	ret = i915_load_modeset_init(dev);
	if (ret < 0) {
		DRM_ERROR("failed to init modeset\n");
		goto out_power_well;
		goto out_cleanup_vblank;
	}

	i915_driver_register(dev_priv);
@@ -1317,8 +1318,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)

	return 0;

out_power_well:
	intel_power_domains_fini(dev_priv);
out_cleanup_vblank:
	drm_vblank_cleanup(dev);
out_cleanup_hw:
	i915_driver_cleanup_hw(dev_priv);