aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_drv.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-07-21 07:31:41 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-07-25 12:23:56 -0400
commitf047e395ddc9da6c307a10629a237502e627ed85 (patch)
tree36a445f1d0bdf1bf37321d55ebfda84475c34b1c /drivers/gpu/drm/i915/intel_drv.h
parenta7b9761d0a2ded58170ffb4d423ff3d7228103f4 (diff)
drm/i915: Avoid concurrent access when marking the device as idle/busy
As suggested by Daniel, rip out the independent timers for device and crtc busyness and integrate the manual powermanagement of the display engine into the GEM core and its request tracking. The benefits are that the code is a lot smaller, fewer moving parts and should fit more neatly into the overall activity tracking of the driver. v2: Complete overhaul and removal of the racy timers and workers. 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.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 2846f5e8cca3..8c7f48310842 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -156,8 +156,6 @@ struct intel_crtc {
156 int dpms_mode; 156 int dpms_mode;
157 bool active; /* is the crtc on? independent of the dpms mode */ 157 bool active; /* is the crtc on? independent of the dpms mode */
158 bool primary_disabled; /* is the crtc obscured by a plane? */ 158 bool primary_disabled; /* is the crtc obscured by a plane? */
159 bool busy; /* is scanout buffer being updated frequently? */
160 struct timer_list idle_timer;
161 bool lowfreq_avail; 159 bool lowfreq_avail;
162 struct intel_overlay *overlay; 160 struct intel_overlay *overlay;
163 struct intel_unpin_work *unpin_work; 161 struct intel_unpin_work *unpin_work;
@@ -373,8 +371,10 @@ extern bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg,
373 bool is_sdvob); 371 bool is_sdvob);
374extern void intel_dvo_init(struct drm_device *dev); 372extern void intel_dvo_init(struct drm_device *dev);
375extern void intel_tv_init(struct drm_device *dev); 373extern void intel_tv_init(struct drm_device *dev);
376extern void intel_mark_busy(struct drm_device *dev, 374extern void intel_mark_busy(struct drm_device *dev);
377 struct drm_i915_gem_object *obj); 375extern void intel_mark_idle(struct drm_device *dev);
376extern void intel_mark_fb_busy(struct drm_i915_gem_object *obj);
377extern void intel_mark_fb_idle(struct drm_i915_gem_object *obj);
378extern bool intel_lvds_init(struct drm_device *dev); 378extern bool intel_lvds_init(struct drm_device *dev);
379extern void intel_dp_init(struct drm_device *dev, int output_reg, 379extern void intel_dp_init(struct drm_device *dev, int output_reg,
380 enum port port); 380 enum port port);