linux/include/drm
Simona Vetter 85a8dfc772 drm/atomic: clarify the rules around drm_atomic_state->allow_modeset
[ Upstream commit c5e3306a42 ]

msm is automagically upgrading normal commits to full modesets, and
that's a big no-no:

- for one this results in full on->off->on transitions on all these
  crtc, at least if you're using the usual helpers. Which seems to be
  the case, and is breaking uapi

- further even if the ctm change itself would not result in flicker,
  this can hide modesets for other reasons. Which again breaks the
  uapi

v2: I forgot the case of adding unrelated crtc state. Add that case
and link to the existing kerneldoc explainers. This has come up in an
irc discussion with Manasi and Ville about intel's bigjoiner mode.
Also cc everyone involved in the msm irc discussion, more people
joined after I sent out v1.

v3: Wording polish from Pekka and Thomas

Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Acked-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Pekka Paalanen <pekka.paalanen@collabora.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Simon Ser <contact@emersion.fr>
Cc: Manasi Navare <navaremanasi@google.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Simona Vetter <simona.vetter@intel.com>
Signed-off-by: Simona Vetter <simona.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20250108172417.160831-1-simona.vetter@ffwll.ch
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-06-04 14:38:04 +02:00
..
bridge drm: bridge: dw-hdmi: Attach to next bridge if available 2021-07-28 16:33:13 +03:00
i2c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ttm drm/ttm: add ttm_resource_fini v2 2024-03-26 18:21:25 -04:00
amd_asic_type.h drm/amdgpu: add cyan_skillfish asic type 2021-07-23 10:08:00 -04:00
drm_aperture.h drm/aperture: Pass DRM driver structure instead of driver name 2021-07-01 11:11:55 +02:00
drm_atomic.h drm/atomic: clarify the rules around drm_atomic_state->allow_modeset 2025-06-04 14:38:04 +02: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: extract drm_atomic_uapi.c 2018-09-09 14:19:18 +02:00
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: clarify usage of drm leases 2021-07-29 09:12:01 +02:00
drm_blend.h drm: Add per-plane pixel blend mode property 2018-08-24 17:31:37 +01:00
drm_bridge.h drm/bridge: Fix typo in post_disable() description 2024-01-25 14:52:41 -08: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: Add a prefetching memcpy_from_wc 2021-06-07 16:07:08 +02:00
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: using mul_u32_u32() requires linux/math64.h 2024-02-23 08:54:52 +01:00
drm_connector.h drm/connector: Fix typo in documentation 2022-04-08 14:24:12 +02: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: Split out drm_probe_helper.h 2019-01-24 13:20:42 +01:00
drm_damage_helper.h drm/plane: Move drm_plane_enable_fb_damage_clips into core 2021-07-27 12:21:22 +02:00
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/crc: Only report a single overflow when a CRC fd is opened 2018-07-06 14:57:03 +02:00
drm_device.h drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
drm_displayid.h drm/displayid: rename displayid_hdr to displayid_header 2021-03-31 15:42:39 +03:00
drm_dp_aux_bus.h drm: Introduce the DP AUX bus 2021-06-11 12:30:39 -07:00
drm_dp_dual_mode_helper.h drm/dp_dual_mode: Pass drm_device to drm_lspcon_(get|set)_mode() 2021-04-27 18:43:44 -04:00
drm_dp_helper.h drm/display/dp: Fix the DP DSC Receiver cap size 2023-08-30 16:18:19 +02:00
drm_dp_mst_helper.h drm/dp_mst: Fix drm RAD print 2025-04-10 14:31:58 +02:00
drm_drv.h drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +02:00
drm_dsc.h - Display hotplug fix for gen2/gen3 (Chris) 2021-01-07 12:20:29 +01:00
drm_edid.h drm: fix EDID struct for old ARM OABI format 2022-06-09 10:22:44 +02:00
drm_encoder.h drm/encoder: Add macro drmm_plain_encoder_alloc() 2021-03-29 16:46:43 +01:00
drm_encoder_slave.h drm: remove include of drmP.h from drm_encoder_slave.h 2019-01-09 22:35:35 +01:00
drm_fb_cma_helper.h drm: Add and export function drm_fb_cma_sync_non_coherent 2021-05-25 11:42:09 +01:00
drm_fb_helper.h fbdev: Rename pagelist to pagereflist for deferred I/O 2024-02-23 08:55:13 +01:00
drm_file.h drm: add lockdep assert to drm_is_current_master_locked 2021-08-05 12:08:15 +02:00
drm_fixed.h drm: Don't treat 0 as -1 in drm_fixp2int_ceil 2024-03-26 18:21:25 -04:00
drm_flip_work.h drm/kms-helpers: Use recommened kerneldoc for struct member refs 2017-01-25 16:18:57 +01:00
drm_format_helper.h drm/format-helper: Add blitter functions 2021-05-01 12:45:03 +02:00
drm_fourcc.h drm: Define DRM_FORMAT_MAX_PLANES 2021-08-02 16:41:20 +02:00
drm_framebuffer.h drm: Define DRM_FORMAT_MAX_PLANES 2021-08-02 16:41:20 +02:00
drm_gem.h drm: Drop drm_gem_object_put_locked() 2021-07-27 18:09:18 -07:00
drm_gem_atomic_helper.h drm/gem: Provide offset-adjusted framebuffer BO mappings 2021-08-08 20:26:16 +02:00
drm_gem_cma_helper.h drm: Add support for GEM buffers backed by non-coherent memory 2021-05-25 11:41:07 +01:00
drm_gem_framebuffer_helper.h drm/gem: Provide offset-adjusted framebuffer BO mappings 2021-08-08 20:26:16 +02:00
drm_gem_shmem_helper.h drm/shmem-helper: Pass GEM shmem object in public interfaces 2022-08-17 14:23:19 +02:00
drm_gem_ttm_helper.h drm/gem-ttm-helper: Provide helper for struct drm_driver.dumb_map_offset 2021-04-11 20:14:45 +02:00
drm_gem_vram_helper.h drm/vram-helper: Unexport drm_vram_helper_{alloc,release}_mm() 2021-07-05 08:55:11 +02:00
drm_hashtab.h drm: drop extern from function decls 2017-03-24 09:36:06 +01:00
drm_hdcp.h drm/hdcp: DP HDCP2.2 errata LC_Send_L_Prime=16 2021-03-31 14:27:43 +03:00
drm_ioctl.h drm: Return -ENOTTY for non-drm ioctls 2021-07-20 15:57:43 +02:00
drm_lease.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
drm_legacy.h drm: IRQ midlayer is now legacy 2021-08-10 20:14:01 +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/dbi: Print errors for mipi_dbi_command() 2021-07-05 00:22:51 +02:00
drm_mipi_dsi.h drm/mipi-dsi: use correct return type for the DSC functions 2024-06-16 13:39:30 +02:00
drm_mm.h drm: fix spelling error in comments 2020-09-17 13:39:44 +02:00
drm_mode_config.h drm/modifiers: Enforce consistency between the cap an IN_FORMATS 2021-05-12 11:31:29 +02:00
drm_mode_object.h drm: remove drm_mode_object_{un/reference} aliases 2018-03-19 09:09:46 -04:00
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: remove drmP.h from drm_modeset_helper.h 2019-02-07 21:48:34 +01:00
drm_modeset_helper_vtables.h drm/atomic-helper: make drm_gem_plane_helper_prepare_fb the default 2021-06-24 15:35:13 +02: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/dp: Move panel DP AUX backlight support to drm_dp_helper 2021-07-13 06:38:37 -07:00
drm_pciids.h drm/radeon: change SPDX identifier to MIT 2018-10-15 16:16:12 -05:00
drm_plane.h drm/plane: Move drm_plane_enable_fb_damage_clips into core 2021-07-27 12:21:22 +02:00
drm_plane_helper.h drm: Unexport drm_plane_helper_check_update 2018-10-05 22:45:19 +02:00
drm_prime.h drm/prime: split array import functions v4 2020-11-30 15:00:45 +01:00
drm_print.h drm/printer: Allow NULL data in devcoredump printer 2024-10-17 15:11:32 +02:00
drm_probe_helper.h drm/probe-helper: Create a HPD IRQ event helper for a single connector 2025-03-13 12:50:48 +01:00
drm_property.h drm: document drm_property_enum.value for bitfields 2021-07-26 10:08:22 +02:00
drm_rect.h drm/plane: remove drm_helper_get_plane_damage_clips 2021-07-27 12:21:22 +02:00
drm_scdc_helper.h drm/scdc: Fix typo in bit definition of SCDC_STATUS_FLAGS 2019-11-04 17:58:46 +01:00
drm_self_refresh_helper.h drm/atomic: fix self-refresh helpers crtc state dereference 2019-11-06 13:00:21 -05:00
drm_simple_kms_helper.h drm/simple-kms: Support custom CRTC state 2021-08-08 20:14:08 +02:00
drm_syncobj.h drm/syncobj: add new drm_syncobj_add_point interface v4 2019-04-01 12:05:53 +02:00
drm_sysfs.h drm: uevent for connector status change 2019-08-06 13:16:54 +05:30
drm_util.h drm: Move EXPORT_SYMBOL_FOR_TESTS_ONLY under a separate Kconfig 2019-11-07 21:22:15 +00:00
drm_utils.h drm: export drm_timeout_abs_to_jiffies 2019-03-07 12:00:30 -06:00
drm_vblank.h drm/vblank: Document drm_crtc_vblank_restore constraints 2021-02-10 12:38:55 +01:00
drm_vblank_work.h drm/vblank: Add vblank works 2020-07-16 18:16:31 -04:00
drm_vma_manager.h drm/vma: Add a driver_private member to vma_node. 2021-06-11 10:53:18 +02:00
drm_writeback.h drm/writeback: wire drm_writeback.h to kernel-doc 2020-04-07 17:39:46 +02:00
gma_drm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 335 2019-06-05 17:37:06 +02:00
gpu_scheduler.h drm/sched: Allow using a dedicated workqueue for the timeout/fault tdr 2021-07-01 08:53:25 +02:00
gud.h drm: Add GUD USB Display driver 2021-03-16 13:12:46 +01:00
i915_component.h drm/i915/tgl: Add additional ports for Tiger Lake 2019-07-11 16:31:14 -07:00
i915_drm.h drm: Move port definition back to i915 header 2019-08-30 14:08:26 +05:30
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/adl_p: Add PCI Devices IDs 2021-05-07 10:51:38 +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 ALSA: x86: Register multiple PCM devices for the LPE audio card 2017-05-03 16:24:00 +03:00
spsc_queue.h drm: move amd_gpu_scheduler into common location 2017-12-07 11:51:56 -05:00
task_barrier.h drm: Add Reusable task barrier. 2019-12-18 16:09:12 -05:00