aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_drv.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-07-08 07:22:43 -0400
committerKeith Packard <keithp@keithp.com>2011-07-08 13:23:20 -0400
commit016b9b61ed692498a5d46dff974fe41b20e7e60b (patch)
treeb36de4779e9609c262696fe43c1cae8bc55501d9 /drivers/gpu/drm/i915/i915_drv.h
parent1630fe754c83b3e57efa51c85f1a21e612a63a0e (diff)
drm/i915: Share the common work of disabling active FBC before updating
Upon review, all path share the same dependencies for updating the registers and so we can benefit from sharing the code and checking early. This removes the unsightly intel_wait_for_vblank() from the lowlevel functions and upon further analysis the only path that will require a wait is if we are performing an instantaneous transition between two valid FBC configurations. The page-flip path itself will have disabled FBC registers and will have waited for at least one vblank before finishing the flip and attempting to re-enable FBC. This wait can be accomplished simply by delaying the enable until after we are sure that a vblank will have passed, which we are already doing to make sure that the display is settled before enabling FBC. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 3154b3dfd804..00dc59a51ccd 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -331,10 +331,8 @@ typedef struct drm_i915_private {
331 uint32_t last_instdone1; 331 uint32_t last_instdone1;
332 332
333 unsigned long cfb_size; 333 unsigned long cfb_size;
334 unsigned long cfb_pitch; 334 unsigned int cfb_fb;
335 unsigned long cfb_offset; 335 enum plane cfb_plane;
336 int cfb_fence;
337 int cfb_plane;
338 int cfb_y; 336 int cfb_y;
339 struct intel_fbc_work *fbc_work; 337 struct intel_fbc_work *fbc_work;
340 338