twx-linux/include/drm
Gustavo Padovan fef9df8b59 drm/atomic: initial support for asynchronous plane update
In some cases, like cursor updates, it is interesting to update the
plane in an asynchronous fashion to avoid big delays. The current queued
update could be still waiting for a fence to signal and thus block any
subsequent update until its scan out. In cases like this if we update the
cursor synchronously through the atomic API it will cause significant
delays that would even be noticed by the final user.

This patch creates a fast path to jump ahead the current queued state and
do single planes updates without going through all atomic steps in
drm_atomic_helper_commit(). We take this path for legacy cursor updates.

For now only single plane updates are supported, but we plan to support
multiple planes updates and async PageFlips through this interface as well
in the near future.

v6:	- move check code to drm_atomic_helper.c (Daniel Vetter)

v5:
	- improve comments (Eric Anholt)

v4:
	- fix state->crtc NULL check (Archit Taneja)

v3:
	- fix iteration on the wrong crtc state
	- put back code to forbid updates if there is a queued update for
	the same plane (Ville Syrjälä)
	- move size checks back to drivers (Ville Syrjälä)
	- move ASYNC_UPDATE flag addition to its own patch (Ville Syrjälä)

v2:
	- allow updates even if there is a queued update for the same
	plane.
        - fixes on the documentation (Emil Velikov)
        - unconditionally call ->atomic_async_update (Emil Velikov)
        - check for ->atomic_async_update earlier (Daniel Vetter)
        - make ->atomic_async_check() the last step (Daniel Vetter)
        - add ASYNC_UPDATE flag (Eric Anholt)
        - update state in core after ->atomic_async_update (Eric Anholt)
	- update docs (Eric Anholt)

Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Eric Anholt <eric@anholt.net>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com>
Reviewed-by: Archit Taneja <architt@codeaurora.org> (v5)
Acked-by: Eric Anholt <eric@anholt.net> (v5)
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170630180322.29007-2-gustavo@padovan.org
2017-07-03 10:04:44 +02:00
..
bridge drm/bridge/synopsys: dw-hdmi: Use bridge->mode_valid() callback 2017-06-05 12:09:50 +05:30
i2c drm/i2c: tda998x: Register ASoC hdmi-codec and add audio DT binding 2016-09-07 13:10:10 +01:00
tinydrm drm/tinydrm: Fix drm_driver.fops.owner 2017-03-27 08:41:35 +02:00
ttm drm/ttm: fix include notation and remove -Iinclude/drm flag 2017-05-16 17:17:16 +02:00
ati_pcigart.h
drm_agpsupport.h
drm_atomic_helper.h drm/atomic: initial support for asynchronous plane update 2017-07-03 10:04:44 +02:00
drm_atomic.h drm/atomic: initial support for asynchronous plane update 2017-07-03 10:04:44 +02:00
drm_auth.h drm: Move drm_lock_data out of drmP.h 2017-03-09 16:18:02 +01:00
drm_blend.h drm: Add DRM_MODE_ROTATE_ and DRM_MODE_REFLECT_ to UAPI 2017-05-22 09:49:48 +02:00
drm_bridge.h drm/bridge: Refactor out the panel wrapper from the lvds-encoder bridge. 2017-06-05 14:00:40 +05:30
drm_cache.h drm: Move drm_clflush prototypes to drm_cache header file 2017-01-10 11:17:01 +01:00
drm_color_mgmt.h drm: drm_color_mgmt.h needs struct drm_crtc declaration 2017-05-02 10:30:23 +02:00
drm_connector.h drm: Remove duplicate forward declaration 2017-06-14 21:25:17 -04:00
drm_crtc_helper.h drm/atomic: Acquire connection_mutex lock in drm_helper_probe_single_connector_modes, v4. 2017-04-06 21:29:23 +02:00
drm_crtc.h drm/doc: vblank cleanup 2017-06-20 10:26:01 +02:00
drm_debugfs_crc.h drm: Add API for capturing frame CRCs 2016-10-17 16:44:34 +02:00
drm_debugfs.h drm/debugfs: Add kerneldoc 2017-03-24 09:36:06 +01:00
drm_displayid.h drm/edid: add displayid detailed 1 timings to the modelist. (v1.1) 2016-05-23 11:35:31 +10:00
drm_dp_dual_mode_helper.h drm: Fix LSPCON kernel-doc 2016-10-19 18:20:40 +03:00
drm_dp_helper.h Linux 4.12-rc5 2017-06-16 13:58:27 +10:00
drm_dp_mst_helper.h drm/dp: Add DP MST helpers to atomically find and release vcpi slots 2017-05-04 15:02:47 +02:00
drm_drv.h Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next 2017-06-27 09:18:17 -04:00
drm_edid.h drm/edid: detect SCDC support in HF-VSDB 2017-03-21 10:15:56 +02:00
drm_encoder_slave.h drm: Don't include <drm/drm_encoder.h> in <drm/drm_crtc.h> 2016-12-18 16:29:29 +05:30
drm_encoder.h drm/doc: Fix typos for early_unregister doc 2017-01-26 10:49:09 +01:00
drm_fb_cma_helper.h drm: Convert CMA fbdev console suspend helpers to use bool 2017-06-20 16:23:40 +02:00
drm_fb_helper.h drm/fb-helper: implement ioctl FBIO_WAITFORVSYNC 2017-03-02 08:12:15 +01:00
drm_file.h drm: introduce sync objects (v4) 2017-06-14 12:10:22 +10:00
drm_fixed.h
drm_flip_work.h drm/kms-helpers: Use recommened kerneldoc for struct member refs 2017-01-25 16:18:57 +01:00
drm_fourcc.h drm: Add mode_config .get_format_info() hook 2017-03-22 19:45:00 +02:00
drm_framebuffer.h Pointer for Markus's image conversion work. 2017-03-14 15:07:33 +01:00
drm_gem_cma_helper.h drm/cma: Fix recent regression of mmap() in the MMU case. 2017-04-18 12:25:37 -07:00
drm_gem.h drm/gem: Add DEFINE_DRM_GEM_FOPS 2017-03-14 14:38:34 +01:00
drm_global.h drm: drop extern from function decls 2017-03-24 09:36:06 +01:00
drm_hashtab.h drm: drop extern from function decls 2017-03-24 09:36:06 +01:00
drm_ioctl.h drm: document drm_ioctl.[hc] 2017-04-04 20:47:54 +02:00
drm_irq.h drm: Extract drm_vblank.[hc] 2017-06-01 08:02:14 +02:00
drm_legacy.h drm: document drm_auth.c 2016-06-21 22:10:55 +02:00
drm_mipi_dsi.h drm/dsi: Implement DCS set/get display brightness 2016-08-24 13:34:00 +02:00
drm_mm.h Pointer for Markus's image conversion work. 2017-03-14 15:07:33 +01:00
drm_mode_config.h drm: Document kms locking a bit better 2017-03-29 08:34:28 +02:00
drm_mode_object.h drm: Introduce drm_mode_object_{get,put}() 2017-02-28 16:14:55 +01:00
drm_modes.h drm/doc: move printf helpers out of drmP.h 2017-05-31 09:59:41 +02:00
drm_modeset_helper_vtables.h drm/atomic: initial support for asynchronous plane update 2017-07-03 10:04:44 +02:00
drm_modeset_helper.h drm: Pass 'dev' to drm_helper_mode_fill_fb_struct() 2016-12-15 14:03:30 +02:00
drm_modeset_lock.h drm: Remove drm_modeset_legacy_acquire_ctx and crtc->acquire_ctx 2017-04-05 09:26:45 +02:00
drm_of.h drm: of: introduce drm_of_find_panel_or_bridge 2017-04-06 17:00:27 -04:00
drm_os_linux.h drm: remove writeq/readq function definitions 2017-06-02 10:41:20 -04:00
drm_panel.h drm: make drm_panel.h self-contained 2017-05-16 17:17:02 +02:00
drm_pci.h drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
drm_pciids.h
drm_plane_helper.h drm: Add acquire ctx parameter to ->plane_disable 2017-03-29 09:14:58 +02:00
drm_plane.h drm: Add acquire ctx parameter to ->plane_disable 2017-03-29 09:14:58 +02:00
drm_prime.h drm: Extract drm_vblank.[hc] 2017-06-01 08:02:14 +02:00
drm_print.h drm: drm_printer: add __printf validation 2017-02-26 21:43:08 +01:00
drm_property.h drm: Add const to name field declaration in struct drm_prop_enum_list 2017-06-08 21:18:07 +03:00
drm_rect.h drm/doc: move printf helpers out of drmP.h 2017-05-31 09:59:41 +02:00
drm_scdc_helper.h drm/scdc: declare drm_scdc_get_scrambling_status 2017-03-23 14:53:54 +02:00
drm_simple_kms_helper.h drm: Clarify the role of plane_state argument to drm_simple update(). 2017-03-30 12:02:00 -07:00
drm_syncobj.h drm: introduce sync objects (v4) 2017-06-14 12:10:22 +10:00
drm_sysfs.h drm: Consolidate and document sysfs support 2017-04-04 20:47:54 +02:00
drm_vblank.h drm/vblank: Unexport drm_vblank_cleanup 2017-06-28 12:51:13 +02:00
drm_vma_manager.h drm: Extract drm_prime.h 2017-03-09 16:18:02 +01:00
drmP.h drm/doc: vblank cleanup 2017-06-20 10:26:01 +02:00
gma_drm.h
i915_component.h drm/i915/dp: DP audio API changes for MST 2016-09-22 09:01:55 -07:00
i915_drm.h drm: avoid "possible bad bitmask?" warning 2016-08-09 22:18:26 +02:00
i915_pciids.h drm/i915/cfl: Add Coffee Lake PCI IDs for U Sku. 2017-06-09 11:36:29 -07:00
intel_lpe_audio.h ALSA: x86: Register multiple PCM devices for the LPE audio card 2017-05-03 16:24:00 +03:00
intel-gtt.h drm/i915: Use fixed-sized types for stolen 2017-01-06 16:02:09 +00:00