Commit 2cb2cb5f authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915/panel: Track temporary rpm wakeref



Keep track of the temporary rpm wakeref used for panel backlight access,
so that we can cancel it immediately upon release and so more clearly
identify leaks.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190114142129.24398-13-chris@chris-wilson.co.uk
parent 6a712a20
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -1203,17 +1203,18 @@ static int intel_backlight_device_get_brightness(struct backlight_device *bd)
	struct intel_connector *connector = bl_get_data(bd);
	struct intel_connector *connector = bl_get_data(bd);
	struct drm_device *dev = connector->base.dev;
	struct drm_device *dev = connector->base.dev;
	struct drm_i915_private *dev_priv = to_i915(dev);
	struct drm_i915_private *dev_priv = to_i915(dev);
	intel_wakeref_t wakeref;
	u32 hw_level;
	u32 hw_level;
	int ret;
	int ret;


	intel_runtime_pm_get(dev_priv);
	wakeref = intel_runtime_pm_get(dev_priv);
	drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
	drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);


	hw_level = intel_panel_get_backlight(connector);
	hw_level = intel_panel_get_backlight(connector);
	ret = scale_hw_to_user(connector, hw_level, bd->props.max_brightness);
	ret = scale_hw_to_user(connector, hw_level, bd->props.max_brightness);


	drm_modeset_unlock(&dev->mode_config.connection_mutex);
	drm_modeset_unlock(&dev->mode_config.connection_mutex);
	intel_runtime_pm_put_unchecked(dev_priv);
	intel_runtime_pm_put(dev_priv, wakeref);


	return ret;
	return ret;
}
}