All supported GPU generations now support DRM format modifiers.
Remove all code from amdgpu_dm that dealt with tiling flags.

Note that the legacy non-DC display code still relies on
tiling flags, so we can't remove them outside of DC.

Signed-off-by: Timur Kristóf <[email protected]>
Tested-by: Link Mauve <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
---
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 29 +---------
 .../amd/display/amdgpu_dm/amdgpu_dm_plane.c   | 53 +++----------------
 .../amd/display/amdgpu_dm/amdgpu_dm_plane.h   |  1 -
 3 files changed, 8 insertions(+), 75 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 c41f017fe8f2..a9cb085d7029 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -6299,7 +6299,6 @@ fill_plane_color_attributes(const struct drm_plane_state 
*plane_state,
 static int
 fill_dc_plane_info_and_addr(struct amdgpu_device *adev,
                            const struct drm_plane_state *plane_state,
-                           const u64 tiling_flags,
                            struct dc_plane_info *plane_info,
                            struct dc_plane_address *address,
                            bool tmz_surface)
@@ -6397,7 +6396,7 @@ fill_dc_plane_info_and_addr(struct amdgpu_device *adev,
                return ret;
 
        ret = amdgpu_dm_plane_fill_plane_buffer_attributes(adev, afb, 
plane_info->format,
-                                          plane_info->rotation, tiling_flags,
+                                          plane_info->rotation,
                                           &plane_info->tiling_info,
                                           &plane_info->plane_size,
                                           &plane_info->dcc, address,
@@ -6433,7 +6432,6 @@ static int fill_dc_plane_attributes(struct amdgpu_device 
*adev,
        dc_plane_state->scaling_quality = scaling_info.scaling_quality;
 
        ret = fill_dc_plane_info_and_addr(adev, plane_state,
-                                         afb->tiling_flags,
                                          &plane_info,
                                          &dc_plane_state->address,
                                          afb->tmz_surface);
@@ -10221,7 +10219,6 @@ static void amdgpu_dm_commit_planes(struct 
drm_atomic_state *state,
 
                fill_dc_plane_info_and_addr(
                        dm->adev, new_plane_state,
-                       afb->tiling_flags,
                        &bundle->plane_infos[planes_count],
                        &bundle->flip_addrs[planes_count].address,
                        afb->tmz_surface);
@@ -12123,8 +12120,7 @@ static bool should_reset_plane(struct drm_atomic_state 
*state,
                new_afb = (struct amdgpu_framebuffer *)new_other_state->fb;
 
                /* Tiling and DCC changes also require bandwidth updates. */
-               if (old_afb->tiling_flags != new_afb->tiling_flags ||
-                   old_afb->base.modifier != new_afb->base.modifier)
+               if (old_afb->base.modifier != new_afb->base.modifier)
                        return true;
        }
 
@@ -12136,9 +12132,7 @@ static int dm_check_cursor_fb(struct amdgpu_crtc 
*new_acrtc,
                              struct drm_framebuffer *fb)
 {
        struct amdgpu_device *adev = drm_to_adev(new_acrtc->base.dev);
-       struct amdgpu_framebuffer *afb = to_amdgpu_framebuffer(fb);
        unsigned int pitch;
-       bool linear;
 
        if (fb->width > new_acrtc->max_cursor_width ||
            fb->height > new_acrtc->max_cursor_height) {
@@ -12173,25 +12167,6 @@ static int dm_check_cursor_fb(struct amdgpu_crtc 
*new_acrtc,
                return -EINVAL;
        }
 
-       /* Core DRM takes care of checking FB modifiers, so we only need to
-        * check tiling flags when the FB doesn't have a modifier.
-        */
-       if (!(fb->flags & DRM_MODE_FB_MODIFIERS)) {
-               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;
-               }
-               if (!linear) {
-                       drm_dbg_atomic(adev_to_drm(adev), "Cursor FB not 
linear");
-                       return -EINVAL;
-               }
-       }
-
        return 0;
 }
 
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
index 24e3510613ce..c5203d7b1a44 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
@@ -190,39 +190,6 @@ static unsigned int 
amdgpu_dm_plane_modifier_gfx9_swizzle_mode(uint64_t modifier
        return AMD_FMT_MOD_GET(TILE, modifier);
 }
 
-static void amdgpu_dm_plane_fill_gfx8_tiling_info_from_flags(struct 
dc_tiling_info *tiling_info,
-                                                            uint64_t 
tiling_flags)
-{
-       /* Fill GFX8 params */
-       if (AMDGPU_TILING_GET(tiling_flags, ARRAY_MODE) == 
DC_ARRAY_2D_TILED_THIN1) {
-               unsigned int bankw, bankh, mtaspect, tile_split, num_banks;
-
-               bankw = AMDGPU_TILING_GET(tiling_flags, BANK_WIDTH);
-               bankh = AMDGPU_TILING_GET(tiling_flags, BANK_HEIGHT);
-               mtaspect = AMDGPU_TILING_GET(tiling_flags, MACRO_TILE_ASPECT);
-               tile_split = AMDGPU_TILING_GET(tiling_flags, TILE_SPLIT);
-               num_banks = AMDGPU_TILING_GET(tiling_flags, NUM_BANKS);
-
-               tiling_info->gfxversion = DcGfxVersion8;
-               /* XXX fix me for VI */
-               tiling_info->gfx8.num_banks = num_banks;
-               tiling_info->gfx8.array_mode =
-                               DC_ARRAY_2D_TILED_THIN1;
-               tiling_info->gfx8.tile_split = tile_split;
-               tiling_info->gfx8.bank_width = bankw;
-               tiling_info->gfx8.bank_height = bankh;
-               tiling_info->gfx8.tile_aspect = mtaspect;
-               tiling_info->gfx8.tile_mode =
-                               DC_ADDR_SURF_MICRO_TILING_DISPLAY;
-       } else if (AMDGPU_TILING_GET(tiling_flags, ARRAY_MODE)
-                       == DC_ARRAY_1D_TILED_THIN1) {
-               tiling_info->gfx8.array_mode = DC_ARRAY_1D_TILED_THIN1;
-       }
-
-       tiling_info->gfx8.pipe_config =
-                       AMDGPU_TILING_GET(tiling_flags, PIPE_CONFIG);
-}
-
 static int amdgpu_dm_plane_fill_gfx6_tiling_info_from_modifier(struct 
dc_tiling_info *tiling_info,
                                                               uint64_t 
modifier)
 {
@@ -1127,7 +1094,6 @@ int amdgpu_dm_plane_fill_plane_buffer_attributes(struct 
amdgpu_device *adev,
                             const struct amdgpu_framebuffer *afb,
                             const enum surface_pixel_format format,
                             const enum dc_rotation_angle rotation,
-                            const uint64_t tiling_flags,
                             struct dc_tiling_info *tiling_info,
                             struct plane_size *plane_size,
                             struct dc_plane_dcc_param *dcc,
@@ -1188,28 +1154,22 @@ int amdgpu_dm_plane_fill_plane_buffer_attributes(struct 
amdgpu_device *adev,
                        upper_32_bits(chroma_addr);
        }
 
-       if (adev->family == AMDGPU_FAMILY_GC_12_0_0) {
+       if (adev->family == AMDGPU_FAMILY_GC_12_0_0)
                ret = 
amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(adev, afb, format,
                                                                                
 rotation, plane_size,
                                                                                
 tiling_info, dcc,
                                                                                
 address);
-               if (ret)
-                       return ret;
-       } else if (adev->family >= AMDGPU_FAMILY_AI) {
+       else if (adev->family >= AMDGPU_FAMILY_AI)
                ret = 
amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(adev, afb, format,
                                                                                
rotation, plane_size,
                                                                                
tiling_info, dcc,
                                                                                
address);
-               if (ret)
-                       return ret;
-       } else if (!afb->base.modifier) {
-               amdgpu_dm_plane_fill_gfx8_tiling_info_from_flags(tiling_info, 
tiling_flags);
-       } else {
+       else
                ret = 
amdgpu_dm_plane_fill_gfx6_tiling_info_from_modifier(tiling_info,
                                                                          
afb->base.modifier);
-               if (ret)
-                       return ret;
-       }
+
+       if (ret)
+               return ret;
 
        return 0;
 }
@@ -1296,7 +1256,6 @@ static int amdgpu_dm_plane_helper_prepare_fb(struct 
drm_plane *plane,
 
                amdgpu_dm_plane_fill_plane_buffer_attributes(
                        adev, afb, plane_state->format, plane_state->rotation,
-                       afb->tiling_flags,
                        &plane_state->tiling_info, &plane_state->plane_size,
                        &plane_state->dcc, &plane_state->address,
                        afb->tmz_surface);
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
index ea2619b507db..91c05b744b98 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
@@ -46,7 +46,6 @@ int amdgpu_dm_plane_fill_plane_buffer_attributes(struct 
amdgpu_device *adev,
                                 const struct amdgpu_framebuffer *afb,
                                 const enum surface_pixel_format format,
                                 const enum dc_rotation_angle rotation,
-                                const uint64_t tiling_flags,
                                 struct dc_tiling_info *tiling_info,
                                 struct plane_size *plane_size,
                                 struct dc_plane_dcc_param *dcc,
-- 
2.54.0

Reply via email to