[Intel-gfx] [CI 11/12] drm/i915: Perform automated conversions for plane uapi/hw split, base -> uapi.

Ville Syrjälä ville.syrjala at linux.intel.com
Tue Oct 29 15:43:23 UTC 2019


On Tue, Oct 29, 2019 at 08:22:28AM +0100, Maarten Lankhorst wrote:
> Split up plane_state->base to uapi. This is done using the following patch,
> ran after the previous commit that splits out any hw references:
> 
> @@
> struct intel_plane_state *T;
> identifier x;
> @@
> -T->base.x
> +T->uapi.x
> 
> @@
> struct intel_plane_state *T;
> @@
> -T->base
> +T->uapi
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_atomic.c   |   2 +-
>  .../gpu/drm/i915/display/intel_atomic_plane.c |  32 +-
>  drivers/gpu/drm/i915/display/intel_display.c  | 298 +++++++++---------
>  drivers/gpu/drm/i915/display/intel_fbc.c      |  12 +-
>  drivers/gpu/drm/i915/display/intel_overlay.c  |   2 +-
>  drivers/gpu/drm/i915/display/intel_sprite.c   | 136 ++++----
>  drivers/gpu/drm/i915/intel_pm.c               |  57 ++--
>  7 files changed, 271 insertions(+), 268 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c
> index fb4126de994d..cb5c914f627f 100644
> --- a/drivers/gpu/drm/i915/display/intel_atomic.c
> +++ b/drivers/gpu/drm/i915/display/intel_atomic.c
> @@ -299,7 +299,7 @@ static void intel_atomic_setup_scaler(struct intel_crtc_scaler_state *scaler_sta
>  	if (plane_state && plane_state->hw.fb &&
>  	    plane_state->hw.fb->format->is_yuv &&
>  	    plane_state->hw.fb->format->num_planes > 1) {
> -		struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +		struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  		if (IS_GEN(dev_priv, 9) &&
>  		    !IS_GEMINILAKE(dev_priv)) {
>  			mode = SKL_PS_SCALER_MODE_NV12;
> diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> index cac1d6ae67f6..ba7d5421f791 100644
> --- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> +++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> @@ -56,7 +56,7 @@ struct intel_plane *intel_plane_alloc(void)
>  		return ERR_PTR(-ENOMEM);
>  	}
>  
> -	__drm_atomic_helper_plane_reset(&plane->base, &plane_state->base);
> +	__drm_atomic_helper_plane_reset(&plane->base, &plane_state->uapi);
>  	plane_state->scaler_id = -1;
>  
>  	return plane;
> @@ -88,12 +88,12 @@ intel_plane_duplicate_state(struct drm_plane *plane)
>  	if (!intel_state)
>  		return NULL;
>  
> -	__drm_atomic_helper_plane_duplicate_state(plane, &intel_state->base);
> +	__drm_atomic_helper_plane_duplicate_state(plane, &intel_state->uapi);
>  
>  	intel_state->vma = NULL;
>  	intel_state->flags = 0;
>  
> -	return &intel_state->base;
> +	return &intel_state->uapi;
>  }
>  
>  /**
> @@ -111,7 +111,7 @@ intel_plane_destroy_state(struct drm_plane *plane,
>  	struct intel_plane_state *plane_state = to_intel_plane_state(state);
>  	WARN_ON(plane_state->vma);
>  
> -	__drm_atomic_helper_plane_destroy_state(&plane_state->base);
> +	__drm_atomic_helper_plane_destroy_state(&plane_state->uapi);
>  	kfree(plane_state);
>  }
>  
> @@ -121,7 +121,7 @@ unsigned int intel_plane_data_rate(const struct intel_crtc_state *crtc_state,
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	unsigned int cpp;
>  
> -	if (!plane_state->base.visible)
> +	if (!plane_state->uapi.visible)
>  		return 0;
>  
>  	cpp = fb->format->cpp[0];
> @@ -144,10 +144,10 @@ bool intel_plane_calc_min_cdclk(struct intel_atomic_state *state,
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct intel_plane_state *plane_state =
>  		intel_atomic_get_new_plane_state(state, plane);
> -	struct intel_crtc *crtc = to_intel_crtc(plane_state->base.crtc);
> +	struct intel_crtc *crtc = to_intel_crtc(plane_state->uapi.crtc);

This looks wrong. Should be hw.crtc I believe.

>  	struct intel_crtc_state *crtc_state;
>  
> -	if (!plane_state->base.visible || !plane->min_cdclk)
> +	if (!plane_state->uapi.visible || !plane->min_cdclk)

Not duplicating visible,src,dst leads to slightly confusing looking
code. I wonder if it wouldn't be better to just duplicate those as
well...

>  		return false;
>  
>  	crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
> @@ -181,7 +181,7 @@ int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_
>  					const struct intel_plane_state *old_plane_state,
>  					struct intel_plane_state *new_plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(new_plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
>  	const struct drm_framebuffer *fb = new_plane_state->hw.fb;
>  	int ret;
>  
> @@ -190,7 +190,7 @@ int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_
>  	new_crtc_state->c8_planes &= ~BIT(plane->id);
>  	new_crtc_state->data_rate[plane->id] = 0;
>  	new_crtc_state->min_cdclk[plane->id] = 0;
> -	new_plane_state->base.visible = false;
> +	new_plane_state->uapi.visible = false;
>  
>  	if (!new_plane_state->hw.crtc && !old_plane_state->hw.crtc)
>  		return 0;
> @@ -200,18 +200,18 @@ int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_
>  		return ret;
>  
>  	/* FIXME pre-g4x don't work like this */
> -	if (new_plane_state->base.visible)
> +	if (new_plane_state->uapi.visible)
>  		new_crtc_state->active_planes |= BIT(plane->id);
>  
> -	if (new_plane_state->base.visible &&
> +	if (new_plane_state->uapi.visible &&
>  	    drm_format_info_is_yuv_semiplanar(fb->format))
>  		new_crtc_state->nv12_planes |= BIT(plane->id);
>  
> -	if (new_plane_state->base.visible &&
> +	if (new_plane_state->uapi.visible &&
>  	    fb->format->format == DRM_FORMAT_C8)
>  		new_crtc_state->c8_planes |= BIT(plane->id);
>  
> -	if (new_plane_state->base.visible || old_plane_state->base.visible)
> +	if (new_plane_state->uapi.visible || old_plane_state->uapi.visible)
>  		new_crtc_state->update_planes |= BIT(plane->id);
>  
>  	new_crtc_state->data_rate[plane->id] =
> @@ -246,7 +246,7 @@ int intel_plane_atomic_check(struct intel_atomic_state *state,
>  	const struct intel_crtc_state *old_crtc_state;
>  	struct intel_crtc_state *new_crtc_state;
>  
> -	new_plane_state->base.visible = false;
> +	new_plane_state->uapi.visible = false;
>  	if (!crtc)
>  		return 0;
>  
> @@ -355,7 +355,7 @@ void skl_update_planes_on_crtc(struct intel_atomic_state *state,
>  		struct intel_plane_state *new_plane_state =
>  			intel_atomic_get_new_plane_state(state, plane);
>  
> -		if (new_plane_state->base.visible) {
> +		if (new_plane_state->uapi.visible) {
>  			intel_update_plane(plane, new_crtc_state, new_plane_state);
>  		} else if (new_plane_state->planar_slave) {
>  			struct intel_plane *master =
> @@ -395,7 +395,7 @@ void i9xx_update_planes_on_crtc(struct intel_atomic_state *state,
>  		    !(update_mask & BIT(plane->id)))
>  			continue;
>  
> -		if (new_plane_state->base.visible)
> +		if (new_plane_state->uapi.visible)
>  			intel_update_plane(plane, new_crtc_state, new_plane_state);
>  		else
>  			intel_disable_plane(plane, new_crtc_state);
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index fbbe6f752716..91a059e5fdcb 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -2082,7 +2082,7 @@ static unsigned int intel_surf_alignment(const struct drm_framebuffer *fb,
>  
>  static bool intel_plane_uses_fence(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  
>  	return INTEL_GEN(dev_priv) < 4 ||
> @@ -2391,7 +2391,7 @@ static u32 intel_plane_compute_aligned_offset(int *x, int *y,
>  					      const struct intel_plane_state *state,
>  					      int color_plane)
>  {
> -	struct intel_plane *intel_plane = to_intel_plane(state->base.plane);
> +	struct intel_plane *intel_plane = to_intel_plane(state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev);
>  	const struct drm_framebuffer *fb = state->hw.fb;
>  	unsigned int rotation = state->hw.rotation;
> @@ -2579,7 +2579,7 @@ intel_fb_stride_alignment(const struct drm_framebuffer *fb, int color_plane)
>  
>  bool intel_plane_can_remap(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	int i;
> @@ -2619,7 +2619,7 @@ bool intel_plane_can_remap(const struct intel_plane_state *plane_state)
>  
>  static bool intel_plane_needs_remap(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	unsigned int rotation = plane_state->hw.rotation;
>  	u32 stride, max_stride;
> @@ -2628,7 +2628,7 @@ static bool intel_plane_needs_remap(const struct intel_plane_state *plane_state)
>  	 * No remapping for invisible planes since we don't have
>  	 * an actual source viewport to remap.
>  	 */
> -	if (!plane_state->base.visible)
> +	if (!plane_state->uapi.visible)
>  		return false;
>  
>  	if (!intel_plane_can_remap(plane_state))
> @@ -2811,7 +2811,7 @@ static void
>  intel_plane_remap_gtt(struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> +		to_i915(plane_state->uapi.plane->dev);
>  	struct drm_framebuffer *fb = plane_state->hw.fb;
>  	struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb);
>  	struct intel_rotation_info *info = &plane_state->view.rotated;
> @@ -2826,20 +2826,20 @@ intel_plane_remap_gtt(struct intel_plane_state *plane_state)
>  	plane_state->view.type = drm_rotation_90_or_270(rotation) ?
>  		I915_GGTT_VIEW_ROTATED : I915_GGTT_VIEW_REMAPPED;
>  
> -	src_x = plane_state->base.src.x1 >> 16;
> -	src_y = plane_state->base.src.y1 >> 16;
> -	src_w = drm_rect_width(&plane_state->base.src) >> 16;
> -	src_h = drm_rect_height(&plane_state->base.src) >> 16;
> +	src_x = plane_state->uapi.src.x1 >> 16;
> +	src_y = plane_state->uapi.src.y1 >> 16;
> +	src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
>  
>  	WARN_ON(is_ccs_modifier(fb->modifier));
>  
>  	/* Make src coordinates relative to the viewport */
> -	drm_rect_translate(&plane_state->base.src,
> +	drm_rect_translate(&plane_state->uapi.src,
>  			   -(src_x << 16), -(src_y << 16));
>  
>  	/* Rotate src coordinates to match rotated GTT view */
>  	if (drm_rotation_90_or_270(rotation))
> -		drm_rect_rotate(&plane_state->base.src,
> +		drm_rect_rotate(&plane_state->uapi.src,
>  				src_w << 16, src_h << 16,
>  				DRM_MODE_ROTATE_270);
>  
> @@ -2959,7 +2959,7 @@ intel_plane_compute_gtt(struct intel_plane_state *plane_state)
>  
>  	/* Rotate src coordinates to match rotated GTT view */
>  	if (drm_rotation_90_or_270(rotation))
> -		drm_rect_rotate(&plane_state->base.src,
> +		drm_rect_rotate(&plane_state->uapi.src,
>  				fb->base.width << 16, fb->base.height << 16,
>  				DRM_MODE_ROTATE_270);
>  
> @@ -3127,9 +3127,9 @@ intel_set_plane_visible(struct intel_crtc_state *crtc_state,
>  			struct intel_plane_state *plane_state,
>  			bool visible)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  
> -	plane_state->base.visible = visible;
> +	plane_state->uapi.visible = visible;
>  
>  	if (visible)
>  		crtc_state->uapi.plane_mask |= drm_plane_mask(&plane->base);
> @@ -3275,8 +3275,8 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
>  	plane_state->crtc_w = fb->width;
>  	plane_state->crtc_h = fb->height;
>  
> -	intel_state->base.src = drm_plane_state_src(plane_state);
> -	intel_state->base.dst = drm_plane_state_dest(plane_state);
> +	intel_state->uapi.src = drm_plane_state_src(plane_state);
> +	intel_state->uapi.dst = drm_plane_state_dest(plane_state);
>  
>  	if (plane_config->tiling)
>  		dev_priv->preserve_bios_swizzle = true;
> @@ -3411,13 +3411,13 @@ static bool skl_check_main_ccs_coordinates(struct intel_plane_state *plane_state
>  
>  static int skl_check_main_surface(struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(plane_state->base.plane->dev);
> +	struct drm_i915_private *dev_priv = to_i915(plane_state->uapi.plane->dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	unsigned int rotation = plane_state->hw.rotation;
> -	int x = plane_state->base.src.x1 >> 16;
> -	int y = plane_state->base.src.y1 >> 16;
> -	int w = drm_rect_width(&plane_state->base.src) >> 16;
> -	int h = drm_rect_height(&plane_state->base.src) >> 16;
> +	int x = plane_state->uapi.src.x1 >> 16;
> +	int y = plane_state->uapi.src.y1 >> 16;
> +	int w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	int h = drm_rect_height(&plane_state->uapi.src) >> 16;
>  	int max_width;
>  	int max_height;
>  	u32 alignment, offset, aux_offset = plane_state->color_plane[1].offset;
> @@ -3500,7 +3500,7 @@ static int skl_check_main_surface(struct intel_plane_state *plane_state)
>  	 * Put the final coordinates back so that the src
>  	 * coordinate checks will see the right values.
>  	 */
> -	drm_rect_translate_to(&plane_state->base.src,
> +	drm_rect_translate_to(&plane_state->uapi.src,
>  			      x << 16, y << 16);
>  
>  	return 0;
> @@ -3512,10 +3512,10 @@ static int skl_check_nv12_aux_surface(struct intel_plane_state *plane_state)
>  	unsigned int rotation = plane_state->hw.rotation;
>  	int max_width = skl_max_plane_width(fb, 1, rotation);
>  	int max_height = 4096;
> -	int x = plane_state->base.src.x1 >> 17;
> -	int y = plane_state->base.src.y1 >> 17;
> -	int w = drm_rect_width(&plane_state->base.src) >> 17;
> -	int h = drm_rect_height(&plane_state->base.src) >> 17;
> +	int x = plane_state->uapi.src.x1 >> 17;
> +	int y = plane_state->uapi.src.y1 >> 17;
> +	int w = drm_rect_width(&plane_state->uapi.src) >> 17;
> +	int h = drm_rect_height(&plane_state->uapi.src) >> 17;
>  	u32 offset;
>  
>  	intel_add_fb_offsets(&x, &y, plane_state, 1);
> @@ -3538,8 +3538,8 @@ static int skl_check_nv12_aux_surface(struct intel_plane_state *plane_state)
>  static int skl_check_ccs_aux_surface(struct intel_plane_state *plane_state)
>  {
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
> -	int src_x = plane_state->base.src.x1 >> 16;
> -	int src_y = plane_state->base.src.y1 >> 16;
> +	int src_x = plane_state->uapi.src.x1 >> 16;
> +	int src_y = plane_state->uapi.src.y1 >> 16;
>  	int hsub = fb->format->hsub;
>  	int vsub = fb->format->vsub;
>  	int x = src_x / hsub;
> @@ -3565,7 +3565,7 @@ int skl_check_plane_surface(struct intel_plane_state *plane_state)
>  	if (ret)
>  		return ret;
>  
> -	if (!plane_state->base.visible)
> +	if (!plane_state->uapi.visible)
>  		return 0;
>  
>  	/*
> @@ -3689,7 +3689,7 @@ static u32 i9xx_plane_ctl(const struct intel_crtc_state *crtc_state,
>  			  const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> +		to_i915(plane_state->uapi.plane->dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	unsigned int rotation = plane_state->hw.rotation;
>  	u32 dspcntr;
> @@ -3746,7 +3746,7 @@ static u32 i9xx_plane_ctl(const struct intel_crtc_state *crtc_state,
>  int i9xx_check_plane_surface(struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> +		to_i915(plane_state->uapi.plane->dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	int src_x, src_y, src_w;
>  	u32 offset;
> @@ -3756,12 +3756,12 @@ int i9xx_check_plane_surface(struct intel_plane_state *plane_state)
>  	if (ret)
>  		return ret;
>  
> -	if (!plane_state->base.visible)
> +	if (!plane_state->uapi.visible)
>  		return 0;
>  
> -	src_w = drm_rect_width(&plane_state->base.src) >> 16;
> -	src_x = plane_state->base.src.x1 >> 16;
> -	src_y = plane_state->base.src.y1 >> 16;
> +	src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	src_x = plane_state->uapi.src.x1 >> 16;
> +	src_y = plane_state->uapi.src.y1 >> 16;
>  
>  	/* Undocumented hardware limit on i965/g4x/vlv/chv */
>  	if (HAS_GMCH(dev_priv) && fb->format->cpp[0] == 8 && src_w > 2048)
> @@ -3779,14 +3779,14 @@ int i9xx_check_plane_surface(struct intel_plane_state *plane_state)
>  	 * Put the final coordinates back so that the src
>  	 * coordinate checks will see the right values.
>  	 */
> -	drm_rect_translate_to(&plane_state->base.src,
> +	drm_rect_translate_to(&plane_state->uapi.src,
>  			      src_x << 16, src_y << 16);
>  
>  	/* HSW/BDW do this automagically in hardware */
>  	if (!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv)) {
>  		unsigned int rotation = plane_state->hw.rotation;
> -		int src_w = drm_rect_width(&plane_state->base.src) >> 16;
> -		int src_h = drm_rect_height(&plane_state->base.src) >> 16;
> +		int src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +		int src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
>  
>  		if (rotation & DRM_MODE_ROTATE_180) {
>  			src_x += src_w - 1;
> @@ -3823,14 +3823,14 @@ static int
>  i9xx_plane_check(struct intel_crtc_state *crtc_state,
>  		 struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	int ret;
>  
>  	ret = chv_plane_check_rotation(plane_state);
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_atomic_helper_check_plane_state(&plane_state->base,
> +	ret = drm_atomic_helper_check_plane_state(&plane_state->uapi,
>  						  &crtc_state->uapi,
>  						  DRM_PLANE_HELPER_NO_SCALING,
>  						  DRM_PLANE_HELPER_NO_SCALING,
> @@ -3843,7 +3843,7 @@ i9xx_plane_check(struct intel_crtc_state *crtc_state,
>  	if (ret)
>  		return ret;
>  
> -	if (!plane_state->base.visible)
> +	if (!plane_state->uapi.visible)
>  		return 0;
>  
>  	ret = intel_plane_check_src_coordinates(plane_state);
> @@ -3864,10 +3864,10 @@ static void i9xx_update_plane(struct intel_plane *plane,
>  	u32 linear_offset;
>  	int x = plane_state->color_plane[0].x;
>  	int y = plane_state->color_plane[0].y;
> -	int crtc_x = plane_state->base.dst.x1;
> -	int crtc_y = plane_state->base.dst.y1;
> -	int crtc_w = drm_rect_width(&plane_state->base.dst);
> -	int crtc_h = drm_rect_height(&plane_state->base.dst);
> +	int crtc_x = plane_state->uapi.dst.x1;
> +	int crtc_y = plane_state->uapi.dst.y1;
> +	int crtc_w = drm_rect_width(&plane_state->uapi.dst);
> +	int crtc_h = drm_rect_height(&plane_state->uapi.dst);
>  	unsigned long irqflags;
>  	u32 dspaddr_offset;
>  	u32 dspcntr;
> @@ -4221,7 +4221,7 @@ u32 skl_plane_ctl(const struct intel_crtc_state *crtc_state,
>  		  const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> +		to_i915(plane_state->uapi.plane->dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	unsigned int rotation = plane_state->hw.rotation;
>  	const struct drm_intel_sprite_colorkey *key = &plane_state->ckey;
> @@ -4277,9 +4277,9 @@ u32 glk_plane_color_ctl(const struct intel_crtc_state *crtc_state,
>  			const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> +		to_i915(plane_state->uapi.plane->dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	u32 plane_color_ctl = 0;
>  
>  	plane_color_ctl |= PLANE_COLOR_PLANE_GAMMA_DISABLE;
> @@ -5623,11 +5623,11 @@ static int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
>  				   struct intel_plane_state *plane_state)
>  {
>  	struct intel_plane *intel_plane =
> -		to_intel_plane(plane_state->base.plane);
> +		to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev);
>  	struct drm_framebuffer *fb = plane_state->hw.fb;
>  	int ret;
> -	bool force_detach = !fb || !plane_state->base.visible;
> +	bool force_detach = !fb || !plane_state->uapi.visible;
>  	bool need_scaler = false;
>  
>  	/* Pre-gen11 and SDR planes always need a scaler for planar formats. */
> @@ -5638,10 +5638,10 @@ static int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
>  	ret = skl_update_scaler(crtc_state, force_detach,
>  				drm_plane_index(&intel_plane->base),
>  				&plane_state->scaler_id,
> -				drm_rect_width(&plane_state->base.src) >> 16,
> -				drm_rect_height(&plane_state->base.src) >> 16,
> -				drm_rect_width(&plane_state->base.dst),
> -				drm_rect_height(&plane_state->base.dst),
> +				drm_rect_width(&plane_state->uapi.src) >> 16,
> +				drm_rect_height(&plane_state->uapi.src) >> 16,
> +				drm_rect_width(&plane_state->uapi.dst),
> +				drm_rect_height(&plane_state->uapi.dst),
>  				fb ? fb->format : NULL, need_scaler);
>  
>  	if (ret || plane_state->scaler_id < 0)
> @@ -6057,7 +6057,7 @@ static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state,
>  		 * So disable underrun reporting before all the planes get disabled.
>  		 */
>  		if (IS_GEN(dev_priv, 2) && old_primary_state->visible &&
> -		    (modeset || !new_primary_state->base.visible))
> +		    (modeset || !new_primary_state->uapi.visible))
>  			intel_set_cpu_fifo_underrun_reporting(dev_priv, crtc->pipe, false);
>  	}
>  
> @@ -6144,7 +6144,7 @@ static void intel_crtc_disable_planes(struct intel_atomic_state *state,
>  
>  		intel_disable_plane(plane, new_crtc_state);
>  
> -		if (old_plane_state->base.visible)
> +		if (old_plane_state->uapi.visible)
>  			fb_bits |= plane->frontbuffer_bit;
>  	}
>  
> @@ -7153,7 +7153,7 @@ static void intel_crtc_disable_noatomic(struct drm_crtc *crtc,
>  		const struct intel_plane_state *plane_state =
>  			to_intel_plane_state(plane->base.state);
>  
> -		if (plane_state->base.visible)
> +		if (plane_state->uapi.visible)
>  			intel_plane_disable_noatomic(intel_crtc, plane);
>  	}
>  
> @@ -10728,7 +10728,7 @@ static bool haswell_get_pipe_config(struct intel_crtc *crtc,
>  static u32 intel_cursor_base(const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> +		to_i915(plane_state->uapi.plane->dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	const struct drm_i915_gem_object *obj = intel_fb_obj(fb);
>  	u32 base;
> @@ -10743,8 +10743,8 @@ static u32 intel_cursor_base(const struct intel_plane_state *plane_state)
>  
>  static u32 intel_cursor_position(const struct intel_plane_state *plane_state)
>  {
> -	int x = plane_state->base.dst.x1;
> -	int y = plane_state->base.dst.y1;
> +	int x = plane_state->uapi.dst.x1;
> +	int y = plane_state->uapi.dst.y1;
>  	u32 pos = 0;
>  
>  	if (x < 0) {
> @@ -10765,9 +10765,9 @@ static u32 intel_cursor_position(const struct intel_plane_state *plane_state)
>  static bool intel_cursor_size_ok(const struct intel_plane_state *plane_state)
>  {
>  	const struct drm_mode_config *config =
> -		&plane_state->base.plane->dev->mode_config;
> -	int width = drm_rect_width(&plane_state->base.dst);
> -	int height = drm_rect_height(&plane_state->base.dst);
> +		&plane_state->uapi.plane->dev->mode_config;
> +	int width = drm_rect_width(&plane_state->uapi.dst);
> +	int height = drm_rect_height(&plane_state->uapi.dst);
>  
>  	return width > 0 && width <= config->cursor_width &&
>  		height > 0 && height <= config->cursor_height;
> @@ -10776,7 +10776,7 @@ static bool intel_cursor_size_ok(const struct intel_plane_state *plane_state)
>  static int intel_cursor_check_surface(struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> +		to_i915(plane_state->uapi.plane->dev);
>  	unsigned int rotation = plane_state->hw.rotation;
>  	int src_x, src_y;
>  	u32 offset;
> @@ -10786,11 +10786,11 @@ static int intel_cursor_check_surface(struct intel_plane_state *plane_state)
>  	if (ret)
>  		return ret;
>  
> -	if (!plane_state->base.visible)
> +	if (!plane_state->uapi.visible)
>  		return 0;
>  
> -	src_x = plane_state->base.src.x1 >> 16;
> -	src_y = plane_state->base.src.y1 >> 16;
> +	src_x = plane_state->uapi.src.x1 >> 16;
> +	src_y = plane_state->uapi.src.y1 >> 16;
>  
>  	intel_add_fb_offsets(&src_x, &src_y, plane_state, 0);
>  	offset = intel_plane_compute_aligned_offset(&src_x, &src_y,
> @@ -10805,14 +10805,14 @@ static int intel_cursor_check_surface(struct intel_plane_state *plane_state)
>  	 * Put the final coordinates back so that the src
>  	 * coordinate checks will see the right values.
>  	 */
> -	drm_rect_translate_to(&plane_state->base.src,
> +	drm_rect_translate_to(&plane_state->uapi.src,
>  			      src_x << 16, src_y << 16);
>  
>  	/* ILK+ do this automagically in hardware */
>  	if (HAS_GMCH(dev_priv) && rotation & DRM_MODE_ROTATE_180) {
>  		const struct drm_framebuffer *fb = plane_state->hw.fb;
> -		int src_w = drm_rect_width(&plane_state->base.src) >> 16;
> -		int src_h = drm_rect_height(&plane_state->base.src) >> 16;
> +		int src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +		int src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
>  
>  		offset += (src_h * src_w - 1) * fb->format->cpp[0];
>  	}
> @@ -10835,7 +10835,7 @@ static int intel_check_cursor(struct intel_crtc_state *crtc_state,
>  		return -EINVAL;
>  	}
>  
> -	ret = drm_atomic_helper_check_plane_state(&plane_state->base,
> +	ret = drm_atomic_helper_check_plane_state(&plane_state->uapi,
>  						  &crtc_state->uapi,
>  						  DRM_PLANE_HELPER_NO_SCALING,
>  						  DRM_PLANE_HELPER_NO_SCALING,
> @@ -10844,14 +10844,14 @@ static int intel_check_cursor(struct intel_crtc_state *crtc_state,
>  		return ret;
>  
>  	/* Use the unclipped src/dst rectangles, which we program to hw */
> -	plane_state->base.src = drm_plane_state_src(&plane_state->base);
> -	plane_state->base.dst = drm_plane_state_dest(&plane_state->base);
> +	plane_state->uapi.src = drm_plane_state_src(&plane_state->uapi);
> +	plane_state->uapi.dst = drm_plane_state_dest(&plane_state->uapi);
>  
>  	ret = intel_cursor_check_surface(plane_state);
>  	if (ret)
>  		return ret;
>  
> -	if (!plane_state->base.visible)
> +	if (!plane_state->uapi.visible)
>  		return 0;
>  
>  	ret = intel_plane_check_src_coordinates(plane_state);
> @@ -10889,7 +10889,7 @@ static u32 i845_cursor_ctl(const struct intel_crtc_state *crtc_state,
>  
>  static bool i845_cursor_size_ok(const struct intel_plane_state *plane_state)
>  {
> -	int width = drm_rect_width(&plane_state->base.dst);
> +	int width = drm_rect_width(&plane_state->uapi.dst);
>  
>  	/*
>  	 * 845g/865g are only limited by the width of their cursors,
> @@ -10915,12 +10915,12 @@ static int i845_check_cursor(struct intel_crtc_state *crtc_state,
>  	/* Check for which cursor types we support */
>  	if (!i845_cursor_size_ok(plane_state)) {
>  		DRM_DEBUG("Cursor dimension %dx%d not supported\n",
> -			  drm_rect_width(&plane_state->base.dst),
> -			  drm_rect_height(&plane_state->base.dst));
> +			  drm_rect_width(&plane_state->uapi.dst),
> +			  drm_rect_height(&plane_state->uapi.dst));
>  		return -EINVAL;
>  	}
>  
> -	WARN_ON(plane_state->base.visible &&
> +	WARN_ON(plane_state->uapi.visible &&
>  		plane_state->color_plane[0].stride != fb->pitches[0]);
>  
>  	switch (fb->pitches[0]) {
> @@ -10948,9 +10948,9 @@ static void i845_update_cursor(struct intel_plane *plane,
>  	u32 cntl = 0, base = 0, pos = 0, size = 0;
>  	unsigned long irqflags;
>  
> -	if (plane_state && plane_state->base.visible) {
> -		unsigned int width = drm_rect_width(&plane_state->base.src);
> -		unsigned int height = drm_rect_height(&plane_state->base.dst);
> +	if (plane_state && plane_state->uapi.visible) {
> +		unsigned int width = drm_rect_width(&plane_state->uapi.src);
> +		unsigned int height = drm_rect_height(&plane_state->uapi.dst);
>  
>  		cntl = plane_state->ctl |
>  			i845_cursor_ctl_crtc(crtc_state);
> @@ -11046,13 +11046,13 @@ static u32 i9xx_cursor_ctl(const struct intel_crtc_state *crtc_state,
>  			   const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> +		to_i915(plane_state->uapi.plane->dev);
>  	u32 cntl = 0;
>  
>  	if (IS_GEN(dev_priv, 6) || IS_IVYBRIDGE(dev_priv))
>  		cntl |= MCURSOR_TRICKLE_FEED_DISABLE;
>  
> -	switch (drm_rect_width(&plane_state->base.dst)) {
> +	switch (drm_rect_width(&plane_state->uapi.dst)) {
>  	case 64:
>  		cntl |= MCURSOR_MODE_64_ARGB_AX;
>  		break;
> @@ -11063,7 +11063,7 @@ static u32 i9xx_cursor_ctl(const struct intel_crtc_state *crtc_state,
>  		cntl |= MCURSOR_MODE_256_ARGB_AX;
>  		break;
>  	default:
> -		MISSING_CASE(drm_rect_width(&plane_state->base.dst));
> +		MISSING_CASE(drm_rect_width(&plane_state->uapi.dst));
>  		return 0;
>  	}
>  
> @@ -11076,9 +11076,9 @@ static u32 i9xx_cursor_ctl(const struct intel_crtc_state *crtc_state,
>  static bool i9xx_cursor_size_ok(const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> -	int width = drm_rect_width(&plane_state->base.dst);
> -	int height = drm_rect_height(&plane_state->base.dst);
> +		to_i915(plane_state->uapi.plane->dev);
> +	int width = drm_rect_width(&plane_state->uapi.dst);
> +	int height = drm_rect_height(&plane_state->uapi.dst);
>  
>  	if (!intel_cursor_size_ok(plane_state))
>  		return false;
> @@ -11114,7 +11114,7 @@ static bool i9xx_cursor_size_ok(const struct intel_plane_state *plane_state)
>  static int i9xx_check_cursor(struct intel_crtc_state *crtc_state,
>  			     struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	enum pipe pipe = plane->pipe;
> @@ -11131,19 +11131,19 @@ static int i9xx_check_cursor(struct intel_crtc_state *crtc_state,
>  	/* Check for which cursor types we support */
>  	if (!i9xx_cursor_size_ok(plane_state)) {
>  		DRM_DEBUG("Cursor dimension %dx%d not supported\n",
> -			  drm_rect_width(&plane_state->base.dst),
> -			  drm_rect_height(&plane_state->base.dst));
> +			  drm_rect_width(&plane_state->uapi.dst),
> +			  drm_rect_height(&plane_state->uapi.dst));
>  		return -EINVAL;
>  	}
>  
> -	WARN_ON(plane_state->base.visible &&
> +	WARN_ON(plane_state->uapi.visible &&
>  		plane_state->color_plane[0].stride != fb->pitches[0]);
>  
>  	if (fb->pitches[0] !=
> -	    drm_rect_width(&plane_state->base.dst) * fb->format->cpp[0]) {
> +	    drm_rect_width(&plane_state->uapi.dst) * fb->format->cpp[0]) {
>  		DRM_DEBUG_KMS("Invalid cursor stride (%u) (cursor width %d)\n",
>  			      fb->pitches[0],
> -			      drm_rect_width(&plane_state->base.dst));
> +			      drm_rect_width(&plane_state->uapi.dst));
>  		return -EINVAL;
>  	}
>  
> @@ -11158,7 +11158,7 @@ static int i9xx_check_cursor(struct intel_crtc_state *crtc_state,
>  	 * Refuse the put the cursor into that compromised position.
>  	 */
>  	if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_C &&
> -	    plane_state->base.visible && plane_state->base.dst.x1 < 0) {
> +	    plane_state->uapi.visible && plane_state->uapi.dst.x1 < 0) {
>  		DRM_DEBUG_KMS("CHV cursor C not allowed to straddle the left screen edge\n");
>  		return -EINVAL;
>  	}
> @@ -11177,9 +11177,9 @@ static void i9xx_update_cursor(struct intel_plane *plane,
>  	u32 cntl = 0, base = 0, pos = 0, fbc_ctl = 0;
>  	unsigned long irqflags;
>  
> -	if (plane_state && plane_state->base.visible) {
> -		unsigned width = drm_rect_width(&plane_state->base.dst);
> -		unsigned height = drm_rect_height(&plane_state->base.dst);
> +	if (plane_state && plane_state->uapi.visible) {
> +		unsigned width = drm_rect_width(&plane_state->uapi.dst);
> +		unsigned height = drm_rect_height(&plane_state->uapi.dst);
>  
>  		cntl = plane_state->ctl |
>  			i9xx_cursor_ctl_crtc(crtc_state);
> @@ -11717,7 +11717,7 @@ static bool intel_wm_need_update(const struct intel_plane_state *cur,
>  				 struct intel_plane_state *new)
>  {
>  	/* Update watermarks on tiling or size changes. */
> -	if (new->base.visible != cur->base.visible)
> +	if (new->uapi.visible != cur->uapi.visible)
>  		return true;
>  
>  	if (!cur->hw.fb || !new->hw.fb)
> @@ -11725,10 +11725,10 @@ static bool intel_wm_need_update(const struct intel_plane_state *cur,
>  
>  	if (cur->hw.fb->modifier != new->hw.fb->modifier ||
>  	    cur->hw.rotation != new->hw.rotation ||
> -	    drm_rect_width(&new->base.src) != drm_rect_width(&cur->base.src) ||
> -	    drm_rect_height(&new->base.src) != drm_rect_height(&cur->base.src) ||
> -	    drm_rect_width(&new->base.dst) != drm_rect_width(&cur->base.dst) ||
> -	    drm_rect_height(&new->base.dst) != drm_rect_height(&cur->base.dst))
> +	    drm_rect_width(&new->uapi.src) != drm_rect_width(&cur->uapi.src) ||
> +	    drm_rect_height(&new->uapi.src) != drm_rect_height(&cur->uapi.src) ||
> +	    drm_rect_width(&new->uapi.dst) != drm_rect_width(&cur->uapi.dst) ||
> +	    drm_rect_height(&new->uapi.dst) != drm_rect_height(&cur->uapi.dst))
>  		return true;
>  
>  	return false;
> @@ -11736,10 +11736,10 @@ static bool intel_wm_need_update(const struct intel_plane_state *cur,
>  
>  static bool needs_scaling(const struct intel_plane_state *state)
>  {
> -	int src_w = drm_rect_width(&state->base.src) >> 16;
> -	int src_h = drm_rect_height(&state->base.src) >> 16;
> -	int dst_w = drm_rect_width(&state->base.dst);
> -	int dst_h = drm_rect_height(&state->base.dst);
> +	int src_w = drm_rect_width(&state->uapi.src) >> 16;
> +	int src_h = drm_rect_height(&state->uapi.src) >> 16;
> +	int dst_w = drm_rect_width(&state->uapi.dst);
> +	int dst_h = drm_rect_height(&state->uapi.dst);
>  
>  	return (src_w != dst_w || src_h != dst_h);
>  }
> @@ -11750,7 +11750,7 @@ int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_crtc_stat
>  				    struct intel_plane_state *plane_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>  	bool mode_changed = needs_modeset(crtc_state);
>  	bool was_crtc_enabled = old_crtc_state->hw.active;
> @@ -11764,8 +11764,8 @@ int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_crtc_stat
>  			return ret;
>  	}
>  
> -	was_visible = old_plane_state->base.visible;
> -	visible = plane_state->base.visible;
> +	was_visible = old_plane_state->uapi.visible;
> +	visible = plane_state->uapi.visible;
>  
>  	if (!was_crtc_enabled && WARN_ON(was_visible))
>  		was_visible = false;
> @@ -11781,7 +11781,7 @@ int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_crtc_stat
>  	 * only combine the results from all planes in the current place?
>  	 */
>  	if (!is_crtc_enabled) {
> -		plane_state->base.visible = visible = false;
> +		plane_state->uapi.visible = visible = false;
>  		crtc_state->active_planes &= ~BIT(plane->id);
>  		crtc_state->data_rate[plane->id] = 0;
>  		crtc_state->min_cdclk[plane->id] = 0;
> @@ -11941,7 +11941,7 @@ static int icl_check_nv12_planes(struct intel_crtc_state *crtc_state)
>  			continue;
>  
>  		plane_state->planar_linked_plane = NULL;
> -		if (plane_state->planar_slave && !plane_state->base.visible) {
> +		if (plane_state->planar_slave && !plane_state->uapi.visible) {
>  			crtc_state->active_planes &= ~BIT(plane->id);
>  			crtc_state->update_planes |= BIT(plane->id);
>  		}
> @@ -12355,14 +12355,14 @@ static const char *output_formats(enum intel_output_format format)
>  
>  static void intel_dump_plane_state(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	struct drm_format_name_buf format_name;
>  
>  	if (!fb) {
>  		DRM_DEBUG_KMS("[PLANE:%d:%s] fb: [NOFB], visible: %s\n",
>  			      plane->base.base.id, plane->base.name,
> -			      yesno(plane_state->base.visible));
> +			      yesno(plane_state->uapi.visible));
>  		return;
>  	}
>  
> @@ -12370,13 +12370,13 @@ static void intel_dump_plane_state(const struct intel_plane_state *plane_state)
>  		      plane->base.base.id, plane->base.name,
>  		      fb->base.id, fb->width, fb->height,
>  		      drm_get_format_name(fb->format->format, &format_name),
> -		      yesno(plane_state->base.visible));
> +		      yesno(plane_state->uapi.visible));
>  	DRM_DEBUG_KMS("\trotation: 0x%x, scaler: %d\n",
>  		      plane_state->hw.rotation, plane_state->scaler_id);
> -	if (plane_state->base.visible)
> +	if (plane_state->uapi.visible)
>  		DRM_DEBUG_KMS("\tsrc: " DRM_RECT_FP_FMT " dst: " DRM_RECT_FMT "\n",
> -			      DRM_RECT_FP_ARG(&plane_state->base.src),
> -			      DRM_RECT_ARG(&plane_state->base.dst));
> +			      DRM_RECT_FP_ARG(&plane_state->uapi.src),
> +			      DRM_RECT_ARG(&plane_state->uapi.dst));
>  }
>  
>  static void intel_dump_pipe_config(const struct intel_crtc_state *pipe_config,
> @@ -13582,7 +13582,7 @@ intel_verify_planes(struct intel_atomic_state *state)
>  	for_each_new_intel_plane_in_state(state, plane,
>  					  plane_state, i)
>  		assert_plane(plane, plane_state->planar_slave ||
> -			     plane_state->base.visible);
> +			     plane_state->uapi.visible);
>  }
>  
>  static void
> @@ -15044,7 +15044,7 @@ static void add_rps_boost_after_vblank(struct drm_crtc *crtc,
>  
>  static int intel_plane_pin_fb(struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	struct drm_framebuffer *fb = plane_state->hw.fb;
>  	struct i915_vma *vma;
> @@ -15109,7 +15109,7 @@ intel_prepare_plane_fb(struct drm_plane *plane,
>  	struct intel_plane_state *new_plane_state =
>  		to_intel_plane_state(_new_plane_state);
>  	struct intel_atomic_state *intel_state =
> -		to_intel_atomic_state(new_plane_state->base.state);
> +		to_intel_atomic_state(new_plane_state->uapi.state);
>  	struct drm_i915_private *dev_priv = to_i915(plane->dev);
>  	struct drm_framebuffer *fb = new_plane_state->hw.fb;
>  	struct drm_i915_gem_object *obj = intel_fb_obj(fb);
> @@ -15142,9 +15142,9 @@ intel_prepare_plane_fb(struct drm_plane *plane,
>  		}
>  	}
>  
> -	if (new_plane_state->base.fence) { /* explicit fencing */
> +	if (new_plane_state->uapi.fence) { /* explicit fencing */
>  		ret = i915_sw_fence_await_dma_fence(&intel_state->commit_ready,
> -						    new_plane_state->base.fence,
> +						    new_plane_state->uapi.fence,
>  						    I915_FENCE_TIMEOUT,
>  						    GFP_KERNEL);
>  		if (ret < 0)
> @@ -15167,7 +15167,7 @@ intel_prepare_plane_fb(struct drm_plane *plane,
>  	fb_obj_bump_render_priority(obj);
>  	intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_DIRTYFB);
>  
> -	if (!new_plane_state->base.fence) { /* implicit fencing */
> +	if (!new_plane_state->uapi.fence) { /* implicit fencing */
>  		struct dma_fence *fence;
>  
>  		ret = i915_sw_fence_await_reservation(&intel_state->commit_ready,
> @@ -15185,7 +15185,7 @@ intel_prepare_plane_fb(struct drm_plane *plane,
>  		}
>  	} else {
>  		add_rps_boost_after_vblank(new_plane_state->hw.crtc,
> -					   new_plane_state->base.fence);
> +					   new_plane_state->uapi.fence);
>  	}
>  
>  	/*
> @@ -15218,7 +15218,7 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
>  	struct intel_plane_state *old_plane_state =
>  		to_intel_plane_state(_old_plane_state);
>  	struct intel_atomic_state *intel_state =
> -		to_intel_atomic_state(old_plane_state->base.state);
> +		to_intel_atomic_state(old_plane_state->uapi.state);
>  	struct drm_i915_private *dev_priv = to_i915(plane->dev);
>  
>  	if (intel_state->rps_interactive) {
> @@ -15350,8 +15350,8 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
>  	 * the plane.  This prevents our async update's changes from getting
>  	 * overridden by a previous synchronous update's state.
>  	 */
> -	if (old_plane_state->base.commit &&
> -	    !try_wait_for_completion(&old_plane_state->base.commit->hw_done))
> +	if (old_plane_state->uapi.commit &&
> +	    !try_wait_for_completion(&old_plane_state->uapi.commit->hw_done))
>  		goto slow;
>  
>  	/*
> @@ -15360,10 +15360,10 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
>  	 * in the fastpath.
>  	 */
>  	if (old_plane_state->uapi.crtc != &crtc->base ||
> -	    old_plane_state->base.src_w != src_w ||
> -	    old_plane_state->base.src_h != src_h ||
> -	    old_plane_state->base.crtc_w != crtc_w ||
> -	    old_plane_state->base.crtc_h != crtc_h ||
> +	    old_plane_state->uapi.src_w != src_w ||
> +	    old_plane_state->uapi.src_h != src_h ||
> +	    old_plane_state->uapi.crtc_w != crtc_w ||
> +	    old_plane_state->uapi.crtc_h != crtc_h ||

These should have maybe been in the patch that converted the
uapi.fb and uapi.crtc already.

Not sure how we're going to make this stuff work with bigjoiner, but
let's cross that bridge when we come to it.

Rest of the patch lgtm.

>  	    !old_plane_state->uapi.fb != !fb)
>  		goto slow;
>  
> @@ -15377,16 +15377,16 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
>  		goto out_free;
>  	}
>  
> -	drm_atomic_set_fb_for_plane(&new_plane_state->base, fb);
> +	drm_atomic_set_fb_for_plane(&new_plane_state->uapi, fb);
>  
> -	new_plane_state->base.src_x = src_x;
> -	new_plane_state->base.src_y = src_y;
> -	new_plane_state->base.src_w = src_w;
> -	new_plane_state->base.src_h = src_h;
> -	new_plane_state->base.crtc_x = crtc_x;
> -	new_plane_state->base.crtc_y = crtc_y;
> -	new_plane_state->base.crtc_w = crtc_w;
> -	new_plane_state->base.crtc_h = crtc_h;
> +	new_plane_state->uapi.src_x = src_x;
> +	new_plane_state->uapi.src_y = src_y;
> +	new_plane_state->uapi.src_w = src_w;
> +	new_plane_state->uapi.src_h = src_h;
> +	new_plane_state->uapi.crtc_x = crtc_x;
> +	new_plane_state->uapi.crtc_y = crtc_y;
> +	new_plane_state->uapi.crtc_w = crtc_w;
> +	new_plane_state->uapi.crtc_h = crtc_h;
>  
>  	ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state,
>  						  old_plane_state, new_plane_state);
> @@ -15404,7 +15404,7 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
>  				plane->frontbuffer_bit);
>  
>  	/* Swap plane state */
> -	plane->base.state = &new_plane_state->base;
> +	plane->base.state = &new_plane_state->uapi;
>  
>  	/*
>  	 * We cannot swap crtc_state as it may be in use by an atomic commit or
> @@ -15418,7 +15418,7 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
>  	 */
>  	crtc_state->active_planes = new_crtc_state->active_planes;
>  
> -	if (new_plane_state->base.visible)
> +	if (new_plane_state->uapi.visible)
>  		intel_update_plane(plane, crtc_state, new_plane_state);
>  	else
>  		intel_disable_plane(plane, crtc_state);
> @@ -15429,9 +15429,11 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
>  	if (new_crtc_state)
>  		intel_crtc_destroy_state(&crtc->base, &new_crtc_state->uapi);
>  	if (ret)
> -		intel_plane_destroy_state(&plane->base, &new_plane_state->base);
> +		intel_plane_destroy_state(&plane->base,
> +					  &new_plane_state->uapi);
>  	else
> -		intel_plane_destroy_state(&plane->base, &old_plane_state->base);
> +		intel_plane_destroy_state(&plane->base,
> +					  &old_plane_state->uapi);
>  	return ret;
>  
>  slow:
> @@ -17157,7 +17159,7 @@ static void intel_sanitize_crtc(struct intel_crtc *crtc,
>  			const struct intel_plane_state *plane_state =
>  				to_intel_plane_state(plane->base.state);
>  
> -			if (plane_state->base.visible &&
> +			if (plane_state->uapi.visible &&
>  			    plane->base.type != DRM_PLANE_TYPE_PRIMARY)
>  				intel_plane_disable_noatomic(crtc, plane);
>  		}
> @@ -17488,14 +17490,14 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev)
>  			 * FIXME don't have the fb yet, so can't
>  			 * use intel_plane_data_rate() :(
>  			 */
> -			if (plane_state->base.visible)
> +			if (plane_state->uapi.visible)
>  				crtc_state->data_rate[plane->id] =
>  					4 * crtc_state->pixel_rate;
>  			/*
>  			 * FIXME don't have the fb yet, so can't
>  			 * use plane->min_cdclk() :(
>  			 */
> -			if (plane_state->base.visible && plane->min_cdclk) {
> +			if (plane_state->uapi.visible && plane->min_cdclk) {
>  				if (crtc_state->double_wide ||
>  				    INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>  					crtc_state->min_cdclk[plane->id] =
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 3ea8d010db6c..92c7eb243559 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -430,7 +430,7 @@ static bool multiple_pipes_ok(struct intel_crtc *crtc,
>  	if (!no_fbc_on_multiple_pipes(dev_priv))
>  		return true;
>  
> -	if (plane_state->base.visible)
> +	if (plane_state->uapi.visible)
>  		fbc->visible_pipes_mask |= (1 << pipe);
>  	else
>  		fbc->visible_pipes_mask &= ~(1 << pipe);
> @@ -677,12 +677,12 @@ static void intel_fbc_update_state_cache(struct intel_crtc *crtc,
>  	 * the 90/270 degree plane rotation cases (to match the
>  	 * GTT mapping), hence no need to account for rotation here.
>  	 */
> -	cache->plane.src_w = drm_rect_width(&plane_state->base.src) >> 16;
> -	cache->plane.src_h = drm_rect_height(&plane_state->base.src) >> 16;
> -	cache->plane.visible = plane_state->base.visible;
> +	cache->plane.src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	cache->plane.src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
> +	cache->plane.visible = plane_state->uapi.visible;
>  	cache->plane.adjusted_x = plane_state->color_plane[0].x;
>  	cache->plane.adjusted_y = plane_state->color_plane[0].y;
> -	cache->plane.y = plane_state->base.src.y1 >> 16;
> +	cache->plane.y = plane_state->uapi.src.y1 >> 16;
>  
>  	cache->plane.pixel_blend_mode = plane_state->hw.pixel_blend_mode;
>  
> @@ -1052,7 +1052,7 @@ void intel_fbc_choose_crtc(struct drm_i915_private *dev_priv,
>  		if (!plane->has_fbc)
>  			continue;
>  
> -		if (!plane_state->base.visible)
> +		if (!plane_state->uapi.visible)
>  			continue;
>  
>  		crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
> diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c
> index 46e3d6cf5976..8cfb785e761c 100644
> --- a/drivers/gpu/drm/i915/display/intel_overlay.c
> +++ b/drivers/gpu/drm/i915/display/intel_overlay.c
> @@ -668,7 +668,7 @@ static void update_colorkey(struct intel_overlay *overlay,
>  	if (overlay->color_key_enabled)
>  		flags |= DST_KEY_ENABLE;
>  
> -	if (state->base.visible)
> +	if (state->uapi.visible)
>  		format = state->hw.fb->format->format;
>  
>  	switch (format) {
> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
> index b2116d123548..ef7409f695f9 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -240,7 +240,7 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)
>  
>  int intel_plane_check_stride(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	unsigned int rotation = plane_state->hw.rotation;
>  	u32 stride, max_stride;
> @@ -252,7 +252,7 @@ int intel_plane_check_stride(const struct intel_plane_state *plane_state)
>  	 * kick in due the plane being invisible.
>  	 */
>  	if (intel_plane_can_remap(plane_state) &&
> -	    !plane_state->base.visible)
> +	    !plane_state->uapi.visible)
>  		return 0;
>  
>  	/* FIXME other color planes? */
> @@ -273,7 +273,7 @@ int intel_plane_check_stride(const struct intel_plane_state *plane_state)
>  int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state)
>  {
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
> -	struct drm_rect *src = &plane_state->base.src;
> +	struct drm_rect *src = &plane_state->uapi.src;
>  	u32 src_x, src_y, src_w, src_h, hsub, vsub;
>  	bool rotated = drm_rotation_90_or_270(plane_state->hw.rotation);
>  
> @@ -328,7 +328,7 @@ skl_plane_ratio(const struct intel_crtc_state *crtc_state,
>  		const struct intel_plane_state *plane_state,
>  		unsigned int *num, unsigned int *den)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(plane_state->base.plane->dev);
> +	struct drm_i915_private *dev_priv = to_i915(plane_state->uapi.plane->dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  
>  	if (fb->format->cpp[0] == 8) {
> @@ -348,7 +348,7 @@ skl_plane_ratio(const struct intel_crtc_state *crtc_state,
>  static int skl_plane_min_cdclk(const struct intel_crtc_state *crtc_state,
>  			       const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(plane_state->base.plane->dev);
> +	struct drm_i915_private *dev_priv = to_i915(plane_state->uapi.plane->dev);
>  	unsigned int pixel_rate = crtc_state->pixel_rate;
>  	unsigned int src_w, src_h, dst_w, dst_h;
>  	unsigned int num, den;
> @@ -359,10 +359,10 @@ static int skl_plane_min_cdclk(const struct intel_crtc_state *crtc_state,
>  	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
>  		den *= 2;
>  
> -	src_w = drm_rect_width(&plane_state->base.src) >> 16;
> -	src_h = drm_rect_height(&plane_state->base.src) >> 16;
> -	dst_w = drm_rect_width(&plane_state->base.dst);
> -	dst_h = drm_rect_height(&plane_state->base.dst);
> +	src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
> +	dst_w = drm_rect_width(&plane_state->uapi.dst);
> +	dst_h = drm_rect_height(&plane_state->uapi.dst);
>  
>  	/* Downscaling limits the maximum pixel rate */
>  	dst_w = min(src_w, dst_w);
> @@ -401,19 +401,19 @@ skl_program_scaler(struct intel_plane *plane,
>  	int scaler_id = plane_state->scaler_id;
>  	const struct intel_scaler *scaler =
>  		&crtc_state->scaler_state.scalers[scaler_id];
> -	int crtc_x = plane_state->base.dst.x1;
> -	int crtc_y = plane_state->base.dst.y1;
> -	u32 crtc_w = drm_rect_width(&plane_state->base.dst);
> -	u32 crtc_h = drm_rect_height(&plane_state->base.dst);
> +	int crtc_x = plane_state->uapi.dst.x1;
> +	int crtc_y = plane_state->uapi.dst.y1;
> +	u32 crtc_w = drm_rect_width(&plane_state->uapi.dst);
> +	u32 crtc_h = drm_rect_height(&plane_state->uapi.dst);
>  	u16 y_hphase, uv_rgb_hphase;
>  	u16 y_vphase, uv_rgb_vphase;
>  	int hscale, vscale;
>  
> -	hscale = drm_rect_calc_hscale(&plane_state->base.src,
> -				      &plane_state->base.dst,
> +	hscale = drm_rect_calc_hscale(&plane_state->uapi.src,
> +				      &plane_state->uapi.dst,
>  				      0, INT_MAX);
> -	vscale = drm_rect_calc_vscale(&plane_state->base.src,
> -				      &plane_state->base.dst,
> +	vscale = drm_rect_calc_vscale(&plane_state->uapi.src,
> +				      &plane_state->uapi.dst,
>  				      0, INT_MAX);
>  
>  	/* TODO: handle sub-pixel coordinates */
> @@ -584,12 +584,12 @@ skl_program_plane(struct intel_plane *plane,
>  	u32 surf_addr = plane_state->color_plane[color_plane].offset;
>  	u32 stride = skl_plane_stride(plane_state, color_plane);
>  	u32 aux_stride = skl_plane_stride(plane_state, 1);
> -	int crtc_x = plane_state->base.dst.x1;
> -	int crtc_y = plane_state->base.dst.y1;
> +	int crtc_x = plane_state->uapi.dst.x1;
> +	int crtc_y = plane_state->uapi.dst.y1;
>  	u32 x = plane_state->color_plane[color_plane].x;
>  	u32 y = plane_state->color_plane[color_plane].y;
> -	u32 src_w = drm_rect_width(&plane_state->base.src) >> 16;
> -	u32 src_h = drm_rect_height(&plane_state->base.src) >> 16;
> +	u32 src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	u32 src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
>  	struct intel_plane *linked = plane_state->planar_linked_plane;
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	u8 alpha = plane_state->hw.alpha >> 8;
> @@ -766,7 +766,7 @@ static void i9xx_plane_linear_gamma(u16 gamma[8])
>  static void
>  chv_update_csc(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	enum plane_id plane_id = plane->id;
> @@ -825,7 +825,7 @@ chv_update_csc(const struct intel_plane_state *plane_state)
>  static void
>  vlv_update_clrc(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	enum pipe pipe = plane->pipe;
> @@ -1019,7 +1019,7 @@ static u32 vlv_sprite_ctl(const struct intel_crtc_state *crtc_state,
>  
>  static void vlv_update_gamma(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	enum pipe pipe = plane->pipe;
> @@ -1053,10 +1053,10 @@ vlv_update_plane(struct intel_plane *plane,
>  	u32 sprsurf_offset = plane_state->color_plane[0].offset;
>  	u32 linear_offset;
>  	const struct drm_intel_sprite_colorkey *key = &plane_state->ckey;
> -	int crtc_x = plane_state->base.dst.x1;
> -	int crtc_y = plane_state->base.dst.y1;
> -	u32 crtc_w = drm_rect_width(&plane_state->base.dst);
> -	u32 crtc_h = drm_rect_height(&plane_state->base.dst);
> +	int crtc_x = plane_state->uapi.dst.x1;
> +	int crtc_y = plane_state->uapi.dst.y1;
> +	u32 crtc_w = drm_rect_width(&plane_state->uapi.dst);
> +	u32 crtc_h = drm_rect_height(&plane_state->uapi.dst);
>  	u32 x = plane_state->color_plane[0].x;
>  	u32 y = plane_state->color_plane[0].y;
>  	unsigned long irqflags;
> @@ -1245,8 +1245,8 @@ static int ivb_sprite_min_cdclk(const struct intel_crtc_state *crtc_state,
>  	 */
>  	pixel_rate = crtc_state->pixel_rate;
>  
> -	src_w = drm_rect_width(&plane_state->base.src) >> 16;
> -	dst_w = drm_rect_width(&plane_state->base.dst);
> +	src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	dst_w = drm_rect_width(&plane_state->uapi.dst);
>  
>  	if (src_w != dst_w)
>  		ivb_plane_ratio_scaling(crtc_state, plane_state, &num, &den);
> @@ -1320,7 +1320,7 @@ static u32 ivb_sprite_ctl_crtc(const struct intel_crtc_state *crtc_state)
>  static bool ivb_need_sprite_gamma(const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> +		to_i915(plane_state->uapi.plane->dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  
>  	return fb->format->cpp[0] == 8 &&
> @@ -1331,7 +1331,7 @@ static u32 ivb_sprite_ctl(const struct intel_crtc_state *crtc_state,
>  			  const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> +		to_i915(plane_state->uapi.plane->dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	unsigned int rotation = plane_state->hw.rotation;
>  	const struct drm_intel_sprite_colorkey *key = &plane_state->ckey;
> @@ -1422,7 +1422,7 @@ static void ivb_sprite_linear_gamma(const struct intel_plane_state *plane_state,
>  
>  static void ivb_update_gamma(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	enum pipe pipe = plane->pipe;
>  	u16 gamma[18];
> @@ -1461,14 +1461,14 @@ ivb_update_plane(struct intel_plane *plane,
>  	u32 sprsurf_offset = plane_state->color_plane[0].offset;
>  	u32 linear_offset;
>  	const struct drm_intel_sprite_colorkey *key = &plane_state->ckey;
> -	int crtc_x = plane_state->base.dst.x1;
> -	int crtc_y = plane_state->base.dst.y1;
> -	u32 crtc_w = drm_rect_width(&plane_state->base.dst);
> -	u32 crtc_h = drm_rect_height(&plane_state->base.dst);
> +	int crtc_x = plane_state->uapi.dst.x1;
> +	int crtc_y = plane_state->uapi.dst.y1;
> +	u32 crtc_w = drm_rect_width(&plane_state->uapi.dst);
> +	u32 crtc_h = drm_rect_height(&plane_state->uapi.dst);
>  	u32 x = plane_state->color_plane[0].x;
>  	u32 y = plane_state->color_plane[0].y;
> -	u32 src_w = drm_rect_width(&plane_state->base.src) >> 16;
> -	u32 src_h = drm_rect_height(&plane_state->base.src) >> 16;
> +	u32 src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	u32 src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
>  	u32 sprctl, sprscale = 0;
>  	unsigned long irqflags;
>  
> @@ -1581,8 +1581,8 @@ static int g4x_sprite_min_cdclk(const struct intel_crtc_state *crtc_state,
>  	pixel_rate = crtc_state->pixel_rate;
>  
>  	/* Horizontal downscaling limits the maximum pixel rate */
> -	hscale = drm_rect_calc_hscale(&plane_state->base.src,
> -				      &plane_state->base.dst,
> +	hscale = drm_rect_calc_hscale(&plane_state->uapi.src,
> +				      &plane_state->uapi.dst,
>  				      0, INT_MAX);
>  	if (hscale < 0x10000)
>  		return pixel_rate;
> @@ -1636,7 +1636,7 @@ static u32 g4x_sprite_ctl(const struct intel_crtc_state *crtc_state,
>  			  const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> +		to_i915(plane_state->uapi.plane->dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	unsigned int rotation = plane_state->hw.rotation;
>  	const struct drm_intel_sprite_colorkey *key = &plane_state->ckey;
> @@ -1699,7 +1699,7 @@ static u32 g4x_sprite_ctl(const struct intel_crtc_state *crtc_state,
>  
>  static void g4x_update_gamma(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	enum pipe pipe = plane->pipe;
> @@ -1731,7 +1731,7 @@ static void ilk_sprite_linear_gamma(u16 gamma[17])
>  
>  static void ilk_update_gamma(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	enum pipe pipe = plane->pipe;
> @@ -1767,14 +1767,14 @@ g4x_update_plane(struct intel_plane *plane,
>  	u32 dvssurf_offset = plane_state->color_plane[0].offset;
>  	u32 linear_offset;
>  	const struct drm_intel_sprite_colorkey *key = &plane_state->ckey;
> -	int crtc_x = plane_state->base.dst.x1;
> -	int crtc_y = plane_state->base.dst.y1;
> -	u32 crtc_w = drm_rect_width(&plane_state->base.dst);
> -	u32 crtc_h = drm_rect_height(&plane_state->base.dst);
> +	int crtc_x = plane_state->uapi.dst.x1;
> +	int crtc_y = plane_state->uapi.dst.y1;
> +	u32 crtc_w = drm_rect_width(&plane_state->uapi.dst);
> +	u32 crtc_h = drm_rect_height(&plane_state->uapi.dst);
>  	u32 x = plane_state->color_plane[0].x;
>  	u32 y = plane_state->color_plane[0].y;
> -	u32 src_w = drm_rect_width(&plane_state->base.src) >> 16;
> -	u32 src_h = drm_rect_height(&plane_state->base.src) >> 16;
> +	u32 src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	u32 src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
>  	u32 dvscntr, dvsscale = 0;
>  	unsigned long irqflags;
>  
> @@ -1888,8 +1888,8 @@ g4x_sprite_check_scaling(struct intel_crtc_state *crtc_state,
>  			 struct intel_plane_state *plane_state)
>  {
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
> -	const struct drm_rect *src = &plane_state->base.src;
> -	const struct drm_rect *dst = &plane_state->base.dst;
> +	const struct drm_rect *src = &plane_state->uapi.src;
> +	const struct drm_rect *dst = &plane_state->uapi.dst;
>  	int src_x, src_w, src_h, crtc_w, crtc_h;
>  	const struct drm_display_mode *adjusted_mode =
>  		&crtc_state->hw.adjusted_mode;
> @@ -1948,7 +1948,7 @@ static int
>  g4x_sprite_check(struct intel_crtc_state *crtc_state,
>  		 struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	int min_scale = DRM_PLANE_HELPER_NO_SCALING;
>  	int max_scale = DRM_PLANE_HELPER_NO_SCALING;
> @@ -1964,7 +1964,7 @@ g4x_sprite_check(struct intel_crtc_state *crtc_state,
>  		}
>  	}
>  
> -	ret = drm_atomic_helper_check_plane_state(&plane_state->base,
> +	ret = drm_atomic_helper_check_plane_state(&plane_state->uapi,
>  						  &crtc_state->uapi,
>  						  min_scale, max_scale,
>  						  true, true);
> @@ -1975,7 +1975,7 @@ g4x_sprite_check(struct intel_crtc_state *crtc_state,
>  	if (ret)
>  		return ret;
>  
> -	if (!plane_state->base.visible)
> +	if (!plane_state->uapi.visible)
>  		return 0;
>  
>  	ret = intel_plane_check_src_coordinates(plane_state);
> @@ -1996,7 +1996,7 @@ g4x_sprite_check(struct intel_crtc_state *crtc_state,
>  
>  int chv_plane_check_rotation(const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	unsigned int rotation = plane_state->hw.rotation;
>  
> @@ -2021,7 +2021,7 @@ vlv_sprite_check(struct intel_crtc_state *crtc_state,
>  	if (ret)
>  		return ret;
>  
> -	ret = drm_atomic_helper_check_plane_state(&plane_state->base,
> +	ret = drm_atomic_helper_check_plane_state(&plane_state->uapi,
>  						  &crtc_state->uapi,
>  						  DRM_PLANE_HELPER_NO_SCALING,
>  						  DRM_PLANE_HELPER_NO_SCALING,
> @@ -2033,7 +2033,7 @@ vlv_sprite_check(struct intel_crtc_state *crtc_state,
>  	if (ret)
>  		return ret;
>  
> -	if (!plane_state->base.visible)
> +	if (!plane_state->uapi.visible)
>  		return 0;
>  
>  	ret = intel_plane_check_src_coordinates(plane_state);
> @@ -2048,7 +2048,7 @@ vlv_sprite_check(struct intel_crtc_state *crtc_state,
>  static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state,
>  			      const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	unsigned int rotation = plane_state->hw.rotation;
> @@ -2123,9 +2123,9 @@ static int skl_plane_check_dst_coordinates(const struct intel_crtc_state *crtc_s
>  					   const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
> -		to_i915(plane_state->base.plane->dev);
> -	int crtc_x = plane_state->base.dst.x1;
> -	int crtc_w = drm_rect_width(&plane_state->base.dst);
> +		to_i915(plane_state->uapi.plane->dev);
> +	int crtc_x = plane_state->uapi.dst.x1;
> +	int crtc_w = drm_rect_width(&plane_state->uapi.dst);
>  	int pipe_src_w = crtc_state->pipe_src_w;
>  
>  	/*
> @@ -2153,7 +2153,7 @@ static int skl_plane_check_nv12_rotation(const struct intel_plane_state *plane_s
>  {
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	unsigned int rotation = plane_state->hw.rotation;
> -	int src_w = drm_rect_width(&plane_state->base.src) >> 16;
> +	int src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
>  
>  	/* Display WA #1106 */
>  	if (drm_format_info_is_yuv_semiplanar(fb->format) && src_w & 3 &&
> @@ -2185,7 +2185,7 @@ static int skl_plane_max_scale(struct drm_i915_private *dev_priv,
>  static int skl_plane_check(struct intel_crtc_state *crtc_state,
>  			   struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	int min_scale = DRM_PLANE_HELPER_NO_SCALING;
> @@ -2202,7 +2202,7 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
>  		max_scale = skl_plane_max_scale(dev_priv, fb);
>  	}
>  
> -	ret = drm_atomic_helper_check_plane_state(&plane_state->base,
> +	ret = drm_atomic_helper_check_plane_state(&plane_state->uapi,
>  						  &crtc_state->uapi,
>  						  min_scale, max_scale,
>  						  true, true);
> @@ -2213,7 +2213,7 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
>  	if (ret)
>  		return ret;
>  
> -	if (!plane_state->base.visible)
> +	if (!plane_state->uapi.visible)
>  		return 0;
>  
>  	ret = skl_plane_check_dst_coordinates(crtc_state, plane_state);
> @@ -2230,7 +2230,7 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
>  
>  	/* HW only has 8 bits pixel precision, disable plane if invisible */
>  	if (!(plane_state->hw.alpha >> 8))
> -		plane_state->base.visible = false;
> +		plane_state->uapi.visible = false;
>  
>  	plane_state->ctl = skl_plane_ctl(crtc_state, plane_state);
>  
> @@ -2249,7 +2249,7 @@ static bool has_dst_key_in_primary_plane(struct drm_i915_private *dev_priv)
>  static void intel_plane_set_ckey(struct intel_plane_state *plane_state,
>  				 const struct drm_intel_sprite_colorkey *set)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	struct drm_intel_sprite_colorkey *key = &plane_state->ckey;
>  
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 25a8e20d2112..e7da4b5134b2 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -786,7 +786,7 @@ static int intel_wm_num_levels(struct drm_i915_private *dev_priv)
>  static bool intel_wm_plane_visible(const struct intel_crtc_state *crtc_state,
>  				   const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  
>  	/* FIXME check the 'enable' instead */
>  	if (!crtc_state->hw.active)
> @@ -803,7 +803,7 @@ static bool intel_wm_plane_visible(const struct intel_crtc_state *crtc_state,
>  	if (plane->id == PLANE_CURSOR)
>  		return plane_state->hw.fb != NULL;
>  	else
> -		return plane_state->base.visible;
> +		return plane_state->uapi.visible;
>  }
>  
>  static struct intel_crtc *single_enabled_crtc(struct drm_i915_private *dev_priv)
> @@ -1075,7 +1075,7 @@ static u16 g4x_compute_wm(const struct intel_crtc_state *crtc_state,
>  			  const struct intel_plane_state *plane_state,
>  			  int level)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_display_mode *adjusted_mode =
>  		&crtc_state->hw.adjusted_mode;
> @@ -1108,7 +1108,7 @@ static u16 g4x_compute_wm(const struct intel_crtc_state *crtc_state,
>  	clock = adjusted_mode->crtc_clock;
>  	htotal = adjusted_mode->crtc_htotal;
>  
> -	width = drm_rect_width(&plane_state->base.dst);
> +	width = drm_rect_width(&plane_state->uapi.dst);
>  
>  	if (plane->id == PLANE_CURSOR) {
>  		wm = intel_wm_method2(clock, htotal, width, cpp, latency);
> @@ -1174,7 +1174,7 @@ static u32 ilk_compute_fbc_wm(const struct intel_crtc_state *crtc_state,
>  static bool g4x_raw_plane_wm_compute(struct intel_crtc_state *crtc_state,
>  				     const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	int num_levels = intel_wm_num_levels(to_i915(plane->base.dev));
>  	enum plane_id plane_id = plane->id;
>  	bool dirty = false;
> @@ -1581,7 +1581,7 @@ static u16 vlv_compute_wm_level(const struct intel_crtc_state *crtc_state,
>  				const struct intel_plane_state *plane_state,
>  				int level)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
>  	const struct drm_display_mode *adjusted_mode =
>  		&crtc_state->hw.adjusted_mode;
> @@ -1751,7 +1751,7 @@ static bool vlv_raw_plane_wm_set(struct intel_crtc_state *crtc_state,
>  static bool vlv_raw_plane_wm_compute(struct intel_crtc_state *crtc_state,
>  				     const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	enum plane_id plane_id = plane->id;
>  	int num_levels = intel_wm_num_levels(to_i915(plane->base.dev));
>  	int level;
> @@ -2484,7 +2484,7 @@ static u32 ilk_compute_pri_wm(const struct intel_crtc_state *crtc_state,
>  
>  	method2 = ilk_wm_method2(crtc_state->pixel_rate,
>  				 crtc_state->hw.adjusted_mode.crtc_htotal,
> -				 drm_rect_width(&plane_state->base.dst),
> +				 drm_rect_width(&plane_state->uapi.dst),
>  				 cpp, mem_value);
>  
>  	return min(method1, method2);
> @@ -2512,7 +2512,7 @@ static u32 ilk_compute_spr_wm(const struct intel_crtc_state *crtc_state,
>  	method1 = ilk_wm_method1(crtc_state->pixel_rate, cpp, mem_value);
>  	method2 = ilk_wm_method2(crtc_state->pixel_rate,
>  				 crtc_state->hw.adjusted_mode.crtc_htotal,
> -				 drm_rect_width(&plane_state->base.dst),
> +				 drm_rect_width(&plane_state->uapi.dst),
>  				 cpp, mem_value);
>  	return min(method1, method2);
>  }
> @@ -2537,7 +2537,7 @@ static u32 ilk_compute_cur_wm(const struct intel_crtc_state *crtc_state,
>  
>  	return ilk_wm_method2(crtc_state->pixel_rate,
>  			      crtc_state->hw.adjusted_mode.crtc_htotal,
> -			      drm_rect_width(&plane_state->base.dst),
> +			      drm_rect_width(&plane_state->uapi.dst),
>  			      cpp, mem_value);
>  }
>  
> @@ -2553,7 +2553,8 @@ static u32 ilk_compute_fbc_wm(const struct intel_crtc_state *crtc_state,
>  
>  	cpp = plane_state->hw.fb->format->cpp[0];
>  
> -	return ilk_wm_fbc(pri_val, drm_rect_width(&plane_state->base.dst), cpp);
> +	return ilk_wm_fbc(pri_val, drm_rect_width(&plane_state->uapi.dst),
> +			  cpp);
>  }
>  
>  static unsigned int
> @@ -3097,10 +3098,10 @@ static int ilk_compute_pipe_wm(struct intel_crtc_state *crtc_state)
>  
>  	pipe_wm->pipe_enabled = crtc_state->hw.active;
>  	if (sprstate) {
> -		pipe_wm->sprites_enabled = sprstate->base.visible;
> -		pipe_wm->sprites_scaled = sprstate->base.visible &&
> -			(drm_rect_width(&sprstate->base.dst) != drm_rect_width(&sprstate->base.src) >> 16 ||
> -			 drm_rect_height(&sprstate->base.dst) != drm_rect_height(&sprstate->base.src) >> 16);
> +		pipe_wm->sprites_enabled = sprstate->uapi.visible;
> +		pipe_wm->sprites_scaled = sprstate->uapi.visible &&
> +			(drm_rect_width(&sprstate->uapi.dst) != drm_rect_width(&sprstate->uapi.src) >> 16 ||
> +			 drm_rect_height(&sprstate->uapi.dst) != drm_rect_height(&sprstate->uapi.src) >> 16);
>  	}
>  
>  	usable_level = max_level;
> @@ -4072,10 +4073,10 @@ skl_plane_downscale_amount(const struct intel_crtc_state *crtc_state,
>  	 *
>  	 * n.b., src is 16.16 fixed point, dst is whole integer.
>  	 */
> -	src_w = drm_rect_width(&plane_state->base.src) >> 16;
> -	src_h = drm_rect_height(&plane_state->base.src) >> 16;
> -	dst_w = drm_rect_width(&plane_state->base.dst);
> -	dst_h = drm_rect_height(&plane_state->base.dst);
> +	src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
> +	dst_w = drm_rect_width(&plane_state->uapi.dst);
> +	dst_h = drm_rect_height(&plane_state->uapi.dst);
>  
>  	fp_w_ratio = div_fixed16(src_w, dst_w);
>  	fp_h_ratio = div_fixed16(src_h, dst_h);
> @@ -4090,14 +4091,14 @@ skl_plane_relative_data_rate(const struct intel_crtc_state *crtc_state,
>  			     const struct intel_plane_state *plane_state,
>  			     int color_plane)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	u32 data_rate;
>  	u32 width = 0, height = 0;
>  	uint_fixed_16_16_t down_scale_amount;
>  	u64 rate;
>  
> -	if (!plane_state->base.visible)
> +	if (!plane_state->uapi.visible)
>  		return 0;
>  
>  	if (plane->id == PLANE_CURSOR)
> @@ -4112,8 +4113,8 @@ skl_plane_relative_data_rate(const struct intel_crtc_state *crtc_state,
>  	 * the 90/270 degree plane rotation cases (to match the
>  	 * GTT mapping), hence no need to account for rotation here.
>  	 */
> -	width = drm_rect_width(&plane_state->base.src) >> 16;
> -	height = drm_rect_height(&plane_state->base.src) >> 16;
> +	width = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	height = drm_rect_height(&plane_state->uapi.src) >> 16;
>  
>  	/* UV plane does 1/2 pixel sub-sampling */
>  	if (color_plane == 1) {
> @@ -4620,7 +4621,7 @@ skl_compute_plane_wm_params(const struct intel_crtc_state *crtc_state,
>  	 * the 90/270 degree plane rotation cases (to match the
>  	 * GTT mapping), hence no need to account for rotation here.
>  	 */
> -	width = drm_rect_width(&plane_state->base.src) >> 16;
> +	width = drm_rect_width(&plane_state->uapi.src) >> 16;
>  
>  	return skl_compute_wm_params(crtc_state, width,
>  				     fb->format, fb->modifier,
> @@ -4902,7 +4903,7 @@ static int skl_build_plane_wm_uv(struct intel_crtc_state *crtc_state,
>  static int skl_build_plane_wm(struct intel_crtc_state *crtc_state,
>  			      const struct intel_plane_state *plane_state)
>  {
> -	struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	enum plane_id plane_id = plane->id;
>  	int ret;
> @@ -4928,7 +4929,7 @@ static int skl_build_plane_wm(struct intel_crtc_state *crtc_state,
>  static int icl_build_plane_wm(struct intel_crtc_state *crtc_state,
>  			      const struct intel_plane_state *plane_state)
>  {
> -	enum plane_id plane_id = to_intel_plane(plane_state->base.plane)->id;
> +	enum plane_id plane_id = to_intel_plane(plane_state->uapi.plane)->id;
>  	int ret;
>  
>  	/* Watermarks calculated in master */
> @@ -5930,7 +5931,7 @@ void g4x_wm_sanitize(struct drm_i915_private *dev_priv)
>  		enum plane_id plane_id = plane->id;
>  		int level;
>  
> -		if (plane_state->base.visible)
> +		if (plane_state->uapi.visible)
>  			continue;
>  
>  		for (level = 0; level < 3; level++) {
> @@ -6085,7 +6086,7 @@ void vlv_wm_sanitize(struct drm_i915_private *dev_priv)
>  		enum plane_id plane_id = plane->id;
>  		int level;
>  
> -		if (plane_state->base.visible)
> +		if (plane_state->uapi.visible)
>  			continue;
>  
>  		for (level = 0; level < wm_state->num_levels; level++) {
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel


More information about the Intel-gfx mailing list