Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit edd43ed8 authored by Damien Lespiau's avatar Damien Lespiau Committed by Daniel Vetter
Browse files

drm/i915/skl: Don't expose the top most plane on gen9 display



on SKL/BXT, the top most plane hardware is shared between the legacy
cursor registers and an actual plane. Daniel and Ville don't want to
expose 2 DRM planes and would rather expose a CURSOR plane that has all
the usual plane properties, and that's a blocker for lifting the
prelimary_hw_support flag.

Unfortunately noone has had the time to finish this yet, but lifting the
prelimary_hw_support flag is long overdue. As an intermediate solution
we can merely not expose the top most plane

Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 661abfc0
Loading
Loading
Loading
Loading
+12 −4
Original line number Original line Diff line number Diff line
@@ -726,11 +726,19 @@ static void intel_device_info_runtime_init(struct drm_device *dev)


	info = (struct intel_device_info *)&dev_priv->info;
	info = (struct intel_device_info *)&dev_priv->info;


	/*
	 * Skylake and Broxton currently don't expose the topmost plane as its
	 * use is exclusive with the legacy cursor and we only want to expose
	 * one of those, not both. Until we can safely expose the topmost plane
	 * as a DRM_PLANE_TYPE_CURSOR with all the features exposed/supported,
	 * we don't expose the topmost plane at all to prevent ABI breakage
	 * down the line.
	 */
	if (IS_BROXTON(dev)) {
	if (IS_BROXTON(dev)) {
		info->num_sprites[PIPE_A] = 3;
		info->num_sprites[PIPE_A] = 2;
		info->num_sprites[PIPE_B] = 3;
		info->num_sprites[PIPE_B] = 2;
		info->num_sprites[PIPE_C] = 2;
		info->num_sprites[PIPE_C] = 1;
	} else if (IS_VALLEYVIEW(dev) || INTEL_INFO(dev)->gen == 9)
	} else if (IS_VALLEYVIEW(dev))
		for_each_pipe(dev_priv, pipe)
		for_each_pipe(dev_priv, pipe)
			info->num_sprites[pipe] = 2;
			info->num_sprites[pipe] = 2;
	else
	else