Hi Ville, Thank you for the patch. On Wednesday, 1 November 2017 20:29:20 EET Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > drm_plane_helper_check_update() isn't a transitional helper, so let's > rename it to drm_atomic_helper_check_plane_state() and move it into > drm_atomic_helper.c. > > Cc: Daniel Vetter <daniel@xxxxxxxx> > Suggested-by: Daniel Vetter <daniel@xxxxxxxx> > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> I would move this patch before 4/5 to make it easier to revert 4/5 (for the reason explaining as a reply to that patch). Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/arm/hdlcd_crtc.c | 8 +-- > drivers/gpu/drm/arm/malidp_planes.c | 4 +- > drivers/gpu/drm/drm_atomic_helper.c | 95 +++++++++++++++++++++++++ > drivers/gpu/drm/drm_plane_helper.c | 103 +----------------------- > drivers/gpu/drm/drm_simple_kms_helper.c | 9 +-- > drivers/gpu/drm/i915/intel_display.c | 22 +++--- > drivers/gpu/drm/imx/ipuv3-plane.c | 8 +-- > drivers/gpu/drm/mediatek/mtk_drm_plane.c | 8 +-- > drivers/gpu/drm/meson/meson_plane.c | 8 +-- > drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 5 +- > drivers/gpu/drm/nouveau/nv50_display.c | 20 +++--- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 6 +- > drivers/gpu/drm/tegra/dc.c | 4 +- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 8 +-- > drivers/gpu/drm/zte/zx_plane.c | 15 ++-- > include/drm/drm_atomic_helper.h | 7 ++ > include/drm/drm_plane_helper.h | 6 -- > 17 files changed, 170 insertions(+), 166 deletions(-) > > diff --git a/drivers/gpu/drm/arm/hdlcd_crtc.c > b/drivers/gpu/drm/arm/hdlcd_crtc.c index 14721723fa8a..63511a3bbf6c 100644 > --- a/drivers/gpu/drm/arm/hdlcd_crtc.c > +++ b/drivers/gpu/drm/arm/hdlcd_crtc.c > @@ -252,10 +252,10 @@ static int hdlcd_plane_atomic_check(struct drm_plane > *plane, clip.x2 = crtc_state->adjusted_mode.hdisplay; > clip.y2 = crtc_state->adjusted_mode.vdisplay; > > - return drm_plane_helper_check_state(state, crtc_state, &clip, > - DRM_PLANE_HELPER_NO_SCALING, > - DRM_PLANE_HELPER_NO_SCALING, > - false, true); > + return drm_atomic_helper_check_plane_state(state, crtc_state, &clip, > + DRM_PLANE_HELPER_NO_SCALING, > + DRM_PLANE_HELPER_NO_SCALING, > + false, true); > } > > static void hdlcd_plane_atomic_update(struct drm_plane *plane, > diff --git a/drivers/gpu/drm/arm/malidp_planes.c > b/drivers/gpu/drm/arm/malidp_planes.c index 492d99dd55d4..72a07950167e > 100644 > --- a/drivers/gpu/drm/arm/malidp_planes.c > +++ b/drivers/gpu/drm/arm/malidp_planes.c > @@ -150,8 +150,8 @@ static int malidp_se_check_scaling(struct malidp_plane > *mp, > > clip.x2 = crtc_state->adjusted_mode.hdisplay; > clip.y2 = crtc_state->adjusted_mode.vdisplay; > - ret = drm_plane_helper_check_state(state, crtc_state, &clip, > - 0, INT_MAX, true, true); > + ret = drm_atomic_helper_check_plane_state(state, crtc_state, &clip, > + 0, INT_MAX, true, true); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c > b/drivers/gpu/drm/drm_atomic_helper.c index 71d712f1b56a..7595ad8ad2f3 > 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -696,6 +696,101 @@ drm_atomic_helper_check_modeset(struct drm_device > *dev, EXPORT_SYMBOL(drm_atomic_helper_check_modeset); > > /** > + * drm_atomic_helper_check_plane_state() - Check plane state for validity > + * @plane_state: plane state to check > + * @crtc_state: crtc state to check > + * @clip: integer clipping coordinates > + * @min_scale: minimum @src:@dest scaling factor in 16.16 fixed point > + * @max_scale: maximum @src:@dest scaling factor in 16.16 fixed point > + * @can_position: is it legal to position the plane such that it > + * doesn't cover the entire crtc? This will generally > + * only be false for primary planes. > + * @can_update_disabled: can the plane be updated while the crtc > + * is disabled? > + * > + * Checks that a desired plane update is valid, and updates various > + * bits of derived state (clipped coordinates etc.). Drivers that provide > + * their own plane handling rather than helper-provided implementations may > + * still wish to call this function to avoid duplication of error checking > + * code. > + * > + * RETURNS: > + * Zero if update appears valid, error code on failure > + */ > +int drm_atomic_helper_check_plane_state(struct drm_plane_state > *plane_state, + const struct drm_crtc_state *crtc_state, > + const struct drm_rect *clip, > + int min_scale, > + int max_scale, > + bool can_position, > + bool can_update_disabled) > +{ > + struct drm_framebuffer *fb = plane_state->fb; > + struct drm_rect *src = &plane_state->src; > + struct drm_rect *dst = &plane_state->dst; > + unsigned int rotation = plane_state->rotation; > + int hscale, vscale; > + > + WARN_ON(!crtc_state != !plane_state->crtc); > + WARN_ON(crtc_state && crtc_state->crtc != plane_state->crtc); > + > + *src = drm_plane_state_src(plane_state); > + *dst = drm_plane_state_dest(plane_state); > + > + if (!fb) { > + plane_state->visible = false; > + return 0; > + } > + > + /* crtc should only be NULL when disabling (i.e., !fb) */ > + if (WARN_ON(!plane_state->crtc)) { > + plane_state->visible = false; > + return 0; > + } > + > + if (!crtc_state->enable && !can_update_disabled) { > + DRM_DEBUG_KMS("Cannot update plane of a disabled CRTC.\n"); > + return -EINVAL; > + } > + > + drm_rect_rotate(src, fb->width << 16, fb->height << 16, rotation); > + > + /* Check scaling */ > + hscale = drm_rect_calc_hscale(src, dst, min_scale, max_scale); > + vscale = drm_rect_calc_vscale(src, dst, min_scale, max_scale); > + if (hscale < 0 || vscale < 0) { > + DRM_DEBUG_KMS("Invalid scaling of plane\n"); > + drm_rect_debug_print("src: ", &plane_state->src, true); > + drm_rect_debug_print("dst: ", &plane_state->dst, false); > + return -ERANGE; > + } > + > + plane_state->visible = drm_rect_clip_scaled(src, dst, clip, hscale, > vscale); + > + drm_rect_rotate_inv(src, fb->width << 16, fb->height << 16, rotation); > + > + if (!plane_state->visible) > + /* > + * Plane isn't visible; some drivers can handle this > + * so we just return success here. Drivers that can't > + * (including those that use the primary plane helper's > + * update function) will return an error from their > + * update_plane handler. > + */ > + return 0; > + > + if (!can_position && !drm_rect_equals(dst, clip)) { > + DRM_DEBUG_KMS("Plane must cover entire CRTC\n"); > + drm_rect_debug_print("dst: ", dst, false); > + drm_rect_debug_print("clip: ", clip, false); > + return -EINVAL; > + } > + > + return 0; > +} > +EXPORT_SYMBOL(drm_atomic_helper_check_plane_state); > + > +/** > * drm_atomic_helper_check_planes - validate state object for planes > changes * @dev: DRM device > * @state: the driver state object > diff --git a/drivers/gpu/drm/drm_plane_helper.c > b/drivers/gpu/drm/drm_plane_helper.c index adb8d94484f2..f1be8cd4e387 > 100644 > --- a/drivers/gpu/drm/drm_plane_helper.c > +++ b/drivers/gpu/drm/drm_plane_helper.c > @@ -100,101 +100,6 @@ static int get_connectors_for_crtc(struct drm_crtc > *crtc, } > > /** > - * drm_plane_helper_check_state() - Check plane state for validity > - * @plane_state: plane state to check > - * @crtc_state: crtc state to check > - * @clip: integer clipping coordinates > - * @min_scale: minimum @src:@dest scaling factor in 16.16 fixed point > - * @max_scale: maximum @src:@dest scaling factor in 16.16 fixed point > - * @can_position: is it legal to position the plane such that it > - * doesn't cover the entire crtc? This will generally > - * only be false for primary planes. > - * @can_update_disabled: can the plane be updated while the crtc > - * is disabled? > - * > - * Checks that a desired plane update is valid, and updates various > - * bits of derived state (clipped coordinates etc.). Drivers that provide > - * their own plane handling rather than helper-provided implementations may > - * still wish to call this function to avoid duplication of error checking > - * code. > - * > - * RETURNS: > - * Zero if update appears valid, error code on failure > - */ > -int drm_plane_helper_check_state(struct drm_plane_state *plane_state, > - const struct drm_crtc_state *crtc_state, > - const struct drm_rect *clip, > - int min_scale, > - int max_scale, > - bool can_position, > - bool can_update_disabled) > -{ > - struct drm_framebuffer *fb = plane_state->fb; > - struct drm_rect *src = &plane_state->src; > - struct drm_rect *dst = &plane_state->dst; > - unsigned int rotation = plane_state->rotation; > - int hscale, vscale; > - > - WARN_ON(!crtc_state != !plane_state->crtc); > - WARN_ON(crtc_state && crtc_state->crtc != plane_state->crtc); > - > - *src = drm_plane_state_src(plane_state); > - *dst = drm_plane_state_dest(plane_state); > - > - if (!fb) { > - plane_state->visible = false; > - return 0; > - } > - > - /* crtc should only be NULL when disabling (i.e., !fb) */ > - if (WARN_ON(!plane_state->crtc)) { > - plane_state->visible = false; > - return 0; > - } > - > - if (!crtc_state->enable && !can_update_disabled) { > - DRM_DEBUG_KMS("Cannot update plane of a disabled CRTC.\n"); > - return -EINVAL; > - } > - > - drm_rect_rotate(src, fb->width << 16, fb->height << 16, rotation); > - > - /* Check scaling */ > - hscale = drm_rect_calc_hscale(src, dst, min_scale, max_scale); > - vscale = drm_rect_calc_vscale(src, dst, min_scale, max_scale); > - if (hscale < 0 || vscale < 0) { > - DRM_DEBUG_KMS("Invalid scaling of plane\n"); > - drm_rect_debug_print("src: ", &plane_state->src, true); > - drm_rect_debug_print("dst: ", &plane_state->dst, false); > - return -ERANGE; > - } > - > - plane_state->visible = drm_rect_clip_scaled(src, dst, clip, hscale, > vscale); - > - drm_rect_rotate_inv(src, fb->width << 16, fb->height << 16, rotation); > - > - if (!plane_state->visible) > - /* > - * Plane isn't visible; some drivers can handle this > - * so we just return success here. Drivers that can't > - * (including those that use the primary plane helper's > - * update function) will return an error from their > - * update_plane handler. > - */ > - return 0; > - > - if (!can_position && !drm_rect_equals(dst, clip)) { > - DRM_DEBUG_KMS("Plane must cover entire CRTC\n"); > - drm_rect_debug_print("dst: ", dst, false); > - drm_rect_debug_print("clip: ", clip, false); > - return -EINVAL; > - } > - > - return 0; > -} > -EXPORT_SYMBOL(drm_plane_helper_check_state); > - > -/** > * drm_plane_helper_check_update() - Check plane update for validity > * @plane: plane object to update > * @crtc: owning CRTC of owning plane > @@ -255,10 +160,10 @@ int drm_plane_helper_check_update(struct drm_plane > *plane, }; > int ret; > > - ret = drm_plane_helper_check_state(&plane_state, &crtc_state, clip, > - min_scale, max_scale, > - can_position, > - can_update_disabled); > + ret = drm_atomic_helper_check_plane_state(&plane_state, &crtc_state, > + clip, min_scale, max_scale, > + can_position, > + can_update_disabled); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/drm_simple_kms_helper.c > b/drivers/gpu/drm/drm_simple_kms_helper.c index d428c805025c..9f3b1c94802b > 100644 > --- a/drivers/gpu/drm/drm_simple_kms_helper.c > +++ b/drivers/gpu/drm/drm_simple_kms_helper.c > @@ -103,10 +103,11 @@ static int drm_simple_kms_plane_atomic_check(struct > drm_plane *plane, clip.x2 = crtc_state->adjusted_mode.hdisplay; > clip.y2 = crtc_state->adjusted_mode.vdisplay; > > - ret = drm_plane_helper_check_state(plane_state, crtc_state, &clip, > - DRM_PLANE_HELPER_NO_SCALING, > - DRM_PLANE_HELPER_NO_SCALING, > - false, true); > + ret = drm_atomic_helper_check_plane_state(plane_state, crtc_state, > + &clip, > + DRM_PLANE_HELPER_NO_SCALING, > + DRM_PLANE_HELPER_NO_SCALING, > + false, true); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/i915/intel_display.c > b/drivers/gpu/drm/i915/intel_display.c index 4a459726b36b..e0ff599d2090 > 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -9316,12 +9316,12 @@ static int intel_check_cursor(struct > intel_crtc_state *crtc_state, u32 offset; > int ret; > > - ret = drm_plane_helper_check_state(&plane_state->base, > - &crtc_state->base, > - &plane_state->clip, > - DRM_PLANE_HELPER_NO_SCALING, > - DRM_PLANE_HELPER_NO_SCALING, > - true, true); > + ret = drm_atomic_helper_check_plane_state(&plane_state->base, > + &crtc_state->base, > + &plane_state->clip, > + DRM_PLANE_HELPER_NO_SCALING, > + DRM_PLANE_HELPER_NO_SCALING, > + true, true); > if (ret) > return ret; > > @@ -12808,11 +12808,11 @@ intel_check_primary_plane(struct intel_plane > *plane, can_position = true; > } > > - ret = drm_plane_helper_check_state(&state->base, > - &crtc_state->base, > - &state->clip, > - min_scale, max_scale, > - can_position, true); > + ret = drm_atomic_helper_check_plane_state(&state->base, > + &crtc_state->base, > + &state->clip, > + min_scale, max_scale, > + can_position, true); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/imx/ipuv3-plane.c > b/drivers/gpu/drm/imx/ipuv3-plane.c index 51b23ac175e3..5a67daedcf4d 100644 > --- a/drivers/gpu/drm/imx/ipuv3-plane.c > +++ b/drivers/gpu/drm/imx/ipuv3-plane.c > @@ -342,10 +342,10 @@ static int ipu_plane_atomic_check(struct drm_plane > *plane, clip.y1 = 0; > clip.x2 = crtc_state->adjusted_mode.hdisplay; > clip.y2 = crtc_state->adjusted_mode.vdisplay; > - ret = drm_plane_helper_check_state(state, crtc_state, &clip, > - DRM_PLANE_HELPER_NO_SCALING, > - DRM_PLANE_HELPER_NO_SCALING, > - can_position, true); > + ret = drm_atomic_helper_check_plane_state(state, crtc_state, &clip, > + DRM_PLANE_HELPER_NO_SCALING, > + DRM_PLANE_HELPER_NO_SCALING, > + can_position, true); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_plane.c > b/drivers/gpu/drm/mediatek/mtk_drm_plane.c index 7ebb33657704..5ef898b93d8d > 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_plane.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_plane.c > @@ -111,10 +111,10 @@ static int mtk_plane_atomic_check(struct drm_plane > *plane, clip.x2 = crtc_state->mode.hdisplay; > clip.y2 = crtc_state->mode.vdisplay; > > - return drm_plane_helper_check_state(state, crtc_state, &clip, > - DRM_PLANE_HELPER_NO_SCALING, > - DRM_PLANE_HELPER_NO_SCALING, > - true, true); > + return drm_atomic_helper_check_plane_state(state, crtc_state, &clip, > + DRM_PLANE_HELPER_NO_SCALING, > + DRM_PLANE_HELPER_NO_SCALING, > + true, true); > } > > static void mtk_plane_atomic_update(struct drm_plane *plane, > diff --git a/drivers/gpu/drm/meson/meson_plane.c > b/drivers/gpu/drm/meson/meson_plane.c index 2a00b720c371..d0a6ac8390f3 > 100644 > --- a/drivers/gpu/drm/meson/meson_plane.c > +++ b/drivers/gpu/drm/meson/meson_plane.c > @@ -61,10 +61,10 @@ static int meson_plane_atomic_check(struct drm_plane > *plane, clip.x2 = crtc_state->mode.hdisplay; > clip.y2 = crtc_state->mode.vdisplay; > > - return drm_plane_helper_check_state(state, crtc_state, &clip, > - DRM_PLANE_HELPER_NO_SCALING, > - DRM_PLANE_HELPER_NO_SCALING, > - true, true); > + return drm_atomic_helper_check_plane_state(state, crtc_state, &clip, > + DRM_PLANE_HELPER_NO_SCALING, > + DRM_PLANE_HELPER_NO_SCALING, > + true, true); > } > > /* Takes a fixed 16.16 number and converts it to integer. */ > diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c > b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c index > 1c194a9453d9..df3360acacca 100644 > --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c > +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c > @@ -348,8 +348,9 @@ static int mdp5_plane_atomic_check_with_state(struct > drm_crtc_state *crtc_state, min_scale = FRAC_16_16(1, 8); > max_scale = FRAC_16_16(8, 1); > > - ret = drm_plane_helper_check_state(state, crtc_state, &clip, > - min_scale, max_scale, true, true); > + ret = drm_atomic_helper_check_plane_state(state, crtc_state, &clip, > + min_scale, max_scale, > + true, true); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/nouveau/nv50_display.c > b/drivers/gpu/drm/nouveau/nv50_display.c index 7f11a88d0593..8ab0fac3544d > 100644 > --- a/drivers/gpu/drm/nouveau/nv50_display.c > +++ b/drivers/gpu/drm/nouveau/nv50_display.c > @@ -1143,11 +1143,11 @@ nv50_curs_acquire(struct nv50_wndw *wndw, struct > nv50_wndw_atom *asyw, { > int ret; > > - ret = drm_plane_helper_check_state(&asyw->state, &asyh->state, > - &asyw->clip, > - DRM_PLANE_HELPER_NO_SCALING, > - DRM_PLANE_HELPER_NO_SCALING, > - true, true); > + ret = drm_atomic_helper_check_plane_state(&asyw->state, &asyh->state, > + &asyw->clip, > + DRM_PLANE_HELPER_NO_SCALING, > + DRM_PLANE_HELPER_NO_SCALING, > + true, true); > asyh->curs.visible = asyw->state.visible; > if (ret || !asyh->curs.visible) > return ret; > @@ -1433,11 +1433,11 @@ nv50_base_acquire(struct nv50_wndw *wndw, struct > nv50_wndw_atom *asyw, if (!fb->format->depth) > return -EINVAL; > > - ret = drm_plane_helper_check_state(&asyw->state, &asyh->state, > - &asyw->clip, > - DRM_PLANE_HELPER_NO_SCALING, > - DRM_PLANE_HELPER_NO_SCALING, > - false, true); > + ret = drm_atomic_helper_check_plane_state(&asyw->state, &asyh->state, > + &asyw->clip, > + DRM_PLANE_HELPER_NO_SCALING, > + DRM_PLANE_HELPER_NO_SCALING, > + false, true); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index > 36d0f101e30d..ba7505292b78 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -659,9 +659,9 @@ static int vop_plane_atomic_check(struct drm_plane > *plane, clip.x2 = crtc_state->adjusted_mode.hdisplay; > clip.y2 = crtc_state->adjusted_mode.vdisplay; > > - ret = drm_plane_helper_check_state(state, crtc_state, &clip, > - min_scale, max_scale, > - true, true); > + ret = drm_atomic_helper_check_plane_state(state, crtc_state, &clip, > + min_scale, max_scale, > + true, true); > if (ret) > return ret; > > diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c > index e95d9e2a7f6c..fc70351b9017 100644 > --- a/drivers/gpu/drm/tegra/dc.c > +++ b/drivers/gpu/drm/tegra/dc.c > @@ -491,8 +491,8 @@ static int tegra_plane_state_add(struct tegra_plane > *plane, clip.y2 = crtc_state->mode.vdisplay; > > /* Check plane state for visibility and calculate clipping bounds */ > - err = drm_plane_helper_check_state(state, crtc_state, &clip, > - 0, INT_MAX, true, true); > + err = drm_atomic_helper_check_plane_state(state, crtc_state, &clip, > + 0, INT_MAX, true, true); > if (err < 0) > return err; > > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c > b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index d95e7b1c3b11..a2a93d7e2a04 > 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c > @@ -454,10 +454,10 @@ int vmw_du_primary_plane_atomic_check(struct drm_plane > *plane, clip.y2 = crtc_state->adjusted_mode.vdisplay; > } > > - ret = drm_plane_helper_check_state(state, crtc_state, &clip, > - DRM_PLANE_HELPER_NO_SCALING, > - DRM_PLANE_HELPER_NO_SCALING, > - false, true); > + ret = drm_atomic_helper_check_plane_state(state, crtc_state, &clip, > + DRM_PLANE_HELPER_NO_SCALING, > + DRM_PLANE_HELPER_NO_SCALING, > + false, true); > > if (!ret && new_fb) { > struct drm_crtc *crtc = state->crtc; > diff --git a/drivers/gpu/drm/zte/zx_plane.c b/drivers/gpu/drm/zte/zx_plane.c > index ee0002529b8f..68fd2e2dc78a 100644 > --- a/drivers/gpu/drm/zte/zx_plane.c > +++ b/drivers/gpu/drm/zte/zx_plane.c > @@ -80,9 +80,9 @@ static int zx_vl_plane_atomic_check(struct drm_plane > *plane, clip.x2 = crtc_state->adjusted_mode.hdisplay; > clip.y2 = crtc_state->adjusted_mode.vdisplay; > > - return drm_plane_helper_check_state(plane_state, crtc_state, &clip, > - min_scale, max_scale, > - true, true); > + return drm_atomic_helper_check_plane_state(plane_state, crtc_state, > + &clip, min_scale, max_scale, > + true, true); > } > > static int zx_vl_get_fmt(uint32_t format) > @@ -315,10 +315,11 @@ static int zx_gl_plane_atomic_check(struct drm_plane > *plane, clip.x2 = crtc_state->adjusted_mode.hdisplay; > clip.y2 = crtc_state->adjusted_mode.vdisplay; > > - return drm_plane_helper_check_state(plane_state, crtc_state, &clip, > - DRM_PLANE_HELPER_NO_SCALING, > - DRM_PLANE_HELPER_NO_SCALING, > - false, true); > + return drm_atomic_helper_check_plane_state(plane_state, crtc_state, > + &clip, > + DRM_PLANE_HELPER_NO_SCALING, > + DRM_PLANE_HELPER_NO_SCALING, > + false, true); > } > > static int zx_gl_get_fmt(uint32_t format) > diff --git a/include/drm/drm_atomic_helper.h > b/include/drm/drm_atomic_helper.h index d2b56cc657e9..4842ee9485ce 100644 > --- a/include/drm/drm_atomic_helper.h > +++ b/include/drm/drm_atomic_helper.h > @@ -38,6 +38,13 @@ struct drm_private_state; > > int drm_atomic_helper_check_modeset(struct drm_device *dev, > struct drm_atomic_state *state); > +int drm_atomic_helper_check_plane_state(struct drm_plane_state > *plane_state, + const struct drm_crtc_state *crtc_state, > + const struct drm_rect *clip, > + int min_scale, > + int max_scale, > + bool can_position, > + bool can_update_disabled); > int drm_atomic_helper_check_planes(struct drm_device *dev, > struct drm_atomic_state *state); > int drm_atomic_helper_check(struct drm_device *dev, > diff --git a/include/drm/drm_plane_helper.h b/include/drm/drm_plane_helper.h > index 41b8309b0a57..8aa49c0ecd4d 100644 > --- a/include/drm/drm_plane_helper.h > +++ b/include/drm/drm_plane_helper.h > @@ -38,12 +38,6 @@ > */ > #define DRM_PLANE_HELPER_NO_SCALING (1<<16) > > -int drm_plane_helper_check_state(struct drm_plane_state *plane_state, > - const struct drm_crtc_state *crtc_state, > - const struct drm_rect *clip, > - int min_scale, int max_scale, > - bool can_position, > - bool can_update_disabled); > int drm_plane_helper_check_update(struct drm_plane *plane, > struct drm_crtc *crtc, > struct drm_framebuffer *fb, -- Regards, Laurent Pinchart _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel