• M
    drm/i915: Add support for precise vblank timestamping (v2) · 0af7e4df
    Mario Kleiner 提交于
    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: NMario Kleiner <mario.kleiner@tuebingen.mpg.de>
    Acked-by: NJesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
    0af7e4df
i915_irq.c 49.3 KB