linux/drivers/gpu/drm/i915
Mario Kleiner 0af7e4dff5 drm/i915: Add support for precise vblank timestamping (v2)
v2: Change IS_IRONLAKE to IS_GEN5 to adapt to 2.6.37

This patch adds new functions for use by the drm core:

.get_vblank_timestamp() provides a precise timestamp
for the end of the most recent (or current) vblank
interval of a given crtc, as needed for the DRI2
implementation of the OML_sync_control extension.
It is a thin wrapper around the drm function
drm_calc_vbltimestamp_from_scanoutpos() which does
almost all the work.

.get_scanout_position() provides the current horizontal
and vertical video scanout position and "in vblank"
status of a given crtc, as needed by the drm for use by
drm_calc_vbltimestamp_from_scanoutpos().

The patch modifies the pageflip completion routine
to use these precise vblank timestamps as the timestamps
for pageflip completion events.

This code has been only tested on a HP-Mini Netbook with
Atom processor and Intel 945GME gpu. The codepath for
(IS_G4X(dev) || IS_GEN5(dev) || IS_GEN6(dev)) gpu's
has not been tested so far due to lack of hardware.

Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-12-16 21:02:24 +00:00
..
dvo_ch7xxx.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_ch7017.c drm/i915: Tidy dvo_ch7017 and print out which chip we detect 2010-09-28 23:33:17 +01:00
dvo_ivch.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_sil164.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_tfp410.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo.h drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
i915_debugfs.c drm/i915: Add self-refresh support on Sandybridge 2010-12-15 11:16:57 +00:00
i915_dma.c drm/i915: Add frame buffer compression on Sandybridge 2010-12-15 11:22:27 +00:00
i915_drv.c drm/i915: Add support for precise vblank timestamping (v2) 2010-12-16 21:02:24 +00:00
i915_drv.h drm/i915: Add support for precise vblank timestamping (v2) 2010-12-16 21:02:24 +00:00
i915_gem_debug.c drm/i915: Use drm_i915_gem_object as the preferred type 2010-11-23 20:19:10 +00:00
i915_gem_evict.c drm/i915: Avoid allocation for execbuffer object list 2010-11-25 21:19:26 +00:00
i915_gem_execbuffer.c drm/i915: Mark the user reloc error paths as unlikely 2010-12-09 19:46:22 +00:00
i915_gem_gtt.c drm/i915/gtt: Clear the cachelines upon resume 2010-12-09 19:46:23 +00:00
i915_gem_tiling.c drm/i915: Pipelined fencing [infrastructure] 2010-12-02 10:07:05 +00:00
i915_gem.c drm/i915: Poll for seqno completion if IRQ is disabled 2010-12-14 12:19:25 +00:00
i915_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
i915_irq.c drm/i915: Add support for precise vblank timestamping (v2) 2010-12-16 21:02:24 +00:00
i915_mem.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
i915_reg.h drm/i915: Add support for precise vblank timestamping (v2) 2010-12-16 21:02:24 +00:00
i915_suspend.c drm/i915: Uncouple render/power ctx before suspending 2010-12-05 23:19:37 +00:00
i915_trace_points.c drm/i915: Add tracepoints 2009-09-23 01:05:21 +01:00
i915_trace.h drm/i915: Kill the get_fence tracepoint 2010-12-02 10:20:47 +00:00
intel_acpi.c drm/i915: i915 cannot provide switcher services. 2010-12-08 15:40:44 +10:00
intel_bios.c drm/i915: IS_IRONLAKE is synonymous with gen == 5 2010-10-21 19:08:39 +01:00
intel_bios.h drm/i915: Initialize panel timing registers if VBIOS did not 2010-10-19 09:17:24 +01:00
intel_crt.c drm/i915: Take advantage of auto-polling CRT hotplug detection on PCH hardware 2010-11-19 09:30:28 +00:00
intel_display.c drm/i915: Add support for precise vblank timestamping (v2) 2010-12-16 21:02:24 +00:00
intel_dp.c Merge branch 'drm-intel-fixes' into drm-intel-next 2010-12-09 20:22:04 +00:00
intel_drv.h drm/i915: Uncouple render/power ctx before suspending 2010-12-05 23:19:37 +00:00
intel_dvo.c drm/i915/dvo: Fix panel and DDC i2c pins 2010-09-28 23:34:44 +01:00
intel_fb.c drm/i915: Use drm_i915_gem_object as the preferred type 2010-11-23 20:19:10 +00:00
intel_hdmi.c i915: enable AVI infoframe for intel_hdmi.c [v4] 2010-10-22 09:14:30 +01:00
intel_i2c.c Merge branch 'drm-intel-fixes' into drm-intel-next 2010-11-15 06:49:30 +00:00
intel_lvds.c Merge branch 'drm-intel-fixes' into drm-intel-next 2010-12-07 23:02:08 +00:00
intel_modes.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
intel_opregion.c drm/i915: Implement GPU semaphores for inter-ring synchronisation on SNB 2010-12-05 00:37:38 +00:00
intel_overlay.c drm/i915: Implement GPU semaphores for inter-ring synchronisation on SNB 2010-12-05 00:37:38 +00:00
intel_panel.c drm/i915/panel: Restore saved value of BLC_PWM_CTL 2010-11-23 09:54:17 +00:00
intel_ringbuffer.c Revert "drm/i915: Avoid using PIPE_CONTROL on Ironlake" 2010-12-15 10:15:25 +00:00
intel_ringbuffer.h drm/i915/ringbuffer: Make IRQ refcnting atomic 2010-12-14 11:34:46 +00:00
intel_sdvo_regs.h drm/i915/sdvo: Add missing TV filters 2010-08-09 11:24:29 -07:00
intel_sdvo.c drm/i915/sdvo: Only use the SDVO pin if it is in the valid range 2010-12-09 20:20:42 +00:00
intel_tv.c drm/i915: Implement GPU semaphores for inter-ring synchronisation on SNB 2010-12-05 00:37:38 +00:00
Makefile drm/i915: Split i915_gem_execbuffer into its own file. 2010-11-25 21:19:25 +00:00