[PATCH 06/13] drm/amdgpu/display: handle gfx12 in dm_check_cursor_fb
Aurabindo Pillai
aurabindo.pillai at amd.com
Wed Jun 26 20:16:26 UTC 2024
Reviewed-by: Aurabindo Pillai <aurabindo.pillai at amd.com>
On 6/26/24 2:31 PM, Marek Olšák wrote:
> Checking SWIZZLE_MODE has undefined behavior on gfx12.
>
> Signed-off-by: Marek Olšák <marek.olsak at amd.com>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 8f99ba6aa6a7..c3347e8bee54 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -10666,12 +10666,14 @@ static int dm_check_cursor_fb(struct amdgpu_crtc *new_acrtc,
> * check tiling flags when the FB doesn't have a modifier.
> */
> if (!(fb->flags & DRM_MODE_FB_MODIFIERS)) {
> - if (adev->family < AMDGPU_FAMILY_AI) {
> + if (adev->family >= AMDGPU_FAMILY_GC_12_0_0) {
> + linear = AMDGPU_TILING_GET(afb->tiling_flags, GFX12_SWIZZLE_MODE) == 0;
> + } else if (adev->family >= AMDGPU_FAMILY_AI) {
> + linear = AMDGPU_TILING_GET(afb->tiling_flags, SWIZZLE_MODE) == 0;
> + } else {
> linear = AMDGPU_TILING_GET(afb->tiling_flags, ARRAY_MODE) != DC_ARRAY_2D_TILED_THIN1 &&
> AMDGPU_TILING_GET(afb->tiling_flags, ARRAY_MODE) != DC_ARRAY_1D_TILED_THIN1 &&
> AMDGPU_TILING_GET(afb->tiling_flags, MICRO_TILE_MODE) == 0;
> - } else {
> - linear = AMDGPU_TILING_GET(afb->tiling_flags, SWIZZLE_MODE) == 0;
> }
> if (!linear) {
> DRM_DEBUG_ATOMIC("Cursor FB not linear");
--
--
Thanks & Regards,
Aurabindo Pillai
More information about the amd-gfx
mailing list