linux-stable/drivers/gpu/drm
Ville Syrjälä 4dfd64862f drm: Use vblank timestamps to guesstimate how many vblanks were missed
When lacking am accurate hardware frame counter, we can fall back to
using the vblank timestamps to guesstimagte how many vblanks have
elapsed since the last time the vblank counter was updated.

Take the oppostunity to unify the vblank_disable_and_save() and
drm_handle_vblank_events() to call the same function
(drm_update_vblank_count()) to perform the vblank updates.

If the hardware/driver has an accurate frame counter use it instead of
the timestamp based guesstimate. If the hardware/driver has neither
a frame counter nor acurate vblank timestamps, we fall back to assuming
that each drm_handle_vblank_events() should increment the vblank count
by one.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-09-24 20:14:24 +02:00
..
amd drm: Stop using linedur_ns and pixeldur_ns for vblank timestamps 2015-09-24 20:14:21 +02:00
armada
ast
atmel-hlcdc drm/atomic: Make prepare_fb/cleanup_fb only take state, v3. 2015-09-08 13:45:54 +02:00
bochs
bridge Merge branch 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next 2015-08-27 13:01:57 +10:00
cirrus
exynos Linux 4.3-rc2 2015-09-24 17:18:41 +02:00
fsl-dcu Linux 4.3-rc2 2015-09-24 17:18:41 +02:00
gma500
i2c Linux 4.3-rc2 2015-09-24 17:18:41 +02:00
i810
i915 drm/i915: Fix vblank count variable types 2015-09-24 20:14:22 +02:00
imx Merge branch 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next 2015-08-27 13:01:57 +10:00
mga
mgag200 drm/mgag200: Add support for a new rev of G200e 2015-08-24 13:47:16 +10:00
msm Linux 4.3-rc2 2015-09-24 17:18:41 +02:00
nouveau drm: Stop using linedur_ns and pixeldur_ns for vblank timestamps 2015-09-24 20:14:21 +02:00
omapdrm drm: Spell vga_switcheroo consistently 2015-09-24 20:14:19 +02:00
panel
qxl drm/qxl: validate monitors config modes 2015-09-11 10:51:33 +10:00
r128
radeon drm: Stop using linedur_ns and pixeldur_ns for vblank timestamps 2015-09-24 20:14:21 +02:00
rcar-du drm/atomic-helper: Add option to update planes only on active crtc 2015-09-08 13:49:08 +02:00
rockchip drm/rockchip: vop: support plane scale 2015-08-26 14:16:26 +08:00
savage
shmobile
sis
sti drm/atomic-helper: Add option to update planes only on active crtc 2015-09-08 13:49:08 +02:00
tdfx
tegra drm/tegra: Handle I2C_WRITE_STATUS_UPDATE for address only writes 2015-09-08 20:15:42 +02:00
tilcdc
ttm
udl
vgem mm: mark most vm_operations_struct const 2015-09-10 13:29:01 -07:00
via
virtio
vmwgfx Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-09-04 15:49:32 -07:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic.c Linux 4.3-rc2 2015-09-24 17:18:41 +02:00
drm_atomic_helper.c Linux 4.3-rc2 2015-09-24 17:18:41 +02:00
drm_auth.c
drm_bridge.c
drm_bufs.c
drm_cache.c
drm_context.c
drm_crtc.c drm/core: Do not call drm_framebuffer_remove internally during teardown. 2015-09-09 16:47:45 +02:00
drm_crtc_helper.c
drm_crtc_internal.h
drm_debugfs.c
drm_dma.c
drm_dp_helper.c Linux 4.3-rc2 2015-09-24 17:18:41 +02:00
drm_dp_mst_topology.c Linux 4.2-rc8 2015-08-24 16:36:42 +10:00
drm_drv.c drm: move drm_class into drm_sysfs.c 2015-09-09 15:05:17 +02:00
drm_edid.c drm: Make drm_av_sync_delay() 'mode' argument const 2015-09-09 14:53:54 +02:00
drm_edid_load.c drm: Constify generic_edid_names[] 2015-09-08 13:45:52 +02:00
drm_encoder_slave.c
drm_fb_cma_helper.c
drm_fb_helper.c drm/fbdev: Update legacy plane->fb refcounting for atomic restore 2015-09-24 20:14:20 +02:00
drm_flip_work.c
drm_fops.c
drm_gem.c
drm_gem_cma_helper.c
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h drm: move drm_class into drm_sysfs.c 2015-09-09 15:05:17 +02:00
drm_ioc32.c
drm_ioctl.c
drm_irq.c drm: Use vblank timestamps to guesstimate how many vblanks were missed 2015-09-24 20:14:24 +02:00
drm_legacy.h
drm_lock.c
drm_memory.c
drm_mipi_dsi.c
drm_mm.c drm/mm: Do DRM_MM_CREATE_TOP adj_start calculation after color_adjust 2015-09-08 13:45:47 +02:00
drm_modes.c
drm_modeset_lock.c drm/atomic: Make sure lock is held in trylock contexts. 2015-09-08 13:45:53 +02:00
drm_of.c
drm_panel.c
drm_pci.c
drm_plane_helper.c drm/atomic: Make prepare_fb/cleanup_fb only take state, v3. 2015-09-08 13:45:54 +02:00
drm_platform.c
drm_prime.c
drm_probe_helper.c
drm_rect.c
drm_scatter.c
drm_sysfs.c drm: move drm_class into drm_sysfs.c 2015-09-09 15:05:17 +02:00
drm_trace.h
drm_trace_points.c
drm_vm.c
drm_vma_manager.c
Kconfig Merge branch 'drm-next-fsl-dcu' of https://github.com/Jianwei-Wang/linux-drm-fsl-dcu into drm-next 2015-08-20 14:11:17 +10:00
Makefile drm/layerscape: Add Freescale DCU DRM driver 2015-08-19 22:23:04 -04:00