linux/drivers/gpu/drm
Nicholas Kazlauskas 37fb6e8a96 drm/amd/display: Enable fast plane updates when state->allow_modeset = true
[Why]
Whenever the a modeset is allowed (but not neccessarily required) we
currently recreate all the planes in the state. Most IGT tests and
legacy IOCTLs create atomic commits with this flag set, so the pipes
are often unnecessarily reprogrammed.

Poor performance and stuttering can occur when many of these commits
are frequently issued.

This flag was needed when the appropriate conditions for checking
whether the planes needed a reset were not in place, but
should_reset_plane should cover everything needed now.

[How]
Drop the check for state->allow_modeset in should_reset_plane.

All planes on a CRTC should reset in the following conditions:
- The CRTC needs a modeset
- The CRTC degamma changes
- Planes are added or removed to the CRTC

These conditions are all covered in should_reset_plane.

We still can't drop the format change check in should_reset_plane since
fill_dc_plane_info_and_addr isn't called when validating the state, so
we can't tell if a FULL update is needed or not.

Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: David Francis <david.francis@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2019-06-11 12:44:40 -05:00
..
amd drm/amd/display: Enable fast plane updates when state->allow_modeset = true 2019-06-11 12:44:40 -05:00
arc treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
arm drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
armada drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
aspeed treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
ast drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
atmel-hlcdc drm/atmel-hlcdc: revert shift by 8 2019-06-04 23:52:09 +02:00
bochs drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
bridge R-Car DU changes for v5.3: 2019-06-11 10:08:49 +02:00
cirrus drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
etnaviv drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
exynos treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
fsl-dcu treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
gma500 drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
hisilicon drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
i2c treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
i810 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
i915 Features: 2019-05-28 09:26:52 +10:00
imx drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
lib
lima drm/lima: add timeout to drm scheduler init 2019-05-21 20:47:36 +08:00
mcde drm/mcde: Fix compile problems 2019-05-26 13:42:23 +02:00
mediatek drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
meson Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2019-05-28 09:39:08 +02:00
mga treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
mgag200 drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
msm drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
mxsfb treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
nouveau drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
omapdrm drm/omap: add support for manually updated displays 2019-06-10 17:04:15 +03:00
panel drm/panel: drop drmP.h usage 2019-05-28 17:14:53 +02:00
panfrost drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
pl111 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
qxl drm/ttm: Make LRU removal optional v2 2019-05-31 10:39:34 -05:00
r128 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
radeon drm/ttm: Make LRU removal optional v2 2019-05-31 10:39:34 -05:00
rcar-du drm: rcar-du: Add support for missing 16-bit RGB1555 formats 2019-06-08 16:36:41 +03:00
rockchip drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
savage treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
scheduler drm/sched: Fix make htmldocs warnings. 2019-05-29 11:49:51 -05:00
selftests treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
shmobile
sis treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
sti treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
stm Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2019-05-28 09:39:08 +02:00
sun4i drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
tdfx treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
tegra drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
tilcdc treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
tinydrm treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
ttm drm/ttm: fix busy memory to fail other user v10 2019-05-31 10:39:34 -05:00
tve200 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
udl treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
v3d drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
vboxvideo Merge drm/drm-next into drm-misc-next 2019-05-22 16:08:21 -04:00
vc4 drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
vgem treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
via treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
virtio drm/ttm: Make LRU removal optional v2 2019-05-31 10:39:34 -05:00
vkms drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
vmwgfx drm/ttm: Make LRU removal optional v2 2019-05-31 10:39:34 -05:00
xen treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
zte drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
ati_pcigart.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_agpsupport.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_atomic_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_atomic_state_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_atomic_uapi.c Features: 2019-05-28 09:26:52 +10:00
drm_atomic.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_auth.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_blend.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_bridge.c
drm_bufs.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_cache.c
drm_client_modeset.c drm/fb-helper: Remove drm_fb_helper_crtc 2019-06-04 12:13:47 +02:00
drm_client.c drm/fb-helper: Remove drm_fb_helper_crtc 2019-06-04 12:13:47 +02:00
drm_color_mgmt.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_connector.c drm: Fix docbook warnings in hdr metadata helper structures 2019-06-04 14:03:53 +02:00
drm_context.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_crtc_helper_internal.h
drm_crtc_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_crtc_internal.h drm: make drm_crtc_internal.h self-contained 2019-05-27 18:06:27 +02:00
drm_crtc.c
drm_damage_helper.c drm/damage-helper: Use NULL instead of 0 2019-05-28 09:03:06 +02:00
drm_debugfs_crc.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_debugfs.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_dma.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_dp_aux_dev.c drm/dp: drmP.h include removal 2019-05-06 16:00:48 +03:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c drm/dp: drmP.h include removal 2019-05-06 16:00:48 +03:00
drm_dp_helper.c drm/dp: drmP.h include removal 2019-05-06 16:00:48 +03:00
drm_dp_mst_topology.c drm/mst: Fix MST sideband up-reply failure handling 2019-05-29 20:12:34 +03:00
drm_drv.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_dsc.c
drm_dumb_buffers.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_edid_load.c Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2019-05-28 09:39:08 +02:00
drm_edid.c drm/edid: Fix docbook in drm_hdmi_infoframe_set_hdr_metadata() 2019-05-23 12:58:35 -04:00
drm_encoder_slave.c
drm_encoder.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_fb_cma_helper.c
drm_fb_helper.c drm/fb-helper: Remove drm_fb_helper_crtc 2019-06-04 12:13:47 +02:00
drm_file.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_flip_work.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_format_helper.c drm: Remove users of drm_format_info_plane_cpp 2019-05-20 13:35:56 +02:00
drm_fourcc.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_framebuffer.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_gem_cma_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_gem_framebuffer_helper.c drm/docs: More links for implicit/explicit fencing. 2019-06-03 17:11:33 +02:00
drm_gem_shmem_helper.c
drm_gem_vram_helper.c drm: Assert that BO is locked in drm_gem_vram_{pin, unpin}_locked() 2019-05-22 12:43:30 +02:00
drm_gem.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_hashtab.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_hdcp.c drm/hdcp: drm_hdcp_request_srm() as static 2019-05-13 22:05:54 +02:00
drm_internal.h Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2019-05-28 09:39:08 +02:00
drm_ioc32.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_ioctl.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_irq.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_kms_helper_common.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_lease.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_legacy_misc.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_legacy.h drm: make drm_legacy.h self-contained 2019-05-27 18:06:47 +02:00
drm_lock.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_memory.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_mipi_dsi.c
drm_mm.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_mode_config.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_mode_object.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_modes.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_modeset_helper.c
drm_modeset_lock.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_of.c Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2019-05-28 09:39:08 +02:00
drm_panel_orientation_quirks.c
drm_panel.c
drm_pci.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_plane_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_plane.c
drm_prime.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_print.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_probe_helper.c drm: Flush output polling on shutdown 2019-06-04 17:11:33 +01:00
drm_property.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_rect.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_scatter.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_scdc_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_simple_kms_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_syncobj.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_sysfs.c Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2019-05-28 09:39:08 +02:00
drm_trace_points.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_trace.h drm: make drm_trace.h self-contained 2019-05-27 18:06:54 +02:00
drm_vblank.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_vm.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_vma_manager.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_vram_helper_common.c drm: Replace drm_gem_vram_push_to_system() with kunmap + unpin 2019-05-22 12:43:29 +02:00
drm_vram_mm_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_writeback.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
Kconfig Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2019-05-28 09:39:08 +02:00
Makefile drm/fb-helper: Remove drm_fb_helper_crtc 2019-06-04 12:13:47 +02:00