This patch adds active plane reconfiguration support for imx-drm. This may fixes some mode setting failure issues which were introduced by imx-drm atomic conversion patch set. The main idea is to disable the plane in question in CRTC's atomic_disable operation and then the drm atomic core will enable it again automatically. v3->v4: * Change the bool active_only parameter of commit_planes() to an uint32_t parameter named 'flags' and add two flags - DRM_PLANE_COMMIT_ACTIVE_ONLY and DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET. This way, the drm atomic core is able to skip the atomic_disable call for the planes which are committed with the NO_DISABLE_AFTER_MODESET flag set. * Fix the helper disable_planes_on_crtc(), which is needed for CRTC's atomic_disable callback to disable planes. * Improve kernel-doc of CRTC's atomic_disable callback to address Daniel Vetter's comment. * Do not wait for DMFC FIFO to clear to avoid timeout warning, as the precedure to disable display channel is changed slightly after the NO_DISABLE_AFTER_MODESET flag is used. v2->v3: * Disable all appropriate affected planes(when necessary) in CRTC's ->atomic_disable callback, but not in each plane's ->atomic_update callback, as suggested by Daniel Vetter. * +Cc Lucas Stach, as he tested the patch v2. v1->v2: * Do not reject reconfiguring an active overlay plane. Liu Ying (7): drm/atomic-helper: Add atomic_disable CRTC helper callback drm/atomic-helper: Disable appropriate planes in disable_planes_on_crtc() drm/atomic-helper: Add NO_DISABLE_AFTER_MODESET flag support for plane commit gpu: ipu-v3: Do not wait for DMFC FIFO to clear when disabling DMFC channel drm/imx: ipuv3-crtc: Use the callback ->atomic_disable instead of ->disable drm/imx: Use DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET flag drm/imx: Add active plane reconfiguration support drivers/gpu/drm/arm/malidp_drv.c | 3 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +- drivers/gpu/drm/drm_atomic_helper.c | 64 +++++++++++++++++++--------- drivers/gpu/drm/exynos/exynos_drm_drv.c | 2 +- drivers/gpu/drm/imx/imx-drm-core.c | 30 ++++++++++++- drivers/gpu/drm/imx/ipuv3-crtc.c | 8 +++- drivers/gpu/drm/imx/ipuv3-plane.c | 21 ++++++--- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 ++- drivers/gpu/drm/msm/msm_atomic.c | 2 +- drivers/gpu/drm/omapdrm/omap_drv.c | 2 +- drivers/gpu/drm/rcar-du/rcar_du_kms.c | 3 +- drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 3 +- drivers/gpu/drm/sti/sti_drv.c | 2 +- drivers/gpu/drm/tegra/drm.c | 3 +- drivers/gpu/drm/tilcdc/tilcdc_drv.c | 2 +- drivers/gpu/drm/vc4/vc4_kms.c | 2 +- drivers/gpu/drm/virtio/virtgpu_display.c | 3 +- drivers/gpu/ipu-v3/ipu-dmfc.c | 18 +------- include/drm/drm_atomic_helper.h | 11 +++-- include/drm/drm_modeset_helper_vtables.h | 24 +++++++++++ 20 files changed, 146 insertions(+), 65 deletions(-) -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel