2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-04 11:43:54 +08:00
linux-next/drivers/gpu/drm
Mario Kleiner fdb68e09bb drm: Zero out invalid vblank timestamp in drm_update_vblank_count.
Since commit 844b03f277 we make
sure that after vblank irq off, we return the last valid
(vblank count, vblank timestamp) pair to clients, e.g., during
modesets, which is good.

An overlooked side effect of that commit for kms drivers without
support for precise vblank timestamping is that at vblank irq
enable, when we update the vblank counter from the hw counter, we
can't update the corresponding vblank timestamp, so now we have a
totally mismatched timestamp for the new count to confuse clients.

Restore old client visible behaviour from before Linux 3.17, but
zero out the timestamp at vblank counter update (instead of disable
as in original implementation) if we can't generate a meaningful
timestamp immediately for the new vblank counter. This will fix
this regression, so callers know they need to retry again later
if they need a valid timestamp, but at the same time preserves
the improvements made in the commit mentioned above.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: <stable@vger.kernel.org> #v3.17+

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2015-05-11 06:02:38 +10:00
..
amd drm/amdkfd: Initialize sdma vm when creating sdma queue 2015-05-07 17:38:06 +03:00
armada dma-buf: cleanup dma_buf_export() to make it easily extensible 2015-04-21 14:47:16 +05:30
ast drm/fb-helper: Propagate errors from initial config failure 2015-01-21 14:57:03 +01:00
atmel-hlcdc drm: atmel-hlcdc: use appropriate enabled flag in suspend/resume 2015-03-16 16:10:42 +01:00
bochs drm/bochs: disable video before changing video mode 2015-04-01 08:28:15 +10:00
bridge Merge branch 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next 2015-04-16 08:33:30 +10:00
cirrus Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-02-16 15:48:00 -08:00
exynos dma-buf: cleanup dma_buf_export() to make it easily extensible 2015-04-21 14:47:16 +05:30
gma500 drm/gma500: constify all struct drm_*_helper funcs pointers 2015-04-07 17:06:41 +02:00
i2c drm: adv7511: Refactor power management 2015-03-19 12:28:55 +02:00
i810
i915 drm/i915/chv: Implement WaDisableShadowRegForCpd 2015-04-28 17:31:29 +03:00
imx Merge branch 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next 2015-04-16 08:33:30 +10:00
mga
mgag200 drm/mgag200: constify all struct drm_*_helper funcs pointers 2015-04-07 17:06:41 +02:00
msm Merge Linus master into drm-next 2015-04-20 13:05:20 +10:00
nouveau Merge tag 'topic/drm-misc-2015-04-15' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-04-16 08:34:24 +10:00
omapdrm dma-buf: cleanup dma_buf_export() to make it easily extensible 2015-04-21 14:47:16 +05:30
panel drm/panel: Add support for Ampire AM-800480R3TMQW-A1H 800x480 7" panel 2015-04-02 19:04:15 +02:00
qxl drm/qxl: constify all struct drm_*_helper funcs pointers 2015-04-07 18:11:24 +02:00
r128
radeon drm/radeon: stop trying to suspend UVD sessions 2015-05-07 11:00:18 -04:00
rcar-du drm: Use of-graph helpers to loop over endpoints 2015-04-13 17:28:16 +10:00
rockchip drm/rockchip: fix error check when getting irq 2015-04-20 09:02:31 +08:00
savage
shmobile drm: Kconfig: Let all DRM_GEM_CMA_HELPER related macros depend on HAVE_DMA_ATTRS 2015-02-03 11:12:37 +10:00
sis
sti drm: sti: convert driver to atomic modeset 2015-03-19 13:35:16 +01:00
tdfx
tegra drm/tegra: Don't use vblank_disable_immediate on incapable driver. 2015-05-08 20:56:34 +10:00
tilcdc drm: Kconfig: Let all DRM_GEM_CMA_HELPER related macros depend on HAVE_DMA_ATTRS 2015-02-03 11:12:37 +10:00
ttm dma-buf: cleanup dma_buf_export() to make it easily extensible 2015-04-21 14:47:16 +05:30
udl dma-buf: cleanup dma_buf_export() to make it easily extensible 2015-04-21 14:47:16 +05:30
vgem drm/vgem: implement virtual GEM 2015-04-02 09:21:48 +10:00
via
vmwgfx Merge tag 'topic/drm-misc-2015-03-31' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-04-01 08:23:25 +10:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c Merge tag 'topic/drm-misc-2015-04-15' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-04-16 08:34:24 +10:00
drm_atomic.c drm/atomic: Add for_each_{connector,crtc,plane}_in_state helper macros 2015-04-11 18:50:22 +02:00
drm_auth.c
drm_bridge.c drm: Silence sparse warnings 2015-03-13 17:37:35 +01:00
drm_bufs.c
drm_cache.c
drm_context.c
drm_crtc_helper.c drm/drm: constify all struct drm_*_helper funcs pointers 2015-04-07 18:11:25 +02:00
drm_crtc_internal.h drm/atomic: Hide drm.ko internal interfaces 2015-01-05 13:55:30 +01:00
drm_crtc.c Merge Linus master into drm-next 2015-04-20 13:05:20 +10:00
drm_debugfs.c
drm_dma.c
drm_dp_helper.c drm/dp: Print the number of bytes processed for aux nacks 2015-03-23 16:22:29 +01:00
drm_dp_mst_topology.c Merge tag 'drm-intel-next-2015-03-13-merge' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-03-24 11:12:20 +10:00
drm_drv.c drm: %pF is only for function pointers 2015-03-13 10:17:38 +01:00
drm_edid_load.c drm/edid: set ELD for firmware and debugfs override EDIDs 2015-03-27 13:27:04 +02:00
drm_edid.c
drm_encoder_slave.c
drm_fb_cma_helper.c drm/cma: use correct fb width/height 2015-03-11 22:08:07 +01:00
drm_fb_helper.c drm/drm: constify all struct drm_*_helper funcs pointers 2015-04-07 18:11:25 +02:00
drm_flip_work.c
drm_fops.c drm: Make drm_read() more robust against multithreaded races 2015-01-21 14:57:03 +01:00
drm_gem_cma_helper.c
drm_gem.c
drm_global.c
drm_hashtab.c
drm_info.c drm: Silence sparse warnings 2015-03-13 17:37:35 +01:00
drm_internal.h
drm_ioc32.c drm: Silence sparse warnings 2015-03-13 17:37:35 +01:00
drm_ioctl.c drm: line wrap DRM_IOCTL_DEF* macros 2015-03-31 09:18:40 +02:00
drm_irq.c drm: Zero out invalid vblank timestamp in drm_update_vblank_count. 2015-05-11 06:02:38 +10:00
drm_legacy.h
drm_lock.c
drm_memory.c
drm_mipi_dsi.c drm/mipi-dsi: Avoid potential NULL pointer dereference 2015-01-28 08:45:37 +01:00
drm_mm.c [PATCH] drm/mm: Fix support 4 GiB and larger ranges 2015-03-16 06:28:50 +10:00
drm_modes.c drm: mode: Allow NULL modes for equality check 2015-03-23 16:22:30 +01:00
drm_modeset_lock.c
drm_of.c drm: use for_each_endpoint_of_node macro in drm_of_find_possible_crtcs 2015-04-08 11:14:25 +02:00
drm_panel.c
drm_pci.c drm: Silence sparse warnings 2015-03-13 17:37:35 +01:00
drm_plane_helper.c drm/drm: constify all struct drm_*_helper funcs pointers 2015-04-07 18:11:25 +02:00
drm_platform.c
drm_prime.c dma-buf: cleanup dma_buf_export() to make it easily extensible 2015-04-21 14:47:16 +05:30
drm_probe_helper.c Merge tag 'topic/drm-misc-2015-04-15' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-04-16 08:34:24 +10:00
drm_rect.c
drm_scatter.c
drm_sysfs.c drm: Lighten sysfs connector 'status' 2015-03-10 09:59:36 +01:00
drm_trace_points.c
drm_trace.h tracing/drm: Remove unused TRACE_SYSTEM_STRING define 2015-04-07 12:29:23 -04:00
drm_vm.c drm: Silence sparse warnings 2015-03-13 17:37:35 +01:00
drm_vma_manager.c mm: remove rest usage of VM_NONLINEAR and pte_file() 2015-02-10 14:30:31 -08:00
Kconfig drm/vgem: implement virtual GEM 2015-04-02 09:21:48 +10:00
Makefile drm/vgem: implement virtual GEM 2015-04-02 09:21:48 +10:00