OSDN Git Service

drm/i915: Take rpm wakelock around debugfs/i915_gpu_info
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 28 Mar 2017 13:14:07 +0000 (14:14 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 28 Mar 2017 14:59:12 +0000 (15:59 +0100)
Capturing GPU state requires the device to be awake in order to read
registers. Normally, this is taken along the error handler, but for the
direct debugfs access, we cannot make assumptions about the current
device state and so either need to wake it up, or abort.

Fixes: 5a4c6f1b1b2d ("drm/i915: The return of i915_gpu_info to debugfs")
Testcase: igt/pm_rpm/debugfs-read
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170328131407.14863-1-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
drivers/gpu/drm/i915/i915_debugfs.c

index 316bc47..d490424 100644 (file)
@@ -1012,9 +1012,12 @@ static int gpu_state_release(struct inode *inode, struct file *file)
 
 static int i915_gpu_info_open(struct inode *inode, struct file *file)
 {
+       struct drm_i915_private *i915 = inode->i_private;
        struct i915_gpu_state *gpu;
 
-       gpu = i915_capture_gpu_state(inode->i_private);
+       intel_runtime_pm_get(i915);
+       gpu = i915_capture_gpu_state(i915);
+       intel_runtime_pm_put(i915);
        if (!gpu)
                return -ENOMEM;