diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-04-26 06:28:42 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-05-03 11:22:36 -0400 |
commit | 9104183dad6314c55344d65738cd719b909a3e0a (patch) | |
tree | 70ae38df91f7f3b52c7917ef76bfeb87e00e109b /drivers/gpu/drm/i915/intel_drv.h | |
parent | c846b6194dbe02d9f4fc8c0471e799babc1c3f47 (diff) |
drm/i915: Periodically sanity check power management
Every time we use the device after a period of idleness, check that the
power management setup is still sane. This is to workaround a bug
whereby it seems that we begin suppressing power management interrupts,
preventing SandyBridge+ from going into turbo mode.
This patch does have a side-effect. It removes the mark-busy for just
moving the cursor - we don't want to increase the render clock just for
the sprite, though we may want to bump the display frequency. I'd argue
that we do not, and certainly don't want to take the struct_mutex here
due to the large latencies that introduces.
References: https://bugs.freedesktop.org/show_bug.cgi?id=44006
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_drv.h')
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index d9ffe381c723..cfec4842e0c4 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -344,6 +344,8 @@ extern int intel_plane_init(struct drm_device *dev, enum pipe pipe); | |||
344 | extern void intel_flush_display_plane(struct drm_i915_private *dev_priv, | 344 | extern void intel_flush_display_plane(struct drm_i915_private *dev_priv, |
345 | enum plane plane); | 345 | enum plane plane); |
346 | 346 | ||
347 | void intel_sanitize_pm(struct drm_device *dev); | ||
348 | |||
347 | /* intel_panel.c */ | 349 | /* intel_panel.c */ |
348 | extern void intel_fixed_panel_mode(struct drm_display_mode *fixed_mode, | 350 | extern void intel_fixed_panel_mode(struct drm_display_mode *fixed_mode, |
349 | struct drm_display_mode *adjusted_mode); | 351 | struct drm_display_mode *adjusted_mode); |