linux-uconsole/include/drm
Veera Sundaram Sankaran a9b76c4519 UPSTREAM: 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

Bug: 173434777
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Signed-off-by: Narendra Muppalla <NarendraM@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>
Change-Id: Iaa29508f72e2c9c7abd2e3fe7a4dc7b9665336a5
2021-04-07 14:20:07 +00:00
..
bridge drm/bridge: dw-mipi-dsi: permit configuring the escape clock rate 2020-09-11 15:01:36 +02:00
i2c
ttm drm/ttm: drop evicted from ttm_bo. 2020-09-18 06:23:38 +10:00
amd_asic_type.h drm/amdgpu: add navy_flounder asic type 2020-07-15 12:45:39 -04:00
drm_agpsupport.h
drm_atomic.h drm: drm_atomic.h: delete duplicated word in comment 2020-07-15 14:02:29 +02:00
drm_atomic_helper.h drm/atomic-helper: Extract drm_atomic_helper_calc_timestamping_constants() 2020-09-14 22:36:44 +03:00
drm_atomic_state_helper.h drm/bridge: Add a drm_bridge_state object 2020-01-31 16:00:21 +01:00
drm_atomic_uapi.h
drm_audio_component.h ALSA: hda/i915 - fix list corruption with concurrent probes 2020-10-09 16:46:04 +02:00
drm_auth.h
drm_blend.h
drm_bridge.h drm: drm_bridge.h: delete duplicated word in comment 2020-07-15 14:02:34 +02:00
drm_bridge_connector.h drm: Add helper to create a connector for a chain of bridges 2020-02-26 13:31:41 +02:00
drm_cache.h
drm_client.h drm/client: Add drm_client_modeset_check() 2020-05-26 13:32:03 +02:00
drm_color_mgmt.h
drm_connector.h Revert "ANDROID: driver: gpu: drm: add notifier for panel related events" 2020-10-16 05:37:35 +00:00
drm_crtc.h drm: Add get_vblank_timestamp() to struct drm_crtc_funcs 2020-02-13 13:08:13 +01:00
drm_crtc_helper.h
drm_damage_helper.h
drm_debugfs.h drm/debugfs: remove checks for return value of drm_debugfs functions. 2020-03-18 17:32:20 +01:00
drm_debugfs_crc.h
drm_device.h drm/managed: Cleanup of unused functions and polishing docs 2020-09-03 16:25:06 +02:00
drm_displayid.h drm/edid: Replace zero-length array with flexible-array 2020-06-15 23:08:31 -05:00
drm_dp_dual_mode_helper.h
drm_dp_helper.h drm: kernel-doc: drm_dp_helper.h: fix a typo 2020-10-27 11:21:27 +01:00
drm_dp_mst_helper.h drm/dp/mst: Export drm_dp_get_vc_payload_bw() 2021-02-10 09:29:18 +01:00
drm_drv.h Merge 93b694d096 ("Merge tag 'drm-next-2020-10-15' of git://anongit.freedesktop.org/drm/drm") into android-mainline 2020-10-26 07:53:47 +01:00
drm_dsc.h drm: drm_dsc.h: fix a kernel-doc markup 2020-09-30 16:40:44 +02:00
drm_edid.h drm: drm_edid: remove a duplicated kernel-doc declaration 2020-10-27 11:20:55 +01:00
drm_encoder.h drm: Validate encoder->possible_crtcs 2020-03-18 18:38:27 +02:00
drm_encoder_slave.h
drm_fb_cma_helper.h drm/fb-cma-helpers: Fix include issue 2020-01-09 17:33:41 +01:00
drm_fb_helper.h drm: Don't return 0 from a void drm_fbdev_generic_setup 2020-04-08 22:42:39 +01:00
drm_file.h UPSTREAM: drm/drm_vblank: set the dma-fence timestamp during send_vblank_event 2021-04-07 14:20:07 +00:00
drm_fixed.h
drm_flip_work.h
drm_format_helper.h drm/format-helper: Add drm_fb_swab() 2020-05-26 13:33:08 +02:00
drm_fourcc.h drm/fb: Extend format_info member arrays to handle four planes 2020-01-07 13:16:08 +02:00
drm_framebuffer.h drm/core: Calculate bpp in afbc helper 2020-04-01 14:11:22 +02:00
drm_gem.h drm: drm_gem.h: delete duplicated words in comments 2020-07-15 14:02:42 +02:00
drm_gem_cma_helper.h drm/cma-helper: Add DRM_GEM_CMA_DRIVER_OPS to set default GEM CMA functions 2020-06-10 09:01:49 +02:00
drm_gem_framebuffer_helper.h drm/core: Add drm_afbc_framebuffer and a corresponding helper 2020-03-18 11:22:05 +01:00
drm_gem_shmem_helper.h drm/shmem-helper: Add .gem_create_object helper that sets map_cached flag 2020-06-10 10:16:43 +02:00
drm_gem_ttm_helper.h
drm_gem_vram_helper.h drm/vboxvideo: Use drm_gem_vram_vmap() interfaces 2020-09-14 09:12:24 +02:00
drm_hashtab.h
drm_hdcp.h drm/i915: Fix sha_text population code 2020-09-02 10:48:11 +03:00
drm_ioctl.h
drm_irq.h
drm_lease.h
drm_legacy.h drm-misc-next for 5.8: 2020-04-22 10:41:35 +10:00
drm_managed.h drm: Add docs for managed resources 2020-03-26 16:09:48 +01:00
drm_mipi_dbi.h drm/mipi-dbi: Remove ->enabled 2020-06-24 09:17:34 +02:00
drm_mipi_dsi.h Merge 9f68e3655a ("Merge tag 'drm-next-2020-01-30' of git://anongit.freedesktop.org/drm/drm") into android-mainline 2020-02-06 20:36:56 +01:00
drm_mm.h drm: fix spelling error in comments 2020-09-17 13:39:44 +02:00
drm_mode_config.h Merge drm/drm-next into drm-misc-next 2020-08-12 20:42:08 +02:00
drm_mode_object.h
drm_modes.h drm: Replace mode->export_head with a boolean 2020-09-01 13:38:34 +03:00
drm_modeset_helper.h
drm_modeset_helper_vtables.h drm/probe_helper: Add drm_connector_helper_funcs.mode_valid_ctx 2020-07-13 13:29:20 -04:00
drm_modeset_lock.h drm/modeset-lock: Take the modeset BKL for legacy drivers 2020-08-17 13:41:50 -04:00
drm_of.h drm: of: Fix linking when CONFIG_OF is not set 2020-01-09 10:40:58 +10:00
drm_panel.h Revert "ANDROID: driver: gpu: drm: add notifier for panel related events" 2020-10-16 05:37:35 +00:00
drm_pciids.h
drm_plane.h
drm_plane_helper.h
drm_prime.h Merge 93b694d096 ("Merge tag 'drm-next-2020-10-15' of git://anongit.freedesktop.org/drm/drm") into android-mainline 2020-10-26 07:53:47 +01:00
drm_print.h drm: drm_print.h: fix kernel-doc markups 2020-10-27 11:21:39 +01:00
drm_probe_helper.h
drm_property.h
drm_rect.h drm: drm_rect.h: delete duplicated word in comment 2020-07-15 14:03:02 +02:00
drm_scdc_helper.h
drm_self_refresh_helper.h
drm_simple_kms_helper.h drm/simple-kms: Add drm_simple_encoder_{init,create}() 2020-03-02 09:22:35 +01:00
drm_syncobj.h
drm_sysfs.h
drm_util.h
drm_utils.h
drm_vblank.h drm/vblank: Add vblank works 2020-07-16 18:16:31 -04:00
drm_vblank_work.h drm/vblank: Add vblank works 2020-07-16 18:16:31 -04:00
drm_vma_manager.h
drm_writeback.h drm/writeback: wire drm_writeback.h to kernel-doc 2020-04-07 17:39:46 +02:00
gma_drm.h
gpu_scheduler.h Merge tag 'amd-drm-next-5.10-2020-09-03' of git://people.freedesktop.org/~agd5f/linux into drm-next 2020-09-08 16:40:13 +10:00
i915_component.h
i915_drm.h
i915_mei_hdcp_interface.h drm/i915: significantly reduce the use of <drm/i915_drm.h> 2020-02-27 08:35:09 +02:00
i915_pciids.h drm/i915: break TGL pci-ids in GT 1 & 2 2020-08-31 17:58:26 +03:00
intel-gtt.h iommu/vt-d: Move intel_iommu_gfx_mapped to Intel IOMMU header 2020-09-04 12:12:45 +02:00
intel_lpe_audio.h
spsc_queue.h
task_barrier.h drm: Add Reusable task barrier. 2019-12-18 16:09:12 -05:00