Skip to content

Commit

Permalink
drm/i915: get runtime PM at i915_reg_read_ioctl
Browse files Browse the repository at this point in the history
To avoid WARNs when we call it.

Testcase: igt/pm_pc8/reg-read-ioctl
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75693
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
  • Loading branch information
Paulo Zanoni authored and Daniel Vetter committed Apr 1, 2014
1 parent aa0b3b5 commit cf67c70
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions drivers/gpu/drm/i915/intel_uncore.c
Original file line number Diff line number Diff line change
Expand Up @@ -866,7 +866,7 @@ int i915_reg_read_ioctl(struct drm_device *dev,
struct drm_i915_private *dev_priv = dev->dev_private;
struct drm_i915_reg_read *reg = data;
struct register_whitelist const *entry = whitelist;
int i;
int i, ret = 0;

for (i = 0; i < ARRAY_SIZE(whitelist); i++, entry++) {
if (entry->offset == reg->offset &&
Expand All @@ -877,6 +877,8 @@ int i915_reg_read_ioctl(struct drm_device *dev,
if (i == ARRAY_SIZE(whitelist))
return -EINVAL;

intel_runtime_pm_get(dev_priv);

switch (entry->size) {
case 8:
reg->val = I915_READ64(reg->offset);
Expand All @@ -892,10 +894,13 @@ int i915_reg_read_ioctl(struct drm_device *dev,
break;
default:
WARN_ON(1);
return -EINVAL;
ret = -EINVAL;
goto out;
}

return 0;
out:
intel_runtime_pm_put(dev_priv);
return ret;
}

int i915_get_reset_stats_ioctl(struct drm_device *dev,
Expand Down

0 comments on commit cf67c70

Please sign in to comment.