From 2f017f7988014f9991f72455c301b3ea9450da1e Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 19 Dec 2023 08:53:46 +0100 Subject: [PATCH] drop some unneeded 5.10 patches --- ...the-full-state-to-crtc-atomic-begin-.patch | 1126 ----------------- ...-spinlock-for-setting-vblank-event-i.patch | 25 +- ...helper-instead-of-crtc-state-pointer.patch | 368 ------ queue-5.10/series | 2 - 4 files changed, 10 insertions(+), 1511 deletions(-) delete mode 100644 queue-5.10/drm-atomic-pass-the-full-state-to-crtc-atomic-begin-.patch delete mode 100644 queue-5.10/drm-use-state-helper-instead-of-crtc-state-pointer.patch diff --git a/queue-5.10/drm-atomic-pass-the-full-state-to-crtc-atomic-begin-.patch b/queue-5.10/drm-atomic-pass-the-full-state-to-crtc-atomic-begin-.patch deleted file mode 100644 index 2e0bc6302db..00000000000 --- a/queue-5.10/drm-atomic-pass-the-full-state-to-crtc-atomic-begin-.patch +++ /dev/null @@ -1,1126 +0,0 @@ -From bfc9ac42f8c6d5c3dee78c8daf97ed426e628449 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 28 Oct 2020 13:32:22 +0100 -Subject: drm/atomic: Pass the full state to CRTC atomic begin and flush -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Maxime Ripard - -[ Upstream commit f6ebe9f9c9233a6114eb922aba9a0c9ccc2d2e14 ] - -The current atomic helpers have either their object state being passed as -an argument or the full atomic state. - -The former is the pattern that was done at first, before switching to the -latter for new hooks or when it was needed. - -Let's start convert all the remaining helpers to provide a consistent -interface, starting with the CRTC's atomic_begin and atomic_flush. - -The conversion was done using the coccinelle script below, built tested on -all the drivers and actually tested on vc4. - -virtual report - -@@ -struct drm_crtc_helper_funcs *FUNCS; -identifier old_crtc_state, old_state; -identifier crtc; -identifier f; -@@ - - f(struct drm_crtc_state *old_crtc_state) - { - ... - struct drm_atomic_state *old_state = old_crtc_state->state; - <... -- FUNCS->atomic_begin(crtc, old_crtc_state); -+ FUNCS->atomic_begin(crtc, old_state); - ...> - } - -@@ -struct drm_crtc_helper_funcs *FUNCS; -identifier old_crtc_state, old_state; -identifier crtc; -identifier f; -@@ - - f(struct drm_crtc_state *old_crtc_state) - { - ... - struct drm_atomic_state *old_state = old_crtc_state->state; - <... -- FUNCS->atomic_flush(crtc, old_crtc_state); -+ FUNCS->atomic_flush(crtc, old_state); - ...> - } - -@@ -struct drm_crtc_helper_funcs *FUNCS; -struct drm_crtc *crtc; -struct drm_crtc_state *crtc_state; -identifier dev, state; -identifier f; -@@ - - f(struct drm_device *dev, struct drm_atomic_state *state, ...) - { - <... -- FUNCS->atomic_begin(crtc, crtc_state); -+ FUNCS->atomic_begin(crtc, state); - ...> - } - -@@ -struct drm_crtc_helper_funcs *FUNCS; -struct drm_crtc *crtc; -struct drm_crtc_state *crtc_state; -identifier dev, state; -identifier f; -@@ - - f(struct drm_device *dev, struct drm_atomic_state *state, ...) - { - <... -- FUNCS->atomic_flush(crtc, crtc_state); -+ FUNCS->atomic_flush(crtc, state); - ...> - } - -@@ -identifier crtc, old_state; -@@ - - struct drm_crtc_helper_funcs { - ... -- void (*atomic_begin)(struct drm_crtc *crtc, struct drm_crtc_state *old_state); -+ void (*atomic_begin)(struct drm_crtc *crtc, struct drm_atomic_state *state); - ... -- void (*atomic_flush)(struct drm_crtc *crtc, struct drm_crtc_state *old_state); -+ void (*atomic_flush)(struct drm_crtc *crtc, struct drm_atomic_state *state); - ... -} - -@ crtc_atomic_func @ -identifier helpers; -identifier func; -@@ - -( -static struct drm_crtc_helper_funcs helpers = { - ..., - .atomic_begin = func, - ..., -}; -| -static struct drm_crtc_helper_funcs helpers = { - ..., - .atomic_flush = func, - ..., -}; -) - -@ ignores_old_state @ -identifier crtc_atomic_func.func; -identifier crtc, old_state; -@@ - -void func(struct drm_crtc *crtc, - struct drm_crtc_state *old_state) -{ - ... when != old_state -} - -@ adds_old_state depends on crtc_atomic_func && !ignores_old_state @ -identifier crtc_atomic_func.func; -identifier crtc, old_state; -@@ - -void func(struct drm_crtc *crtc, struct drm_crtc_state *old_state) -{ -+ struct drm_crtc_state *old_state = drm_atomic_get_old_crtc_state(state, crtc); - ... -} - -@ depends on crtc_atomic_func @ -identifier crtc_atomic_func.func; -expression E; -type T; -@@ - -void func(...) -{ - ... -- T state = E; -+ T crtc_state = E; - <+... -- state -+ crtc_state - ...+> - -} - -@ depends on crtc_atomic_func @ -identifier crtc_atomic_func.func; -type T; -@@ - -void func(...) -{ - ... -- T state; -+ T crtc_state; - <+... -- state -+ crtc_state - ...+> - -} - -@@ -identifier old_state; -identifier crtc; -@@ - - void vc4_hvs_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state -+ struct drm_atomic_state *state - ) -{ -+ struct drm_crtc_state *old_state = drm_atomic_get_old_crtc_state(state, crtc); - ... -} - -@@ -identifier old_state; -identifier crtc; -@@ - - void vc4_hvs_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state -+ struct drm_atomic_state *state - ); - -@@ -identifier old_state; -identifier crtc; -@@ - - void vmw_du_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state -+ struct drm_atomic_state *state - ) -{ - ... -} - -@@ -identifier old_state; -identifier crtc; -@@ - - void vmw_du_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state -+ struct drm_atomic_state *state - ); - -@@ -identifier old_state; -identifier crtc; -@@ - - void vmw_du_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state -+ struct drm_atomic_state *state - ) -{ - ... -} - -@@ -identifier old_state; -identifier crtc; -@@ - - void vmw_du_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state -+ struct drm_atomic_state *state - ); - -@ depends on crtc_atomic_func @ -identifier crtc_atomic_func.func; -identifier old_state; -identifier crtc; -@@ - -void func(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state -+ struct drm_atomic_state *state - ) - { ... } - -@ include depends on adds_old_state @ -@@ - - #include - -@ no_include depends on !include && adds_old_state @ -@@ - -+ #include - #include - -Signed-off-by: Maxime Ripard -Reviewed-by: Ville Syrjälä -Acked-by: Daniel Vetter -Acked-by: Thomas Zimmermann -Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-2-maxime@cerno.tech -Stable-dep-of: fe4c5f662097 ("drm/mediatek: Add spinlock for setting vblank event in atomic_begin") -Signed-off-by: Sasha Levin ---- - .../gpu/drm/arm/display/komeda/komeda_crtc.c | 4 +++- - drivers/gpu/drm/arm/hdlcd_crtc.c | 2 +- - drivers/gpu/drm/armada/armada_crtc.c | 4 ++-- - drivers/gpu/drm/ast/ast_mode.c | 5 ++++- - drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 4 ++-- - drivers/gpu/drm/drm_atomic_helper.c | 8 ++++---- - drivers/gpu/drm/exynos/exynos_drm_crtc.c | 4 ++-- - drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 2 +- - drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c | 4 ++-- - drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 4 ++-- - drivers/gpu/drm/imx/dcss/dcss-crtc.c | 4 ++-- - drivers/gpu/drm/imx/ipuv3-crtc.c | 4 ++-- - drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 17 +++++++++-------- - drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 16 ++++++++-------- - drivers/gpu/drm/meson/meson_crtc.c | 4 ++-- - drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 4 ++-- - drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c | 4 ++-- - drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 4 ++-- - drivers/gpu/drm/mxsfb/mxsfb_kms.c | 2 +- - drivers/gpu/drm/omapdrm/omap_crtc.c | 4 ++-- - drivers/gpu/drm/qxl/qxl_display.c | 2 +- - drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 4 ++-- - drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 8 ++++++-- - drivers/gpu/drm/sti/sti_crtc.c | 2 +- - drivers/gpu/drm/stm/ltdc.c | 2 +- - drivers/gpu/drm/sun4i/sun4i_crtc.c | 6 ++++-- - drivers/gpu/drm/tegra/dc.c | 10 +++++----- - drivers/gpu/drm/tidss/tidss_crtc.c | 4 +++- - drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 2 +- - drivers/gpu/drm/vboxvideo/vbox_mode.c | 2 +- - drivers/gpu/drm/vc4/vc4_drv.h | 3 ++- - drivers/gpu/drm/vc4/vc4_hvs.c | 4 +++- - drivers/gpu/drm/virtio/virtgpu_display.c | 2 +- - drivers/gpu/drm/vkms/vkms_crtc.c | 4 ++-- - drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 4 ++-- - drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 4 ++-- - drivers/gpu/drm/xlnx/zynqmp_disp.c | 4 ++-- - drivers/gpu/drm/zte/zx_vou.c | 2 +- - include/drm/drm_modeset_helper_vtables.h | 4 ++-- - 39 files changed, 97 insertions(+), 80 deletions(-) - -diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c -index f33418d6e1a08..3c77eeb0a7a0c 100644 ---- a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c -+++ b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c -@@ -379,8 +379,10 @@ komeda_crtc_atomic_disable(struct drm_crtc *crtc, - - static void - komeda_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old) -+ struct drm_atomic_state *state) - { -+ struct drm_crtc_state *old = drm_atomic_get_old_crtc_state(state, -+ crtc); - /* commit with modeset will be handled in enable/disable */ - if (drm_atomic_crtc_needs_modeset(crtc->state)) - return; -diff --git a/drivers/gpu/drm/arm/hdlcd_crtc.c b/drivers/gpu/drm/arm/hdlcd_crtc.c -index af67fefed38dc..bd17646f4e133 100644 ---- a/drivers/gpu/drm/arm/hdlcd_crtc.c -+++ b/drivers/gpu/drm/arm/hdlcd_crtc.c -@@ -205,7 +205,7 @@ static enum drm_mode_status hdlcd_crtc_mode_valid(struct drm_crtc *crtc, - } - - static void hdlcd_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *state) -+ struct drm_atomic_state *state) - { - struct drm_pending_vblank_event *event = crtc->state->event; - -diff --git a/drivers/gpu/drm/armada/armada_crtc.c b/drivers/gpu/drm/armada/armada_crtc.c -index a887b6a5f8bd7..13c7c474fb26e 100644 ---- a/drivers/gpu/drm/armada/armada_crtc.c -+++ b/drivers/gpu/drm/armada/armada_crtc.c -@@ -427,7 +427,7 @@ static int armada_drm_crtc_atomic_check(struct drm_crtc *crtc, - } - - static void armada_drm_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); - -@@ -441,7 +441,7 @@ static void armada_drm_crtc_atomic_begin(struct drm_crtc *crtc, - } - - static void armada_drm_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); - -diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c -index d27f2840b9555..84c2e90d415f4 100644 ---- a/drivers/gpu/drm/ast/ast_mode.c -+++ b/drivers/gpu/drm/ast/ast_mode.c -@@ -777,8 +777,11 @@ static int ast_crtc_helper_atomic_check(struct drm_crtc *crtc, - } - - static void --ast_crtc_helper_atomic_flush(struct drm_crtc *crtc, struct drm_crtc_state *old_crtc_state) -+ast_crtc_helper_atomic_flush(struct drm_crtc *crtc, -+ struct drm_atomic_state *state) - { -+ struct drm_crtc_state *old_crtc_state = drm_atomic_get_old_crtc_state(state, -+ crtc); - struct ast_private *ast = to_ast_private(crtc->dev); - struct ast_crtc_state *ast_crtc_state = to_ast_crtc_state(crtc->state); - struct ast_crtc_state *old_ast_crtc_state = to_ast_crtc_state(old_crtc_state); -diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c -index ce246b96330b7..e7064abfa66ef 100644 ---- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c -+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c -@@ -341,7 +341,7 @@ static int atmel_hlcdc_crtc_atomic_check(struct drm_crtc *c, - } - - static void atmel_hlcdc_crtc_atomic_begin(struct drm_crtc *c, -- struct drm_crtc_state *old_s) -+ struct drm_atomic_state *state) - { - struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); - -@@ -356,7 +356,7 @@ static void atmel_hlcdc_crtc_atomic_begin(struct drm_crtc *c, - } - - static void atmel_hlcdc_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_s) -+ struct drm_atomic_state *state) - { - /* TODO: write common plane control register if available */ - } -diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c -index 0fde260b7edd8..121947e570e97 100644 ---- a/drivers/gpu/drm/drm_atomic_helper.c -+++ b/drivers/gpu/drm/drm_atomic_helper.c -@@ -2526,7 +2526,7 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev, - if (active_only && !new_crtc_state->active) - continue; - -- funcs->atomic_begin(crtc, old_crtc_state); -+ funcs->atomic_begin(crtc, old_state); - } - - for_each_oldnew_plane_in_state(old_state, plane, old_plane_state, new_plane_state, i) { -@@ -2584,7 +2584,7 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev, - if (active_only && !new_crtc_state->active) - continue; - -- funcs->atomic_flush(crtc, old_crtc_state); -+ funcs->atomic_flush(crtc, old_state); - } - } - EXPORT_SYMBOL(drm_atomic_helper_commit_planes); -@@ -2622,7 +2622,7 @@ drm_atomic_helper_commit_planes_on_crtc(struct drm_crtc_state *old_crtc_state) - - crtc_funcs = crtc->helper_private; - if (crtc_funcs && crtc_funcs->atomic_begin) -- crtc_funcs->atomic_begin(crtc, old_crtc_state); -+ crtc_funcs->atomic_begin(crtc, old_state); - - drm_for_each_plane_mask(plane, crtc->dev, plane_mask) { - struct drm_plane_state *old_plane_state = -@@ -2648,7 +2648,7 @@ drm_atomic_helper_commit_planes_on_crtc(struct drm_crtc_state *old_crtc_state) - } - - if (crtc_funcs && crtc_funcs->atomic_flush) -- crtc_funcs->atomic_flush(crtc, old_crtc_state); -+ crtc_funcs->atomic_flush(crtc, old_state); - } - EXPORT_SYMBOL(drm_atomic_helper_commit_planes_on_crtc); - -diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c -index de9fadccf22e5..3043f49c70f0c 100644 ---- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c -+++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c -@@ -62,7 +62,7 @@ static int exynos_crtc_atomic_check(struct drm_crtc *crtc, - } - - static void exynos_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); - -@@ -71,7 +71,7 @@ static void exynos_crtc_atomic_begin(struct drm_crtc *crtc, - } - - static void exynos_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); - -diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c -index b9ca81a6f80fb..9cd0c5c35af96 100644 ---- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c -+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c -@@ -21,7 +21,7 @@ - #include "fsl_dcu_drm_plane.h" - - static void fsl_dcu_drm_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct drm_device *dev = crtc->dev; - struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; -diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c -index 4d57ec688f827..222a895a3608e 100644 ---- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c -+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c -@@ -393,7 +393,7 @@ static void hibmc_crtc_mode_set_nofb(struct drm_crtc *crtc) - } - - static void hibmc_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - { - unsigned int reg; - struct drm_device *dev = crtc->dev; -@@ -413,7 +413,7 @@ static void hibmc_crtc_atomic_begin(struct drm_crtc *crtc, - } - - static void hibmc_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - - { - unsigned long flags; -diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c -index e1108c1735ad0..32d3cc89dbe93 100644 ---- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c -+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c -@@ -485,7 +485,7 @@ static void ade_crtc_mode_set_nofb(struct drm_crtc *crtc) - } - - static void ade_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - { - struct kirin_crtc *kcrtc = to_kirin_crtc(crtc); - struct ade_hw_ctx *ctx = kcrtc->hw_ctx; -@@ -498,7 +498,7 @@ static void ade_crtc_atomic_begin(struct drm_crtc *crtc, - } - - static void ade_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - - { - struct kirin_crtc *kcrtc = to_kirin_crtc(crtc); -diff --git a/drivers/gpu/drm/imx/dcss/dcss-crtc.c b/drivers/gpu/drm/imx/dcss/dcss-crtc.c -index 36abff0890b28..98fb71ca06695 100644 ---- a/drivers/gpu/drm/imx/dcss/dcss-crtc.c -+++ b/drivers/gpu/drm/imx/dcss/dcss-crtc.c -@@ -52,13 +52,13 @@ static const struct drm_crtc_funcs dcss_crtc_funcs = { - }; - - static void dcss_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - drm_crtc_vblank_on(crtc); - } - - static void dcss_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct dcss_crtc *dcss_crtc = container_of(crtc, struct dcss_crtc, - base); -diff --git a/drivers/gpu/drm/imx/ipuv3-crtc.c b/drivers/gpu/drm/imx/ipuv3-crtc.c -index fd9d8e51837fa..cf1e39f83401f 100644 ---- a/drivers/gpu/drm/imx/ipuv3-crtc.c -+++ b/drivers/gpu/drm/imx/ipuv3-crtc.c -@@ -236,13 +236,13 @@ static int ipu_crtc_atomic_check(struct drm_crtc *crtc, - } - - static void ipu_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - drm_crtc_vblank_on(crtc); - } - - static void ipu_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - spin_lock_irq(&crtc->dev->event_lock); - if (crtc->state->event) { -diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c -index 5ec9770e401e4..6d56b701118da 100644 ---- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c -+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c -@@ -287,7 +287,7 @@ ingenic_drm_crtc_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode - } - - static void ingenic_drm_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *oldstate) -+ struct drm_atomic_state *state) - { - struct ingenic_drm *priv = drm_crtc_get_priv(crtc); - u32 ctrl = 0; -@@ -307,26 +307,27 @@ static void ingenic_drm_crtc_atomic_begin(struct drm_crtc *crtc, - } - - static void ingenic_drm_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *oldstate) -+ struct drm_atomic_state *state) - { - struct ingenic_drm *priv = drm_crtc_get_priv(crtc); -- struct drm_crtc_state *state = crtc->state; -- struct drm_pending_vblank_event *event = state->event; -+ struct drm_crtc_state *crtc_state = crtc->state; -+ struct drm_pending_vblank_event *event = crtc_state->event; - -- if (drm_atomic_crtc_needs_modeset(state)) { -- ingenic_drm_crtc_update_timings(priv, &state->mode); -+ if (drm_atomic_crtc_needs_modeset(crtc_state)) { -+ ingenic_drm_crtc_update_timings(priv, &crtc_state->mode); - priv->update_clk_rate = true; - } - - if (priv->update_clk_rate) { - mutex_lock(&priv->clk_mutex); -- clk_set_rate(priv->pix_clk, state->adjusted_mode.clock * 1000); -+ clk_set_rate(priv->pix_clk, -+ crtc_state->adjusted_mode.clock * 1000); - priv->update_clk_rate = false; - mutex_unlock(&priv->clk_mutex); - } - - if (event) { -- state->event = NULL; -+ crtc_state->event = NULL; - - spin_lock_irq(&crtc->dev->event_lock); - if (drm_crtc_vblank_get(crtc) == 0) -diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c -index cc3cb5b63d444..067b4dc39f4f0 100644 ---- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c -+++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c -@@ -578,24 +578,24 @@ static void mtk_drm_crtc_atomic_disable(struct drm_crtc *crtc, - } - - static void mtk_drm_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { -- struct mtk_crtc_state *state = to_mtk_crtc_state(crtc->state); -+ struct mtk_crtc_state *crtc_state = to_mtk_crtc_state(crtc->state); - struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); - -- if (mtk_crtc->event && state->base.event) -+ if (mtk_crtc->event && crtc_state->base.event) - DRM_ERROR("new event while there is still a pending event\n"); - -- if (state->base.event) { -- state->base.event->pipe = drm_crtc_index(crtc); -+ if (crtc_state->base.event) { -+ crtc_state->base.event->pipe = drm_crtc_index(crtc); - WARN_ON(drm_crtc_vblank_get(crtc) != 0); -- mtk_crtc->event = state->base.event; -- state->base.event = NULL; -+ mtk_crtc->event = crtc_state->base.event; -+ crtc_state->base.event = NULL; - } - } - - static void mtk_drm_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); - int i; -diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c -index 2854272dc2d9b..c7f7bb160bba4 100644 ---- a/drivers/gpu/drm/meson/meson_crtc.c -+++ b/drivers/gpu/drm/meson/meson_crtc.c -@@ -201,7 +201,7 @@ static void meson_crtc_atomic_disable(struct drm_crtc *crtc, - } - - static void meson_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *state) -+ struct drm_atomic_state *state) - { - struct meson_crtc *meson_crtc = to_meson_crtc(crtc); - unsigned long flags; -@@ -217,7 +217,7 @@ static void meson_crtc_atomic_begin(struct drm_crtc *crtc, - } - - static void meson_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct meson_crtc *meson_crtc = to_meson_crtc(crtc); - struct meson_drm *priv = meson_crtc->priv; -diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c -index 4c64e2d4f6500..108911a43f92b 100644 ---- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c -+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c -@@ -485,7 +485,7 @@ static void _dpu_crtc_setup_cp_blocks(struct drm_crtc *crtc) - } - - static void dpu_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - { - struct dpu_crtc_state *cstate = to_dpu_crtc_state(crtc->state); - struct drm_encoder *encoder; -@@ -526,7 +526,7 @@ static void dpu_crtc_atomic_begin(struct drm_crtc *crtc, - } - - static void dpu_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct dpu_crtc *dpu_crtc; - struct drm_device *dev; -diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c -index a0253297bc769..69ac1eee1a227 100644 ---- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c -+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c -@@ -316,14 +316,14 @@ static int mdp4_crtc_atomic_check(struct drm_crtc *crtc, - } - - static void mdp4_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc); - DBG("%s: begin", mdp4_crtc->name); - } - - static void mdp4_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc); - struct drm_device *dev = crtc->dev; -diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c -index 60e7371cd0e0d..077369989a04b 100644 ---- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c -+++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c -@@ -775,13 +775,13 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc, - } - - static void mdp5_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - DBG("%s: begin", crtc->name); - } - - static void mdp5_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct mdp5_crtc *mdp5_crtc = to_mdp5_crtc(crtc); - struct mdp5_crtc_state *mdp5_cstate = to_mdp5_crtc_state(crtc->state); -diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c -index b535621f4f78d..d0e9d0ae9951f 100644 ---- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c -+++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c -@@ -324,7 +324,7 @@ static int mxsfb_crtc_atomic_check(struct drm_crtc *crtc, - } - - static void mxsfb_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - { - struct drm_pending_vblank_event *event; - -diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c -index 328a4a74f534e..3bc060682dcdc 100644 ---- a/drivers/gpu/drm/omapdrm/omap_crtc.c -+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c -@@ -598,12 +598,12 @@ static int omap_crtc_atomic_check(struct drm_crtc *crtc, - } - - static void omap_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - } - - static void omap_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct omap_drm_private *priv = crtc->dev->dev_private; - struct omap_crtc *omap_crtc = to_omap_crtc(crtc); -diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index f22a1b776f4ba..26294016f1e39 100644 ---- a/drivers/gpu/drm/qxl/qxl_display.c -+++ b/drivers/gpu/drm/qxl/qxl_display.c -@@ -373,7 +373,7 @@ static void qxl_crtc_update_monitors_config(struct drm_crtc *crtc, - } - - static void qxl_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - qxl_crtc_update_monitors_config(crtc, "flush"); - } -diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -index 065604c5837de..7007a8120394e 100644 ---- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c -@@ -780,7 +780,7 @@ static void rcar_du_crtc_atomic_disable(struct drm_crtc *crtc, - } - - static void rcar_du_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc); - -@@ -809,7 +809,7 @@ static void rcar_du_crtc_atomic_begin(struct drm_crtc *crtc, - } - - static void rcar_du_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc); - struct drm_device *dev = rcrtc->crtc.dev; -diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -index 682d78fab9a59..b7eeb3183aa94 100644 ---- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -@@ -1255,8 +1255,10 @@ static void vop_crtc_gamma_set(struct vop *vop, struct drm_crtc *crtc, - } - - static void vop_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { -+ struct drm_crtc_state *old_crtc_state = drm_atomic_get_old_crtc_state(state, -+ crtc); - struct vop *vop = to_vop(crtc); - - /* -@@ -1467,8 +1469,10 @@ static int vop_crtc_atomic_check(struct drm_crtc *crtc, - } - - static void vop_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { -+ struct drm_crtc_state *old_crtc_state = drm_atomic_get_old_crtc_state(state, -+ crtc); - struct drm_atomic_state *old_state = old_crtc_state->state; - struct drm_plane_state *old_plane_state, *new_plane_state; - struct vop *vop = to_vop(crtc); -diff --git a/drivers/gpu/drm/sti/sti_crtc.c b/drivers/gpu/drm/sti/sti_crtc.c -index 6f37c104c46f9..4f1e22933f48b 100644 ---- a/drivers/gpu/drm/sti/sti_crtc.c -+++ b/drivers/gpu/drm/sti/sti_crtc.c -@@ -133,7 +133,7 @@ sti_crtc_mode_set_nofb(struct drm_crtc *crtc) - } - - static void sti_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct drm_device *drm_dev = crtc->dev; - struct sti_mixer *mixer = to_sti_mixer(crtc); -diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c -index 089c00a8e7d49..ae73b93a14612 100644 ---- a/drivers/gpu/drm/stm/ltdc.c -+++ b/drivers/gpu/drm/stm/ltdc.c -@@ -629,7 +629,7 @@ static void ltdc_crtc_mode_set_nofb(struct drm_crtc *crtc) - } - - static void ltdc_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct ltdc_device *ldev = crtc_to_ltdc(crtc); - struct drm_device *ddev = crtc->dev; -diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/sun4i_crtc.c -index 3a153648b3698..cab86ec070843 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_crtc.c -+++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c -@@ -58,8 +58,10 @@ static int sun4i_crtc_atomic_check(struct drm_crtc *crtc, - } - - static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - { -+ struct drm_crtc_state *old_state = drm_atomic_get_old_crtc_state(state, -+ crtc); - struct sun4i_crtc *scrtc = drm_crtc_to_sun4i_crtc(crtc); - struct drm_device *dev = crtc->dev; - struct sunxi_engine *engine = scrtc->engine; -@@ -79,7 +81,7 @@ static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc, - } - - static void sun4i_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - { - struct sun4i_crtc *scrtc = drm_crtc_to_sun4i_crtc(crtc); - struct drm_pending_vblank_event *event = crtc->state->event; -diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c -index 958d12da902d3..f1e8951fa86c4 100644 ---- a/drivers/gpu/drm/tegra/dc.c -+++ b/drivers/gpu/drm/tegra/dc.c -@@ -1924,7 +1924,7 @@ static void tegra_crtc_atomic_enable(struct drm_crtc *crtc, - } - - static void tegra_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - unsigned long flags; - -@@ -1943,17 +1943,17 @@ static void tegra_crtc_atomic_begin(struct drm_crtc *crtc, - } - - static void tegra_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { -- struct tegra_dc_state *state = to_dc_state(crtc->state); -+ struct tegra_dc_state *crtc_state = to_dc_state(crtc->state); - struct tegra_dc *dc = to_tegra_dc(crtc); - u32 value; - -- value = state->planes << 8 | GENERAL_UPDATE; -+ value = crtc_state->planes << 8 | GENERAL_UPDATE; - tegra_dc_writel(dc, value, DC_CMD_STATE_CONTROL); - value = tegra_dc_readl(dc, DC_CMD_STATE_CONTROL); - -- value = state->planes | GENERAL_ACT_REQ; -+ value = crtc_state->planes | GENERAL_ACT_REQ; - tegra_dc_writel(dc, value, DC_CMD_STATE_CONTROL); - value = tegra_dc_readl(dc, DC_CMD_STATE_CONTROL); - } -diff --git a/drivers/gpu/drm/tidss/tidss_crtc.c b/drivers/gpu/drm/tidss/tidss_crtc.c -index 3c5744a91d4a0..7f80496173e85 100644 ---- a/drivers/gpu/drm/tidss/tidss_crtc.c -+++ b/drivers/gpu/drm/tidss/tidss_crtc.c -@@ -161,8 +161,10 @@ static void tidss_crtc_position_planes(struct tidss_device *tidss, - } - - static void tidss_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { -+ struct drm_crtc_state *old_crtc_state = drm_atomic_get_old_crtc_state(state, -+ crtc); - struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); - struct drm_device *ddev = crtc->dev; - struct tidss_device *tidss = to_tidss(ddev); -diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c -index 0aaa4a26b5db5..bf8587c24dfe7 100644 ---- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c -+++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c -@@ -547,7 +547,7 @@ static void tilcdc_crtc_atomic_disable(struct drm_crtc *crtc, - } - - static void tilcdc_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - { - if (!crtc->state->event) - return; -diff --git a/drivers/gpu/drm/vboxvideo/vbox_mode.c b/drivers/gpu/drm/vboxvideo/vbox_mode.c -index 4fcc0a542b8a6..ce173baaa84b6 100644 ---- a/drivers/gpu/drm/vboxvideo/vbox_mode.c -+++ b/drivers/gpu/drm/vboxvideo/vbox_mode.c -@@ -223,7 +223,7 @@ static void vbox_crtc_atomic_disable(struct drm_crtc *crtc, - } - - static void vbox_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - } - -diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index 921463625d82e..5d1e6a8323bf2 100644 ---- a/drivers/gpu/drm/vc4/vc4_drv.h -+++ b/drivers/gpu/drm/vc4/vc4_drv.h -@@ -919,7 +919,8 @@ int vc4_hvs_get_fifo_from_output(struct drm_device *dev, unsigned int output); - int vc4_hvs_atomic_check(struct drm_crtc *crtc, struct drm_crtc_state *state); - void vc4_hvs_atomic_enable(struct drm_crtc *crtc, struct drm_crtc_state *old_state); - void vc4_hvs_atomic_disable(struct drm_crtc *crtc, struct drm_crtc_state *old_state); --void vc4_hvs_atomic_flush(struct drm_crtc *crtc, struct drm_crtc_state *state); -+void vc4_hvs_atomic_flush(struct drm_crtc *crtc, -+ struct drm_atomic_state *state); - void vc4_hvs_dump_state(struct drm_device *dev); - void vc4_hvs_unmask_underrun(struct drm_device *dev, int channel); - void vc4_hvs_mask_underrun(struct drm_device *dev, int channel); -diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c -index f8f2fc3d15f73..34c342968e49e 100644 ---- a/drivers/gpu/drm/vc4/vc4_hvs.c -+++ b/drivers/gpu/drm/vc4/vc4_hvs.c -@@ -414,8 +414,10 @@ void vc4_hvs_atomic_disable(struct drm_crtc *crtc, - } - - void vc4_hvs_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - { -+ struct drm_crtc_state *old_state = drm_atomic_get_old_crtc_state(state, -+ crtc); - struct drm_device *dev = crtc->dev; - struct vc4_dev *vc4 = to_vc4_dev(dev); - struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc->state); -diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c -index 9b2b99e853422..fcbb0a6cdb173 100644 ---- a/drivers/gpu/drm/virtio/virtgpu_display.c -+++ b/drivers/gpu/drm/virtio/virtgpu_display.c -@@ -117,7 +117,7 @@ static int virtio_gpu_crtc_atomic_check(struct drm_crtc *crtc, - } - - static void virtio_gpu_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - { - struct virtio_gpu_output *output = drm_crtc_to_virtio_gpu_output(crtc); - -diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c -index 1ae5cd47d9546..252b7e0ba58e8 100644 ---- a/drivers/gpu/drm/vkms/vkms_crtc.c -+++ b/drivers/gpu/drm/vkms/vkms_crtc.c -@@ -227,7 +227,7 @@ static void vkms_crtc_atomic_disable(struct drm_crtc *crtc, - } - - static void vkms_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc); - -@@ -238,7 +238,7 @@ static void vkms_crtc_atomic_begin(struct drm_crtc *crtc, - } - - static void vkms_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc); - -diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c -index 0e963fd7db17e..0d5da0a1b506a 100644 ---- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c -+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c -@@ -553,13 +553,13 @@ int vmw_du_crtc_atomic_check(struct drm_crtc *crtc, - - - void vmw_du_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - } - - - void vmw_du_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - struct drm_pending_vblank_event *event = crtc->state->event; - -diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h -index 3ee03227607c6..d49b1c741b6b1 100644 ---- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h -+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h -@@ -475,9 +475,9 @@ void vmw_du_plane_unpin_surf(struct vmw_plane_state *vps, - int vmw_du_crtc_atomic_check(struct drm_crtc *crtc, - struct drm_crtc_state *state); - void vmw_du_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state); -+ struct drm_atomic_state *state); - void vmw_du_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state); -+ struct drm_atomic_state *state); - void vmw_du_crtc_reset(struct drm_crtc *crtc); - struct drm_crtc_state *vmw_du_crtc_duplicate_state(struct drm_crtc *crtc); - void vmw_du_crtc_destroy_state(struct drm_crtc *crtc, -diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c b/drivers/gpu/drm/xlnx/zynqmp_disp.c -index 205c72a249b75..227449ca017ee 100644 ---- a/drivers/gpu/drm/xlnx/zynqmp_disp.c -+++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c -@@ -1511,14 +1511,14 @@ static int zynqmp_disp_crtc_atomic_check(struct drm_crtc *crtc, - - static void - zynqmp_disp_crtc_atomic_begin(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - drm_crtc_vblank_on(crtc); - } - - static void - zynqmp_disp_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state) -+ struct drm_atomic_state *state) - { - if (crtc->state->event) { - struct drm_pending_vblank_event *event; -diff --git a/drivers/gpu/drm/zte/zx_vou.c b/drivers/gpu/drm/zte/zx_vou.c -index 5259ff2825f94..d91563a2603a8 100644 ---- a/drivers/gpu/drm/zte/zx_vou.c -+++ b/drivers/gpu/drm/zte/zx_vou.c -@@ -473,7 +473,7 @@ static void zx_crtc_atomic_disable(struct drm_crtc *crtc, - } - - static void zx_crtc_atomic_flush(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+ struct drm_atomic_state *state) - { - struct drm_pending_vblank_event *event = crtc->state->event; - -diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h -index 4efec30f8badc..e4b645f5b04a1 100644 ---- a/include/drm/drm_modeset_helper_vtables.h -+++ b/include/drm/drm_modeset_helper_vtables.h -@@ -374,7 +374,7 @@ struct drm_crtc_helper_funcs { - * transitional plane helpers, but it is optional. - */ - void (*atomic_begin)(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state); -+ struct drm_atomic_state *state); - /** - * @atomic_flush: - * -@@ -398,7 +398,7 @@ struct drm_crtc_helper_funcs { - * transitional plane helpers, but it is optional. - */ - void (*atomic_flush)(struct drm_crtc *crtc, -- struct drm_crtc_state *old_crtc_state); -+ struct drm_atomic_state *state); - - /** - * @atomic_enable: --- -2.43.0 - diff --git a/queue-5.10/drm-mediatek-add-spinlock-for-setting-vblank-event-i.patch b/queue-5.10/drm-mediatek-add-spinlock-for-setting-vblank-event-i.patch index da73b7bd859..8c2da9d2a5c 100644 --- a/queue-5.10/drm-mediatek-add-spinlock-for-setting-vblank-event-i.patch +++ b/queue-5.10/drm-mediatek-add-spinlock-for-setting-vblank-event-i.patch @@ -22,33 +22,28 @@ Link: https://patchwork.kernel.org/project/dri-devel/patch/20230920090658.31181- Signed-off-by: Chun-Kuang Hu Signed-off-by: Sasha Levin --- - drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 5 +++++ + drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 5 +++++ 1 file changed, 5 insertions(+) -diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c -index 380b0b52d2c7a..46ad9ce993f10 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c -@@ -585,6 +585,7 @@ static void mtk_drm_crtc_atomic_begin(struct drm_crtc *crtc, - crtc); - struct mtk_crtc_state *mtk_crtc_state = to_mtk_crtc_state(crtc_state); +@@ -582,6 +582,7 @@ static void mtk_drm_crtc_atomic_begin(st + { + struct mtk_crtc_state *state = to_mtk_crtc_state(crtc->state); struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); + unsigned long flags; - if (mtk_crtc->event && mtk_crtc_state->base.event) + if (mtk_crtc->event && state->base.event) DRM_ERROR("new event while there is still a pending event\n"); -@@ -592,7 +593,11 @@ static void mtk_drm_crtc_atomic_begin(struct drm_crtc *crtc, - if (mtk_crtc_state->base.event) { - mtk_crtc_state->base.event->pipe = drm_crtc_index(crtc); +@@ -589,7 +590,11 @@ static void mtk_drm_crtc_atomic_begin(st + if (state->base.event) { + state->base.event->pipe = drm_crtc_index(crtc); WARN_ON(drm_crtc_vblank_get(crtc) != 0); + + spin_lock_irqsave(&crtc->dev->event_lock, flags); - mtk_crtc->event = mtk_crtc_state->base.event; + mtk_crtc->event = state->base.event; + spin_unlock_irqrestore(&crtc->dev->event_lock, flags); + - mtk_crtc_state->base.event = NULL; + state->base.event = NULL; } } --- -2.43.0 - diff --git a/queue-5.10/drm-use-state-helper-instead-of-crtc-state-pointer.patch b/queue-5.10/drm-use-state-helper-instead-of-crtc-state-pointer.patch deleted file mode 100644 index 26dc04a3d91..00000000000 --- a/queue-5.10/drm-use-state-helper-instead-of-crtc-state-pointer.patch +++ /dev/null @@ -1,368 +0,0 @@ -From d633b09b632a6ec4c62ba0079e34aee2001ce6a5 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 5 Nov 2020 17:45:18 +0100 -Subject: drm: Use state helper instead of CRTC state pointer -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Maxime Ripard - -[ Upstream commit 253f28b6237264216b052ac0848fd7fc917b5259 ] - -Many drivers reference the crtc->pointer in order to get the current CRTC -state in their atomic_begin or atomic_flush hooks, which would be the new -CRTC state in the global atomic state since _swap_state happened when those -hooks are run. - -Use the drm_atomic_get_new_crtc_state helper to get that state to make it -more obvious. - -This was made using the coccinelle script below: - -@ crtc_atomic_func @ -identifier helpers; -identifier func; -@@ - -( -static struct drm_crtc_helper_funcs helpers = { - ..., - .atomic_begin = func, - ..., -}; -| -static struct drm_crtc_helper_funcs helpers = { - ..., - .atomic_flush = func, - ..., -}; -) - -@@ -identifier crtc_atomic_func.func; -identifier crtc, state; -symbol crtc_state; -expression e; -@@ - - func(struct drm_crtc *crtc, struct drm_atomic_state *state) { - ... -- struct tegra_dc_state *crtc_state = e; -+ struct tegra_dc_state *dc_state = e; - <+... -- crtc_state -+ dc_state - ...+> - } - -@@ -identifier crtc_atomic_func.func; -identifier crtc, state; -symbol crtc_state; -expression e; -@@ - - func(struct drm_crtc *crtc, struct drm_atomic_state *state) { - ... -- struct mtk_crtc_state *crtc_state = e; -+ struct mtk_crtc_state *mtk_crtc_state = e; - <+... -- crtc_state -+ mtk_crtc_state - ...+> - } - -@ replaces_new_state @ -identifier crtc_atomic_func.func; -identifier crtc, state, crtc_state; -@@ - - func(struct drm_crtc *crtc, struct drm_atomic_state *state) { - ... -- struct drm_crtc_state *crtc_state = crtc->state; -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, crtc); - ... - } - -@@ -identifier crtc_atomic_func.func; -identifier crtc, state, crtc_state; -@@ - - func(struct drm_crtc *crtc, struct drm_atomic_state *state) { - struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, crtc); - ... -- crtc->state -+ crtc_state - ... - } - -@ adds_new_state @ -identifier crtc_atomic_func.func; -identifier crtc, state; -@@ - - func(struct drm_crtc *crtc, struct drm_atomic_state *state) { -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, crtc); - ... -- crtc->state -+ crtc_state - ... - } - -@ include depends on adds_new_state || replaces_new_state @ -@@ - - #include - -@ no_include depends on !include && (adds_new_state || replaces_new_state) @ -@@ - -+ #include - #include - -Suggested-by: Ville Syrjälä -Signed-off-by: Maxime Ripard -Reviewed-by: Ville Syrjälä -Acked-by: Thomas Zimmermann -Cc: "James (Qian) Wang" -Cc: Liviu Dudau -Cc: Mihail Atanassov -Cc: Brian Starkey -Cc: Russell King -Cc: Paul Cercueil -Cc: Chun-Kuang Hu -Cc: Philipp Zabel -Cc: Sandy Huang -Cc: "Heiko Stübner" -Cc: Thierry Reding -Cc: Gerd Hoffmann -Link: https://patchwork.freedesktop.org/patch/msgid/20201105164518.392891-1-maxime@cerno.tech -Stable-dep-of: fe4c5f662097 ("drm/mediatek: Add spinlock for setting vblank event in atomic_begin") -Signed-off-by: Sasha Levin ---- - drivers/gpu/drm/arm/display/komeda/komeda_crtc.c | 4 +++- - drivers/gpu/drm/armada/armada_crtc.c | 8 ++++++-- - drivers/gpu/drm/ast/ast_mode.c | 4 +++- - drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 7 +++++-- - drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 15 +++++++++------ - drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 6 ++++-- - drivers/gpu/drm/tegra/dc.c | 8 +++++--- - drivers/gpu/drm/virtio/virtgpu_display.c | 4 +++- - 8 files changed, 38 insertions(+), 18 deletions(-) - -diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c -index 3c77eeb0a7a0c..db995250cbff6 100644 ---- a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c -+++ b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c -@@ -381,10 +381,12 @@ static void - komeda_crtc_atomic_flush(struct drm_crtc *crtc, - struct drm_atomic_state *state) - { -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, -+ crtc); - struct drm_crtc_state *old = drm_atomic_get_old_crtc_state(state, - crtc); - /* commit with modeset will be handled in enable/disable */ -- if (drm_atomic_crtc_needs_modeset(crtc->state)) -+ if (drm_atomic_crtc_needs_modeset(crtc_state)) - return; - - komeda_crtc_do_flush(crtc, old); -diff --git a/drivers/gpu/drm/armada/armada_crtc.c b/drivers/gpu/drm/armada/armada_crtc.c -index 13c7c474fb26e..8b7cc7bc81ee4 100644 ---- a/drivers/gpu/drm/armada/armada_crtc.c -+++ b/drivers/gpu/drm/armada/armada_crtc.c -@@ -429,11 +429,13 @@ static int armada_drm_crtc_atomic_check(struct drm_crtc *crtc, - static void armada_drm_crtc_atomic_begin(struct drm_crtc *crtc, - struct drm_atomic_state *state) - { -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, -+ crtc); - struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); - - DRM_DEBUG_KMS("[CRTC:%d:%s]\n", crtc->base.id, crtc->name); - -- if (crtc->state->color_mgmt_changed) -+ if (crtc_state->color_mgmt_changed) - armada_drm_update_gamma(crtc); - - dcrtc->regs_idx = 0; -@@ -443,6 +445,8 @@ static void armada_drm_crtc_atomic_begin(struct drm_crtc *crtc, - static void armada_drm_crtc_atomic_flush(struct drm_crtc *crtc, - struct drm_atomic_state *state) - { -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, -+ crtc); - struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); - - DRM_DEBUG_KMS("[CRTC:%d:%s]\n", crtc->base.id, crtc->name); -@@ -453,7 +457,7 @@ static void armada_drm_crtc_atomic_flush(struct drm_crtc *crtc, - * If we aren't doing a full modeset, then we need to queue - * the event here. - */ -- if (!drm_atomic_crtc_needs_modeset(crtc->state)) { -+ if (!drm_atomic_crtc_needs_modeset(crtc_state)) { - dcrtc->update_pending = true; - armada_drm_crtc_queue_state_event(crtc); - spin_lock_irq(&dcrtc->irq_lock); -diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c -index 84c2e90d415f4..7f3f961035872 100644 ---- a/drivers/gpu/drm/ast/ast_mode.c -+++ b/drivers/gpu/drm/ast/ast_mode.c -@@ -780,10 +780,12 @@ static void - ast_crtc_helper_atomic_flush(struct drm_crtc *crtc, - struct drm_atomic_state *state) - { -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, -+ crtc); - struct drm_crtc_state *old_crtc_state = drm_atomic_get_old_crtc_state(state, - crtc); - struct ast_private *ast = to_ast_private(crtc->dev); -- struct ast_crtc_state *ast_crtc_state = to_ast_crtc_state(crtc->state); -+ struct ast_crtc_state *ast_crtc_state = to_ast_crtc_state(crtc_state); - struct ast_crtc_state *old_ast_crtc_state = to_ast_crtc_state(old_crtc_state); - - /* -diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c -index 6d56b701118da..784a91d32bd1e 100644 ---- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c -+++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c -@@ -289,11 +289,13 @@ ingenic_drm_crtc_mode_valid(struct drm_crtc *crtc, const struct drm_display_mode - static void ingenic_drm_crtc_atomic_begin(struct drm_crtc *crtc, - struct drm_atomic_state *state) - { -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, -+ crtc); - struct ingenic_drm *priv = drm_crtc_get_priv(crtc); - u32 ctrl = 0; - - if (priv->soc_info->has_osd && -- drm_atomic_crtc_needs_modeset(crtc->state)) { -+ drm_atomic_crtc_needs_modeset(crtc_state)) { - /* - * If IPU plane is enabled, enable IPU as source for the F1 - * plane; otherwise use regular DMA. -@@ -310,7 +312,8 @@ static void ingenic_drm_crtc_atomic_flush(struct drm_crtc *crtc, - struct drm_atomic_state *state) - { - struct ingenic_drm *priv = drm_crtc_get_priv(crtc); -- struct drm_crtc_state *crtc_state = crtc->state; -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, -+ crtc); - struct drm_pending_vblank_event *event = crtc_state->event; - - if (drm_atomic_crtc_needs_modeset(crtc_state)) { -diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c -index 067b4dc39f4f0..380b0b52d2c7a 100644 ---- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c -+++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c -@@ -11,6 +11,7 @@ - #include - #include - -+#include - #include - #include - #include -@@ -580,17 +581,19 @@ static void mtk_drm_crtc_atomic_disable(struct drm_crtc *crtc, - static void mtk_drm_crtc_atomic_begin(struct drm_crtc *crtc, - struct drm_atomic_state *state) - { -- struct mtk_crtc_state *crtc_state = to_mtk_crtc_state(crtc->state); -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, -+ crtc); -+ struct mtk_crtc_state *mtk_crtc_state = to_mtk_crtc_state(crtc_state); - struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); - -- if (mtk_crtc->event && crtc_state->base.event) -+ if (mtk_crtc->event && mtk_crtc_state->base.event) - DRM_ERROR("new event while there is still a pending event\n"); - -- if (crtc_state->base.event) { -- crtc_state->base.event->pipe = drm_crtc_index(crtc); -+ if (mtk_crtc_state->base.event) { -+ mtk_crtc_state->base.event->pipe = drm_crtc_index(crtc); - WARN_ON(drm_crtc_vblank_get(crtc) != 0); -- mtk_crtc->event = crtc_state->base.event; -- crtc_state->base.event = NULL; -+ mtk_crtc->event = mtk_crtc_state->base.event; -+ mtk_crtc_state->base.event = NULL; - } - } - -diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -index b7eeb3183aa94..0a20fe4200b3d 100644 ---- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -@@ -1257,6 +1257,8 @@ static void vop_crtc_gamma_set(struct vop *vop, struct drm_crtc *crtc, - static void vop_crtc_atomic_begin(struct drm_crtc *crtc, - struct drm_atomic_state *state) - { -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, -+ crtc); - struct drm_crtc_state *old_crtc_state = drm_atomic_get_old_crtc_state(state, - crtc); - struct vop *vop = to_vop(crtc); -@@ -1265,8 +1267,8 @@ static void vop_crtc_atomic_begin(struct drm_crtc *crtc, - * Only update GAMMA if the 'active' flag is not changed, - * otherwise it's updated by .atomic_enable. - */ -- if (crtc->state->color_mgmt_changed && -- !crtc->state->active_changed) -+ if (crtc_state->color_mgmt_changed && -+ !crtc_state->active_changed) - vop_crtc_gamma_set(vop, crtc, old_crtc_state); - } - -diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c -index f1e8951fa86c4..093ac01ac3d90 100644 ---- a/drivers/gpu/drm/tegra/dc.c -+++ b/drivers/gpu/drm/tegra/dc.c -@@ -1945,15 +1945,17 @@ static void tegra_crtc_atomic_begin(struct drm_crtc *crtc, - static void tegra_crtc_atomic_flush(struct drm_crtc *crtc, - struct drm_atomic_state *state) - { -- struct tegra_dc_state *crtc_state = to_dc_state(crtc->state); -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, -+ crtc); -+ struct tegra_dc_state *dc_state = to_dc_state(crtc_state); - struct tegra_dc *dc = to_tegra_dc(crtc); - u32 value; - -- value = crtc_state->planes << 8 | GENERAL_UPDATE; -+ value = dc_state->planes << 8 | GENERAL_UPDATE; - tegra_dc_writel(dc, value, DC_CMD_STATE_CONTROL); - value = tegra_dc_readl(dc, DC_CMD_STATE_CONTROL); - -- value = crtc_state->planes | GENERAL_ACT_REQ; -+ value = dc_state->planes | GENERAL_ACT_REQ; - tegra_dc_writel(dc, value, DC_CMD_STATE_CONTROL); - value = tegra_dc_readl(dc, DC_CMD_STATE_CONTROL); - } -diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c -index fcbb0a6cdb173..9af912fc2426b 100644 ---- a/drivers/gpu/drm/virtio/virtgpu_display.c -+++ b/drivers/gpu/drm/virtio/virtgpu_display.c -@@ -119,6 +119,8 @@ static int virtio_gpu_crtc_atomic_check(struct drm_crtc *crtc, - static void virtio_gpu_crtc_atomic_flush(struct drm_crtc *crtc, - struct drm_atomic_state *state) - { -+ struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, -+ crtc); - struct virtio_gpu_output *output = drm_crtc_to_virtio_gpu_output(crtc); - - /* -@@ -127,7 +129,7 @@ static void virtio_gpu_crtc_atomic_flush(struct drm_crtc *crtc, - * in the plane update callback, and here we just check - * whenever we must force the modeset. - */ -- if (drm_atomic_crtc_needs_modeset(crtc->state)) { -+ if (drm_atomic_crtc_needs_modeset(crtc_state)) { - output->needs_modeset = true; - } - } --- -2.43.0 - diff --git a/queue-5.10/series b/queue-5.10/series index 1f27bbf634d..30f1d1473ac 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -27,8 +27,6 @@ alsa-hda-hdmi-add-force-connect-quirks-for-asustek-z170-variants.patch alsa-hda-realtek-apply-mute-led-quirk-for-hp15-db.patch revert-pci-acpiphp-reassign-resources-on-bridge-if-necessary.patch pci-loongson-limit-mrrs-to-256.patch -drm-atomic-pass-the-full-state-to-crtc-atomic-begin-.patch -drm-use-state-helper-instead-of-crtc-state-pointer.patch drm-mediatek-add-spinlock-for-setting-vblank-event-i.patch usb-aqc111-check-packet-for-fixup-for-true-limit.patch blk-throttle-fix-lockdep-warning-of-cgroup_mutex-or-.patch -- 2.47.3