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
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_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_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_helper: Add helpers to configure PCONs RGB-YCbCr Conversion 2020-12-22 17:52:50 +02:00
drm_dp_mst_helper.h
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-01-22 16:22:29 +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_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_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_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: 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_of.h
drm_panel.h
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_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_work.h
drm_vma_manager.h
drm_writeback.h
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
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