drm/i915/panel: Track temporary rpm wakeref
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 14 Jan 2019 14:21:21 +0000 (14:21 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 14 Jan 2019 16:18:19 +0000 (16:18 +0000)
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: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190114142129.24398-13-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_panel.c

index c2b7455..93a2e4b 100644 (file)
@@ -1203,17 +1203,18 @@ static int intel_backlight_device_get_brightness(struct backlight_device *bd)
        struct intel_connector *connector = bl_get_data(bd);
        struct drm_device *dev = connector->base.dev;
        struct drm_i915_private *dev_priv = to_i915(dev);
+       intel_wakeref_t wakeref;
        u32 hw_level;
        int ret;
 
-       intel_runtime_pm_get(dev_priv);
+       wakeref = intel_runtime_pm_get(dev_priv);
        drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
 
        hw_level = intel_panel_get_backlight(connector);
        ret = scale_hw_to_user(connector, hw_level, bd->props.max_brightness);
 
        drm_modeset_unlock(&dev->mode_config.connection_mutex);
-       intel_runtime_pm_put_unchecked(dev_priv);
+       intel_runtime_pm_put(dev_priv, wakeref);
 
        return ret;
 }