mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
drm/i915: get runtime PM at i915_reg_read_ioctl
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>
This commit is contained in:
parent
aa0b3b5bb8
commit
cf67c70fa2
1 changed files with 8 additions and 3 deletions
|
@ -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 &&
|
||||
|
@ -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);
|
||||
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue