<syeh@xxxxxxxxxx>,Thierry Reding <thierry.reding@xxxxxxxxx>,Thomas Hellstrom <thellstrom@xxxxxxxxxx>,Tomi Valkeinen <tomi.valkeinen@xxxxxx>,VMware Graphics <linux-graphics-maintainer@xxxxxxxxxx>,Vincent Abriou <vincent.abriou@xxxxxx>,Xinliang Liu <z.liuxinliang@xxxxxxxxxxxxx>,Xinwei Kong <kong.kongxinwei@xxxxxxxxxxxxx>,Yannick Fertre <yannick.fertre@xxxxxx> From: Stefan Agner <stefan@xxxxxxxx> Message-ID: <961A615D-ED2E-4FA2-A49E-BB250F3E9DBB@xxxxxxxx> On June 27, 2017 3:16:20 PM MDT, Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> wrote: >The old state is useful for drivers that need to perform operations at >enable time that depend on the transition between the old and new >states. > >While at it, rename the operation to .atomic_enable() to be consistent >with .atomic_disable(), as the .enable() operation is used by atomic >helpers only. > >Signed-off-by: Laurent Pinchart ><laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> >--- > drivers/gpu/drm/arc/arcpgu_crtc.c | 5 ++-- > drivers/gpu/drm/arm/hdlcd_crtc.c | 5 ++-- > drivers/gpu/drm/arm/malidp_crtc.c | 5 ++-- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 5 ++-- > drivers/gpu/drm/drm_atomic_helper.c | 7 +++-- > drivers/gpu/drm/drm_simple_kms_helper.c | 5 ++-- > drivers/gpu/drm/exynos/exynos_drm_crtc.c | 5 ++-- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 5 ++-- For fsl-dcu: Acked-by: Stefan Agner <stefan@xxxxxxxx> > drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c | 5 ++-- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 5 ++-- > drivers/gpu/drm/imx/ipuv3-crtc.c | 5 ++-- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 5 ++-- > drivers/gpu/drm/meson/meson_crtc.c | 5 ++-- > drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c | 5 ++-- > drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 5 ++-- > drivers/gpu/drm/omapdrm/omap_crtc.c | 5 ++-- > drivers/gpu/drm/qxl/qxl_display.c | 5 ++-- > drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 5 ++-- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 5 ++-- > drivers/gpu/drm/sti/sti_crtc.c | 5 ++-- > drivers/gpu/drm/stm/ltdc.c | 5 ++-- > drivers/gpu/drm/sun4i/sun4i_crtc.c | 5 ++-- > drivers/gpu/drm/tegra/dc.c | 5 ++-- > drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 8 +++++- > drivers/gpu/drm/vc4/vc4_crtc.c | 5 ++-- > drivers/gpu/drm/virtio/virtgpu_display.c | 5 ++-- > drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 7 +++-- > drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 7 +++-- > drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 5 ++-- > drivers/gpu/drm/zte/zx_vou.c | 5 ++-- >include/drm/drm_modeset_helper_vtables.h | 38 >+++++++++++++------------ > 31 files changed, 117 insertions(+), 80 deletions(-) > >diff --git a/drivers/gpu/drm/arc/arcpgu_crtc.c >b/drivers/gpu/drm/arc/arcpgu_crtc.c >index 1f306781c9d5..c9bc6a90ac83 100644 >--- a/drivers/gpu/drm/arc/arcpgu_crtc.c >+++ b/drivers/gpu/drm/arc/arcpgu_crtc.c >@@ -119,7 +119,8 @@ static void arc_pgu_crtc_mode_set_nofb(struct >drm_crtc *crtc) > clk_set_rate(arcpgu->clk, m->crtc_clock * 1000); > } > >-static void arc_pgu_crtc_enable(struct drm_crtc *crtc) >+static void arc_pgu_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct arcpgu_drm_private *arcpgu = crtc_to_arcpgu_priv(crtc); > >@@ -161,9 +162,9 @@ static const struct drm_crtc_helper_funcs >arc_pgu_crtc_helper_funcs = { > .mode_set = drm_helper_crtc_mode_set, > .mode_set_base = drm_helper_crtc_mode_set_base, > .mode_set_nofb = arc_pgu_crtc_mode_set_nofb, >- .enable = arc_pgu_crtc_enable, > .disable = arc_pgu_crtc_disable, > .atomic_begin = arc_pgu_crtc_atomic_begin, >+ .atomic_enable = arc_pgu_crtc_atomic_enable, > }; > > static void arc_pgu_plane_atomic_update(struct drm_plane *plane, >diff --git a/drivers/gpu/drm/arm/hdlcd_crtc.c >b/drivers/gpu/drm/arm/hdlcd_crtc.c >index d67b6f15e8b8..2b7f4f05d91f 100644 >--- a/drivers/gpu/drm/arm/hdlcd_crtc.c >+++ b/drivers/gpu/drm/arm/hdlcd_crtc.c >@@ -165,7 +165,8 @@ static void hdlcd_crtc_mode_set_nofb(struct >drm_crtc *crtc) > clk_set_rate(hdlcd->clk, m->crtc_clock * 1000); > } > >-static void hdlcd_crtc_enable(struct drm_crtc *crtc) >+static void hdlcd_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct hdlcd_drm_private *hdlcd = crtc_to_hdlcd_priv(crtc); > >@@ -218,10 +219,10 @@ static void hdlcd_crtc_atomic_begin(struct >drm_crtc *crtc, > } > > static const struct drm_crtc_helper_funcs hdlcd_crtc_helper_funcs = { >- .enable = hdlcd_crtc_enable, > .disable = hdlcd_crtc_disable, > .atomic_check = hdlcd_crtc_atomic_check, > .atomic_begin = hdlcd_crtc_atomic_begin, >+ .atomic_enable = hdlcd_crtc_atomic_enable, > }; > > static int hdlcd_plane_atomic_check(struct drm_plane *plane, >diff --git a/drivers/gpu/drm/arm/malidp_crtc.c >b/drivers/gpu/drm/arm/malidp_crtc.c >index 4bb38a21efec..8e5b1c0181ab 100644 >--- a/drivers/gpu/drm/arm/malidp_crtc.c >+++ b/drivers/gpu/drm/arm/malidp_crtc.c >@@ -46,7 +46,8 @@ static enum drm_mode_status >malidp_crtc_mode_valid(struct drm_crtc *crtc, > return MODE_OK; > } > >-static void malidp_crtc_enable(struct drm_crtc *crtc) >+static void malidp_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct malidp_drm *malidp = crtc_to_malidp_device(crtc); > struct malidp_hw_device *hwdev = malidp->dev; >@@ -408,9 +409,9 @@ static int malidp_crtc_atomic_check(struct drm_crtc >*crtc, > > static const struct drm_crtc_helper_funcs malidp_crtc_helper_funcs = { > .mode_valid = malidp_crtc_mode_valid, >- .enable = malidp_crtc_enable, > .disable = malidp_crtc_disable, > .atomic_check = malidp_crtc_atomic_check, >+ .atomic_enable = malidp_crtc_atomic_enable, > }; > >static struct drm_crtc_state *malidp_crtc_duplicate_state(struct >drm_crtc *crtc) >diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c >b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c >index f6b8c5908a20..e54e503180f4 100644 >--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c >+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c >@@ -183,7 +183,8 @@ static void atmel_hlcdc_crtc_disable(struct >drm_crtc *c) > pm_runtime_put_sync(dev->dev); > } > >-static void atmel_hlcdc_crtc_enable(struct drm_crtc *c) >+static void atmel_hlcdc_crtc_atomic_enable(struct drm_crtc *c, >+ struct drm_crtc_state *old_state) > { > struct drm_device *dev = c->dev; > struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); >@@ -320,10 +321,10 @@ static const struct drm_crtc_helper_funcs >lcdc_crtc_helper_funcs = { > .mode_set_nofb = atmel_hlcdc_crtc_mode_set_nofb, > .mode_set_base = drm_helper_crtc_mode_set_base, > .disable = atmel_hlcdc_crtc_disable, >- .enable = atmel_hlcdc_crtc_enable, > .atomic_check = atmel_hlcdc_crtc_atomic_check, > .atomic_begin = atmel_hlcdc_crtc_atomic_begin, > .atomic_flush = atmel_hlcdc_crtc_atomic_flush, >+ .atomic_enable = atmel_hlcdc_crtc_atomic_enable, > }; > > static void atmel_hlcdc_crtc_destroy(struct drm_crtc *c) >diff --git a/drivers/gpu/drm/drm_atomic_helper.c >b/drivers/gpu/drm/drm_atomic_helper.c >index 2f269e4267da..23e4661a62fe 100644 >--- a/drivers/gpu/drm/drm_atomic_helper.c >+++ b/drivers/gpu/drm/drm_atomic_helper.c >@@ -1069,12 +1069,13 @@ void >drm_atomic_helper_commit_modeset_enables(struct drm_device *dev, > struct drm_atomic_state *old_state) > { > struct drm_crtc *crtc; >+ struct drm_crtc_state *old_crtc_state; > struct drm_crtc_state *new_crtc_state; > struct drm_connector *connector; > struct drm_connector_state *new_conn_state; > int i; > >- for_each_new_crtc_in_state(old_state, crtc, new_crtc_state, i) { >+ for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, >new_crtc_state, i) { > const struct drm_crtc_helper_funcs *funcs; > > /* Need to filter out CRTCs where only planes change. */ >@@ -1090,8 +1091,8 @@ void >drm_atomic_helper_commit_modeset_enables(struct drm_device *dev, > DRM_DEBUG_ATOMIC("enabling [CRTC:%d:%s]\n", > crtc->base.id, crtc->name); > >- if (funcs->enable) >- funcs->enable(crtc); >+ if (funcs->atomic_enable) >+ funcs->atomic_enable(crtc, old_crtc_state); > else > funcs->commit(crtc); > } >diff --git a/drivers/gpu/drm/drm_simple_kms_helper.c >b/drivers/gpu/drm/drm_simple_kms_helper.c >index e084f9f8ca66..58c27ab1756f 100644 >--- a/drivers/gpu/drm/drm_simple_kms_helper.c >+++ b/drivers/gpu/drm/drm_simple_kms_helper.c >@@ -40,7 +40,8 @@ static int drm_simple_kms_crtc_check(struct drm_crtc >*crtc, > return drm_atomic_add_affected_planes(state->state, crtc); > } > >-static void drm_simple_kms_crtc_enable(struct drm_crtc *crtc) >+static void drm_simple_kms_crtc_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct drm_simple_display_pipe *pipe; > >@@ -64,8 +65,8 @@ static void drm_simple_kms_crtc_disable(struct >drm_crtc *crtc) > >static const struct drm_crtc_helper_funcs >drm_simple_kms_crtc_helper_funcs = { > .atomic_check = drm_simple_kms_crtc_check, >+ .atomic_enable = drm_simple_kms_crtc_enable, > .disable = drm_simple_kms_crtc_disable, >- .enable = drm_simple_kms_crtc_enable, > }; > > static const struct drm_crtc_funcs drm_simple_kms_crtc_funcs = { >diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c >b/drivers/gpu/drm/exynos/exynos_drm_crtc.c >index d72777f6411a..b7e2fadb6442 100644 >--- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c >+++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c >@@ -21,7 +21,8 @@ > #include "exynos_drm_drv.h" > #include "exynos_drm_plane.h" > >-static void exynos_drm_crtc_enable(struct drm_crtc *crtc) >+static void exynos_drm_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); > >@@ -82,11 +83,11 @@ static void exynos_crtc_atomic_flush(struct >drm_crtc *crtc, > } > > static const struct drm_crtc_helper_funcs exynos_crtc_helper_funcs = { >- .enable = exynos_drm_crtc_enable, > .disable = exynos_drm_crtc_disable, > .atomic_check = exynos_crtc_atomic_check, > .atomic_begin = exynos_crtc_atomic_begin, > .atomic_flush = exynos_crtc_atomic_flush, >+ .atomic_enable = exynos_drm_crtc_atomic_enable, > }; > > void exynos_crtc_handle_event(struct exynos_drm_crtc *exynos_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 cc4e944a1d3c..0e3752437e44 100644 >--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c >+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c >@@ -63,7 +63,8 @@ static void fsl_dcu_drm_crtc_atomic_disable(struct >drm_crtc *crtc, > clk_disable_unprepare(fsl_dev->pix_clk); > } > >-static void fsl_dcu_drm_crtc_enable(struct drm_crtc *crtc) >+static void fsl_dcu_drm_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct drm_device *dev = crtc->dev; > struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; >@@ -133,7 +134,7 @@ static void fsl_dcu_drm_crtc_mode_set_nofb(struct >drm_crtc *crtc) >static const struct drm_crtc_helper_funcs fsl_dcu_drm_crtc_helper_funcs >= { > .atomic_disable = fsl_dcu_drm_crtc_atomic_disable, > .atomic_flush = fsl_dcu_drm_crtc_atomic_flush, >- .enable = fsl_dcu_drm_crtc_enable, >+ .atomic_enable = fsl_dcu_drm_crtc_atomic_enable, > .mode_set_nofb = fsl_dcu_drm_crtc_mode_set_nofb, > }; > >diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c >b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c >index 59542bddc980..49ef47c0c81a 100644 >--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c >+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c >@@ -192,7 +192,8 @@ static struct drm_plane *hibmc_plane_init(struct >hibmc_drm_private *priv) > return plane; > } > >-static void hibmc_crtc_enable(struct drm_crtc *crtc) >+static void hibmc_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > unsigned int reg; > struct hibmc_drm_private *priv = crtc->dev->dev_private; >@@ -453,11 +454,11 @@ static const struct drm_crtc_funcs >hibmc_crtc_funcs = { > }; > > static const struct drm_crtc_helper_funcs hibmc_crtc_helper_funcs = { >- .enable = hibmc_crtc_enable, > .disable = hibmc_crtc_disable, > .mode_set_nofb = hibmc_crtc_mode_set_nofb, > .atomic_begin = hibmc_crtc_atomic_begin, > .atomic_flush = hibmc_crtc_atomic_flush, >+ .atomic_enable = hibmc_crtc_atomic_enable, > }; > > int hibmc_de_init(struct hibmc_drm_private *priv) >diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c >b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c >index c96c228a9898..8e00818b24fc 100644 >--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c >+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c >@@ -467,7 +467,8 @@ static void ade_dump_regs(void __iomem *base) > static void ade_dump_regs(void __iomem *base) { } > #endif > >-static void ade_crtc_enable(struct drm_crtc *crtc) >+static void ade_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct ade_crtc *acrtc = to_ade_crtc(crtc); > struct ade_hw_ctx *ctx = acrtc->ctx; >@@ -553,11 +554,11 @@ static void ade_crtc_atomic_flush(struct drm_crtc >*crtc, > } > > static const struct drm_crtc_helper_funcs ade_crtc_helper_funcs = { >- .enable = ade_crtc_enable, > .disable = ade_crtc_disable, > .mode_set_nofb = ade_crtc_mode_set_nofb, > .atomic_begin = ade_crtc_atomic_begin, > .atomic_flush = ade_crtc_atomic_flush, >+ .atomic_enable = ade_crtc_atomic_enable, > }; > > static const struct drm_crtc_funcs ade_crtc_funcs = { >diff --git a/drivers/gpu/drm/imx/ipuv3-crtc.c >b/drivers/gpu/drm/imx/ipuv3-crtc.c >index 5456c15d962c..53e0b24beda6 100644 >--- a/drivers/gpu/drm/imx/ipuv3-crtc.c >+++ b/drivers/gpu/drm/imx/ipuv3-crtc.c >@@ -50,7 +50,8 @@ static inline struct ipu_crtc *to_ipu_crtc(struct >drm_crtc *crtc) > return container_of(crtc, struct ipu_crtc, base); > } > >-static void ipu_crtc_enable(struct drm_crtc *crtc) >+static void ipu_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc); > struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent); >@@ -293,7 +294,7 @@ static const struct drm_crtc_helper_funcs >ipu_helper_funcs = { > .atomic_check = ipu_crtc_atomic_check, > .atomic_begin = ipu_crtc_atomic_begin, > .atomic_disable = ipu_crtc_atomic_disable, >- .enable = ipu_crtc_enable, >+ .atomic_enable = ipu_crtc_atomic_enable, > }; > > static void ipu_put_resources(struct ipu_crtc *ipu_crtc) >diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c >b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c >index 6582e1f56d37..5971b0827d1b 100644 >--- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c >+++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c >@@ -366,7 +366,8 @@ static void mtk_crtc_ddp_config(struct drm_crtc >*crtc) > } > } > >-static void mtk_drm_crtc_enable(struct drm_crtc *crtc) >+static void mtk_drm_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); > struct mtk_ddp_comp *ovl = mtk_crtc->ddp_comp[0]; >@@ -487,10 +488,10 @@ static const struct drm_crtc_funcs mtk_crtc_funcs >= { > static const struct drm_crtc_helper_funcs mtk_crtc_helper_funcs = { > .mode_fixup = mtk_drm_crtc_mode_fixup, > .mode_set_nofb = mtk_drm_crtc_mode_set_nofb, >- .enable = mtk_drm_crtc_enable, > .disable = mtk_drm_crtc_disable, > .atomic_begin = mtk_drm_crtc_atomic_begin, > .atomic_flush = mtk_drm_crtc_atomic_flush, >+ .atomic_enable = mtk_drm_crtc_atomic_enable, > }; > > static int mtk_drm_crtc_init(struct drm_device *drm, >diff --git a/drivers/gpu/drm/meson/meson_crtc.c >b/drivers/gpu/drm/meson/meson_crtc.c >index c986eb03b9d9..6f148307b0e0 100644 >--- a/drivers/gpu/drm/meson/meson_crtc.c >+++ b/drivers/gpu/drm/meson/meson_crtc.c >@@ -79,7 +79,8 @@ static const struct drm_crtc_funcs meson_crtc_funcs = >{ > > }; > >-static void meson_crtc_enable(struct drm_crtc *crtc) >+static void meson_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct meson_crtc *meson_crtc = to_meson_crtc(crtc); > struct drm_crtc_state *crtc_state = crtc->state; >@@ -149,10 +150,10 @@ static void meson_crtc_atomic_flush(struct >drm_crtc *crtc, > } > > static const struct drm_crtc_helper_funcs meson_crtc_helper_funcs = { >- .enable = meson_crtc_enable, > .disable = meson_crtc_disable, > .atomic_begin = meson_crtc_atomic_begin, > .atomic_flush = meson_crtc_atomic_flush, >+ .atomic_enable = meson_crtc_atomic_enable, > }; > > void meson_crtc_irq(struct meson_drm *priv) >diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c >b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c >index 615e1def64d9..9c20133f3f8d 100644 >--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c >+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c >@@ -295,7 +295,8 @@ static void mdp4_crtc_disable(struct drm_crtc >*crtc) > mdp4_crtc->enabled = false; > } > >-static void mdp4_crtc_enable(struct drm_crtc *crtc) >+static void mdp4_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc); > struct mdp4_kms *mdp4_kms = get_kms(crtc); >@@ -493,10 +494,10 @@ static const struct drm_crtc_funcs >mdp4_crtc_funcs = { > static const struct drm_crtc_helper_funcs mdp4_crtc_helper_funcs = { > .mode_set_nofb = mdp4_crtc_mode_set_nofb, > .disable = mdp4_crtc_disable, >- .enable = mdp4_crtc_enable, > .atomic_check = mdp4_crtc_atomic_check, > .atomic_begin = mdp4_crtc_atomic_begin, > .atomic_flush = mdp4_crtc_atomic_flush, >+ .atomic_enable = mdp4_crtc_atomic_enable, > }; > >static void mdp4_crtc_vblank_irq(struct mdp_irq *irq, uint32_t >irqstatus) >diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c >b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c >index cb5415d6c04b..d39d9d24d169 100644 >--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c >+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c >@@ -429,7 +429,8 @@ static void mdp5_crtc_disable(struct drm_crtc >*crtc) > mdp5_crtc->enabled = false; > } > >-static void mdp5_crtc_enable(struct drm_crtc *crtc) >+static void mdp5_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct mdp5_crtc *mdp5_crtc = to_mdp5_crtc(crtc); > struct mdp5_crtc_state *mdp5_cstate = to_mdp5_crtc_state(crtc->state); >@@ -940,10 +941,10 @@ static const struct drm_crtc_funcs >mdp5_crtc_no_lm_cursor_funcs = { > static const struct drm_crtc_helper_funcs mdp5_crtc_helper_funcs = { > .mode_set_nofb = mdp5_crtc_mode_set_nofb, > .disable = mdp5_crtc_disable, >- .enable = mdp5_crtc_enable, > .atomic_check = mdp5_crtc_atomic_check, > .atomic_begin = mdp5_crtc_atomic_begin, > .atomic_flush = mdp5_crtc_atomic_flush, >+ .atomic_enable = mdp5_crtc_atomic_enable, > }; > >static void mdp5_crtc_vblank_irq(struct mdp_irq *irq, uint32_t >irqstatus) >diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c >b/drivers/gpu/drm/omapdrm/omap_crtc.c >index dd0ef40ca469..7a1b7a9cc270 100644 >--- a/drivers/gpu/drm/omapdrm/omap_crtc.c >+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c >@@ -356,7 +356,8 @@ static void omap_crtc_arm_event(struct drm_crtc >*crtc) > } > } > >-static void omap_crtc_enable(struct drm_crtc *crtc) >+static void omap_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct omap_crtc *omap_crtc = to_omap_crtc(crtc); > int ret; >@@ -568,10 +569,10 @@ static const struct drm_crtc_funcs >omap_crtc_funcs = { > static const struct drm_crtc_helper_funcs omap_crtc_helper_funcs = { > .mode_set_nofb = omap_crtc_mode_set_nofb, > .disable = omap_crtc_disable, >- .enable = omap_crtc_enable, > .atomic_check = omap_crtc_atomic_check, > .atomic_begin = omap_crtc_atomic_begin, > .atomic_flush = omap_crtc_atomic_flush, >+ .atomic_enable = omap_crtc_atomic_enable, > }; > >/* >----------------------------------------------------------------------------- >diff --git a/drivers/gpu/drm/qxl/qxl_display.c >b/drivers/gpu/drm/qxl/qxl_display.c >index 7ede5f131a5c..ea95e7e7cc7f 100644 >--- a/drivers/gpu/drm/qxl/qxl_display.c >+++ b/drivers/gpu/drm/qxl/qxl_display.c >@@ -447,7 +447,8 @@ static void qxl_mode_set_nofb(struct drm_crtc >*crtc) > > } > >-static void qxl_crtc_enable(struct drm_crtc *crtc) >+static void qxl_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > DRM_DEBUG("\n"); > } >@@ -466,8 +467,8 @@ static const struct drm_crtc_helper_funcs >qxl_crtc_helper_funcs = { > .disable = qxl_crtc_disable, > .mode_fixup = qxl_crtc_mode_fixup, > .mode_set_nofb = qxl_mode_set_nofb, >- .enable = qxl_crtc_enable, > .atomic_flush = qxl_crtc_atomic_flush, >+ .atomic_enable = qxl_crtc_atomic_enable, > }; > > static int qxl_primary_atomic_check(struct drm_plane *plane, >diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c >b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c >index 345eff72f581..6aa3fa8d06f9 100644 >--- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c >+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c >@@ -552,7 +552,8 @@ void rcar_du_crtc_resume(struct rcar_du_crtc >*rcrtc) > * CRTC Functions > */ > >-static void rcar_du_crtc_enable(struct drm_crtc *crtc) >+static void rcar_du_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc); > >@@ -610,9 +611,9 @@ static void rcar_du_crtc_atomic_flush(struct >drm_crtc *crtc, > > static const struct drm_crtc_helper_funcs crtc_helper_funcs = { > .disable = rcar_du_crtc_disable, >- .enable = rcar_du_crtc_enable, > .atomic_begin = rcar_du_crtc_atomic_begin, > .atomic_flush = rcar_du_crtc_atomic_flush, >+ .atomic_enable = rcar_du_crtc_atomic_enable, > }; > > static int rcar_du_crtc_enable_vblank(struct drm_crtc *crtc) >diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >index 5d450332c2fd..bb59f7410634 100644 >--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >@@ -871,7 +871,8 @@ static bool vop_crtc_mode_fixup(struct drm_crtc >*crtc, > return true; > } > >-static void vop_crtc_enable(struct drm_crtc *crtc) >+static void vop_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct vop *vop = to_vop(crtc); > const struct vop_data *vop_data = vop->data; >@@ -1079,11 +1080,11 @@ static void vop_crtc_atomic_begin(struct >drm_crtc *crtc, > } > > static const struct drm_crtc_helper_funcs vop_crtc_helper_funcs = { >- .enable = vop_crtc_enable, > .disable = vop_crtc_disable, > .mode_fixup = vop_crtc_mode_fixup, > .atomic_flush = vop_crtc_atomic_flush, > .atomic_begin = vop_crtc_atomic_begin, >+ .atomic_enable = vop_crtc_atomic_enable, > }; > > static void vop_crtc_destroy(struct drm_crtc *crtc) >diff --git a/drivers/gpu/drm/sti/sti_crtc.c >b/drivers/gpu/drm/sti/sti_crtc.c >index d45a4335df5d..bb864345fedf 100644 >--- a/drivers/gpu/drm/sti/sti_crtc.c >+++ b/drivers/gpu/drm/sti/sti_crtc.c >@@ -20,7 +20,8 @@ > #include "sti_vid.h" > #include "sti_vtg.h" > >-static void sti_crtc_enable(struct drm_crtc *crtc) >+static void sti_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct sti_mixer *mixer = to_sti_mixer(crtc); > >@@ -222,10 +223,10 @@ static void sti_crtc_atomic_flush(struct drm_crtc >*crtc, > } > > static const struct drm_crtc_helper_funcs sti_crtc_helper_funcs = { >- .enable = sti_crtc_enable, > .disable = sti_crtc_disabling, > .mode_set_nofb = sti_crtc_mode_set_nofb, > .atomic_flush = sti_crtc_atomic_flush, >+ .atomic_enable = sti_crtc_atomic_enable, > }; > > static void sti_crtc_destroy(struct drm_crtc *crtc) >diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c >index 1b9483d4f2a4..337fce004d08 100644 >--- a/drivers/gpu/drm/stm/ltdc.c >+++ b/drivers/gpu/drm/stm/ltdc.c >@@ -386,7 +386,8 @@ static void ltdc_crtc_load_lut(struct drm_crtc >*crtc) > ldev->clut[i]); > } > >-static void ltdc_crtc_enable(struct drm_crtc *crtc) >+static void ltdc_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct ltdc_device *ldev = crtc_to_ltdc(crtc); > >@@ -524,10 +525,10 @@ static void ltdc_crtc_atomic_flush(struct >drm_crtc *crtc, > > static struct drm_crtc_helper_funcs ltdc_crtc_helper_funcs = { > .load_lut = ltdc_crtc_load_lut, >- .enable = ltdc_crtc_enable, > .disable = ltdc_crtc_disable, > .mode_set_nofb = ltdc_crtc_mode_set_nofb, > .atomic_flush = ltdc_crtc_atomic_flush, >+ .atomic_enable = ltdc_crtc_atomic_enable, > }; > >int ltdc_crtc_enable_vblank(struct drm_device *ddev, unsigned int pipe) >diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c >b/drivers/gpu/drm/sun4i/sun4i_crtc.c >index f8c70439d1e2..509e4d8014f3 100644 >--- a/drivers/gpu/drm/sun4i/sun4i_crtc.c >+++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c >@@ -86,7 +86,8 @@ static void sun4i_crtc_disable(struct drm_crtc *crtc) > } > } > >-static void sun4i_crtc_enable(struct drm_crtc *crtc) >+static void sun4i_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct sun4i_crtc *scrtc = drm_crtc_to_sun4i_crtc(crtc); > >@@ -98,8 +99,8 @@ static void sun4i_crtc_enable(struct drm_crtc *crtc) > static const struct drm_crtc_helper_funcs sun4i_crtc_helper_funcs = { > .atomic_begin = sun4i_crtc_atomic_begin, > .atomic_flush = sun4i_crtc_atomic_flush, >+ .atomic_enable = sun4i_crtc_atomic_enable, > .disable = sun4i_crtc_disable, >- .enable = sun4i_crtc_enable, > }; > > static int sun4i_crtc_enable_vblank(struct drm_crtc *crtc) >diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c >index c875f11786b9..2e0d167cb657 100644 >--- a/drivers/gpu/drm/tegra/dc.c >+++ b/drivers/gpu/drm/tegra/dc.c >@@ -1243,7 +1243,8 @@ static void tegra_crtc_disable(struct drm_crtc >*crtc) > pm_runtime_put_sync(dc->dev); > } > >-static void tegra_crtc_enable(struct drm_crtc *crtc) >+static void tegra_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct drm_display_mode *mode = &crtc->state->adjusted_mode; > struct tegra_dc_state *state = to_dc_state(crtc->state); >@@ -1352,10 +1353,10 @@ static void tegra_crtc_atomic_flush(struct >drm_crtc *crtc, > > static const struct drm_crtc_helper_funcs tegra_crtc_helper_funcs = { > .disable = tegra_crtc_disable, >- .enable = tegra_crtc_enable, > .atomic_check = tegra_crtc_atomic_check, > .atomic_begin = tegra_crtc_atomic_begin, > .atomic_flush = tegra_crtc_atomic_flush, >+ .atomic_enable = tegra_crtc_atomic_enable, > }; > > static irqreturn_t tegra_dc_irq(int irq, void *data) >diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c >b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c >index d524ed0d5146..6c5892763d27 100644 >--- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c >+++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c >@@ -504,6 +504,12 @@ static void tilcdc_crtc_enable(struct drm_crtc >*crtc) > mutex_unlock(&tilcdc_crtc->enable_lock); > } > >+static void tilcdc_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) >+{ >+ tilcdc_crtc_enable(crtc); >+} >+ > static void tilcdc_crtc_off(struct drm_crtc *crtc, bool shutdown) > { > struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); >@@ -729,9 +735,9 @@ static const struct drm_crtc_funcs >tilcdc_crtc_funcs = { > > static const struct drm_crtc_helper_funcs tilcdc_crtc_helper_funcs = { > .mode_fixup = tilcdc_crtc_mode_fixup, >- .enable = tilcdc_crtc_enable, > .disable = tilcdc_crtc_disable, > .atomic_check = tilcdc_crtc_atomic_check, >+ .atomic_enable = tilcdc_crtc_atomic_enable, > }; > > int tilcdc_crtc_max_width(struct drm_crtc *crtc) >diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c >b/drivers/gpu/drm/vc4/vc4_crtc.c >index f20c01759c0d..4c03a565b276 100644 >--- a/drivers/gpu/drm/vc4/vc4_crtc.c >+++ b/drivers/gpu/drm/vc4/vc4_crtc.c >@@ -533,7 +533,8 @@ static void vc4_crtc_disable(struct drm_crtc *crtc) > } > } > >-static void vc4_crtc_enable(struct drm_crtc *crtc) >+static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct drm_device *dev = crtc->dev; > struct vc4_dev *vc4 = to_vc4_dev(dev); >@@ -870,10 +871,10 @@ static const struct drm_crtc_funcs vc4_crtc_funcs >= { > static const struct drm_crtc_helper_funcs vc4_crtc_helper_funcs = { > .mode_set_nofb = vc4_crtc_mode_set_nofb, > .disable = vc4_crtc_disable, >- .enable = vc4_crtc_enable, > .mode_valid = vc4_crtc_mode_valid, > .atomic_check = vc4_crtc_atomic_check, > .atomic_flush = vc4_crtc_atomic_flush, >+ .atomic_enable = vc4_crtc_atomic_enable, > }; > > static const struct vc4_crtc_data pv0_data = { >diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c >b/drivers/gpu/drm/virtio/virtgpu_display.c >index d51bd4521f17..03a3c12ed100 100644 >--- a/drivers/gpu/drm/virtio/virtgpu_display.c >+++ b/drivers/gpu/drm/virtio/virtgpu_display.c >@@ -113,7 +113,8 @@ static void virtio_gpu_crtc_mode_set_nofb(struct >drm_crtc *crtc) > crtc->mode.vdisplay, 0, 0); > } > >-static void virtio_gpu_crtc_enable(struct drm_crtc *crtc) >+static void virtio_gpu_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > } > >@@ -145,11 +146,11 @@ static void virtio_gpu_crtc_atomic_flush(struct >drm_crtc *crtc, > } > >static const struct drm_crtc_helper_funcs virtio_gpu_crtc_helper_funcs >= { >- .enable = virtio_gpu_crtc_enable, > .disable = virtio_gpu_crtc_disable, > .mode_set_nofb = virtio_gpu_crtc_mode_set_nofb, > .atomic_check = virtio_gpu_crtc_atomic_check, > .atomic_flush = virtio_gpu_crtc_atomic_flush, >+ .atomic_enable = virtio_gpu_crtc_atomic_enable, > }; > > static void virtio_gpu_enc_mode_set(struct drm_encoder *encoder, >diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c >b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c >index f8acd3a15523..832b83c582c2 100644 >--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c >+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c >@@ -203,7 +203,7 @@ static void vmw_ldu_crtc_mode_set_nofb(struct >drm_crtc *crtc) > } > > /** >- * vmw_ldu_crtc_helper_enable - Noop >+ * vmw_ldu_crtc_atomic_enable - Noop > * > * @crtc: CRTC associated with the new screen > * >@@ -212,7 +212,8 @@ static void vmw_ldu_crtc_mode_set_nofb(struct >drm_crtc *crtc) > * but since for LDU the display plane is closely tied to the > * CRTC, it makes more sense to do those at plane update time. > */ >-static void vmw_ldu_crtc_helper_enable(struct drm_crtc *crtc) >+static void vmw_ldu_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > } > >@@ -376,12 +377,12 @@ drm_plane_helper_funcs >vmw_ldu_primary_plane_helper_funcs = { > }; > >static const struct drm_crtc_helper_funcs vmw_ldu_crtc_helper_funcs = { >- .enable = vmw_ldu_crtc_helper_enable, > .disable = vmw_ldu_crtc_helper_disable, > .mode_set_nofb = vmw_ldu_crtc_mode_set_nofb, > .atomic_check = vmw_du_crtc_atomic_check, > .atomic_begin = vmw_du_crtc_atomic_begin, > .atomic_flush = vmw_du_crtc_atomic_flush, >+ .atomic_enable = vmw_ldu_crtc_atomic_enable, > }; > > >diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c >b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c >index 1cb826c503bf..8ba3bad06909 100644 >--- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c >+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c >@@ -270,13 +270,14 @@ static void vmw_sou_crtc_helper_prepare(struct >drm_crtc *crtc) > } > > /** >- * vmw_sou_crtc_helper_enable - Noop >+ * vmw_sou_crtc_atomic_enable - Noop > * > * @crtc: CRTC associated with the new screen > * > * This is called after a mode set has been completed. > */ >-static void vmw_sou_crtc_helper_enable(struct drm_crtc *crtc) >+static void vmw_sou_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > } > >@@ -573,12 +574,12 @@ drm_plane_helper_funcs >vmw_sou_primary_plane_helper_funcs = { > >static const struct drm_crtc_helper_funcs vmw_sou_crtc_helper_funcs = { > .prepare = vmw_sou_crtc_helper_prepare, >- .enable = vmw_sou_crtc_helper_enable, > .disable = vmw_sou_crtc_helper_disable, > .mode_set_nofb = vmw_sou_crtc_mode_set_nofb, > .atomic_check = vmw_du_crtc_atomic_check, > .atomic_begin = vmw_du_crtc_atomic_begin, > .atomic_flush = vmw_du_crtc_atomic_flush, >+ .atomic_enable = vmw_sou_crtc_atomic_enable, > }; > > >diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c >b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c >index 4eb93b47d6db..f2b39d9c51cc 100644 >--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c >+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c >@@ -412,7 +412,8 @@ static void vmw_stdu_crtc_helper_prepare(struct >drm_crtc *crtc) > } > > >-static void vmw_stdu_crtc_helper_enable(struct drm_crtc *crtc) >+static void vmw_stdu_crtc_atomic_enable(struct drm_crtc *crtc, >+ struct drm_crtc_state *old_state) > { > struct vmw_private *dev_priv; > struct vmw_screen_target_display_unit *stdu; >@@ -1415,12 +1416,12 @@ drm_plane_helper_funcs >vmw_stdu_primary_plane_helper_funcs = { > > static const struct drm_crtc_helper_funcs vmw_stdu_crtc_helper_fu -- Sent from my Android device with K-9 Mail. Please excuse my brevity. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel