So I took another look at the vblank timestamping code, and got a bit excited. The result is this patchset.
Summary of changes: - kill crtc->hwmode dependency - eliminate a bunch of 64bit math - fix timestamps for stereo and interlaced modes (on i915 at least) - move the "early vbl irq" hack into radeon code - add a similar hack to i915, but make it as finely targeted as possibly to minimize the chance of accidentally applying it in the wrong place The s/clock/crtc_clock change could use some radeon people to verify whether changing radeon_atom_get_tv_timings() is enough to make crtc_clock always populated. This series applies on top of Mario's "Vblank timestamping improvements/fixes for Linux drm." series. Ville Syrjälä (14): drm: Pass the display mode to drm_calc_timestamping_constants() drm: Pass the display mode to drm_calc_vbltimestamp_from_scanoutpos() drm/i915: Kill hwmode save/restore drm/i915: Call drm_calc_timestamping_constants() earlier drm: Improve drm_calc_timestamping_constants() documentation drm: Simplify the math in drm_calc_timestamping_constants() drm/radeon: Populate crtc_clock in radeon_atom_get_tv_timings() drm: Use crtc_clock in drm_calc_timestamping_constants() drm: Change {pixel,line,frame}dur_ns from s64 to int drm/i915: Fix scanoutpos calculations for interlaced modes drm: Fix vblank timestamping constants for interlaced modes drm: Pass 'flags' from the caller to .get_scanout_position() drm/radeon: Move the early vblank IRQ fixup to radeon_get_crtc_scanoutpos() drm/i915: Add a kludge for DSL incrementing too late and ISR not working drivers/gpu/drm/drm_crtc_helper.c | 2 +- drivers/gpu/drm/drm_irq.c | 109 ++++++++++++------------------- drivers/gpu/drm/i915/i915_irq.c | 91 ++++++++++++++------------ drivers/gpu/drm/i915/intel_display.c | 29 ++++---- drivers/gpu/drm/radeon/radeon_atombios.c | 6 +- drivers/gpu/drm/radeon/radeon_display.c | 29 +++++++- drivers/gpu/drm/radeon/radeon_kms.c | 2 +- drivers/gpu/drm/radeon/radeon_mode.h | 1 + drivers/gpu/drm/radeon/radeon_pm.c | 2 +- include/drm/drmP.h | 8 ++- include/drm/drm_crtc.h | 2 +- 11 files changed, 143 insertions(+), 138 deletions(-) _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx