FAILED: patch "[PATCH] drm/amd/display: Revert logic for plane modifiers" failed to apply to 6.0-stable tree
[email protected]
maintainerThe patch below does not apply to the 6.0-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Possible dependencies:
93e28cf81406 ("drm/amd/display: Revert logic for plane modifiers")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 93e28cf81406519622383ae51d6fd183b744ac46 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joaqu=C3=ADn=20Ignacio=20Aramend=C3=ADa?=
<[email protected]>
Date: Mon, 24 Oct 2022 08:33:59 -0300
Subject: [PATCH] drm/amd/display: Revert logic for plane modifiers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This file was split in commit 5d945cbcd4b16a29d6470a80dfb19738f9a4319f ("drm/amd/display: Create a file dedicated to planes") and the logic in dm_plane_format_mod_supported() function got changed by a switch logic. That change broke drm_plane modifiers setting on series 5000 APUs (tested on OXP mini AMD 5800U and HP Dev One 5850U PRO) leading to Gamescope not working as reported on GitHub[1]
To reproduce the issue, enter a TTY and run:
$ gamescope -- vkcube
With said commit applied it will abort. This one restores the old logic, fixing the issue that affects Gamescope.
[1](https://github.com/Plagman/gamescope/issues/624)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c +7 -43
@@ -1369,7 +1369,7 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane, {struct amdgpu_device *adev =drm_to_adev (plane->dev);const struct drm_format_info *info =drm_format_info (format); -struct hw_asic_id asic_id = adev->dm.dc->ctx->asic_id; +int i;enum dm_micro_swizzle microtile =modifier_gfx9_swizzle_mode (modifier) &3 ;
@@ -1386,49 +1386,13 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane,return true; } -/* check if swizzle mode is supported by this version of DCN */ -switch (asic_id.chip_family) { -case FAMILY_SI : -case FAMILY_CI : -case FAMILY_KV : -case FAMILY_CZ : -case FAMILY_VI : -/* asics before AI does not have modifier support */ -return false; -case FAMILY_AI : -case FAMILY_RV : -case FAMILY_NV : -case FAMILY_VGH : -case FAMILY_YELLOW_CARP : -case AMDGPU_FAMILY_GC_10_3_6 : -case AMDGPU_FAMILY_GC_10_3_7 : -switch (AMD_FMT_MOD_GET (TILE , modifier)) { -case AMD_FMT_MOD_TILE_GFX9_64K_R_X : -case AMD_FMT_MOD_TILE_GFX9_64K_D_X : -case AMD_FMT_MOD_TILE_GFX9_64K_S_X : -case AMD_FMT_MOD_TILE_GFX9_64K_D : -return true; -default : -return false; - } -break ; -case AMDGPU_FAMILY_GC_11_0_0 : -case AMDGPU_FAMILY_GC_11_0_1 : -switch (AMD_FMT_MOD_GET (TILE , modifier)) { -case AMD_FMT_MOD_TILE_GFX11_256K_R_X : -case AMD_FMT_MOD_TILE_GFX9_64K_R_X : -case AMD_FMT_MOD_TILE_GFX9_64K_D_X : -case AMD_FMT_MOD_TILE_GFX9_64K_S_X : -case AMD_FMT_MOD_TILE_GFX9_64K_D : -return true; -default : -return false; - } -break ; -default : -ASSERT (0 );/* Unknown asic */ -break ; +/* Check that the modifier is on the list of the plane's supported modifiers. */ +for (i =0 ; i < plane->modifier_count; i++) { +if (modifier == plane->modifiers[i]) +break ; } +if (i == plane->modifier_count) +return false;/* * For D swizzle the canonical modifier depends on the bpp, so check
Quoted 6 lines · El mié, 4 ene 2023 a la(s) 11:37, <[email protected]> escribió:
The patch below does not apply to the 6.0-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Not sure why I'm getting this one, but this patch is already applied to mainline in the 6.1 cycle. And is in stable from v6.0.12 IIRC.
Cheers
--
Joaquín I. Aramendía