.formats = format_list, \
        .format_count = ARRAY_SIZE(format_list)
 
+       u8 tiling;
        u8 is_linear:1;
 
        struct {
        {
                .modifier = I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
                .display_ver = { 12, 13 },
+               .tiling = I915_TILING_Y,
 
                .ccs.type = INTEL_CCS_MC,
 
        }, {
                .modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
                .display_ver = { 12, 13 },
+               .tiling = I915_TILING_Y,
 
                .ccs.type = INTEL_CCS_RC,
 
        }, {
                .modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
                .display_ver = { 12, 13 },
+               .tiling = I915_TILING_Y,
 
                .ccs.type = INTEL_CCS_RC_CC,
 
        }, {
                .modifier = I915_FORMAT_MOD_Yf_TILED_CCS,
                .display_ver = { 9, 11 },
+               .tiling = I915_TILING_NONE,
 
                .ccs.type = INTEL_CCS_RC,
 
        }, {
                .modifier = I915_FORMAT_MOD_Y_TILED_CCS,
                .display_ver = { 9, 11 },
+               .tiling = I915_TILING_Y,
 
                .ccs.type = INTEL_CCS_RC,
 
        }, {
                .modifier = I915_FORMAT_MOD_Yf_TILED,
                .display_ver = { 9, 11 },
+               .tiling = I915_TILING_NONE,
        }, {
                .modifier = I915_FORMAT_MOD_Y_TILED,
                .display_ver = { 9, 13 },
+               .tiling = I915_TILING_Y,
        }, {
                .modifier = I915_FORMAT_MOD_X_TILED,
                .display_ver = DISPLAY_VER_ALL,
+               .tiling = I915_TILING_X,
        }, {
                .modifier = DRM_FORMAT_MOD_LINEAR,
                .display_ver = DISPLAY_VER_ALL,
+               .tiling = I915_TILING_NONE,
 
                .is_linear = true,
        },
        return NULL;
 }
 
+static const struct intel_modifier_desc *lookup_modifier(u64 modifier)
+{
+       const struct intel_modifier_desc *md = lookup_modifier_or_null(modifier);
+
+       if (WARN_ON(!md))
+               return &intel_modifiers[0];
+
+       return md;
+}
+
 static const struct drm_format_info *
 lookup_format_info(const struct drm_format_info formats[],
                   int num_formats, u32 format)
 
 static unsigned int intel_fb_modifier_to_tiling(u64 fb_modifier)
 {
-       switch (fb_modifier) {
-       case I915_FORMAT_MOD_X_TILED:
-               return I915_TILING_X;
-       case I915_FORMAT_MOD_Y_TILED:
-       case I915_FORMAT_MOD_Y_TILED_CCS:
-       case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
-       case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
-       case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
-               return I915_TILING_Y;
-       default:
-               return I915_TILING_NONE;
-       }
+       return lookup_modifier(fb_modifier)->tiling;
 }
 
 unsigned int intel_cursor_alignment(const struct drm_i915_private *i915)