Message ID | 20210209102913.6372-1-tzimmermann@suse.de (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Kieran Bingham |
Headers | show |
Series | drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers | expand |
On Tue, Feb 09, 2021 at 11:29:13AM +0100, Thomas Zimmermann wrote: > The function drm_gem_fb_prepare_fb() is a helper for atomic modesetting, > but currently located next to framebuffer helpers. Move it to GEM atomic > helpers, rename it slightly and adopt the drivers. Same for the rsp > simple-pipe helper. > > Compile-tested with x86-64, aarch64 and arm. The patch is fairly large, > but there are no functional changes. > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> If we bikeshed this, I think should also throw in the _helper_ somewhere? But really I don't have an opinion on this. -Daniel > --- > drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c | 4 +- > drivers/gpu/drm/drm_gem_atomic_helper.c | 69 +++++++++++++++++++- > drivers/gpu/drm/drm_gem_framebuffer_helper.c | 63 ------------------ > drivers/gpu/drm/drm_gem_vram_helper.c | 4 +- > drivers/gpu/drm/imx/dcss/dcss-plane.c | 4 +- > drivers/gpu/drm/imx/ipuv3-plane.c | 4 +- > drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 3 +- > drivers/gpu/drm/ingenic/ingenic-ipu.c | 4 +- > drivers/gpu/drm/mcde/mcde_display.c | 4 +- > drivers/gpu/drm/mediatek/mtk_drm_plane.c | 6 +- > drivers/gpu/drm/meson/meson_overlay.c | 8 +-- > drivers/gpu/drm/meson/meson_plane.c | 4 +- > drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 4 +- > drivers/gpu/drm/msm/msm_atomic.c | 4 +- > drivers/gpu/drm/mxsfb/mxsfb_kms.c | 6 +- > drivers/gpu/drm/pl111/pl111_display.c | 4 +- > drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 4 +- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 3 +- > drivers/gpu/drm/stm/ltdc.c | 4 +- > drivers/gpu/drm/sun4i/sun4i_layer.c | 4 +- > drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 4 +- > drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 4 +- > drivers/gpu/drm/tegra/plane.c | 4 +- > drivers/gpu/drm/tidss/tidss_plane.c | 4 +- > drivers/gpu/drm/tiny/hx8357d.c | 4 +- > drivers/gpu/drm/tiny/ili9225.c | 4 +- > drivers/gpu/drm/tiny/ili9341.c | 4 +- > drivers/gpu/drm/tiny/ili9486.c | 4 +- > drivers/gpu/drm/tiny/mi0283qt.c | 4 +- > drivers/gpu/drm/tiny/repaper.c | 3 +- > drivers/gpu/drm/tiny/st7586.c | 4 +- > drivers/gpu/drm/tiny/st7735r.c | 4 +- > drivers/gpu/drm/tve200/tve200_display.c | 4 +- > drivers/gpu/drm/vc4/vc4_plane.c | 4 +- > drivers/gpu/drm/vkms/vkms_plane.c | 3 +- > drivers/gpu/drm/xen/xen_drm_front_kms.c | 3 +- > include/drm/drm_gem_atomic_helper.h | 8 +++ > include/drm/drm_gem_framebuffer_helper.h | 6 +- > include/drm/drm_modeset_helper_vtables.h | 2 +- > include/drm/drm_plane.h | 4 +- > include/drm/drm_simple_kms_helper.h | 2 +- > 41 files changed, 152 insertions(+), 141 deletions(-) > > diff --git a/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c b/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c > index e54686c31a90..d8f214e0be82 100644 > --- a/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c > +++ b/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c > @@ -9,8 +9,8 @@ > #include <drm/drm_device.h> > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_panel.h> > #include <drm/drm_simple_kms_helper.h> > #include <drm/drm_vblank.h> > @@ -219,7 +219,7 @@ static const struct drm_simple_display_pipe_funcs aspeed_gfx_funcs = { > .enable = aspeed_gfx_pipe_enable, > .disable = aspeed_gfx_pipe_disable, > .update = aspeed_gfx_pipe_update, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > .enable_vblank = aspeed_gfx_enable_vblank, > .disable_vblank = aspeed_gfx_disable_vblank, > }; > diff --git a/drivers/gpu/drm/drm_gem_atomic_helper.c b/drivers/gpu/drm/drm_gem_atomic_helper.c > index e27762cef360..c656b40656bf 100644 > --- a/drivers/gpu/drm/drm_gem_atomic_helper.c > +++ b/drivers/gpu/drm/drm_gem_atomic_helper.c > @@ -1,6 +1,10 @@ > // SPDX-License-Identifier: GPL-2.0-or-later > > +#include <linux/dma-resv.h> > + > #include <drm/drm_atomic_state_helper.h> > +#include <drm/drm_atomic_uapi.h> > +#include <drm/drm_gem.h> > #include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_simple_kms_helper.h> > @@ -12,10 +16,69 @@ > * > * The GEM atomic helpers library implements generic atomic-commit > * functions for drivers that use GEM objects. Currently, it provides > - * plane state and framebuffer BO mappings for planes with shadow > - * buffers. > + * synchronization helpers, and plane state and framebuffer BO mappings > + * for planes with shadow buffers. > + */ > + > +/* > + * Plane Helpers > */ > > +/** > + * drm_gem_prepare_fb() - Prepare a GEM backed framebuffer > + * @plane: Plane > + * @state: Plane state the fence will be attached to > + * > + * This function extracts the exclusive fence from &drm_gem_object.resv and > + * attaches it to plane state for the atomic helper to wait on. This is > + * necessary to correctly implement implicit synchronization for any buffers > + * shared as a struct &dma_buf. This function can be used as the > + * &drm_plane_helper_funcs.prepare_fb callback. > + * > + * There is no need for &drm_plane_helper_funcs.cleanup_fb hook for simple > + * GEM based framebuffer drivers which have their buffers always pinned in > + * memory. > + * > + * See drm_atomic_set_fence_for_plane() for a discussion of implicit and > + * explicit fencing in atomic modeset updates. > + */ > +int drm_gem_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) > +{ > + struct drm_gem_object *obj; > + struct dma_fence *fence; > + > + if (!state->fb) > + return 0; > + > + obj = drm_gem_fb_get_obj(state->fb, 0); > + fence = dma_resv_get_excl_rcu(obj->resv); > + drm_atomic_set_fence_for_plane(state, fence); > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(drm_gem_prepare_fb); > + > +/** > + * drm_gem_simple_display_pipe_prepare_fb - prepare_fb helper for &drm_simple_display_pipe > + * @pipe: Simple display pipe > + * @plane_state: Plane state > + * > + * This function uses drm_gem_prepare_fb() to extract the exclusive fence > + * from &drm_gem_object.resv and attaches it to plane state for the atomic > + * helper to wait on. This is necessary to correctly implement implicit > + * synchronization for any buffers shared as a struct &dma_buf. Drivers can use > + * this as their &drm_simple_display_pipe_funcs.prepare_fb callback. > + * > + * See drm_atomic_set_fence_for_plane() for a discussion of implicit and > + * explicit fencing in atomic modeset updates. > + */ > +int drm_gem_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, > + struct drm_plane_state *plane_state) > +{ > + return drm_gem_prepare_fb(&pipe->plane, plane_state); > +} > +EXPORT_SYMBOL(drm_gem_simple_display_pipe_prepare_fb); > + > /* > * Shadow-buffered Planes > */ > @@ -74,7 +137,7 @@ static int drm_gem_prepare_shadow_fb(struct drm_plane *plane, struct drm_plane_s > if (!fb) > return 0; > > - ret = drm_gem_fb_prepare_fb(plane, plane_state); > + ret = drm_gem_prepare_fb(plane, plane_state); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c > index 109d11fb4cd4..5ed2067cebb6 100644 > --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c > +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c > @@ -5,13 +5,8 @@ > * Copyright (C) 2017 Noralf Trønnes > */ > > -#include <linux/dma-buf.h> > -#include <linux/dma-fence.h> > -#include <linux/dma-resv.h> > #include <linux/slab.h> > > -#include <drm/drm_atomic.h> > -#include <drm/drm_atomic_uapi.h> > #include <drm/drm_damage_helper.h> > #include <drm/drm_fb_helper.h> > #include <drm/drm_fourcc.h> > @@ -19,7 +14,6 @@ > #include <drm/drm_gem.h> > #include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_modeset_helper.h> > -#include <drm/drm_simple_kms_helper.h> > > #define AFBC_HEADER_SIZE 16 > #define AFBC_TH_LAYOUT_ALIGNMENT 8 > @@ -432,60 +426,3 @@ int drm_gem_fb_afbc_init(struct drm_device *dev, > return 0; > } > EXPORT_SYMBOL_GPL(drm_gem_fb_afbc_init); > - > -/** > - * drm_gem_fb_prepare_fb() - Prepare a GEM backed framebuffer > - * @plane: Plane > - * @state: Plane state the fence will be attached to > - * > - * This function extracts the exclusive fence from &drm_gem_object.resv and > - * attaches it to plane state for the atomic helper to wait on. This is > - * necessary to correctly implement implicit synchronization for any buffers > - * shared as a struct &dma_buf. This function can be used as the > - * &drm_plane_helper_funcs.prepare_fb callback. > - * > - * There is no need for &drm_plane_helper_funcs.cleanup_fb hook for simple > - * gem based framebuffer drivers which have their buffers always pinned in > - * memory. > - * > - * See drm_atomic_set_fence_for_plane() for a discussion of implicit and > - * explicit fencing in atomic modeset updates. > - */ > -int drm_gem_fb_prepare_fb(struct drm_plane *plane, > - struct drm_plane_state *state) > -{ > - struct drm_gem_object *obj; > - struct dma_fence *fence; > - > - if (!state->fb) > - return 0; > - > - obj = drm_gem_fb_get_obj(state->fb, 0); > - fence = dma_resv_get_excl_rcu(obj->resv); > - drm_atomic_set_fence_for_plane(state, fence); > - > - return 0; > -} > -EXPORT_SYMBOL_GPL(drm_gem_fb_prepare_fb); > - > -/** > - * drm_gem_fb_simple_display_pipe_prepare_fb - prepare_fb helper for > - * &drm_simple_display_pipe > - * @pipe: Simple display pipe > - * @plane_state: Plane state > - * > - * This function uses drm_gem_fb_prepare_fb() to extract the exclusive fence > - * from &drm_gem_object.resv and attaches it to plane state for the atomic > - * helper to wait on. This is necessary to correctly implement implicit > - * synchronization for any buffers shared as a struct &dma_buf. Drivers can use > - * this as their &drm_simple_display_pipe_funcs.prepare_fb callback. > - * > - * See drm_atomic_set_fence_for_plane() for a discussion of implicit and > - * explicit fencing in atomic modeset updates. > - */ > -int drm_gem_fb_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, > - struct drm_plane_state *plane_state) > -{ > - return drm_gem_fb_prepare_fb(&pipe->plane, plane_state); > -} > -EXPORT_SYMBOL(drm_gem_fb_simple_display_pipe_prepare_fb); > diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c > index 48d4b59d3145..2071ec637df8 100644 > --- a/drivers/gpu/drm/drm_gem_vram_helper.c > +++ b/drivers/gpu/drm/drm_gem_vram_helper.c > @@ -8,7 +8,7 @@ > #include <drm/drm_drv.h> > #include <drm/drm_file.h> > #include <drm/drm_framebuffer.h> > -#include <drm/drm_gem_framebuffer_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_ttm_helper.h> > #include <drm/drm_gem_vram_helper.h> > #include <drm/drm_managed.h> > @@ -720,7 +720,7 @@ drm_gem_vram_plane_helper_prepare_fb(struct drm_plane *plane, > goto err_drm_gem_vram_unpin; > } > > - ret = drm_gem_fb_prepare_fb(plane, new_state); > + ret = drm_gem_prepare_fb(plane, new_state); > if (ret) > goto err_drm_gem_vram_unpin; > > diff --git a/drivers/gpu/drm/imx/dcss/dcss-plane.c b/drivers/gpu/drm/imx/dcss/dcss-plane.c > index 03ba88f7f995..092e98fe0cfd 100644 > --- a/drivers/gpu/drm/imx/dcss/dcss-plane.c > +++ b/drivers/gpu/drm/imx/dcss/dcss-plane.c > @@ -6,7 +6,7 @@ > #include <drm/drm_atomic.h> > #include <drm/drm_atomic_helper.h> > #include <drm/drm_fb_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > > #include "dcss-dev.h" > @@ -355,7 +355,7 @@ static void dcss_plane_atomic_disable(struct drm_plane *plane, > } > > static const struct drm_plane_helper_funcs dcss_plane_helper_funcs = { > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > .atomic_check = dcss_plane_atomic_check, > .atomic_update = dcss_plane_atomic_update, > .atomic_disable = dcss_plane_atomic_disable, > diff --git a/drivers/gpu/drm/imx/ipuv3-plane.c b/drivers/gpu/drm/imx/ipuv3-plane.c > index 075508051b5f..0b6d81c4fa77 100644 > --- a/drivers/gpu/drm/imx/ipuv3-plane.c > +++ b/drivers/gpu/drm/imx/ipuv3-plane.c > @@ -9,8 +9,8 @@ > #include <drm/drm_atomic_helper.h> > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_managed.h> > #include <drm/drm_plane_helper.h> > > @@ -704,7 +704,7 @@ static void ipu_plane_atomic_update(struct drm_plane *plane, > } > > static const struct drm_plane_helper_funcs ipu_plane_helper_funcs = { > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > .atomic_check = ipu_plane_atomic_check, > .atomic_disable = ipu_plane_atomic_disable, > .atomic_update = ipu_plane_atomic_update, > diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > index 7bb31fbee29d..1ca02de60895 100644 > --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > @@ -28,6 +28,7 @@ > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fb_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_irq.h> > #include <drm/drm_managed.h> > @@ -780,7 +781,7 @@ static const struct drm_plane_helper_funcs ingenic_drm_plane_helper_funcs = { > .atomic_update = ingenic_drm_plane_atomic_update, > .atomic_check = ingenic_drm_plane_atomic_check, > .atomic_disable = ingenic_drm_plane_atomic_disable, > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > }; > > static const struct drm_crtc_helper_funcs ingenic_drm_crtc_helper_funcs = { > diff --git a/drivers/gpu/drm/ingenic/ingenic-ipu.c b/drivers/gpu/drm/ingenic/ingenic-ipu.c > index e52777ef85fd..1b9b5de6b67c 100644 > --- a/drivers/gpu/drm/ingenic/ingenic-ipu.c > +++ b/drivers/gpu/drm/ingenic/ingenic-ipu.c > @@ -23,7 +23,7 @@ > #include <drm/drm_drv.h> > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > -#include <drm/drm_gem_framebuffer_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_plane.h> > #include <drm/drm_plane_helper.h> > #include <drm/drm_property.h> > @@ -608,7 +608,7 @@ static const struct drm_plane_helper_funcs ingenic_ipu_plane_helper_funcs = { > .atomic_update = ingenic_ipu_plane_atomic_update, > .atomic_check = ingenic_ipu_plane_atomic_check, > .atomic_disable = ingenic_ipu_plane_atomic_disable, > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > }; > > static int > diff --git a/drivers/gpu/drm/mcde/mcde_display.c b/drivers/gpu/drm/mcde/mcde_display.c > index 7c2e0b865441..dde16ef9650a 100644 > --- a/drivers/gpu/drm/mcde/mcde_display.c > +++ b/drivers/gpu/drm/mcde/mcde_display.c > @@ -13,8 +13,8 @@ > #include <drm/drm_device.h> > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_mipi_dsi.h> > #include <drm/drm_simple_kms_helper.h> > #include <drm/drm_bridge.h> > @@ -1481,7 +1481,7 @@ static struct drm_simple_display_pipe_funcs mcde_display_funcs = { > .update = mcde_display_update, > .enable_vblank = mcde_display_enable_vblank, > .disable_vblank = mcde_display_disable_vblank, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > }; > > int mcde_display_init(struct drm_device *drm) > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c > index 92141a19681b..64f7873e9867 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c > @@ -6,10 +6,10 @@ > > #include <drm/drm_atomic.h> > #include <drm/drm_atomic_helper.h> > -#include <drm/drm_fourcc.h> > #include <drm/drm_atomic_uapi.h> > +#include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_plane_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > > #include "mtk_drm_crtc.h" > #include "mtk_drm_ddp_comp.h" > @@ -216,7 +216,7 @@ static void mtk_plane_atomic_update(struct drm_plane *plane, > } > > static const struct drm_plane_helper_funcs mtk_plane_helper_funcs = { > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > .atomic_check = mtk_plane_atomic_check, > .atomic_update = mtk_plane_atomic_update, > .atomic_disable = mtk_plane_atomic_disable, > diff --git a/drivers/gpu/drm/meson/meson_overlay.c b/drivers/gpu/drm/meson/meson_overlay.c > index 1ffbbecafa22..0ee2132a990f 100644 > --- a/drivers/gpu/drm/meson/meson_overlay.c > +++ b/drivers/gpu/drm/meson/meson_overlay.c > @@ -10,11 +10,11 @@ > #include <drm/drm_atomic.h> > #include <drm/drm_atomic_helper.h> > #include <drm/drm_device.h> > +#include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > -#include <drm/drm_plane_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_fb_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > +#include <drm/drm_plane_helper.h> > > #include "meson_overlay.h" > #include "meson_registers.h" > @@ -742,7 +742,7 @@ static const struct drm_plane_helper_funcs meson_overlay_helper_funcs = { > .atomic_check = meson_overlay_atomic_check, > .atomic_disable = meson_overlay_atomic_disable, > .atomic_update = meson_overlay_atomic_update, > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > }; > > static bool meson_overlay_format_mod_supported(struct drm_plane *plane, > diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c > index 35338ed18209..24d64c9675ff 100644 > --- a/drivers/gpu/drm/meson/meson_plane.c > +++ b/drivers/gpu/drm/meson/meson_plane.c > @@ -16,8 +16,8 @@ > #include <drm/drm_device.h> > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_plane_helper.h> > > #include "meson_plane.h" > @@ -417,7 +417,7 @@ static const struct drm_plane_helper_funcs meson_plane_helper_funcs = { > .atomic_check = meson_plane_atomic_check, > .atomic_disable = meson_plane_atomic_disable, > .atomic_update = meson_plane_atomic_update, > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > }; > > static bool meson_plane_format_mod_supported(struct drm_plane *plane, > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > index bc0231a50132..3e9f9f3dd679 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > @@ -13,7 +13,7 @@ > #include <drm/drm_atomic_uapi.h> > #include <drm/drm_damage_helper.h> > #include <drm/drm_file.h> > -#include <drm/drm_gem_framebuffer_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > > #include "msm_drv.h" > #include "dpu_kms.h" > @@ -892,7 +892,7 @@ static int dpu_plane_prepare_fb(struct drm_plane *plane, > * we can use msm_atomic_prepare_fb() instead of doing the > * implicit fence and fb prepare by hand here. > */ > - drm_gem_fb_prepare_fb(plane, new_state); > + drm_gem_prepare_fb(plane, new_state); > > if (pstate->aspace) { > ret = msm_framebuffer_prepare(new_state->fb, > diff --git a/drivers/gpu/drm/msm/msm_atomic.c b/drivers/gpu/drm/msm/msm_atomic.c > index 6a326761dc4a..03a113eb6571 100644 > --- a/drivers/gpu/drm/msm/msm_atomic.c > +++ b/drivers/gpu/drm/msm/msm_atomic.c > @@ -5,7 +5,7 @@ > */ > > #include <drm/drm_atomic_uapi.h> > -#include <drm/drm_gem_framebuffer_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_vblank.h> > > #include "msm_atomic_trace.h" > @@ -22,7 +22,7 @@ int msm_atomic_prepare_fb(struct drm_plane *plane, > if (!new_state->fb) > return 0; > > - drm_gem_fb_prepare_fb(plane, new_state); > + drm_gem_prepare_fb(plane, new_state); > > return msm_framebuffer_prepare(new_state->fb, kms->aspace); > } > diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c > index 3e1bb0aefb87..33188dea886d 100644 > --- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c > +++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c > @@ -21,8 +21,8 @@ > #include <drm/drm_encoder.h> > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_plane.h> > #include <drm/drm_plane_helper.h> > #include <drm/drm_vblank.h> > @@ -495,13 +495,13 @@ static bool mxsfb_format_mod_supported(struct drm_plane *plane, > } > > static const struct drm_plane_helper_funcs mxsfb_plane_primary_helper_funcs = { > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > .atomic_check = mxsfb_plane_atomic_check, > .atomic_update = mxsfb_plane_primary_atomic_update, > }; > > static const struct drm_plane_helper_funcs mxsfb_plane_overlay_helper_funcs = { > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > .atomic_check = mxsfb_plane_atomic_check, > .atomic_update = mxsfb_plane_overlay_atomic_update, > }; > diff --git a/drivers/gpu/drm/pl111/pl111_display.c b/drivers/gpu/drm/pl111/pl111_display.c > index 69c02e7c82b7..6fd7f13f1aca 100644 > --- a/drivers/gpu/drm/pl111/pl111_display.c > +++ b/drivers/gpu/drm/pl111/pl111_display.c > @@ -17,8 +17,8 @@ > > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_vblank.h> > > #include "pl111_drm.h" > @@ -440,7 +440,7 @@ static struct drm_simple_display_pipe_funcs pl111_display_funcs = { > .enable = pl111_display_enable, > .disable = pl111_display_disable, > .update = pl111_display_update, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > }; > > static int pl111_clk_div_choose_div(struct clk_hw *hw, unsigned long rate, > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c > index 53221d8473c1..964fdaee7c7d 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c > @@ -11,8 +11,8 @@ > #include <drm/drm_crtc.h> > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_managed.h> > #include <drm/drm_plane_helper.h> > #include <drm/drm_vblank.h> > @@ -236,7 +236,7 @@ static int rcar_du_vsp_plane_prepare_fb(struct drm_plane *plane, > if (ret < 0) > return ret; > > - return drm_gem_fb_prepare_fb(plane, state); > + return drm_gem_prepare_fb(plane, state); > } > > void rcar_du_vsp_unmap_fb(struct rcar_du_vsp *vsp, struct drm_framebuffer *fb, > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > index 8d15cabdcb02..45577de18b49 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -23,6 +23,7 @@ > #include <drm/drm_crtc.h> > #include <drm/drm_flip_work.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_plane_helper.h> > #include <drm/drm_probe_helper.h> > @@ -1096,7 +1097,7 @@ static const struct drm_plane_helper_funcs plane_helper_funcs = { > .atomic_disable = vop_plane_atomic_disable, > .atomic_async_check = vop_plane_atomic_async_check, > .atomic_async_update = vop_plane_atomic_async_update, > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > }; > > static const struct drm_plane_funcs vop_plane_funcs = { > diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c > index 7812094f93d6..73522c6ba3eb 100644 > --- a/drivers/gpu/drm/stm/ltdc.c > +++ b/drivers/gpu/drm/stm/ltdc.c > @@ -26,8 +26,8 @@ > #include <drm/drm_device.h> > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_of.h> > #include <drm/drm_plane_helper.h> > #include <drm/drm_probe_helper.h> > @@ -911,7 +911,7 @@ static const struct drm_plane_funcs ltdc_plane_funcs = { > }; > > static const struct drm_plane_helper_funcs ltdc_plane_helper_funcs = { > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > .atomic_check = ltdc_plane_atomic_check, > .atomic_update = ltdc_plane_atomic_update, > .atomic_disable = ltdc_plane_atomic_disable, > diff --git a/drivers/gpu/drm/sun4i/sun4i_layer.c b/drivers/gpu/drm/sun4i/sun4i_layer.c > index acfbfd4463a1..68da94b7c35d 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_layer.c > +++ b/drivers/gpu/drm/sun4i/sun4i_layer.c > @@ -7,7 +7,7 @@ > */ > > #include <drm/drm_atomic_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_plane_helper.h> > > #include "sun4i_backend.h" > @@ -122,7 +122,7 @@ static bool sun4i_layer_format_mod_supported(struct drm_plane *plane, > } > > static const struct drm_plane_helper_funcs sun4i_backend_layer_helper_funcs = { > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > .atomic_disable = sun4i_backend_layer_atomic_disable, > .atomic_update = sun4i_backend_layer_atomic_update, > }; > diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c > index 816ad4ce8996..95654c153279 100644 > --- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c > +++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c > @@ -14,8 +14,8 @@ > #include <drm/drm_crtc.h> > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_plane_helper.h> > #include <drm/drm_probe_helper.h> > > @@ -299,7 +299,7 @@ static void sun8i_ui_layer_atomic_update(struct drm_plane *plane, > } > > static const struct drm_plane_helper_funcs sun8i_ui_layer_helper_funcs = { > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > .atomic_check = sun8i_ui_layer_atomic_check, > .atomic_disable = sun8i_ui_layer_atomic_disable, > .atomic_update = sun8i_ui_layer_atomic_update, > diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > index 8cc294a9969d..4005884dbce4 100644 > --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > @@ -7,8 +7,8 @@ > #include <drm/drm_atomic_helper.h> > #include <drm/drm_crtc.h> > #include <drm/drm_fb_cma_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_plane_helper.h> > #include <drm/drm_probe_helper.h> > > @@ -402,7 +402,7 @@ static void sun8i_vi_layer_atomic_update(struct drm_plane *plane, > } > > static const struct drm_plane_helper_funcs sun8i_vi_layer_helper_funcs = { > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > .atomic_check = sun8i_vi_layer_atomic_check, > .atomic_disable = sun8i_vi_layer_atomic_disable, > .atomic_update = sun8i_vi_layer_atomic_update, > diff --git a/drivers/gpu/drm/tegra/plane.c b/drivers/gpu/drm/tegra/plane.c > index 539d14935728..ec86a8d060aa 100644 > --- a/drivers/gpu/drm/tegra/plane.c > +++ b/drivers/gpu/drm/tegra/plane.c > @@ -8,7 +8,7 @@ > #include <drm/drm_atomic.h> > #include <drm/drm_atomic_helper.h> > #include <drm/drm_fourcc.h> > -#include <drm/drm_gem_framebuffer_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_plane_helper.h> > > #include "dc.h" > @@ -198,7 +198,7 @@ int tegra_plane_prepare_fb(struct drm_plane *plane, > if (!state->fb) > return 0; > > - drm_gem_fb_prepare_fb(plane, state); > + drm_gem_prepare_fb(plane, state); > > return tegra_dc_pin(dc, to_tegra_plane_state(state)); > } > diff --git a/drivers/gpu/drm/tidss/tidss_plane.c b/drivers/gpu/drm/tidss/tidss_plane.c > index 35067ae674ea..d39baa66e876 100644 > --- a/drivers/gpu/drm/tidss/tidss_plane.c > +++ b/drivers/gpu/drm/tidss/tidss_plane.c > @@ -10,7 +10,7 @@ > #include <drm/drm_crtc_helper.h> > #include <drm/drm_fourcc.h> > #include <drm/drm_fb_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > > #include "tidss_crtc.h" > #include "tidss_dispc.h" > @@ -151,7 +151,7 @@ static void drm_plane_destroy(struct drm_plane *plane) > } > > static const struct drm_plane_helper_funcs tidss_plane_helper_funcs = { > - .prepare_fb = drm_gem_fb_prepare_fb, > + .prepare_fb = drm_gem_prepare_fb, > .atomic_check = tidss_plane_atomic_check, > .atomic_update = tidss_plane_atomic_update, > .atomic_disable = tidss_plane_atomic_disable, > diff --git a/drivers/gpu/drm/tiny/hx8357d.c b/drivers/gpu/drm/tiny/hx8357d.c > index c6525cd02bc2..3e2c2868a363 100644 > --- a/drivers/gpu/drm/tiny/hx8357d.c > +++ b/drivers/gpu/drm/tiny/hx8357d.c > @@ -19,8 +19,8 @@ > #include <drm/drm_atomic_helper.h> > #include <drm/drm_drv.h> > #include <drm/drm_fb_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_managed.h> > #include <drm/drm_mipi_dbi.h> > #include <drm/drm_modeset_helper.h> > @@ -184,7 +184,7 @@ static const struct drm_simple_display_pipe_funcs hx8357d_pipe_funcs = { > .enable = yx240qv29_enable, > .disable = mipi_dbi_pipe_disable, > .update = mipi_dbi_pipe_update, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > }; > > static const struct drm_display_mode yx350hv15_mode = { > diff --git a/drivers/gpu/drm/tiny/ili9225.c b/drivers/gpu/drm/tiny/ili9225.c > index 8e98962db5a2..6b87df19eec1 100644 > --- a/drivers/gpu/drm/tiny/ili9225.c > +++ b/drivers/gpu/drm/tiny/ili9225.c > @@ -22,8 +22,8 @@ > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fb_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_managed.h> > #include <drm/drm_mipi_dbi.h> > #include <drm/drm_rect.h> > @@ -328,7 +328,7 @@ static const struct drm_simple_display_pipe_funcs ili9225_pipe_funcs = { > .enable = ili9225_pipe_enable, > .disable = ili9225_pipe_disable, > .update = ili9225_pipe_update, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > }; > > static const struct drm_display_mode ili9225_mode = { > diff --git a/drivers/gpu/drm/tiny/ili9341.c b/drivers/gpu/drm/tiny/ili9341.c > index 6ce97f0698eb..a97f3f70e4a6 100644 > --- a/drivers/gpu/drm/tiny/ili9341.c > +++ b/drivers/gpu/drm/tiny/ili9341.c > @@ -18,8 +18,8 @@ > #include <drm/drm_atomic_helper.h> > #include <drm/drm_drv.h> > #include <drm/drm_fb_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_managed.h> > #include <drm/drm_mipi_dbi.h> > #include <drm/drm_modeset_helper.h> > @@ -140,7 +140,7 @@ static const struct drm_simple_display_pipe_funcs ili9341_pipe_funcs = { > .enable = yx240qv29_enable, > .disable = mipi_dbi_pipe_disable, > .update = mipi_dbi_pipe_update, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > }; > > static const struct drm_display_mode yx240qv29_mode = { > diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c > index d7ce40eb166a..6422a7f67079 100644 > --- a/drivers/gpu/drm/tiny/ili9486.c > +++ b/drivers/gpu/drm/tiny/ili9486.c > @@ -17,8 +17,8 @@ > #include <drm/drm_atomic_helper.h> > #include <drm/drm_drv.h> > #include <drm/drm_fb_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_managed.h> > #include <drm/drm_mipi_dbi.h> > #include <drm/drm_modeset_helper.h> > @@ -153,7 +153,7 @@ static const struct drm_simple_display_pipe_funcs waveshare_pipe_funcs = { > .enable = waveshare_enable, > .disable = mipi_dbi_pipe_disable, > .update = mipi_dbi_pipe_update, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > }; > > static const struct drm_display_mode waveshare_mode = { > diff --git a/drivers/gpu/drm/tiny/mi0283qt.c b/drivers/gpu/drm/tiny/mi0283qt.c > index ff77f983f803..dc76fe53aa72 100644 > --- a/drivers/gpu/drm/tiny/mi0283qt.c > +++ b/drivers/gpu/drm/tiny/mi0283qt.c > @@ -16,8 +16,8 @@ > #include <drm/drm_atomic_helper.h> > #include <drm/drm_drv.h> > #include <drm/drm_fb_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_managed.h> > #include <drm/drm_mipi_dbi.h> > #include <drm/drm_modeset_helper.h> > @@ -144,7 +144,7 @@ static const struct drm_simple_display_pipe_funcs mi0283qt_pipe_funcs = { > .enable = mi0283qt_enable, > .disable = mipi_dbi_pipe_disable, > .update = mipi_dbi_pipe_update, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > }; > > static const struct drm_display_mode mi0283qt_mode = { > diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c > index 11c602fc9897..2cee07a2e00b 100644 > --- a/drivers/gpu/drm/tiny/repaper.c > +++ b/drivers/gpu/drm/tiny/repaper.c > @@ -29,6 +29,7 @@ > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fb_helper.h> > #include <drm/drm_format_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > #include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_managed.h> > @@ -860,7 +861,7 @@ static const struct drm_simple_display_pipe_funcs repaper_pipe_funcs = { > .enable = repaper_pipe_enable, > .disable = repaper_pipe_disable, > .update = repaper_pipe_update, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > }; > > static int repaper_connector_get_modes(struct drm_connector *connector) > diff --git a/drivers/gpu/drm/tiny/st7586.c b/drivers/gpu/drm/tiny/st7586.c > index ff5cf60f4bd7..7d216fe9267f 100644 > --- a/drivers/gpu/drm/tiny/st7586.c > +++ b/drivers/gpu/drm/tiny/st7586.c > @@ -19,8 +19,8 @@ > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fb_helper.h> > #include <drm/drm_format_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_managed.h> > #include <drm/drm_mipi_dbi.h> > #include <drm/drm_rect.h> > @@ -268,7 +268,7 @@ static const struct drm_simple_display_pipe_funcs st7586_pipe_funcs = { > .enable = st7586_pipe_enable, > .disable = st7586_pipe_disable, > .update = st7586_pipe_update, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > }; > > static const struct drm_display_mode st7586_mode = { > diff --git a/drivers/gpu/drm/tiny/st7735r.c b/drivers/gpu/drm/tiny/st7735r.c > index faaba0a033ea..df8872d62cdd 100644 > --- a/drivers/gpu/drm/tiny/st7735r.c > +++ b/drivers/gpu/drm/tiny/st7735r.c > @@ -19,8 +19,8 @@ > #include <drm/drm_atomic_helper.h> > #include <drm/drm_drv.h> > #include <drm/drm_fb_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_managed.h> > #include <drm/drm_mipi_dbi.h> > > @@ -136,7 +136,7 @@ static const struct drm_simple_display_pipe_funcs st7735r_pipe_funcs = { > .enable = st7735r_pipe_enable, > .disable = mipi_dbi_pipe_disable, > .update = mipi_dbi_pipe_update, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > }; > > static const struct st7735r_cfg jd_t18003_t01_cfg = { > diff --git a/drivers/gpu/drm/tve200/tve200_display.c b/drivers/gpu/drm/tve200/tve200_display.c > index cb0e837d3dba..50e1fb71869f 100644 > --- a/drivers/gpu/drm/tve200/tve200_display.c > +++ b/drivers/gpu/drm/tve200/tve200_display.c > @@ -17,8 +17,8 @@ > > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_cma_helper.h> > -#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_panel.h> > #include <drm/drm_vblank.h> > > @@ -316,7 +316,7 @@ static const struct drm_simple_display_pipe_funcs tve200_display_funcs = { > .enable = tve200_display_enable, > .disable = tve200_display_disable, > .update = tve200_display_update, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > .enable_vblank = tve200_display_enable_vblank, > .disable_vblank = tve200_display_disable_vblank, > }; > diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c > index 7322169c0682..a65e980078f3 100644 > --- a/drivers/gpu/drm/vc4/vc4_plane.c > +++ b/drivers/gpu/drm/vc4/vc4_plane.c > @@ -20,7 +20,7 @@ > #include <drm/drm_atomic_uapi.h> > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > -#include <drm/drm_gem_framebuffer_helper.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_plane_helper.h> > > #include "uapi/drm/vc4_drm.h" > @@ -1250,7 +1250,7 @@ static int vc4_prepare_fb(struct drm_plane *plane, > > bo = to_vc4_bo(&drm_fb_cma_get_gem_obj(state->fb, 0)->base); > > - drm_gem_fb_prepare_fb(plane, state); > + drm_gem_prepare_fb(plane, state); > > if (plane->state->fb == state->fb) > return 0; > diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c > index 0824327cc860..e3fd8cd1f3f1 100644 > --- a/drivers/gpu/drm/vkms/vkms_plane.c > +++ b/drivers/gpu/drm/vkms/vkms_plane.c > @@ -5,6 +5,7 @@ > #include <drm/drm_atomic.h> > #include <drm/drm_atomic_helper.h> > #include <drm/drm_fourcc.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_plane_helper.h> > #include <drm/drm_gem_shmem_helper.h> > @@ -159,7 +160,7 @@ static int vkms_prepare_fb(struct drm_plane *plane, > if (ret) > DRM_ERROR("vmap failed: %d\n", ret); > > - return drm_gem_fb_prepare_fb(plane, state); > + return drm_gem_prepare_fb(plane, state); > } > > static void vkms_cleanup_fb(struct drm_plane *plane, > diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c > index ef11b1e4de39..371202ebe900 100644 > --- a/drivers/gpu/drm/xen/xen_drm_front_kms.c > +++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c > @@ -13,6 +13,7 @@ > #include <drm/drm_drv.h> > #include <drm/drm_fourcc.h> > #include <drm/drm_gem.h> > +#include <drm/drm_gem_atomic_helper.h> > #include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_probe_helper.h> > #include <drm/drm_vblank.h> > @@ -301,7 +302,7 @@ static const struct drm_simple_display_pipe_funcs display_funcs = { > .mode_valid = display_mode_valid, > .enable = display_enable, > .disable = display_disable, > - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, > + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, > .check = display_check, > .update = display_update, > }; > diff --git a/include/drm/drm_gem_atomic_helper.h b/include/drm/drm_gem_atomic_helper.h > index 08b96ccea325..91e73d23fea8 100644 > --- a/include/drm/drm_gem_atomic_helper.h > +++ b/include/drm/drm_gem_atomic_helper.h > @@ -9,6 +9,14 @@ > > struct drm_simple_display_pipe; > > +/* > + * Plane Helpers > + */ > + > +int drm_gem_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state); > +int drm_gem_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, > + struct drm_plane_state *plane_state); > + > /* > * Helpers for planes with shadow buffers > */ > diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h > index 6b013154911d..495d174d9989 100644 > --- a/include/drm/drm_gem_framebuffer_helper.h > +++ b/include/drm/drm_gem_framebuffer_helper.h > @@ -9,9 +9,11 @@ struct drm_framebuffer; > struct drm_framebuffer_funcs; > struct drm_gem_object; > struct drm_mode_fb_cmd2; > +#if 0 > struct drm_plane; > struct drm_plane_state; > struct drm_simple_display_pipe; > +#endif > > #define AFBC_VENDOR_AND_TYPE_MASK GENMASK_ULL(63, 52) > > @@ -44,8 +46,4 @@ int drm_gem_fb_afbc_init(struct drm_device *dev, > const struct drm_mode_fb_cmd2 *mode_cmd, > struct drm_afbc_framebuffer *afbc_fb); > > -int drm_gem_fb_prepare_fb(struct drm_plane *plane, > - struct drm_plane_state *state); > -int drm_gem_fb_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, > - struct drm_plane_state *plane_state); > #endif > diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h > index eb706342861d..8d41d3734153 100644 > --- a/include/drm/drm_modeset_helper_vtables.h > +++ b/include/drm/drm_modeset_helper_vtables.h > @@ -1179,7 +1179,7 @@ struct drm_plane_helper_funcs { > * members in the plane structure. > * > * Drivers which always have their buffers pinned should use > - * drm_gem_fb_prepare_fb() for this hook. > + * drm_gem_prepare_fb() for this hook. > * > * The helpers will call @cleanup_fb with matching arguments for every > * successful call to this hook. > diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h > index 95ab14a4336a..be08b6b1fde0 100644 > --- a/include/drm/drm_plane.h > +++ b/include/drm/drm_plane.h > @@ -79,8 +79,8 @@ struct drm_plane_state { > * preserved. > * > * Drivers should store any implicit fence in this from their > - * &drm_plane_helper_funcs.prepare_fb callback. See drm_gem_fb_prepare_fb() > - * and drm_gem_fb_simple_display_pipe_prepare_fb() for suitable helpers. > + * &drm_plane_helper_funcs.prepare_fb callback. See drm_gem_prepare_fb() > + * and drm_gem_simple_display_pipe_prepare_fb() for suitable helpers. > */ > struct dma_fence *fence; > > diff --git a/include/drm/drm_simple_kms_helper.h b/include/drm/drm_simple_kms_helper.h > index 40b34573249f..ef9944e9c5fc 100644 > --- a/include/drm/drm_simple_kms_helper.h > +++ b/include/drm/drm_simple_kms_helper.h > @@ -117,7 +117,7 @@ struct drm_simple_display_pipe_funcs { > * more details. > * > * Drivers which always have their buffers pinned should use > - * drm_gem_fb_simple_display_pipe_prepare_fb() for this hook. > + * drm_gem_simple_display_pipe_prepare_fb() for this hook. > */ > int (*prepare_fb)(struct drm_simple_display_pipe *pipe, > struct drm_plane_state *plane_state); > -- > 2.30.0 >
Hi Am 10.02.21 um 14:10 schrieb Daniel Vetter: > On Tue, Feb 09, 2021 at 11:29:13AM +0100, Thomas Zimmermann wrote: >> The function drm_gem_fb_prepare_fb() is a helper for atomic modesetting, >> but currently located next to framebuffer helpers. Move it to GEM atomic >> helpers, rename it slightly and adopt the drivers. Same for the rsp >> simple-pipe helper. >> >> Compile-tested with x86-64, aarch64 and arm. The patch is fairly large, >> but there are no functional changes. >> >> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > > If we bikeshed this, I think should also throw in the _helper_ somewhere? Sure. How about drm_gem_plane_helper_prepare_fb()? Best regards Thomas > But really I don't have an opinion on this. > -Daniel > >> --- >> drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c | 4 +- >> drivers/gpu/drm/drm_gem_atomic_helper.c | 69 +++++++++++++++++++- >> drivers/gpu/drm/drm_gem_framebuffer_helper.c | 63 ------------------ >> drivers/gpu/drm/drm_gem_vram_helper.c | 4 +- >> drivers/gpu/drm/imx/dcss/dcss-plane.c | 4 +- >> drivers/gpu/drm/imx/ipuv3-plane.c | 4 +- >> drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 3 +- >> drivers/gpu/drm/ingenic/ingenic-ipu.c | 4 +- >> drivers/gpu/drm/mcde/mcde_display.c | 4 +- >> drivers/gpu/drm/mediatek/mtk_drm_plane.c | 6 +- >> drivers/gpu/drm/meson/meson_overlay.c | 8 +-- >> drivers/gpu/drm/meson/meson_plane.c | 4 +- >> drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 4 +- >> drivers/gpu/drm/msm/msm_atomic.c | 4 +- >> drivers/gpu/drm/mxsfb/mxsfb_kms.c | 6 +- >> drivers/gpu/drm/pl111/pl111_display.c | 4 +- >> drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 4 +- >> drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 3 +- >> drivers/gpu/drm/stm/ltdc.c | 4 +- >> drivers/gpu/drm/sun4i/sun4i_layer.c | 4 +- >> drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 4 +- >> drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 4 +- >> drivers/gpu/drm/tegra/plane.c | 4 +- >> drivers/gpu/drm/tidss/tidss_plane.c | 4 +- >> drivers/gpu/drm/tiny/hx8357d.c | 4 +- >> drivers/gpu/drm/tiny/ili9225.c | 4 +- >> drivers/gpu/drm/tiny/ili9341.c | 4 +- >> drivers/gpu/drm/tiny/ili9486.c | 4 +- >> drivers/gpu/drm/tiny/mi0283qt.c | 4 +- >> drivers/gpu/drm/tiny/repaper.c | 3 +- >> drivers/gpu/drm/tiny/st7586.c | 4 +- >> drivers/gpu/drm/tiny/st7735r.c | 4 +- >> drivers/gpu/drm/tve200/tve200_display.c | 4 +- >> drivers/gpu/drm/vc4/vc4_plane.c | 4 +- >> drivers/gpu/drm/vkms/vkms_plane.c | 3 +- >> drivers/gpu/drm/xen/xen_drm_front_kms.c | 3 +- >> include/drm/drm_gem_atomic_helper.h | 8 +++ >> include/drm/drm_gem_framebuffer_helper.h | 6 +- >> include/drm/drm_modeset_helper_vtables.h | 2 +- >> include/drm/drm_plane.h | 4 +- >> include/drm/drm_simple_kms_helper.h | 2 +- >> 41 files changed, 152 insertions(+), 141 deletions(-) >> >> diff --git a/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c b/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c >> index e54686c31a90..d8f214e0be82 100644 >> --- a/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c >> +++ b/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c >> @@ -9,8 +9,8 @@ >> #include <drm/drm_device.h> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_panel.h> >> #include <drm/drm_simple_kms_helper.h> >> #include <drm/drm_vblank.h> >> @@ -219,7 +219,7 @@ static const struct drm_simple_display_pipe_funcs aspeed_gfx_funcs = { >> .enable = aspeed_gfx_pipe_enable, >> .disable = aspeed_gfx_pipe_disable, >> .update = aspeed_gfx_pipe_update, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> .enable_vblank = aspeed_gfx_enable_vblank, >> .disable_vblank = aspeed_gfx_disable_vblank, >> }; >> diff --git a/drivers/gpu/drm/drm_gem_atomic_helper.c b/drivers/gpu/drm/drm_gem_atomic_helper.c >> index e27762cef360..c656b40656bf 100644 >> --- a/drivers/gpu/drm/drm_gem_atomic_helper.c >> +++ b/drivers/gpu/drm/drm_gem_atomic_helper.c >> @@ -1,6 +1,10 @@ >> // SPDX-License-Identifier: GPL-2.0-or-later >> >> +#include <linux/dma-resv.h> >> + >> #include <drm/drm_atomic_state_helper.h> >> +#include <drm/drm_atomic_uapi.h> >> +#include <drm/drm_gem.h> >> #include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_simple_kms_helper.h> >> @@ -12,10 +16,69 @@ >> * >> * The GEM atomic helpers library implements generic atomic-commit >> * functions for drivers that use GEM objects. Currently, it provides >> - * plane state and framebuffer BO mappings for planes with shadow >> - * buffers. >> + * synchronization helpers, and plane state and framebuffer BO mappings >> + * for planes with shadow buffers. >> + */ >> + >> +/* >> + * Plane Helpers >> */ >> >> +/** >> + * drm_gem_prepare_fb() - Prepare a GEM backed framebuffer >> + * @plane: Plane >> + * @state: Plane state the fence will be attached to >> + * >> + * This function extracts the exclusive fence from &drm_gem_object.resv and >> + * attaches it to plane state for the atomic helper to wait on. This is >> + * necessary to correctly implement implicit synchronization for any buffers >> + * shared as a struct &dma_buf. This function can be used as the >> + * &drm_plane_helper_funcs.prepare_fb callback. >> + * >> + * There is no need for &drm_plane_helper_funcs.cleanup_fb hook for simple >> + * GEM based framebuffer drivers which have their buffers always pinned in >> + * memory. >> + * >> + * See drm_atomic_set_fence_for_plane() for a discussion of implicit and >> + * explicit fencing in atomic modeset updates. >> + */ >> +int drm_gem_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) >> +{ >> + struct drm_gem_object *obj; >> + struct dma_fence *fence; >> + >> + if (!state->fb) >> + return 0; >> + >> + obj = drm_gem_fb_get_obj(state->fb, 0); >> + fence = dma_resv_get_excl_rcu(obj->resv); >> + drm_atomic_set_fence_for_plane(state, fence); >> + >> + return 0; >> +} >> +EXPORT_SYMBOL_GPL(drm_gem_prepare_fb); >> + >> +/** >> + * drm_gem_simple_display_pipe_prepare_fb - prepare_fb helper for &drm_simple_display_pipe >> + * @pipe: Simple display pipe >> + * @plane_state: Plane state >> + * >> + * This function uses drm_gem_prepare_fb() to extract the exclusive fence >> + * from &drm_gem_object.resv and attaches it to plane state for the atomic >> + * helper to wait on. This is necessary to correctly implement implicit >> + * synchronization for any buffers shared as a struct &dma_buf. Drivers can use >> + * this as their &drm_simple_display_pipe_funcs.prepare_fb callback. >> + * >> + * See drm_atomic_set_fence_for_plane() for a discussion of implicit and >> + * explicit fencing in atomic modeset updates. >> + */ >> +int drm_gem_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, >> + struct drm_plane_state *plane_state) >> +{ >> + return drm_gem_prepare_fb(&pipe->plane, plane_state); >> +} >> +EXPORT_SYMBOL(drm_gem_simple_display_pipe_prepare_fb); >> + >> /* >> * Shadow-buffered Planes >> */ >> @@ -74,7 +137,7 @@ static int drm_gem_prepare_shadow_fb(struct drm_plane *plane, struct drm_plane_s >> if (!fb) >> return 0; >> >> - ret = drm_gem_fb_prepare_fb(plane, plane_state); >> + ret = drm_gem_prepare_fb(plane, plane_state); >> if (ret) >> return ret; >> >> diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c >> index 109d11fb4cd4..5ed2067cebb6 100644 >> --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c >> +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c >> @@ -5,13 +5,8 @@ >> * Copyright (C) 2017 Noralf Trønnes >> */ >> >> -#include <linux/dma-buf.h> >> -#include <linux/dma-fence.h> >> -#include <linux/dma-resv.h> >> #include <linux/slab.h> >> >> -#include <drm/drm_atomic.h> >> -#include <drm/drm_atomic_uapi.h> >> #include <drm/drm_damage_helper.h> >> #include <drm/drm_fb_helper.h> >> #include <drm/drm_fourcc.h> >> @@ -19,7 +14,6 @@ >> #include <drm/drm_gem.h> >> #include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_modeset_helper.h> >> -#include <drm/drm_simple_kms_helper.h> >> >> #define AFBC_HEADER_SIZE 16 >> #define AFBC_TH_LAYOUT_ALIGNMENT 8 >> @@ -432,60 +426,3 @@ int drm_gem_fb_afbc_init(struct drm_device *dev, >> return 0; >> } >> EXPORT_SYMBOL_GPL(drm_gem_fb_afbc_init); >> - >> -/** >> - * drm_gem_fb_prepare_fb() - Prepare a GEM backed framebuffer >> - * @plane: Plane >> - * @state: Plane state the fence will be attached to >> - * >> - * This function extracts the exclusive fence from &drm_gem_object.resv and >> - * attaches it to plane state for the atomic helper to wait on. This is >> - * necessary to correctly implement implicit synchronization for any buffers >> - * shared as a struct &dma_buf. This function can be used as the >> - * &drm_plane_helper_funcs.prepare_fb callback. >> - * >> - * There is no need for &drm_plane_helper_funcs.cleanup_fb hook for simple >> - * gem based framebuffer drivers which have their buffers always pinned in >> - * memory. >> - * >> - * See drm_atomic_set_fence_for_plane() for a discussion of implicit and >> - * explicit fencing in atomic modeset updates. >> - */ >> -int drm_gem_fb_prepare_fb(struct drm_plane *plane, >> - struct drm_plane_state *state) >> -{ >> - struct drm_gem_object *obj; >> - struct dma_fence *fence; >> - >> - if (!state->fb) >> - return 0; >> - >> - obj = drm_gem_fb_get_obj(state->fb, 0); >> - fence = dma_resv_get_excl_rcu(obj->resv); >> - drm_atomic_set_fence_for_plane(state, fence); >> - >> - return 0; >> -} >> -EXPORT_SYMBOL_GPL(drm_gem_fb_prepare_fb); >> - >> -/** >> - * drm_gem_fb_simple_display_pipe_prepare_fb - prepare_fb helper for >> - * &drm_simple_display_pipe >> - * @pipe: Simple display pipe >> - * @plane_state: Plane state >> - * >> - * This function uses drm_gem_fb_prepare_fb() to extract the exclusive fence >> - * from &drm_gem_object.resv and attaches it to plane state for the atomic >> - * helper to wait on. This is necessary to correctly implement implicit >> - * synchronization for any buffers shared as a struct &dma_buf. Drivers can use >> - * this as their &drm_simple_display_pipe_funcs.prepare_fb callback. >> - * >> - * See drm_atomic_set_fence_for_plane() for a discussion of implicit and >> - * explicit fencing in atomic modeset updates. >> - */ >> -int drm_gem_fb_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, >> - struct drm_plane_state *plane_state) >> -{ >> - return drm_gem_fb_prepare_fb(&pipe->plane, plane_state); >> -} >> -EXPORT_SYMBOL(drm_gem_fb_simple_display_pipe_prepare_fb); >> diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c >> index 48d4b59d3145..2071ec637df8 100644 >> --- a/drivers/gpu/drm/drm_gem_vram_helper.c >> +++ b/drivers/gpu/drm/drm_gem_vram_helper.c >> @@ -8,7 +8,7 @@ >> #include <drm/drm_drv.h> >> #include <drm/drm_file.h> >> #include <drm/drm_framebuffer.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_ttm_helper.h> >> #include <drm/drm_gem_vram_helper.h> >> #include <drm/drm_managed.h> >> @@ -720,7 +720,7 @@ drm_gem_vram_plane_helper_prepare_fb(struct drm_plane *plane, >> goto err_drm_gem_vram_unpin; >> } >> >> - ret = drm_gem_fb_prepare_fb(plane, new_state); >> + ret = drm_gem_prepare_fb(plane, new_state); >> if (ret) >> goto err_drm_gem_vram_unpin; >> >> diff --git a/drivers/gpu/drm/imx/dcss/dcss-plane.c b/drivers/gpu/drm/imx/dcss/dcss-plane.c >> index 03ba88f7f995..092e98fe0cfd 100644 >> --- a/drivers/gpu/drm/imx/dcss/dcss-plane.c >> +++ b/drivers/gpu/drm/imx/dcss/dcss-plane.c >> @@ -6,7 +6,7 @@ >> #include <drm/drm_atomic.h> >> #include <drm/drm_atomic_helper.h> >> #include <drm/drm_fb_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> >> #include "dcss-dev.h" >> @@ -355,7 +355,7 @@ static void dcss_plane_atomic_disable(struct drm_plane *plane, >> } >> >> static const struct drm_plane_helper_funcs dcss_plane_helper_funcs = { >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> .atomic_check = dcss_plane_atomic_check, >> .atomic_update = dcss_plane_atomic_update, >> .atomic_disable = dcss_plane_atomic_disable, >> diff --git a/drivers/gpu/drm/imx/ipuv3-plane.c b/drivers/gpu/drm/imx/ipuv3-plane.c >> index 075508051b5f..0b6d81c4fa77 100644 >> --- a/drivers/gpu/drm/imx/ipuv3-plane.c >> +++ b/drivers/gpu/drm/imx/ipuv3-plane.c >> @@ -9,8 +9,8 @@ >> #include <drm/drm_atomic_helper.h> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_managed.h> >> #include <drm/drm_plane_helper.h> >> >> @@ -704,7 +704,7 @@ static void ipu_plane_atomic_update(struct drm_plane *plane, >> } >> >> static const struct drm_plane_helper_funcs ipu_plane_helper_funcs = { >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> .atomic_check = ipu_plane_atomic_check, >> .atomic_disable = ipu_plane_atomic_disable, >> .atomic_update = ipu_plane_atomic_update, >> diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c >> index 7bb31fbee29d..1ca02de60895 100644 >> --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c >> +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c >> @@ -28,6 +28,7 @@ >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fb_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_irq.h> >> #include <drm/drm_managed.h> >> @@ -780,7 +781,7 @@ static const struct drm_plane_helper_funcs ingenic_drm_plane_helper_funcs = { >> .atomic_update = ingenic_drm_plane_atomic_update, >> .atomic_check = ingenic_drm_plane_atomic_check, >> .atomic_disable = ingenic_drm_plane_atomic_disable, >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> }; >> >> static const struct drm_crtc_helper_funcs ingenic_drm_crtc_helper_funcs = { >> diff --git a/drivers/gpu/drm/ingenic/ingenic-ipu.c b/drivers/gpu/drm/ingenic/ingenic-ipu.c >> index e52777ef85fd..1b9b5de6b67c 100644 >> --- a/drivers/gpu/drm/ingenic/ingenic-ipu.c >> +++ b/drivers/gpu/drm/ingenic/ingenic-ipu.c >> @@ -23,7 +23,7 @@ >> #include <drm/drm_drv.h> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_plane.h> >> #include <drm/drm_plane_helper.h> >> #include <drm/drm_property.h> >> @@ -608,7 +608,7 @@ static const struct drm_plane_helper_funcs ingenic_ipu_plane_helper_funcs = { >> .atomic_update = ingenic_ipu_plane_atomic_update, >> .atomic_check = ingenic_ipu_plane_atomic_check, >> .atomic_disable = ingenic_ipu_plane_atomic_disable, >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> }; >> >> static int >> diff --git a/drivers/gpu/drm/mcde/mcde_display.c b/drivers/gpu/drm/mcde/mcde_display.c >> index 7c2e0b865441..dde16ef9650a 100644 >> --- a/drivers/gpu/drm/mcde/mcde_display.c >> +++ b/drivers/gpu/drm/mcde/mcde_display.c >> @@ -13,8 +13,8 @@ >> #include <drm/drm_device.h> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_mipi_dsi.h> >> #include <drm/drm_simple_kms_helper.h> >> #include <drm/drm_bridge.h> >> @@ -1481,7 +1481,7 @@ static struct drm_simple_display_pipe_funcs mcde_display_funcs = { >> .update = mcde_display_update, >> .enable_vblank = mcde_display_enable_vblank, >> .disable_vblank = mcde_display_disable_vblank, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> }; >> >> int mcde_display_init(struct drm_device *drm) >> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c >> index 92141a19681b..64f7873e9867 100644 >> --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c >> +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c >> @@ -6,10 +6,10 @@ >> >> #include <drm/drm_atomic.h> >> #include <drm/drm_atomic_helper.h> >> -#include <drm/drm_fourcc.h> >> #include <drm/drm_atomic_uapi.h> >> +#include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_plane_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> >> #include "mtk_drm_crtc.h" >> #include "mtk_drm_ddp_comp.h" >> @@ -216,7 +216,7 @@ static void mtk_plane_atomic_update(struct drm_plane *plane, >> } >> >> static const struct drm_plane_helper_funcs mtk_plane_helper_funcs = { >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> .atomic_check = mtk_plane_atomic_check, >> .atomic_update = mtk_plane_atomic_update, >> .atomic_disable = mtk_plane_atomic_disable, >> diff --git a/drivers/gpu/drm/meson/meson_overlay.c b/drivers/gpu/drm/meson/meson_overlay.c >> index 1ffbbecafa22..0ee2132a990f 100644 >> --- a/drivers/gpu/drm/meson/meson_overlay.c >> +++ b/drivers/gpu/drm/meson/meson_overlay.c >> @@ -10,11 +10,11 @@ >> #include <drm/drm_atomic.h> >> #include <drm/drm_atomic_helper.h> >> #include <drm/drm_device.h> >> +#include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> -#include <drm/drm_plane_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_fb_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> +#include <drm/drm_plane_helper.h> >> >> #include "meson_overlay.h" >> #include "meson_registers.h" >> @@ -742,7 +742,7 @@ static const struct drm_plane_helper_funcs meson_overlay_helper_funcs = { >> .atomic_check = meson_overlay_atomic_check, >> .atomic_disable = meson_overlay_atomic_disable, >> .atomic_update = meson_overlay_atomic_update, >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> }; >> >> static bool meson_overlay_format_mod_supported(struct drm_plane *plane, >> diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c >> index 35338ed18209..24d64c9675ff 100644 >> --- a/drivers/gpu/drm/meson/meson_plane.c >> +++ b/drivers/gpu/drm/meson/meson_plane.c >> @@ -16,8 +16,8 @@ >> #include <drm/drm_device.h> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_plane_helper.h> >> >> #include "meson_plane.h" >> @@ -417,7 +417,7 @@ static const struct drm_plane_helper_funcs meson_plane_helper_funcs = { >> .atomic_check = meson_plane_atomic_check, >> .atomic_disable = meson_plane_atomic_disable, >> .atomic_update = meson_plane_atomic_update, >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> }; >> >> static bool meson_plane_format_mod_supported(struct drm_plane *plane, >> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c >> index bc0231a50132..3e9f9f3dd679 100644 >> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c >> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c >> @@ -13,7 +13,7 @@ >> #include <drm/drm_atomic_uapi.h> >> #include <drm/drm_damage_helper.h> >> #include <drm/drm_file.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> >> #include "msm_drv.h" >> #include "dpu_kms.h" >> @@ -892,7 +892,7 @@ static int dpu_plane_prepare_fb(struct drm_plane *plane, >> * we can use msm_atomic_prepare_fb() instead of doing the >> * implicit fence and fb prepare by hand here. >> */ >> - drm_gem_fb_prepare_fb(plane, new_state); >> + drm_gem_prepare_fb(plane, new_state); >> >> if (pstate->aspace) { >> ret = msm_framebuffer_prepare(new_state->fb, >> diff --git a/drivers/gpu/drm/msm/msm_atomic.c b/drivers/gpu/drm/msm/msm_atomic.c >> index 6a326761dc4a..03a113eb6571 100644 >> --- a/drivers/gpu/drm/msm/msm_atomic.c >> +++ b/drivers/gpu/drm/msm/msm_atomic.c >> @@ -5,7 +5,7 @@ >> */ >> >> #include <drm/drm_atomic_uapi.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_vblank.h> >> >> #include "msm_atomic_trace.h" >> @@ -22,7 +22,7 @@ int msm_atomic_prepare_fb(struct drm_plane *plane, >> if (!new_state->fb) >> return 0; >> >> - drm_gem_fb_prepare_fb(plane, new_state); >> + drm_gem_prepare_fb(plane, new_state); >> >> return msm_framebuffer_prepare(new_state->fb, kms->aspace); >> } >> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c >> index 3e1bb0aefb87..33188dea886d 100644 >> --- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c >> +++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c >> @@ -21,8 +21,8 @@ >> #include <drm/drm_encoder.h> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_plane.h> >> #include <drm/drm_plane_helper.h> >> #include <drm/drm_vblank.h> >> @@ -495,13 +495,13 @@ static bool mxsfb_format_mod_supported(struct drm_plane *plane, >> } >> >> static const struct drm_plane_helper_funcs mxsfb_plane_primary_helper_funcs = { >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> .atomic_check = mxsfb_plane_atomic_check, >> .atomic_update = mxsfb_plane_primary_atomic_update, >> }; >> >> static const struct drm_plane_helper_funcs mxsfb_plane_overlay_helper_funcs = { >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> .atomic_check = mxsfb_plane_atomic_check, >> .atomic_update = mxsfb_plane_overlay_atomic_update, >> }; >> diff --git a/drivers/gpu/drm/pl111/pl111_display.c b/drivers/gpu/drm/pl111/pl111_display.c >> index 69c02e7c82b7..6fd7f13f1aca 100644 >> --- a/drivers/gpu/drm/pl111/pl111_display.c >> +++ b/drivers/gpu/drm/pl111/pl111_display.c >> @@ -17,8 +17,8 @@ >> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_vblank.h> >> >> #include "pl111_drm.h" >> @@ -440,7 +440,7 @@ static struct drm_simple_display_pipe_funcs pl111_display_funcs = { >> .enable = pl111_display_enable, >> .disable = pl111_display_disable, >> .update = pl111_display_update, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> }; >> >> static int pl111_clk_div_choose_div(struct clk_hw *hw, unsigned long rate, >> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c >> index 53221d8473c1..964fdaee7c7d 100644 >> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c >> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c >> @@ -11,8 +11,8 @@ >> #include <drm/drm_crtc.h> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_managed.h> >> #include <drm/drm_plane_helper.h> >> #include <drm/drm_vblank.h> >> @@ -236,7 +236,7 @@ static int rcar_du_vsp_plane_prepare_fb(struct drm_plane *plane, >> if (ret < 0) >> return ret; >> >> - return drm_gem_fb_prepare_fb(plane, state); >> + return drm_gem_prepare_fb(plane, state); >> } >> >> void rcar_du_vsp_unmap_fb(struct rcar_du_vsp *vsp, struct drm_framebuffer *fb, >> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> index 8d15cabdcb02..45577de18b49 100644 >> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> @@ -23,6 +23,7 @@ >> #include <drm/drm_crtc.h> >> #include <drm/drm_flip_work.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_plane_helper.h> >> #include <drm/drm_probe_helper.h> >> @@ -1096,7 +1097,7 @@ static const struct drm_plane_helper_funcs plane_helper_funcs = { >> .atomic_disable = vop_plane_atomic_disable, >> .atomic_async_check = vop_plane_atomic_async_check, >> .atomic_async_update = vop_plane_atomic_async_update, >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> }; >> >> static const struct drm_plane_funcs vop_plane_funcs = { >> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c >> index 7812094f93d6..73522c6ba3eb 100644 >> --- a/drivers/gpu/drm/stm/ltdc.c >> +++ b/drivers/gpu/drm/stm/ltdc.c >> @@ -26,8 +26,8 @@ >> #include <drm/drm_device.h> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_of.h> >> #include <drm/drm_plane_helper.h> >> #include <drm/drm_probe_helper.h> >> @@ -911,7 +911,7 @@ static const struct drm_plane_funcs ltdc_plane_funcs = { >> }; >> >> static const struct drm_plane_helper_funcs ltdc_plane_helper_funcs = { >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> .atomic_check = ltdc_plane_atomic_check, >> .atomic_update = ltdc_plane_atomic_update, >> .atomic_disable = ltdc_plane_atomic_disable, >> diff --git a/drivers/gpu/drm/sun4i/sun4i_layer.c b/drivers/gpu/drm/sun4i/sun4i_layer.c >> index acfbfd4463a1..68da94b7c35d 100644 >> --- a/drivers/gpu/drm/sun4i/sun4i_layer.c >> +++ b/drivers/gpu/drm/sun4i/sun4i_layer.c >> @@ -7,7 +7,7 @@ >> */ >> >> #include <drm/drm_atomic_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_plane_helper.h> >> >> #include "sun4i_backend.h" >> @@ -122,7 +122,7 @@ static bool sun4i_layer_format_mod_supported(struct drm_plane *plane, >> } >> >> static const struct drm_plane_helper_funcs sun4i_backend_layer_helper_funcs = { >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> .atomic_disable = sun4i_backend_layer_atomic_disable, >> .atomic_update = sun4i_backend_layer_atomic_update, >> }; >> diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c >> index 816ad4ce8996..95654c153279 100644 >> --- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c >> +++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c >> @@ -14,8 +14,8 @@ >> #include <drm/drm_crtc.h> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_plane_helper.h> >> #include <drm/drm_probe_helper.h> >> >> @@ -299,7 +299,7 @@ static void sun8i_ui_layer_atomic_update(struct drm_plane *plane, >> } >> >> static const struct drm_plane_helper_funcs sun8i_ui_layer_helper_funcs = { >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> .atomic_check = sun8i_ui_layer_atomic_check, >> .atomic_disable = sun8i_ui_layer_atomic_disable, >> .atomic_update = sun8i_ui_layer_atomic_update, >> diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c >> index 8cc294a9969d..4005884dbce4 100644 >> --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c >> +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c >> @@ -7,8 +7,8 @@ >> #include <drm/drm_atomic_helper.h> >> #include <drm/drm_crtc.h> >> #include <drm/drm_fb_cma_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_plane_helper.h> >> #include <drm/drm_probe_helper.h> >> >> @@ -402,7 +402,7 @@ static void sun8i_vi_layer_atomic_update(struct drm_plane *plane, >> } >> >> static const struct drm_plane_helper_funcs sun8i_vi_layer_helper_funcs = { >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> .atomic_check = sun8i_vi_layer_atomic_check, >> .atomic_disable = sun8i_vi_layer_atomic_disable, >> .atomic_update = sun8i_vi_layer_atomic_update, >> diff --git a/drivers/gpu/drm/tegra/plane.c b/drivers/gpu/drm/tegra/plane.c >> index 539d14935728..ec86a8d060aa 100644 >> --- a/drivers/gpu/drm/tegra/plane.c >> +++ b/drivers/gpu/drm/tegra/plane.c >> @@ -8,7 +8,7 @@ >> #include <drm/drm_atomic.h> >> #include <drm/drm_atomic_helper.h> >> #include <drm/drm_fourcc.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_plane_helper.h> >> >> #include "dc.h" >> @@ -198,7 +198,7 @@ int tegra_plane_prepare_fb(struct drm_plane *plane, >> if (!state->fb) >> return 0; >> >> - drm_gem_fb_prepare_fb(plane, state); >> + drm_gem_prepare_fb(plane, state); >> >> return tegra_dc_pin(dc, to_tegra_plane_state(state)); >> } >> diff --git a/drivers/gpu/drm/tidss/tidss_plane.c b/drivers/gpu/drm/tidss/tidss_plane.c >> index 35067ae674ea..d39baa66e876 100644 >> --- a/drivers/gpu/drm/tidss/tidss_plane.c >> +++ b/drivers/gpu/drm/tidss/tidss_plane.c >> @@ -10,7 +10,7 @@ >> #include <drm/drm_crtc_helper.h> >> #include <drm/drm_fourcc.h> >> #include <drm/drm_fb_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> >> #include "tidss_crtc.h" >> #include "tidss_dispc.h" >> @@ -151,7 +151,7 @@ static void drm_plane_destroy(struct drm_plane *plane) >> } >> >> static const struct drm_plane_helper_funcs tidss_plane_helper_funcs = { >> - .prepare_fb = drm_gem_fb_prepare_fb, >> + .prepare_fb = drm_gem_prepare_fb, >> .atomic_check = tidss_plane_atomic_check, >> .atomic_update = tidss_plane_atomic_update, >> .atomic_disable = tidss_plane_atomic_disable, >> diff --git a/drivers/gpu/drm/tiny/hx8357d.c b/drivers/gpu/drm/tiny/hx8357d.c >> index c6525cd02bc2..3e2c2868a363 100644 >> --- a/drivers/gpu/drm/tiny/hx8357d.c >> +++ b/drivers/gpu/drm/tiny/hx8357d.c >> @@ -19,8 +19,8 @@ >> #include <drm/drm_atomic_helper.h> >> #include <drm/drm_drv.h> >> #include <drm/drm_fb_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_managed.h> >> #include <drm/drm_mipi_dbi.h> >> #include <drm/drm_modeset_helper.h> >> @@ -184,7 +184,7 @@ static const struct drm_simple_display_pipe_funcs hx8357d_pipe_funcs = { >> .enable = yx240qv29_enable, >> .disable = mipi_dbi_pipe_disable, >> .update = mipi_dbi_pipe_update, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> }; >> >> static const struct drm_display_mode yx350hv15_mode = { >> diff --git a/drivers/gpu/drm/tiny/ili9225.c b/drivers/gpu/drm/tiny/ili9225.c >> index 8e98962db5a2..6b87df19eec1 100644 >> --- a/drivers/gpu/drm/tiny/ili9225.c >> +++ b/drivers/gpu/drm/tiny/ili9225.c >> @@ -22,8 +22,8 @@ >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fb_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_managed.h> >> #include <drm/drm_mipi_dbi.h> >> #include <drm/drm_rect.h> >> @@ -328,7 +328,7 @@ static const struct drm_simple_display_pipe_funcs ili9225_pipe_funcs = { >> .enable = ili9225_pipe_enable, >> .disable = ili9225_pipe_disable, >> .update = ili9225_pipe_update, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> }; >> >> static const struct drm_display_mode ili9225_mode = { >> diff --git a/drivers/gpu/drm/tiny/ili9341.c b/drivers/gpu/drm/tiny/ili9341.c >> index 6ce97f0698eb..a97f3f70e4a6 100644 >> --- a/drivers/gpu/drm/tiny/ili9341.c >> +++ b/drivers/gpu/drm/tiny/ili9341.c >> @@ -18,8 +18,8 @@ >> #include <drm/drm_atomic_helper.h> >> #include <drm/drm_drv.h> >> #include <drm/drm_fb_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_managed.h> >> #include <drm/drm_mipi_dbi.h> >> #include <drm/drm_modeset_helper.h> >> @@ -140,7 +140,7 @@ static const struct drm_simple_display_pipe_funcs ili9341_pipe_funcs = { >> .enable = yx240qv29_enable, >> .disable = mipi_dbi_pipe_disable, >> .update = mipi_dbi_pipe_update, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> }; >> >> static const struct drm_display_mode yx240qv29_mode = { >> diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c >> index d7ce40eb166a..6422a7f67079 100644 >> --- a/drivers/gpu/drm/tiny/ili9486.c >> +++ b/drivers/gpu/drm/tiny/ili9486.c >> @@ -17,8 +17,8 @@ >> #include <drm/drm_atomic_helper.h> >> #include <drm/drm_drv.h> >> #include <drm/drm_fb_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_managed.h> >> #include <drm/drm_mipi_dbi.h> >> #include <drm/drm_modeset_helper.h> >> @@ -153,7 +153,7 @@ static const struct drm_simple_display_pipe_funcs waveshare_pipe_funcs = { >> .enable = waveshare_enable, >> .disable = mipi_dbi_pipe_disable, >> .update = mipi_dbi_pipe_update, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> }; >> >> static const struct drm_display_mode waveshare_mode = { >> diff --git a/drivers/gpu/drm/tiny/mi0283qt.c b/drivers/gpu/drm/tiny/mi0283qt.c >> index ff77f983f803..dc76fe53aa72 100644 >> --- a/drivers/gpu/drm/tiny/mi0283qt.c >> +++ b/drivers/gpu/drm/tiny/mi0283qt.c >> @@ -16,8 +16,8 @@ >> #include <drm/drm_atomic_helper.h> >> #include <drm/drm_drv.h> >> #include <drm/drm_fb_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_managed.h> >> #include <drm/drm_mipi_dbi.h> >> #include <drm/drm_modeset_helper.h> >> @@ -144,7 +144,7 @@ static const struct drm_simple_display_pipe_funcs mi0283qt_pipe_funcs = { >> .enable = mi0283qt_enable, >> .disable = mipi_dbi_pipe_disable, >> .update = mipi_dbi_pipe_update, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> }; >> >> static const struct drm_display_mode mi0283qt_mode = { >> diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c >> index 11c602fc9897..2cee07a2e00b 100644 >> --- a/drivers/gpu/drm/tiny/repaper.c >> +++ b/drivers/gpu/drm/tiny/repaper.c >> @@ -29,6 +29,7 @@ >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fb_helper.h> >> #include <drm/drm_format_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> #include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_managed.h> >> @@ -860,7 +861,7 @@ static const struct drm_simple_display_pipe_funcs repaper_pipe_funcs = { >> .enable = repaper_pipe_enable, >> .disable = repaper_pipe_disable, >> .update = repaper_pipe_update, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> }; >> >> static int repaper_connector_get_modes(struct drm_connector *connector) >> diff --git a/drivers/gpu/drm/tiny/st7586.c b/drivers/gpu/drm/tiny/st7586.c >> index ff5cf60f4bd7..7d216fe9267f 100644 >> --- a/drivers/gpu/drm/tiny/st7586.c >> +++ b/drivers/gpu/drm/tiny/st7586.c >> @@ -19,8 +19,8 @@ >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fb_helper.h> >> #include <drm/drm_format_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_managed.h> >> #include <drm/drm_mipi_dbi.h> >> #include <drm/drm_rect.h> >> @@ -268,7 +268,7 @@ static const struct drm_simple_display_pipe_funcs st7586_pipe_funcs = { >> .enable = st7586_pipe_enable, >> .disable = st7586_pipe_disable, >> .update = st7586_pipe_update, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> }; >> >> static const struct drm_display_mode st7586_mode = { >> diff --git a/drivers/gpu/drm/tiny/st7735r.c b/drivers/gpu/drm/tiny/st7735r.c >> index faaba0a033ea..df8872d62cdd 100644 >> --- a/drivers/gpu/drm/tiny/st7735r.c >> +++ b/drivers/gpu/drm/tiny/st7735r.c >> @@ -19,8 +19,8 @@ >> #include <drm/drm_atomic_helper.h> >> #include <drm/drm_drv.h> >> #include <drm/drm_fb_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_managed.h> >> #include <drm/drm_mipi_dbi.h> >> >> @@ -136,7 +136,7 @@ static const struct drm_simple_display_pipe_funcs st7735r_pipe_funcs = { >> .enable = st7735r_pipe_enable, >> .disable = mipi_dbi_pipe_disable, >> .update = mipi_dbi_pipe_update, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> }; >> >> static const struct st7735r_cfg jd_t18003_t01_cfg = { >> diff --git a/drivers/gpu/drm/tve200/tve200_display.c b/drivers/gpu/drm/tve200/tve200_display.c >> index cb0e837d3dba..50e1fb71869f 100644 >> --- a/drivers/gpu/drm/tve200/tve200_display.c >> +++ b/drivers/gpu/drm/tve200/tve200_display.c >> @@ -17,8 +17,8 @@ >> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_cma_helper.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_panel.h> >> #include <drm/drm_vblank.h> >> >> @@ -316,7 +316,7 @@ static const struct drm_simple_display_pipe_funcs tve200_display_funcs = { >> .enable = tve200_display_enable, >> .disable = tve200_display_disable, >> .update = tve200_display_update, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> .enable_vblank = tve200_display_enable_vblank, >> .disable_vblank = tve200_display_disable_vblank, >> }; >> diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c >> index 7322169c0682..a65e980078f3 100644 >> --- a/drivers/gpu/drm/vc4/vc4_plane.c >> +++ b/drivers/gpu/drm/vc4/vc4_plane.c >> @@ -20,7 +20,7 @@ >> #include <drm/drm_atomic_uapi.h> >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> -#include <drm/drm_gem_framebuffer_helper.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_plane_helper.h> >> >> #include "uapi/drm/vc4_drm.h" >> @@ -1250,7 +1250,7 @@ static int vc4_prepare_fb(struct drm_plane *plane, >> >> bo = to_vc4_bo(&drm_fb_cma_get_gem_obj(state->fb, 0)->base); >> >> - drm_gem_fb_prepare_fb(plane, state); >> + drm_gem_prepare_fb(plane, state); >> >> if (plane->state->fb == state->fb) >> return 0; >> diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c >> index 0824327cc860..e3fd8cd1f3f1 100644 >> --- a/drivers/gpu/drm/vkms/vkms_plane.c >> +++ b/drivers/gpu/drm/vkms/vkms_plane.c >> @@ -5,6 +5,7 @@ >> #include <drm/drm_atomic.h> >> #include <drm/drm_atomic_helper.h> >> #include <drm/drm_fourcc.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_plane_helper.h> >> #include <drm/drm_gem_shmem_helper.h> >> @@ -159,7 +160,7 @@ static int vkms_prepare_fb(struct drm_plane *plane, >> if (ret) >> DRM_ERROR("vmap failed: %d\n", ret); >> >> - return drm_gem_fb_prepare_fb(plane, state); >> + return drm_gem_prepare_fb(plane, state); >> } >> >> static void vkms_cleanup_fb(struct drm_plane *plane, >> diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c >> index ef11b1e4de39..371202ebe900 100644 >> --- a/drivers/gpu/drm/xen/xen_drm_front_kms.c >> +++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c >> @@ -13,6 +13,7 @@ >> #include <drm/drm_drv.h> >> #include <drm/drm_fourcc.h> >> #include <drm/drm_gem.h> >> +#include <drm/drm_gem_atomic_helper.h> >> #include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_probe_helper.h> >> #include <drm/drm_vblank.h> >> @@ -301,7 +302,7 @@ static const struct drm_simple_display_pipe_funcs display_funcs = { >> .mode_valid = display_mode_valid, >> .enable = display_enable, >> .disable = display_disable, >> - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, >> + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, >> .check = display_check, >> .update = display_update, >> }; >> diff --git a/include/drm/drm_gem_atomic_helper.h b/include/drm/drm_gem_atomic_helper.h >> index 08b96ccea325..91e73d23fea8 100644 >> --- a/include/drm/drm_gem_atomic_helper.h >> +++ b/include/drm/drm_gem_atomic_helper.h >> @@ -9,6 +9,14 @@ >> >> struct drm_simple_display_pipe; >> >> +/* >> + * Plane Helpers >> + */ >> + >> +int drm_gem_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state); >> +int drm_gem_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, >> + struct drm_plane_state *plane_state); >> + >> /* >> * Helpers for planes with shadow buffers >> */ >> diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h >> index 6b013154911d..495d174d9989 100644 >> --- a/include/drm/drm_gem_framebuffer_helper.h >> +++ b/include/drm/drm_gem_framebuffer_helper.h >> @@ -9,9 +9,11 @@ struct drm_framebuffer; >> struct drm_framebuffer_funcs; >> struct drm_gem_object; >> struct drm_mode_fb_cmd2; >> +#if 0 >> struct drm_plane; >> struct drm_plane_state; >> struct drm_simple_display_pipe; >> +#endif >> >> #define AFBC_VENDOR_AND_TYPE_MASK GENMASK_ULL(63, 52) >> >> @@ -44,8 +46,4 @@ int drm_gem_fb_afbc_init(struct drm_device *dev, >> const struct drm_mode_fb_cmd2 *mode_cmd, >> struct drm_afbc_framebuffer *afbc_fb); >> >> -int drm_gem_fb_prepare_fb(struct drm_plane *plane, >> - struct drm_plane_state *state); >> -int drm_gem_fb_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, >> - struct drm_plane_state *plane_state); >> #endif >> diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h >> index eb706342861d..8d41d3734153 100644 >> --- a/include/drm/drm_modeset_helper_vtables.h >> +++ b/include/drm/drm_modeset_helper_vtables.h >> @@ -1179,7 +1179,7 @@ struct drm_plane_helper_funcs { >> * members in the plane structure. >> * >> * Drivers which always have their buffers pinned should use >> - * drm_gem_fb_prepare_fb() for this hook. >> + * drm_gem_prepare_fb() for this hook. >> * >> * The helpers will call @cleanup_fb with matching arguments for every >> * successful call to this hook. >> diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h >> index 95ab14a4336a..be08b6b1fde0 100644 >> --- a/include/drm/drm_plane.h >> +++ b/include/drm/drm_plane.h >> @@ -79,8 +79,8 @@ struct drm_plane_state { >> * preserved. >> * >> * Drivers should store any implicit fence in this from their >> - * &drm_plane_helper_funcs.prepare_fb callback. See drm_gem_fb_prepare_fb() >> - * and drm_gem_fb_simple_display_pipe_prepare_fb() for suitable helpers. >> + * &drm_plane_helper_funcs.prepare_fb callback. See drm_gem_prepare_fb() >> + * and drm_gem_simple_display_pipe_prepare_fb() for suitable helpers. >> */ >> struct dma_fence *fence; >> >> diff --git a/include/drm/drm_simple_kms_helper.h b/include/drm/drm_simple_kms_helper.h >> index 40b34573249f..ef9944e9c5fc 100644 >> --- a/include/drm/drm_simple_kms_helper.h >> +++ b/include/drm/drm_simple_kms_helper.h >> @@ -117,7 +117,7 @@ struct drm_simple_display_pipe_funcs { >> * more details. >> * >> * Drivers which always have their buffers pinned should use >> - * drm_gem_fb_simple_display_pipe_prepare_fb() for this hook. >> + * drm_gem_simple_display_pipe_prepare_fb() for this hook. >> */ >> int (*prepare_fb)(struct drm_simple_display_pipe *pipe, >> struct drm_plane_state *plane_state); >> -- >> 2.30.0 >> >
diff --git a/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c b/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c index e54686c31a90..d8f214e0be82 100644 --- a/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c +++ b/drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c @@ -9,8 +9,8 @@ #include <drm/drm_device.h> #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_panel.h> #include <drm/drm_simple_kms_helper.h> #include <drm/drm_vblank.h> @@ -219,7 +219,7 @@ static const struct drm_simple_display_pipe_funcs aspeed_gfx_funcs = { .enable = aspeed_gfx_pipe_enable, .disable = aspeed_gfx_pipe_disable, .update = aspeed_gfx_pipe_update, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, .enable_vblank = aspeed_gfx_enable_vblank, .disable_vblank = aspeed_gfx_disable_vblank, }; diff --git a/drivers/gpu/drm/drm_gem_atomic_helper.c b/drivers/gpu/drm/drm_gem_atomic_helper.c index e27762cef360..c656b40656bf 100644 --- a/drivers/gpu/drm/drm_gem_atomic_helper.c +++ b/drivers/gpu/drm/drm_gem_atomic_helper.c @@ -1,6 +1,10 @@ // SPDX-License-Identifier: GPL-2.0-or-later +#include <linux/dma-resv.h> + #include <drm/drm_atomic_state_helper.h> +#include <drm/drm_atomic_uapi.h> +#include <drm/drm_gem.h> #include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_simple_kms_helper.h> @@ -12,10 +16,69 @@ * * The GEM atomic helpers library implements generic atomic-commit * functions for drivers that use GEM objects. Currently, it provides - * plane state and framebuffer BO mappings for planes with shadow - * buffers. + * synchronization helpers, and plane state and framebuffer BO mappings + * for planes with shadow buffers. + */ + +/* + * Plane Helpers */ +/** + * drm_gem_prepare_fb() - Prepare a GEM backed framebuffer + * @plane: Plane + * @state: Plane state the fence will be attached to + * + * This function extracts the exclusive fence from &drm_gem_object.resv and + * attaches it to plane state for the atomic helper to wait on. This is + * necessary to correctly implement implicit synchronization for any buffers + * shared as a struct &dma_buf. This function can be used as the + * &drm_plane_helper_funcs.prepare_fb callback. + * + * There is no need for &drm_plane_helper_funcs.cleanup_fb hook for simple + * GEM based framebuffer drivers which have their buffers always pinned in + * memory. + * + * See drm_atomic_set_fence_for_plane() for a discussion of implicit and + * explicit fencing in atomic modeset updates. + */ +int drm_gem_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) +{ + struct drm_gem_object *obj; + struct dma_fence *fence; + + if (!state->fb) + return 0; + + obj = drm_gem_fb_get_obj(state->fb, 0); + fence = dma_resv_get_excl_rcu(obj->resv); + drm_atomic_set_fence_for_plane(state, fence); + + return 0; +} +EXPORT_SYMBOL_GPL(drm_gem_prepare_fb); + +/** + * drm_gem_simple_display_pipe_prepare_fb - prepare_fb helper for &drm_simple_display_pipe + * @pipe: Simple display pipe + * @plane_state: Plane state + * + * This function uses drm_gem_prepare_fb() to extract the exclusive fence + * from &drm_gem_object.resv and attaches it to plane state for the atomic + * helper to wait on. This is necessary to correctly implement implicit + * synchronization for any buffers shared as a struct &dma_buf. Drivers can use + * this as their &drm_simple_display_pipe_funcs.prepare_fb callback. + * + * See drm_atomic_set_fence_for_plane() for a discussion of implicit and + * explicit fencing in atomic modeset updates. + */ +int drm_gem_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, + struct drm_plane_state *plane_state) +{ + return drm_gem_prepare_fb(&pipe->plane, plane_state); +} +EXPORT_SYMBOL(drm_gem_simple_display_pipe_prepare_fb); + /* * Shadow-buffered Planes */ @@ -74,7 +137,7 @@ static int drm_gem_prepare_shadow_fb(struct drm_plane *plane, struct drm_plane_s if (!fb) return 0; - ret = drm_gem_fb_prepare_fb(plane, plane_state); + ret = drm_gem_prepare_fb(plane, plane_state); if (ret) return ret; diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c index 109d11fb4cd4..5ed2067cebb6 100644 --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c @@ -5,13 +5,8 @@ * Copyright (C) 2017 Noralf Trønnes */ -#include <linux/dma-buf.h> -#include <linux/dma-fence.h> -#include <linux/dma-resv.h> #include <linux/slab.h> -#include <drm/drm_atomic.h> -#include <drm/drm_atomic_uapi.h> #include <drm/drm_damage_helper.h> #include <drm/drm_fb_helper.h> #include <drm/drm_fourcc.h> @@ -19,7 +14,6 @@ #include <drm/drm_gem.h> #include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_modeset_helper.h> -#include <drm/drm_simple_kms_helper.h> #define AFBC_HEADER_SIZE 16 #define AFBC_TH_LAYOUT_ALIGNMENT 8 @@ -432,60 +426,3 @@ int drm_gem_fb_afbc_init(struct drm_device *dev, return 0; } EXPORT_SYMBOL_GPL(drm_gem_fb_afbc_init); - -/** - * drm_gem_fb_prepare_fb() - Prepare a GEM backed framebuffer - * @plane: Plane - * @state: Plane state the fence will be attached to - * - * This function extracts the exclusive fence from &drm_gem_object.resv and - * attaches it to plane state for the atomic helper to wait on. This is - * necessary to correctly implement implicit synchronization for any buffers - * shared as a struct &dma_buf. This function can be used as the - * &drm_plane_helper_funcs.prepare_fb callback. - * - * There is no need for &drm_plane_helper_funcs.cleanup_fb hook for simple - * gem based framebuffer drivers which have their buffers always pinned in - * memory. - * - * See drm_atomic_set_fence_for_plane() for a discussion of implicit and - * explicit fencing in atomic modeset updates. - */ -int drm_gem_fb_prepare_fb(struct drm_plane *plane, - struct drm_plane_state *state) -{ - struct drm_gem_object *obj; - struct dma_fence *fence; - - if (!state->fb) - return 0; - - obj = drm_gem_fb_get_obj(state->fb, 0); - fence = dma_resv_get_excl_rcu(obj->resv); - drm_atomic_set_fence_for_plane(state, fence); - - return 0; -} -EXPORT_SYMBOL_GPL(drm_gem_fb_prepare_fb); - -/** - * drm_gem_fb_simple_display_pipe_prepare_fb - prepare_fb helper for - * &drm_simple_display_pipe - * @pipe: Simple display pipe - * @plane_state: Plane state - * - * This function uses drm_gem_fb_prepare_fb() to extract the exclusive fence - * from &drm_gem_object.resv and attaches it to plane state for the atomic - * helper to wait on. This is necessary to correctly implement implicit - * synchronization for any buffers shared as a struct &dma_buf. Drivers can use - * this as their &drm_simple_display_pipe_funcs.prepare_fb callback. - * - * See drm_atomic_set_fence_for_plane() for a discussion of implicit and - * explicit fencing in atomic modeset updates. - */ -int drm_gem_fb_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, - struct drm_plane_state *plane_state) -{ - return drm_gem_fb_prepare_fb(&pipe->plane, plane_state); -} -EXPORT_SYMBOL(drm_gem_fb_simple_display_pipe_prepare_fb); diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c index 48d4b59d3145..2071ec637df8 100644 --- a/drivers/gpu/drm/drm_gem_vram_helper.c +++ b/drivers/gpu/drm/drm_gem_vram_helper.c @@ -8,7 +8,7 @@ #include <drm/drm_drv.h> #include <drm/drm_file.h> #include <drm/drm_framebuffer.h> -#include <drm/drm_gem_framebuffer_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_ttm_helper.h> #include <drm/drm_gem_vram_helper.h> #include <drm/drm_managed.h> @@ -720,7 +720,7 @@ drm_gem_vram_plane_helper_prepare_fb(struct drm_plane *plane, goto err_drm_gem_vram_unpin; } - ret = drm_gem_fb_prepare_fb(plane, new_state); + ret = drm_gem_prepare_fb(plane, new_state); if (ret) goto err_drm_gem_vram_unpin; diff --git a/drivers/gpu/drm/imx/dcss/dcss-plane.c b/drivers/gpu/drm/imx/dcss/dcss-plane.c index 03ba88f7f995..092e98fe0cfd 100644 --- a/drivers/gpu/drm/imx/dcss/dcss-plane.c +++ b/drivers/gpu/drm/imx/dcss/dcss-plane.c @@ -6,7 +6,7 @@ #include <drm/drm_atomic.h> #include <drm/drm_atomic_helper.h> #include <drm/drm_fb_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> #include "dcss-dev.h" @@ -355,7 +355,7 @@ static void dcss_plane_atomic_disable(struct drm_plane *plane, } static const struct drm_plane_helper_funcs dcss_plane_helper_funcs = { - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, .atomic_check = dcss_plane_atomic_check, .atomic_update = dcss_plane_atomic_update, .atomic_disable = dcss_plane_atomic_disable, diff --git a/drivers/gpu/drm/imx/ipuv3-plane.c b/drivers/gpu/drm/imx/ipuv3-plane.c index 075508051b5f..0b6d81c4fa77 100644 --- a/drivers/gpu/drm/imx/ipuv3-plane.c +++ b/drivers/gpu/drm/imx/ipuv3-plane.c @@ -9,8 +9,8 @@ #include <drm/drm_atomic_helper.h> #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_managed.h> #include <drm/drm_plane_helper.h> @@ -704,7 +704,7 @@ static void ipu_plane_atomic_update(struct drm_plane *plane, } static const struct drm_plane_helper_funcs ipu_plane_helper_funcs = { - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, .atomic_check = ipu_plane_atomic_check, .atomic_disable = ipu_plane_atomic_disable, .atomic_update = ipu_plane_atomic_update, diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c index 7bb31fbee29d..1ca02de60895 100644 --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c @@ -28,6 +28,7 @@ #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fb_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_irq.h> #include <drm/drm_managed.h> @@ -780,7 +781,7 @@ static const struct drm_plane_helper_funcs ingenic_drm_plane_helper_funcs = { .atomic_update = ingenic_drm_plane_atomic_update, .atomic_check = ingenic_drm_plane_atomic_check, .atomic_disable = ingenic_drm_plane_atomic_disable, - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, }; static const struct drm_crtc_helper_funcs ingenic_drm_crtc_helper_funcs = { diff --git a/drivers/gpu/drm/ingenic/ingenic-ipu.c b/drivers/gpu/drm/ingenic/ingenic-ipu.c index e52777ef85fd..1b9b5de6b67c 100644 --- a/drivers/gpu/drm/ingenic/ingenic-ipu.c +++ b/drivers/gpu/drm/ingenic/ingenic-ipu.c @@ -23,7 +23,7 @@ #include <drm/drm_drv.h> #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> -#include <drm/drm_gem_framebuffer_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_plane.h> #include <drm/drm_plane_helper.h> #include <drm/drm_property.h> @@ -608,7 +608,7 @@ static const struct drm_plane_helper_funcs ingenic_ipu_plane_helper_funcs = { .atomic_update = ingenic_ipu_plane_atomic_update, .atomic_check = ingenic_ipu_plane_atomic_check, .atomic_disable = ingenic_ipu_plane_atomic_disable, - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, }; static int diff --git a/drivers/gpu/drm/mcde/mcde_display.c b/drivers/gpu/drm/mcde/mcde_display.c index 7c2e0b865441..dde16ef9650a 100644 --- a/drivers/gpu/drm/mcde/mcde_display.c +++ b/drivers/gpu/drm/mcde/mcde_display.c @@ -13,8 +13,8 @@ #include <drm/drm_device.h> #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_mipi_dsi.h> #include <drm/drm_simple_kms_helper.h> #include <drm/drm_bridge.h> @@ -1481,7 +1481,7 @@ static struct drm_simple_display_pipe_funcs mcde_display_funcs = { .update = mcde_display_update, .enable_vblank = mcde_display_enable_vblank, .disable_vblank = mcde_display_disable_vblank, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, }; int mcde_display_init(struct drm_device *drm) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c b/drivers/gpu/drm/mediatek/mtk_drm_plane.c index 92141a19681b..64f7873e9867 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c @@ -6,10 +6,10 @@ #include <drm/drm_atomic.h> #include <drm/drm_atomic_helper.h> -#include <drm/drm_fourcc.h> #include <drm/drm_atomic_uapi.h> +#include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_plane_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include "mtk_drm_crtc.h" #include "mtk_drm_ddp_comp.h" @@ -216,7 +216,7 @@ static void mtk_plane_atomic_update(struct drm_plane *plane, } static const struct drm_plane_helper_funcs mtk_plane_helper_funcs = { - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, .atomic_check = mtk_plane_atomic_check, .atomic_update = mtk_plane_atomic_update, .atomic_disable = mtk_plane_atomic_disable, diff --git a/drivers/gpu/drm/meson/meson_overlay.c b/drivers/gpu/drm/meson/meson_overlay.c index 1ffbbecafa22..0ee2132a990f 100644 --- a/drivers/gpu/drm/meson/meson_overlay.c +++ b/drivers/gpu/drm/meson/meson_overlay.c @@ -10,11 +10,11 @@ #include <drm/drm_atomic.h> #include <drm/drm_atomic_helper.h> #include <drm/drm_device.h> +#include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> -#include <drm/drm_plane_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_fb_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> +#include <drm/drm_plane_helper.h> #include "meson_overlay.h" #include "meson_registers.h" @@ -742,7 +742,7 @@ static const struct drm_plane_helper_funcs meson_overlay_helper_funcs = { .atomic_check = meson_overlay_atomic_check, .atomic_disable = meson_overlay_atomic_disable, .atomic_update = meson_overlay_atomic_update, - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, }; static bool meson_overlay_format_mod_supported(struct drm_plane *plane, diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c index 35338ed18209..24d64c9675ff 100644 --- a/drivers/gpu/drm/meson/meson_plane.c +++ b/drivers/gpu/drm/meson/meson_plane.c @@ -16,8 +16,8 @@ #include <drm/drm_device.h> #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_plane_helper.h> #include "meson_plane.h" @@ -417,7 +417,7 @@ static const struct drm_plane_helper_funcs meson_plane_helper_funcs = { .atomic_check = meson_plane_atomic_check, .atomic_disable = meson_plane_atomic_disable, .atomic_update = meson_plane_atomic_update, - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, }; static bool meson_plane_format_mod_supported(struct drm_plane *plane, diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c index bc0231a50132..3e9f9f3dd679 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c @@ -13,7 +13,7 @@ #include <drm/drm_atomic_uapi.h> #include <drm/drm_damage_helper.h> #include <drm/drm_file.h> -#include <drm/drm_gem_framebuffer_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include "msm_drv.h" #include "dpu_kms.h" @@ -892,7 +892,7 @@ static int dpu_plane_prepare_fb(struct drm_plane *plane, * we can use msm_atomic_prepare_fb() instead of doing the * implicit fence and fb prepare by hand here. */ - drm_gem_fb_prepare_fb(plane, new_state); + drm_gem_prepare_fb(plane, new_state); if (pstate->aspace) { ret = msm_framebuffer_prepare(new_state->fb, diff --git a/drivers/gpu/drm/msm/msm_atomic.c b/drivers/gpu/drm/msm/msm_atomic.c index 6a326761dc4a..03a113eb6571 100644 --- a/drivers/gpu/drm/msm/msm_atomic.c +++ b/drivers/gpu/drm/msm/msm_atomic.c @@ -5,7 +5,7 @@ */ #include <drm/drm_atomic_uapi.h> -#include <drm/drm_gem_framebuffer_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_vblank.h> #include "msm_atomic_trace.h" @@ -22,7 +22,7 @@ int msm_atomic_prepare_fb(struct drm_plane *plane, if (!new_state->fb) return 0; - drm_gem_fb_prepare_fb(plane, new_state); + drm_gem_prepare_fb(plane, new_state); return msm_framebuffer_prepare(new_state->fb, kms->aspace); } diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c index 3e1bb0aefb87..33188dea886d 100644 --- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c +++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c @@ -21,8 +21,8 @@ #include <drm/drm_encoder.h> #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_plane.h> #include <drm/drm_plane_helper.h> #include <drm/drm_vblank.h> @@ -495,13 +495,13 @@ static bool mxsfb_format_mod_supported(struct drm_plane *plane, } static const struct drm_plane_helper_funcs mxsfb_plane_primary_helper_funcs = { - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, .atomic_check = mxsfb_plane_atomic_check, .atomic_update = mxsfb_plane_primary_atomic_update, }; static const struct drm_plane_helper_funcs mxsfb_plane_overlay_helper_funcs = { - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, .atomic_check = mxsfb_plane_atomic_check, .atomic_update = mxsfb_plane_overlay_atomic_update, }; diff --git a/drivers/gpu/drm/pl111/pl111_display.c b/drivers/gpu/drm/pl111/pl111_display.c index 69c02e7c82b7..6fd7f13f1aca 100644 --- a/drivers/gpu/drm/pl111/pl111_display.c +++ b/drivers/gpu/drm/pl111/pl111_display.c @@ -17,8 +17,8 @@ #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_vblank.h> #include "pl111_drm.h" @@ -440,7 +440,7 @@ static struct drm_simple_display_pipe_funcs pl111_display_funcs = { .enable = pl111_display_enable, .disable = pl111_display_disable, .update = pl111_display_update, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, }; static int pl111_clk_div_choose_div(struct clk_hw *hw, unsigned long rate, diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c index 53221d8473c1..964fdaee7c7d 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c @@ -11,8 +11,8 @@ #include <drm/drm_crtc.h> #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_managed.h> #include <drm/drm_plane_helper.h> #include <drm/drm_vblank.h> @@ -236,7 +236,7 @@ static int rcar_du_vsp_plane_prepare_fb(struct drm_plane *plane, if (ret < 0) return ret; - return drm_gem_fb_prepare_fb(plane, state); + return drm_gem_prepare_fb(plane, state); } void rcar_du_vsp_unmap_fb(struct rcar_du_vsp *vsp, struct drm_framebuffer *fb, diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 8d15cabdcb02..45577de18b49 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -23,6 +23,7 @@ #include <drm/drm_crtc.h> #include <drm/drm_flip_work.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_plane_helper.h> #include <drm/drm_probe_helper.h> @@ -1096,7 +1097,7 @@ static const struct drm_plane_helper_funcs plane_helper_funcs = { .atomic_disable = vop_plane_atomic_disable, .atomic_async_check = vop_plane_atomic_async_check, .atomic_async_update = vop_plane_atomic_async_update, - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, }; static const struct drm_plane_funcs vop_plane_funcs = { diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c index 7812094f93d6..73522c6ba3eb 100644 --- a/drivers/gpu/drm/stm/ltdc.c +++ b/drivers/gpu/drm/stm/ltdc.c @@ -26,8 +26,8 @@ #include <drm/drm_device.h> #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_of.h> #include <drm/drm_plane_helper.h> #include <drm/drm_probe_helper.h> @@ -911,7 +911,7 @@ static const struct drm_plane_funcs ltdc_plane_funcs = { }; static const struct drm_plane_helper_funcs ltdc_plane_helper_funcs = { - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, .atomic_check = ltdc_plane_atomic_check, .atomic_update = ltdc_plane_atomic_update, .atomic_disable = ltdc_plane_atomic_disable, diff --git a/drivers/gpu/drm/sun4i/sun4i_layer.c b/drivers/gpu/drm/sun4i/sun4i_layer.c index acfbfd4463a1..68da94b7c35d 100644 --- a/drivers/gpu/drm/sun4i/sun4i_layer.c +++ b/drivers/gpu/drm/sun4i/sun4i_layer.c @@ -7,7 +7,7 @@ */ #include <drm/drm_atomic_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_plane_helper.h> #include "sun4i_backend.h" @@ -122,7 +122,7 @@ static bool sun4i_layer_format_mod_supported(struct drm_plane *plane, } static const struct drm_plane_helper_funcs sun4i_backend_layer_helper_funcs = { - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, .atomic_disable = sun4i_backend_layer_atomic_disable, .atomic_update = sun4i_backend_layer_atomic_update, }; diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c index 816ad4ce8996..95654c153279 100644 --- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c @@ -14,8 +14,8 @@ #include <drm/drm_crtc.h> #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_plane_helper.h> #include <drm/drm_probe_helper.h> @@ -299,7 +299,7 @@ static void sun8i_ui_layer_atomic_update(struct drm_plane *plane, } static const struct drm_plane_helper_funcs sun8i_ui_layer_helper_funcs = { - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, .atomic_check = sun8i_ui_layer_atomic_check, .atomic_disable = sun8i_ui_layer_atomic_disable, .atomic_update = sun8i_ui_layer_atomic_update, diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c index 8cc294a9969d..4005884dbce4 100644 --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c @@ -7,8 +7,8 @@ #include <drm/drm_atomic_helper.h> #include <drm/drm_crtc.h> #include <drm/drm_fb_cma_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_plane_helper.h> #include <drm/drm_probe_helper.h> @@ -402,7 +402,7 @@ static void sun8i_vi_layer_atomic_update(struct drm_plane *plane, } static const struct drm_plane_helper_funcs sun8i_vi_layer_helper_funcs = { - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, .atomic_check = sun8i_vi_layer_atomic_check, .atomic_disable = sun8i_vi_layer_atomic_disable, .atomic_update = sun8i_vi_layer_atomic_update, diff --git a/drivers/gpu/drm/tegra/plane.c b/drivers/gpu/drm/tegra/plane.c index 539d14935728..ec86a8d060aa 100644 --- a/drivers/gpu/drm/tegra/plane.c +++ b/drivers/gpu/drm/tegra/plane.c @@ -8,7 +8,7 @@ #include <drm/drm_atomic.h> #include <drm/drm_atomic_helper.h> #include <drm/drm_fourcc.h> -#include <drm/drm_gem_framebuffer_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_plane_helper.h> #include "dc.h" @@ -198,7 +198,7 @@ int tegra_plane_prepare_fb(struct drm_plane *plane, if (!state->fb) return 0; - drm_gem_fb_prepare_fb(plane, state); + drm_gem_prepare_fb(plane, state); return tegra_dc_pin(dc, to_tegra_plane_state(state)); } diff --git a/drivers/gpu/drm/tidss/tidss_plane.c b/drivers/gpu/drm/tidss/tidss_plane.c index 35067ae674ea..d39baa66e876 100644 --- a/drivers/gpu/drm/tidss/tidss_plane.c +++ b/drivers/gpu/drm/tidss/tidss_plane.c @@ -10,7 +10,7 @@ #include <drm/drm_crtc_helper.h> #include <drm/drm_fourcc.h> #include <drm/drm_fb_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include "tidss_crtc.h" #include "tidss_dispc.h" @@ -151,7 +151,7 @@ static void drm_plane_destroy(struct drm_plane *plane) } static const struct drm_plane_helper_funcs tidss_plane_helper_funcs = { - .prepare_fb = drm_gem_fb_prepare_fb, + .prepare_fb = drm_gem_prepare_fb, .atomic_check = tidss_plane_atomic_check, .atomic_update = tidss_plane_atomic_update, .atomic_disable = tidss_plane_atomic_disable, diff --git a/drivers/gpu/drm/tiny/hx8357d.c b/drivers/gpu/drm/tiny/hx8357d.c index c6525cd02bc2..3e2c2868a363 100644 --- a/drivers/gpu/drm/tiny/hx8357d.c +++ b/drivers/gpu/drm/tiny/hx8357d.c @@ -19,8 +19,8 @@ #include <drm/drm_atomic_helper.h> #include <drm/drm_drv.h> #include <drm/drm_fb_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_managed.h> #include <drm/drm_mipi_dbi.h> #include <drm/drm_modeset_helper.h> @@ -184,7 +184,7 @@ static const struct drm_simple_display_pipe_funcs hx8357d_pipe_funcs = { .enable = yx240qv29_enable, .disable = mipi_dbi_pipe_disable, .update = mipi_dbi_pipe_update, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, }; static const struct drm_display_mode yx350hv15_mode = { diff --git a/drivers/gpu/drm/tiny/ili9225.c b/drivers/gpu/drm/tiny/ili9225.c index 8e98962db5a2..6b87df19eec1 100644 --- a/drivers/gpu/drm/tiny/ili9225.c +++ b/drivers/gpu/drm/tiny/ili9225.c @@ -22,8 +22,8 @@ #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fb_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_managed.h> #include <drm/drm_mipi_dbi.h> #include <drm/drm_rect.h> @@ -328,7 +328,7 @@ static const struct drm_simple_display_pipe_funcs ili9225_pipe_funcs = { .enable = ili9225_pipe_enable, .disable = ili9225_pipe_disable, .update = ili9225_pipe_update, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, }; static const struct drm_display_mode ili9225_mode = { diff --git a/drivers/gpu/drm/tiny/ili9341.c b/drivers/gpu/drm/tiny/ili9341.c index 6ce97f0698eb..a97f3f70e4a6 100644 --- a/drivers/gpu/drm/tiny/ili9341.c +++ b/drivers/gpu/drm/tiny/ili9341.c @@ -18,8 +18,8 @@ #include <drm/drm_atomic_helper.h> #include <drm/drm_drv.h> #include <drm/drm_fb_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_managed.h> #include <drm/drm_mipi_dbi.h> #include <drm/drm_modeset_helper.h> @@ -140,7 +140,7 @@ static const struct drm_simple_display_pipe_funcs ili9341_pipe_funcs = { .enable = yx240qv29_enable, .disable = mipi_dbi_pipe_disable, .update = mipi_dbi_pipe_update, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, }; static const struct drm_display_mode yx240qv29_mode = { diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c index d7ce40eb166a..6422a7f67079 100644 --- a/drivers/gpu/drm/tiny/ili9486.c +++ b/drivers/gpu/drm/tiny/ili9486.c @@ -17,8 +17,8 @@ #include <drm/drm_atomic_helper.h> #include <drm/drm_drv.h> #include <drm/drm_fb_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_managed.h> #include <drm/drm_mipi_dbi.h> #include <drm/drm_modeset_helper.h> @@ -153,7 +153,7 @@ static const struct drm_simple_display_pipe_funcs waveshare_pipe_funcs = { .enable = waveshare_enable, .disable = mipi_dbi_pipe_disable, .update = mipi_dbi_pipe_update, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, }; static const struct drm_display_mode waveshare_mode = { diff --git a/drivers/gpu/drm/tiny/mi0283qt.c b/drivers/gpu/drm/tiny/mi0283qt.c index ff77f983f803..dc76fe53aa72 100644 --- a/drivers/gpu/drm/tiny/mi0283qt.c +++ b/drivers/gpu/drm/tiny/mi0283qt.c @@ -16,8 +16,8 @@ #include <drm/drm_atomic_helper.h> #include <drm/drm_drv.h> #include <drm/drm_fb_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_managed.h> #include <drm/drm_mipi_dbi.h> #include <drm/drm_modeset_helper.h> @@ -144,7 +144,7 @@ static const struct drm_simple_display_pipe_funcs mi0283qt_pipe_funcs = { .enable = mi0283qt_enable, .disable = mipi_dbi_pipe_disable, .update = mipi_dbi_pipe_update, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, }; static const struct drm_display_mode mi0283qt_mode = { diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c index 11c602fc9897..2cee07a2e00b 100644 --- a/drivers/gpu/drm/tiny/repaper.c +++ b/drivers/gpu/drm/tiny/repaper.c @@ -29,6 +29,7 @@ #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fb_helper.h> #include <drm/drm_format_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> #include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_managed.h> @@ -860,7 +861,7 @@ static const struct drm_simple_display_pipe_funcs repaper_pipe_funcs = { .enable = repaper_pipe_enable, .disable = repaper_pipe_disable, .update = repaper_pipe_update, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, }; static int repaper_connector_get_modes(struct drm_connector *connector) diff --git a/drivers/gpu/drm/tiny/st7586.c b/drivers/gpu/drm/tiny/st7586.c index ff5cf60f4bd7..7d216fe9267f 100644 --- a/drivers/gpu/drm/tiny/st7586.c +++ b/drivers/gpu/drm/tiny/st7586.c @@ -19,8 +19,8 @@ #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fb_helper.h> #include <drm/drm_format_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_managed.h> #include <drm/drm_mipi_dbi.h> #include <drm/drm_rect.h> @@ -268,7 +268,7 @@ static const struct drm_simple_display_pipe_funcs st7586_pipe_funcs = { .enable = st7586_pipe_enable, .disable = st7586_pipe_disable, .update = st7586_pipe_update, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, }; static const struct drm_display_mode st7586_mode = { diff --git a/drivers/gpu/drm/tiny/st7735r.c b/drivers/gpu/drm/tiny/st7735r.c index faaba0a033ea..df8872d62cdd 100644 --- a/drivers/gpu/drm/tiny/st7735r.c +++ b/drivers/gpu/drm/tiny/st7735r.c @@ -19,8 +19,8 @@ #include <drm/drm_atomic_helper.h> #include <drm/drm_drv.h> #include <drm/drm_fb_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_managed.h> #include <drm/drm_mipi_dbi.h> @@ -136,7 +136,7 @@ static const struct drm_simple_display_pipe_funcs st7735r_pipe_funcs = { .enable = st7735r_pipe_enable, .disable = mipi_dbi_pipe_disable, .update = mipi_dbi_pipe_update, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, }; static const struct st7735r_cfg jd_t18003_t01_cfg = { diff --git a/drivers/gpu/drm/tve200/tve200_display.c b/drivers/gpu/drm/tve200/tve200_display.c index cb0e837d3dba..50e1fb71869f 100644 --- a/drivers/gpu/drm/tve200/tve200_display.c +++ b/drivers/gpu/drm/tve200/tve200_display.c @@ -17,8 +17,8 @@ #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_cma_helper.h> -#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_panel.h> #include <drm/drm_vblank.h> @@ -316,7 +316,7 @@ static const struct drm_simple_display_pipe_funcs tve200_display_funcs = { .enable = tve200_display_enable, .disable = tve200_display_disable, .update = tve200_display_update, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, .enable_vblank = tve200_display_enable_vblank, .disable_vblank = tve200_display_disable_vblank, }; diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c index 7322169c0682..a65e980078f3 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c @@ -20,7 +20,7 @@ #include <drm/drm_atomic_uapi.h> #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> -#include <drm/drm_gem_framebuffer_helper.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_plane_helper.h> #include "uapi/drm/vc4_drm.h" @@ -1250,7 +1250,7 @@ static int vc4_prepare_fb(struct drm_plane *plane, bo = to_vc4_bo(&drm_fb_cma_get_gem_obj(state->fb, 0)->base); - drm_gem_fb_prepare_fb(plane, state); + drm_gem_prepare_fb(plane, state); if (plane->state->fb == state->fb) return 0; diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c index 0824327cc860..e3fd8cd1f3f1 100644 --- a/drivers/gpu/drm/vkms/vkms_plane.c +++ b/drivers/gpu/drm/vkms/vkms_plane.c @@ -5,6 +5,7 @@ #include <drm/drm_atomic.h> #include <drm/drm_atomic_helper.h> #include <drm/drm_fourcc.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_plane_helper.h> #include <drm/drm_gem_shmem_helper.h> @@ -159,7 +160,7 @@ static int vkms_prepare_fb(struct drm_plane *plane, if (ret) DRM_ERROR("vmap failed: %d\n", ret); - return drm_gem_fb_prepare_fb(plane, state); + return drm_gem_prepare_fb(plane, state); } static void vkms_cleanup_fb(struct drm_plane *plane, diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c index ef11b1e4de39..371202ebe900 100644 --- a/drivers/gpu/drm/xen/xen_drm_front_kms.c +++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c @@ -13,6 +13,7 @@ #include <drm/drm_drv.h> #include <drm/drm_fourcc.h> #include <drm/drm_gem.h> +#include <drm/drm_gem_atomic_helper.h> #include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_probe_helper.h> #include <drm/drm_vblank.h> @@ -301,7 +302,7 @@ static const struct drm_simple_display_pipe_funcs display_funcs = { .mode_valid = display_mode_valid, .enable = display_enable, .disable = display_disable, - .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, + .prepare_fb = drm_gem_simple_display_pipe_prepare_fb, .check = display_check, .update = display_update, }; diff --git a/include/drm/drm_gem_atomic_helper.h b/include/drm/drm_gem_atomic_helper.h index 08b96ccea325..91e73d23fea8 100644 --- a/include/drm/drm_gem_atomic_helper.h +++ b/include/drm/drm_gem_atomic_helper.h @@ -9,6 +9,14 @@ struct drm_simple_display_pipe; +/* + * Plane Helpers + */ + +int drm_gem_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state); +int drm_gem_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, + struct drm_plane_state *plane_state); + /* * Helpers for planes with shadow buffers */ diff --git a/include/drm/drm_gem_framebuffer_helper.h b/include/drm/drm_gem_framebuffer_helper.h index 6b013154911d..495d174d9989 100644 --- a/include/drm/drm_gem_framebuffer_helper.h +++ b/include/drm/drm_gem_framebuffer_helper.h @@ -9,9 +9,11 @@ struct drm_framebuffer; struct drm_framebuffer_funcs; struct drm_gem_object; struct drm_mode_fb_cmd2; +#if 0 struct drm_plane; struct drm_plane_state; struct drm_simple_display_pipe; +#endif #define AFBC_VENDOR_AND_TYPE_MASK GENMASK_ULL(63, 52) @@ -44,8 +46,4 @@ int drm_gem_fb_afbc_init(struct drm_device *dev, const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_afbc_framebuffer *afbc_fb); -int drm_gem_fb_prepare_fb(struct drm_plane *plane, - struct drm_plane_state *state); -int drm_gem_fb_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, - struct drm_plane_state *plane_state); #endif diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h index eb706342861d..8d41d3734153 100644 --- a/include/drm/drm_modeset_helper_vtables.h +++ b/include/drm/drm_modeset_helper_vtables.h @@ -1179,7 +1179,7 @@ struct drm_plane_helper_funcs { * members in the plane structure. * * Drivers which always have their buffers pinned should use - * drm_gem_fb_prepare_fb() for this hook. + * drm_gem_prepare_fb() for this hook. * * The helpers will call @cleanup_fb with matching arguments for every * successful call to this hook. diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h index 95ab14a4336a..be08b6b1fde0 100644 --- a/include/drm/drm_plane.h +++ b/include/drm/drm_plane.h @@ -79,8 +79,8 @@ struct drm_plane_state { * preserved. * * Drivers should store any implicit fence in this from their - * &drm_plane_helper_funcs.prepare_fb callback. See drm_gem_fb_prepare_fb() - * and drm_gem_fb_simple_display_pipe_prepare_fb() for suitable helpers. + * &drm_plane_helper_funcs.prepare_fb callback. See drm_gem_prepare_fb() + * and drm_gem_simple_display_pipe_prepare_fb() for suitable helpers. */ struct dma_fence *fence; diff --git a/include/drm/drm_simple_kms_helper.h b/include/drm/drm_simple_kms_helper.h index 40b34573249f..ef9944e9c5fc 100644 --- a/include/drm/drm_simple_kms_helper.h +++ b/include/drm/drm_simple_kms_helper.h @@ -117,7 +117,7 @@ struct drm_simple_display_pipe_funcs { * more details. * * Drivers which always have their buffers pinned should use - * drm_gem_fb_simple_display_pipe_prepare_fb() for this hook. + * drm_gem_simple_display_pipe_prepare_fb() for this hook. */ int (*prepare_fb)(struct drm_simple_display_pipe *pipe, struct drm_plane_state *plane_state);
The function drm_gem_fb_prepare_fb() is a helper for atomic modesetting, but currently located next to framebuffer helpers. Move it to GEM atomic helpers, rename it slightly and adopt the drivers. Same for the rsp simple-pipe helper. Compile-tested with x86-64, aarch64 and arm. The patch is fairly large, but there are no functional changes. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> --- drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c | 4 +- drivers/gpu/drm/drm_gem_atomic_helper.c | 69 +++++++++++++++++++- drivers/gpu/drm/drm_gem_framebuffer_helper.c | 63 ------------------ drivers/gpu/drm/drm_gem_vram_helper.c | 4 +- drivers/gpu/drm/imx/dcss/dcss-plane.c | 4 +- drivers/gpu/drm/imx/ipuv3-plane.c | 4 +- drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 3 +- drivers/gpu/drm/ingenic/ingenic-ipu.c | 4 +- drivers/gpu/drm/mcde/mcde_display.c | 4 +- drivers/gpu/drm/mediatek/mtk_drm_plane.c | 6 +- drivers/gpu/drm/meson/meson_overlay.c | 8 +-- drivers/gpu/drm/meson/meson_plane.c | 4 +- drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 4 +- drivers/gpu/drm/msm/msm_atomic.c | 4 +- drivers/gpu/drm/mxsfb/mxsfb_kms.c | 6 +- drivers/gpu/drm/pl111/pl111_display.c | 4 +- drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 4 +- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 3 +- drivers/gpu/drm/stm/ltdc.c | 4 +- drivers/gpu/drm/sun4i/sun4i_layer.c | 4 +- drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 4 +- drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 4 +- drivers/gpu/drm/tegra/plane.c | 4 +- drivers/gpu/drm/tidss/tidss_plane.c | 4 +- drivers/gpu/drm/tiny/hx8357d.c | 4 +- drivers/gpu/drm/tiny/ili9225.c | 4 +- drivers/gpu/drm/tiny/ili9341.c | 4 +- drivers/gpu/drm/tiny/ili9486.c | 4 +- drivers/gpu/drm/tiny/mi0283qt.c | 4 +- drivers/gpu/drm/tiny/repaper.c | 3 +- drivers/gpu/drm/tiny/st7586.c | 4 +- drivers/gpu/drm/tiny/st7735r.c | 4 +- drivers/gpu/drm/tve200/tve200_display.c | 4 +- drivers/gpu/drm/vc4/vc4_plane.c | 4 +- drivers/gpu/drm/vkms/vkms_plane.c | 3 +- drivers/gpu/drm/xen/xen_drm_front_kms.c | 3 +- include/drm/drm_gem_atomic_helper.h | 8 +++ include/drm/drm_gem_framebuffer_helper.h | 6 +- include/drm/drm_modeset_helper_vtables.h | 2 +- include/drm/drm_plane.h | 4 +- include/drm/drm_simple_kms_helper.h | 2 +- 41 files changed, 152 insertions(+), 141 deletions(-)