Commit 9ebb6bc0 authored by Simon Ser's avatar Simon Ser Committed by Alex Deucher
Browse files

amd/display: allow non-linear multi-planar formats



Accept non-linear buffers which use a multi-planar format, as long
as they don't use DCC.

Tested on GFX9 with NV12.

Signed-off-by: default avatarSimon Ser <contact@emersion.fr>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Harry Wentland <hwentlan@amd.com>
Cc: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Cc: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: default avatarBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
parent 6d638b3f
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -4071,13 +4071,6 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane,
	if (modifier == DRM_FORMAT_MOD_LINEAR)
		return true;

	/*
	 * The arbitrary tiling support for multiplane formats has not been hooked
	 * up.
	 */
	if (info->num_planes > 1)
		return false;

	/*
	 * For D swizzle the canonical modifier depends on the bpp, so check
	 * it here.
@@ -4096,6 +4089,10 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane,
		/* Per radeonsi comments 16/64 bpp are more complicated. */
		if (info->cpp[0] != 4)
			return false;
		/* We support multi-planar formats, but not when combined with
		 * additional DCC metadata planes. */
		if (info->num_planes > 1)
			return false;
	}

	return true;