linux/include/drm
Thomas Zimmermann 6dd7b6ce43 drm: Add additional atomic helpers for shadow-buffered planes
Several drivers use GEM buffer objects as shadow buffers for the actual
framebuffer memory. Right now, drivers do these vmap operations in their
commit tail, which is actually not allowed by the locking rules for
the dma-buf reservation lock. The involved BO has to be vmapped in the
plane's prepare_fb callback and vunmapped in cleanup_fb.

This patch introduces atomic helpers for such shadow planes. Plane
functions manage the plane state for shadow planes. The provided
implementations for prepare_fb and cleanup_fb vmap and vunmap all BOs of
struct drm_plane_state.fb. The mappings are afterwards available in the
plane's commit-tail functions.

For now, all rsp drivers use the simple KMS helpers, so we add the plane
callbacks and wrappers for simple KMS. The internal plane functions can
later be exported as needed.

v3:
	* documentation fixes
v2:
	* make duplicate_state interface compatible with
	  struct drm_plane_funcs

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Tested-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210208115538.6430-4-tzimmermann@suse.de
2021-02-08 13:00:14 +01: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: device naming cleanup 2021-01-21 14:51:45 +01:00
amd_asic_type.h drm/amdgpu: add dimgrey_cavefish asic type 2020-10-12 14:00:01 -04:00
drm_agpsupport.h drm: Inline AGP wrappers into their only callers 2021-01-13 14:21:53 +01:00
drm_atomic.h drm: Introduce a drm_crtc_commit_wait helper 2021-01-21 12:11:04 +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/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/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: 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: Move struct drm_device.hose to legacy section 2021-01-13 14:22:37 +01: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/dp_helper: Add helpers to configure PCONs RGB-YCbCr Conversion 2020-12-22 17:52:50 +02:00
drm_dp_mst_helper.h Merge drm/drm-next into drm-intel-next-queued 2020-09-11 20:00:20 -04: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-cma-helpers: Fix include issue 2020-01-09 17:33:41 +01:00
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-01-22 16:22:29 +05:30
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: Don't export the drm_gem_dumb_destroy() function 2021-01-05 07:20:25 +02:00
drm_gem_atomic_helper.h drm: Add additional atomic helpers for shadow-buffered planes 2021-02-08 13:00:14 +01: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/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: 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/ttm: device naming cleanup 2021-01-21 14:51:45 +01: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/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: fix spelling error in comments 2020-09-17 13:39:44 +02:00
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: document drm_mode_modeinfo 2020-11-20 11:55:41 +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/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 drm/panel: Add helper for reading DT rotation 2020-08-16 17:12:18 +02:00
drm_pciids.h
drm_plane.h drm/doc: fix drm_plane_type docs 2021-01-24 10:36:31 +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: drm_print.h: fix kernel-doc markups 2020-10-27 11:21:39 +01:00
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: 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 plane-state helpers 2021-02-08 12:59:59 +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 drm/scheduler: provide scheduler score externally 2021-02-05 10:47:11 +01: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: Sort EHL/JSL PCI IDs 2020-11-06 14:09:30 +02: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