Commit f90a85e7 authored by Maarten Lankhorst's avatar Maarten Lankhorst
Browse files

drm/i915: Perform automated conversions for plane uapi/hw split, base -> uapi.



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: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191031112610.27608-10-maarten.lankhorst@linux.intel.com
parent 7b3cb17a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -286,7 +286,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;
+15 −15
Original line number Diff line number Diff line
@@ -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];
@@ -147,7 +147,7 @@ bool intel_plane_calc_min_cdclk(struct intel_atomic_state *state,
	struct intel_crtc *crtc = to_intel_crtc(plane_state->hw.crtc);
	struct intel_crtc_state *crtc_state;

	if (!plane_state->base.visible || !plane->min_cdclk)
	if (!plane_state->uapi.visible || !plane->min_cdclk)
		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);
+131 −131

File changed.

Preview size limit exceeded, changes collapsed.

+6 −6
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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) {
Loading