linux_dsm_epyc7002/drivers/gpu/drm/exynos
Daniel Vetter aef9dbb8f7 drm/atomic-helper: Add option to update planes only on active crtc
With drivers supporting runtime pm it's generally not a good idea to
touch the hardware when it's off. Add an option to the commit_planes
helper to support this case.

Note that the helpers already add all planes on a crtc when a modeset
happens, hence plane updates will not be lost if drivers set this to
true.

v2: Check for NULL state->crtc before chasing the pointer. Also check
both old and new crtc if there's a switch. Finally just outright
disallow switching crtcs for a plane if the plane is in active use, on
most hardware that doesn't make sense.

v3: Since commit_planes(active_only = true) is for enabling things
only after all the crtc are on we should only look at the new crtc to
decide whether to call the plane hooks - if the current CRTC isn't on
then skip. If the old crtc (when moving a plane) went down then the
plane should have been disabled as part of the pipe shutdown work
already. For which there's currently no helper really unfortunately.
Also move the check for wether a plane gets a new CRTC assigned while
still in active use out of this patch.

v4: Rebase over exynos changes.

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Thierry Reding <treding@nvidia.com>
Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
Tested-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-09-08 13:49:08 +02:00
..
exynos7_drm_decon.c drm/exynos: Properly report supported formats for each device 2015-08-31 01:03:02 +09:00
exynos5433_drm_decon.c drm/exynos: Properly report supported formats for each device 2015-08-31 01:03:02 +09:00
exynos_dp_core.c drm/exynos: remove struct exynos_drm_encoder layer 2015-08-16 10:35:54 +09:00
exynos_dp_core.h drm/exynos: remove struct exynos_drm_encoder layer 2015-08-16 10:35:54 +09:00
exynos_dp_reg.c drm/exynos: Fix checkpatch warning in exynos_dp_reg.c 2014-06-02 02:07:12 +09:00
exynos_dp_reg.h drm/exynos: Move dp driver from video/ to drm/ 2014-03-24 00:36:34 +09:00
exynos_drm_core.c drm/exynos: remove struct exynos_drm_encoder layer 2015-08-16 10:35:54 +09:00
exynos_drm_crtc.c drm/exynos: remove wait queue for pending page flip 2015-08-31 00:27:38 +09:00
exynos_drm_crtc.h drm/exynos: wait all planes updates to finish 2015-08-31 00:27:38 +09:00
exynos_drm_dpi.c drm/exynos: remove struct exynos_drm_encoder layer 2015-08-16 10:35:54 +09:00
exynos_drm_drv.c drm/atomic-helper: Add option to update planes only on active crtc 2015-09-08 13:49:08 +02:00
exynos_drm_drv.h drm/exynos: remove wait queue for pending page flip 2015-08-31 00:27:38 +09:00
exynos_drm_dsi.c drm/exynos: remove struct exynos_drm_encoder layer 2015-08-16 10:35:54 +09:00
exynos_drm_fb.c drm/exynos: remove buf_cnt from struct exynos_drm_fb 2015-09-02 23:10:34 +09:00
exynos_drm_fb.h drm/exynos: remove exynos_drm_fb_get_buf_cnt() 2015-09-02 23:10:34 +09:00
exynos_drm_fbdev.c drm/exynos: update exynos_drm_framebuffer_init() for multiple buffers 2015-09-02 23:10:32 +09:00
exynos_drm_fbdev.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimc.c drm/exynos/fimc: fix runtime pm support 2015-08-16 10:23:30 +09:00
exynos_drm_fimc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimd.c drm/exynos: Properly report supported formats for each device 2015-08-31 01:03:02 +09:00
exynos_drm_g2d.c drm/exynos: remove superfluous checks in g2d_check_reg_offset() 2015-09-02 23:10:29 +09:00
exynos_drm_g2d.h drm/exynos: add G2D driver 2012-05-17 20:14:48 +09:00
exynos_drm_gem.c drm/exynos: fix build warning to exynos_drm_gem.c 2015-08-31 01:12:36 +09:00
exynos_drm_gem.h drm/exynos: merge exynos_drm_buf.c to exynos_drm_gem.c 2015-08-16 14:39:32 +09:00
exynos_drm_gsc.c drm/exynos: gsc: Handles the combination of rotation and flip 2015-08-16 10:23:32 +09:00
exynos_drm_gsc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_iommu.c drm/exynos: remove drm_iommu_attach_device_if_possible 2015-08-16 10:23:33 +09:00
exynos_drm_iommu.h drm/exynos: remove drm_iommu_attach_device_if_possible 2015-08-16 10:23:33 +09:00
exynos_drm_ipp.c drm/exynos: remove unnecessary checking to support iommu 2015-08-16 10:23:32 +09:00
exynos_drm_ipp.h drm/exynos/ipp: remove unused field in command node 2014-09-20 00:56:10 +09:00
exynos_drm_mic.c drm/exynos: mic: add MIC driver 2015-06-22 20:04:56 +09:00
exynos_drm_plane.c drm/exynos: remove exynos_drm_fb_get_buf_cnt() 2015-09-02 23:10:34 +09:00
exynos_drm_plane.h drm/exynos: Properly report supported formats for each device 2015-08-31 01:03:02 +09:00
exynos_drm_rotator.c drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-04 01:04:55 +01:00
exynos_drm_rotator.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_vidi.c drm/exynos: Properly report supported formats for each device 2015-08-31 01:03:02 +09:00
exynos_drm_vidi.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_hdmi.c drm/exynos: remove struct exynos_drm_encoder layer 2015-08-16 10:35:54 +09:00
exynos_mixer.c drm/exynos: Properly report supported formats for each device 2015-08-31 01:03:02 +09:00
exynos_mixer.h drm/exynos: Remove exynos_drm_hdmi shim 2014-03-24 00:36:32 +09:00
Kconfig drm/exynos: Remove PTN3460 dependency 2015-08-13 14:02:50 +02:00
Makefile drm/exynos: merge exynos_drm_buf.c to exynos_drm_gem.c 2015-08-16 14:39:32 +09:00
regs-fimc.h drm/exynos: add device tree support for fimc ipp driver 2013-04-29 14:35:32 +09:00
regs-gsc.h drm/exynos: add gsc ipp driver 2012-12-15 02:40:00 +09:00
regs-hdmi.h drm/exynos: add hdmiphy power on/off sequence 2014-06-02 02:07:15 +09:00
regs-mixer.h drm/exynos: fix typos in hdmi and mixer 2015-04-13 11:39:40 +09:00
regs-rotator.h drm/exynos: add rotator ipp driver 2012-12-15 02:39:41 +09:00
regs-vp.h drm/exynos: added hdmi display support 2011-12-29 11:21:42 +09:00