Commit d8516636 authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Reuse vlv_primary_min_alignment() for sprites as well



Rename vlv_primary_min_alignment() to vlv_plane_min_alignment()
and use it to replace vlv_sprite_min_alignment() since the
behaviour is now identical when the plane init doesn't set up
any async flips stuff.

Technically VLV/CHV sprites do support async flips, so this
also makes us a bit more future proof if/when we extend async
flip support to more than one plane.

Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241009182207.22900-6-ville.syrjala@linux.intel.com


Reviewed-by: default avatarJouni Högander <jouni.hogander@intel.com>
parent 2f4c9216
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -776,7 +776,7 @@ i8xx_plane_max_stride(struct intel_plane *plane,
		return 8 * 1024;
}

static unsigned int vlv_primary_min_alignment(struct intel_plane *plane,
unsigned int vlv_plane_min_alignment(struct intel_plane *plane,
				     const struct drm_framebuffer *fb,
				     int color_plane)
{
@@ -939,7 +939,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
	}

	if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
		plane->min_alignment = vlv_primary_min_alignment;
		plane->min_alignment = vlv_plane_min_alignment;
	else if (DISPLAY_VER(dev_priv) >= 5 || IS_G4X(dev_priv))
		plane->min_alignment = g4x_primary_min_alignment;
	else if (DISPLAY_VER(dev_priv) == 4)
+4 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
#include <linux/types.h>

enum pipe;
struct drm_framebuffer;
struct drm_i915_private;
struct intel_crtc;
struct intel_initial_plane_config;
@@ -19,6 +20,9 @@ struct intel_plane_state;
unsigned int i965_plane_max_stride(struct intel_plane *plane,
				   u32 pixel_format, u64 modifier,
				   unsigned int rotation);
unsigned int vlv_plane_min_alignment(struct intel_plane *plane,
				     const struct drm_framebuffer *fb,
				     int colot_plane);
int i9xx_check_plane_surface(struct intel_plane_state *plane_state);

struct intel_plane *
+1 −16
Original line number Diff line number Diff line
@@ -253,21 +253,6 @@ int vlv_plane_min_cdclk(const struct intel_crtc_state *crtc_state,
	return DIV_ROUND_UP(pixel_rate * num, den);
}

static unsigned int vlv_sprite_min_alignment(struct intel_plane *plane,
					     const struct drm_framebuffer *fb,
					     int color_plane)
{
	switch (fb->modifier) {
	case I915_FORMAT_MOD_X_TILED:
		return 4 * 1024;
	case DRM_FORMAT_MOD_LINEAR:
		return 128 * 1024;
	default:
		MISSING_CASE(fb->modifier);
		return 0;
	}
}

static u32 vlv_sprite_ctl_crtc(const struct intel_crtc_state *crtc_state)
{
	u32 sprctl = 0;
@@ -1616,7 +1601,7 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
		plane->get_hw_state = vlv_sprite_get_hw_state;
		plane->check_plane = vlv_sprite_check;
		plane->max_stride = i965_plane_max_stride;
		plane->min_alignment = vlv_sprite_min_alignment;
		plane->min_alignment = vlv_plane_min_alignment;
		plane->min_cdclk = vlv_plane_min_cdclk;

		if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {