WSL2-Linux-Kernel/include/drm
Veera Sundaram Sankaran 583065c7aa drm/drm_vblank: set the dma-fence timestamp during send_vblank_event
The explicit out-fences in crtc are signaled as part of vblank event,
indicating all framebuffers present on the Atomic Commit request are
scanned out on the screen. Though the fence signal and the vblank event
notification happens at the same time, triggered by the same hardware
vsync event, the timestamp set in both are different. With drivers
supporting precise vblank timestamp the difference between the two
timestamps would be even higher. This might have an impact on use-mode
frameworks using these fence timestamps for purposes other than simple
buffer usage. For instance, the Android framework [1] uses the
retire-fences as an alternative to vblank when frame-updates are in
progress. Set the fence timestamp during send vblank event using a new
drm_send_event_timestamp_locked variant to avoid discrepancies.

[1] https://android.googlesource.com/platform/frameworks/native/+/master/
services/surfaceflinger/Scheduler/Scheduler.cpp#397

Changes in v2:
- Use drm_send_event_timestamp_locked to update fence timestamp
- add more information to commit text

Changes in v3:
- use same backend helper function for variants of drm_send_event to
avoid code duplications

Changes in v4:
- remove WARN_ON from drm_send_event_timestamp_locked

Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Reviewed-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
  [sumits: minor parenthesis alignment correction]
Link: https://patchwork.freedesktop.org/patch/msgid/1610757107-11892-2-git-send-email-veeras@codeaurora.org
(cherry picked from commit a78e7a51d2)
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
2021-02-24 21:05:54 +05:30
..
bridge
i2c
ttm drm/ttm: WARN_ON non-empty lru when disabling a resource manager 2021-01-18 14:15:20 +01:00
amd_asic_type.h
drm_agpsupport.h drm: Inline AGP wrappers into their only callers 2021-01-13 14:21:53 +01:00
drm_atomic.h drm: Document use-after-free gotcha with private objects 2020-12-15 11:33:23 +01:00
drm_atomic_helper.h drm: automatic legacy gamma support 2020-12-15 15:46:03 +02:00
drm_atomic_state_helper.h
drm_atomic_uapi.h
drm_audio_component.h
drm_auth.h
drm_blend.h
drm_bridge.h
drm_bridge_connector.h
drm_cache.h
drm_client.h drm/gem: Store client buffer mappings as struct dma_buf_map 2020-11-09 09:19:45 +01:00
drm_color_mgmt.h
drm_connector.h Merge tag 'topic/dp-hdmi-2.1-pcon-2020-12-23' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-01-07 11:02:25 +01:00
drm_crtc.h drm: drm_crc: fix a kernel-doc markup 2021-01-14 15:11:46 +01:00
drm_crtc_helper.h
drm_damage_helper.h
drm_debugfs.h
drm_debugfs_crc.h
drm_device.h drm: Move struct drm_device.hose to legacy section 2021-01-13 14:22:37 +01:00
drm_displayid.h
drm_dp_dual_mode_helper.h
drm_dp_helper.h drm/dp: Revert "drm/dp: Introduce EDID-based quirks" 2021-01-19 12:35:52 -05:00
drm_dp_mst_helper.h drm/dp/mst: Export drm_dp_get_vc_payload_bw() 2021-01-28 21:34:02 +02:00
drm_drv.h drm: Move legacy device list out of drm_driver 2021-01-05 07:20:29 +02:00
drm_dsc.h - Display hotplug fix for gen2/gen3 (Chris) 2021-01-07 12:20:29 +01:00
drm_edid.h drm/edid: Add additional HFVSDB fields for HDMI2.1 2020-12-22 17:39:06 +02:00
drm_encoder.h drm: add drmm_encoder_alloc() 2021-01-04 12:59:33 +01:00
drm_encoder_slave.h
drm_fb_cma_helper.h
drm_fb_helper.h drm/fb-helper: Rename dirty worker to damage worker 2020-11-24 09:27:55 +01:00
drm_file.h drm/drm_vblank: set the dma-fence timestamp during send_vblank_event 2021-02-24 21:05:54 +05:30
drm_fixed.h
drm_flip_work.h
drm_format_helper.h
drm_fourcc.h
drm_framebuffer.h
drm_gem.h drm: Don't export the drm_gem_dumb_destroy() function 2021-01-05 07:20:25 +02:00
drm_gem_cma_helper.h drm/cma-helper: Implement mmap as GEM CMA object functions 2020-11-30 13:38:27 +01:00
drm_gem_framebuffer_helper.h
drm_gem_shmem_helper.h drm/shmem-helper: Removed drm_gem_shmem_create_object_cached() 2020-11-24 09:10:33 +01:00
drm_gem_ttm_helper.h drm/ttm: Add vmap/vunmap to TTM and TTM GEM helpers 2020-11-09 09:17:36 +01:00
drm_gem_vram_helper.h drm: fix some kernel-doc markups 2020-11-16 20:48:20 +01:00
drm_hashtab.h
drm_hdcp.h drm/hdcp: Max MST content streams 2021-01-13 08:29:32 +05:30
drm_ioctl.h
drm_irq.h drm/irq: Add the new api to install irq 2020-12-03 03:57:15 -05:00
drm_lease.h
drm_legacy.h drm: Use a const drm_driver for legacy PCI devices 2021-01-05 07:20:35 +02:00
drm_managed.h drm: Remove drmm_add_final_kfree() declaration from public headers 2020-12-05 20:01:12 +01:00
drm_mipi_dbi.h drm/mipi-dbi: Switch to new kerneldoc syntax for named variable macro argument 2021-01-08 09:54:43 +01:00
drm_mipi_dsi.h
drm_mm.h
drm_mode_config.h drm/fb_helper: Support framebuffers in I/O memory 2020-11-09 09:20:00 +01:00
drm_mode_object.h
drm_modes.h drm/modes: add non-OF stub for of_get_drm_display_mode 2021-01-08 19:42:14 +01:00
drm_modeset_helper.h
drm_modeset_helper_vtables.h - Add default modes for connectors in unknown state 2021-01-07 13:02:57 +01:00
drm_modeset_lock.h
drm_of.h
drm_panel.h
drm_pciids.h
drm_plane.h drm/plane: add drmm_universal_plane_alloc() 2021-01-04 12:59:33 +01:00
drm_plane_helper.h
drm_prime.h drm/prime: split array import functions v4 2020-11-30 15:00:45 +01:00
drm_print.h
drm_probe_helper.h
drm_property.h drm: Fix macro name DRM_MODE_PROP_OBJECT in code comment 2021-01-12 09:56:48 +01:00
drm_rect.h drm: Add function to convert rect in 16.16 fixed format to regular format 2021-01-05 05:32:52 -08:00
drm_scdc_helper.h
drm_self_refresh_helper.h
drm_simple_kms_helper.h drm/simple_kms_helper: add drmm_simple_encoder_alloc() 2021-01-04 12:59:33 +01:00
drm_syncobj.h
drm_sysfs.h
drm_util.h
drm_utils.h
drm_vblank.h
drm_vblank_work.h
drm_vma_manager.h
drm_writeback.h
gma_drm.h
gpu_scheduler.h Revert "drm/scheduler: Job timeout handler returns status (v3)" 2021-02-10 15:26:00 +01:00
i915_component.h
i915_drm.h
i915_mei_hdcp_interface.h
i915_pciids.h drm/i915: Sort EHL/JSL PCI IDs 2020-11-06 14:09:30 +02:00
intel-gtt.h
intel_lpe_audio.h
spsc_queue.h
task_barrier.h