WARN_ON(!mutex_is_locked(&dev->struct_mutex));
 
-       alignment = intel_surf_alignment(dev_priv, fb->modifier[0]);
+       alignment = intel_surf_alignment(dev_priv, fb->modifier);
 
        intel_fill_fb_ggtt_view(&view, fb, rotation);
 
 
        WARN_ON(new_offset > old_offset);
 
-       if (fb->modifier[plane] != DRM_FORMAT_MOD_NONE) {
+       if (fb->modifier != DRM_FORMAT_MOD_NONE) {
                unsigned int tile_size, tile_width, tile_height;
                unsigned int pitch_tiles;
 
                tile_size = intel_tile_size(dev_priv);
                intel_tile_dims(dev_priv, &tile_width, &tile_height,
-                               fb->modifier[plane], cpp);
+                               fb->modifier, cpp);
 
                if (drm_rotation_90_or_270(rotation)) {
                        pitch_tiles = pitch / tile_height;
                                      unsigned int rotation,
                                      u32 alignment)
 {
-       uint64_t fb_modifier = fb->modifier[plane];
+       uint64_t fb_modifier = fb->modifier;
        unsigned int cpp = drm_format_plane_cpp(fb->pixel_format, plane);
        u32 offset, offset_aligned;
 
        if (fb->pixel_format == DRM_FORMAT_NV12 && plane == 1)
                alignment = 4096;
        else
-               alignment = intel_surf_alignment(dev_priv, fb->modifier[plane]);
+               alignment = intel_surf_alignment(dev_priv, fb->modifier);
 
        return _intel_compute_tile_offset(dev_priv, x, y, fb, plane, pitch,
                                          rotation, alignment);
                                                    DRM_ROTATE_0, tile_size);
                offset /= tile_size;
 
-               if (fb->modifier[i] != DRM_FORMAT_MOD_NONE) {
+               if (fb->modifier != DRM_FORMAT_MOD_NONE) {
                        unsigned int tile_width, tile_height;
                        unsigned int pitch_tiles;
                        struct drm_rect r;
 
                        intel_tile_dims(dev_priv, &tile_width, &tile_height,
-                                       fb->modifier[i], cpp);
+                                       fb->modifier, cpp);
 
                        rot_info->plane[i].offset = offset;
                        rot_info->plane[i].stride = DIV_ROUND_UP(fb->pitches[i], tile_width * cpp);
        mode_cmd.width = fb->width;
        mode_cmd.height = fb->height;
        mode_cmd.pitches[0] = fb->pitches[0];
-       mode_cmd.modifier[0] = fb->modifier[0];
+       mode_cmd.modifier[0] = fb->modifier;
        mode_cmd.flags = DRM_MODE_FB_MODIFIERS;
 
        if (intel_framebuffer_init(dev, to_intel_framebuffer(fb),
 {
        int cpp = drm_format_plane_cpp(fb->pixel_format, plane);
 
-       switch (fb->modifier[plane]) {
+       switch (fb->modifier) {
        case DRM_FORMAT_MOD_NONE:
        case I915_FORMAT_MOD_X_TILED:
                switch (cpp) {
                }
                break;
        default:
-               MISSING_CASE(fb->modifier[plane]);
+               MISSING_CASE(fb->modifier);
        }
 
        return 2048;
        intel_add_fb_offsets(&x, &y, plane_state, 0);
        offset = intel_compute_tile_offset(&x, &y, plane_state, 0);
 
-       alignment = intel_surf_alignment(dev_priv, fb->modifier[0]);
+       alignment = intel_surf_alignment(dev_priv, fb->modifier);
 
        /*
         * AUX surface offset is specified as the distance from the
         *
         * TODO: linear and Y-tiled seem fine, Yf untested,
         */
-       if (fb->modifier[0] == I915_FORMAT_MOD_X_TILED) {
+       if (fb->modifier == I915_FORMAT_MOD_X_TILED) {
                int cpp = drm_format_plane_cpp(fb->pixel_format, 0);
 
                while ((x + w) * cpp > fb->pitches[0]) {
        }
 
        if (INTEL_GEN(dev_priv) >= 4 &&
-           fb->modifier[0] == I915_FORMAT_MOD_X_TILED)
+           fb->modifier == I915_FORMAT_MOD_X_TILED)
                dspcntr |= DISPPLANE_TILED;
 
        if (IS_G4X(dev_priv))
                BUG();
        }
 
-       if (fb->modifier[0] == I915_FORMAT_MOD_X_TILED)
+       if (fb->modifier == I915_FORMAT_MOD_X_TILED)
                dspcntr |= DISPPLANE_TILED;
 
        if (!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv))
        if (drm_rotation_90_or_270(rotation)) {
                int cpp = drm_format_plane_cpp(fb->pixel_format, plane);
 
-               stride /= intel_tile_height(dev_priv, fb->modifier[0], cpp);
+               stride /= intel_tile_height(dev_priv, fb->modifier, cpp);
        } else {
-               stride /= intel_fb_stride_alignment(dev_priv, fb->modifier[0],
+               stride /= intel_fb_stride_alignment(dev_priv, fb->modifier,
                                                    fb->pixel_format);
        }
 
                    PLANE_CTL_PIPE_CSC_ENABLE;
 
        plane_ctl |= skl_plane_ctl_format(fb->pixel_format);
-       plane_ctl |= skl_plane_ctl_tiling(fb->modifier[0]);
+       plane_ctl |= skl_plane_ctl_tiling(fb->modifier);
        plane_ctl |= PLANE_CTL_PLANE_GAMMA_DISABLE;
        plane_ctl |= skl_plane_ctl_rotation(rotation);
 
        if (INTEL_INFO(dev)->gen >= 4) {
                if (val & DISPPLANE_TILED) {
                        plane_config->tiling = I915_TILING_X;
-                       fb->modifier[0] = I915_FORMAT_MOD_X_TILED;
+                       fb->modifier = I915_FORMAT_MOD_X_TILED;
                }
        }
 
 
        aligned_height = intel_fb_align_height(dev, fb->height,
                                               fb->pixel_format,
-                                              fb->modifier[0]);
+                                              fb->modifier);
 
        plane_config->size = fb->pitches[0] * aligned_height;
 
        tiling = val & PLANE_CTL_TILED_MASK;
        switch (tiling) {
        case PLANE_CTL_TILED_LINEAR:
-               fb->modifier[0] = DRM_FORMAT_MOD_NONE;
+               fb->modifier = DRM_FORMAT_MOD_NONE;
                break;
        case PLANE_CTL_TILED_X:
                plane_config->tiling = I915_TILING_X;
-               fb->modifier[0] = I915_FORMAT_MOD_X_TILED;
+               fb->modifier = I915_FORMAT_MOD_X_TILED;
                break;
        case PLANE_CTL_TILED_Y:
-               fb->modifier[0] = I915_FORMAT_MOD_Y_TILED;
+               fb->modifier = I915_FORMAT_MOD_Y_TILED;
                break;
        case PLANE_CTL_TILED_YF:
-               fb->modifier[0] = I915_FORMAT_MOD_Yf_TILED;
+               fb->modifier = I915_FORMAT_MOD_Yf_TILED;
                break;
        default:
                MISSING_CASE(tiling);
        fb->width = ((val >> 0) & 0x1fff) + 1;
 
        val = I915_READ(PLANE_STRIDE(pipe, 0));
-       stride_mult = intel_fb_stride_alignment(dev_priv, fb->modifier[0],
+       stride_mult = intel_fb_stride_alignment(dev_priv, fb->modifier,
                                                fb->pixel_format);
        fb->pitches[0] = (val & 0x3ff) * stride_mult;
 
        aligned_height = intel_fb_align_height(dev, fb->height,
                                               fb->pixel_format,
-                                              fb->modifier[0]);
+                                              fb->modifier);
 
        plane_config->size = fb->pitches[0] * aligned_height;
 
        if (INTEL_INFO(dev)->gen >= 4) {
                if (val & DISPPLANE_TILED) {
                        plane_config->tiling = I915_TILING_X;
-                       fb->modifier[0] = I915_FORMAT_MOD_X_TILED;
+                       fb->modifier = I915_FORMAT_MOD_X_TILED;
                }
        }
 
 
        aligned_height = intel_fb_align_height(dev, fb->height,
                                               fb->pixel_format,
-                                              fb->modifier[0]);
+                                              fb->modifier);
 
        plane_config->size = fb->pitches[0] * aligned_height;
 
                        MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
        intel_ring_emit(ring, fb->pitches[0]);
        intel_ring_emit(ring, intel_crtc->flip_work->gtt_offset |
-                       intel_fb_modifier_to_tiling(fb->modifier[0]));
+                       intel_fb_modifier_to_tiling(fb->modifier));
 
        /* XXX Enabling the panel-fitter across page-flip is so far
         * untested on non-native modes, so ignore it for now.
        intel_ring_emit(ring, MI_DISPLAY_FLIP |
                        MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
        intel_ring_emit(ring, fb->pitches[0] |
-                       intel_fb_modifier_to_tiling(fb->modifier[0]));
+                       intel_fb_modifier_to_tiling(fb->modifier));
        intel_ring_emit(ring, intel_crtc->flip_work->gtt_offset);
 
        /* Contrary to the suggestions in the documentation,
 
        intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | plane_bit);
        intel_ring_emit(ring, fb->pitches[0] |
-                       intel_fb_modifier_to_tiling(fb->modifier[0]));
+                       intel_fb_modifier_to_tiling(fb->modifier));
        intel_ring_emit(ring, intel_crtc->flip_work->gtt_offset);
        intel_ring_emit(ring, (MI_NOOP));
 
 
        ctl = I915_READ(PLANE_CTL(pipe, 0));
        ctl &= ~PLANE_CTL_TILED_MASK;
-       switch (fb->modifier[0]) {
+       switch (fb->modifier) {
        case DRM_FORMAT_MOD_NONE:
                break;
        case I915_FORMAT_MOD_X_TILED:
                ctl |= PLANE_CTL_TILED_YF;
                break;
        default:
-               MISSING_CASE(fb->modifier[0]);
+               MISSING_CASE(fb->modifier);
        }
 
        /*
 
        dspcntr = I915_READ(reg);
 
-       if (fb->modifier[0] == I915_FORMAT_MOD_X_TILED)
+       if (fb->modifier == I915_FORMAT_MOD_X_TILED)
                dspcntr |= DISPPLANE_TILED;
        else
                dspcntr &= ~DISPPLANE_TILED;
 
        if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
                engine = dev_priv->engine[BCS];
-               if (fb->modifier[0] != old_fb->modifier[0])
+               if (fb->modifier != old_fb->modifier)
                        /* vlv: DISPLAY_FLIP fails to change tiling */
                        engine = NULL;
        } else if (IS_IVYBRIDGE(dev_priv) || IS_HASWELL(dev_priv)) {
        if (!cur->base.fb || !new->base.fb)
                return false;
 
-       if (cur->base.fb->modifier[0] != new->base.fb->modifier[0] ||
+       if (cur->base.fb->modifier != new->base.fb->modifier ||
            cur->base.rotation != new->base.rotation ||
            drm_rect_width(&new->base.src) != drm_rect_width(&cur->base.src) ||
            drm_rect_height(&new->base.src) != drm_rect_height(&cur->base.src) ||
                return -ENOMEM;
        }
 
-       if (fb->modifier[0] != DRM_FORMAT_MOD_NONE) {
+       if (fb->modifier != DRM_FORMAT_MOD_NONE) {
                DRM_DEBUG_KMS("cursor cannot be tiled\n");
                return -EINVAL;
        }
 
                latency = dev_priv->wm.skl_latency[level];
 
                if (skl_needs_memory_bw_wa(intel_state) &&
-                   plane->base.state->fb->modifier[0] ==
+                   plane->base.state->fb->modifier ==
                    I915_FORMAT_MOD_X_TILED)
                        latency += 15;
 
                return 0;
 
        /* For Non Y-tile return 8-blocks */
-       if (fb->modifier[0] != I915_FORMAT_MOD_Y_TILED &&
-           fb->modifier[0] != I915_FORMAT_MOD_Yf_TILED)
+       if (fb->modifier != I915_FORMAT_MOD_Y_TILED &&
+           fb->modifier != I915_FORMAT_MOD_Yf_TILED)
                return 8;
 
        src_w = drm_rect_width(&intel_pstate->base.src) >> 16;
                return 0;
        }
 
-       if (apply_memory_bw_wa && fb->modifier[0] == I915_FORMAT_MOD_X_TILED)
+       if (apply_memory_bw_wa && fb->modifier == I915_FORMAT_MOD_X_TILED)
                latency += 15;
 
        width = drm_rect_width(&intel_pstate->base.src) >> 16;
        }
 
        plane_bytes_per_line = width * cpp;
-       if (fb->modifier[0] == I915_FORMAT_MOD_Y_TILED ||
-           fb->modifier[0] == I915_FORMAT_MOD_Yf_TILED) {
+       if (fb->modifier == I915_FORMAT_MOD_Y_TILED ||
+           fb->modifier == I915_FORMAT_MOD_Yf_TILED) {
                plane_blocks_per_line =
                      DIV_ROUND_UP(plane_bytes_per_line * y_min_scanlines, 512);
                plane_blocks_per_line /= y_min_scanlines;
-       } else if (fb->modifier[0] == DRM_FORMAT_MOD_NONE) {
+       } else if (fb->modifier == DRM_FORMAT_MOD_NONE) {
                plane_blocks_per_line = DIV_ROUND_UP(plane_bytes_per_line, 512)
                                        + 1;
        } else {
        if (apply_memory_bw_wa)
                y_tile_minimum *= 2;
 
-       if (fb->modifier[0] == I915_FORMAT_MOD_Y_TILED ||
-           fb->modifier[0] == I915_FORMAT_MOD_Yf_TILED) {
+       if (fb->modifier == I915_FORMAT_MOD_Y_TILED ||
+           fb->modifier == I915_FORMAT_MOD_Yf_TILED) {
                selected_result = max(method2, y_tile_minimum);
        } else {
                if ((cpp * cstate->base.adjusted_mode.crtc_htotal / 512 < 1) &&
        res_lines = DIV_ROUND_UP(selected_result, plane_blocks_per_line);
 
        if (level >= 1 && level <= 7) {
-               if (fb->modifier[0] == I915_FORMAT_MOD_Y_TILED ||
-                   fb->modifier[0] == I915_FORMAT_MOD_Yf_TILED) {
+               if (fb->modifier == I915_FORMAT_MOD_Y_TILED ||
+                   fb->modifier == I915_FORMAT_MOD_Yf_TILED) {
                        res_blocks += y_tile_minimum;
                        res_lines += y_min_scanlines;
                } else {
 
                PLANE_CTL_PIPE_CSC_ENABLE;
 
        plane_ctl |= skl_plane_ctl_format(fb->pixel_format);
-       plane_ctl |= skl_plane_ctl_tiling(fb->modifier[0]);
+       plane_ctl |= skl_plane_ctl_tiling(fb->modifier);
 
        plane_ctl |= skl_plane_ctl_rotation(rotation);
 
         */
        sprctl |= SP_GAMMA_ENABLE;
 
-       if (fb->modifier[0] == I915_FORMAT_MOD_X_TILED)
+       if (fb->modifier == I915_FORMAT_MOD_X_TILED)
                sprctl |= SP_TILED;
 
        /* Sizes are 0 based */
        I915_WRITE(SPSTRIDE(pipe, plane), fb->pitches[0]);
        I915_WRITE(SPPOS(pipe, plane), (crtc_y << 16) | crtc_x);
 
-       if (fb->modifier[0] == I915_FORMAT_MOD_X_TILED)
+       if (fb->modifier == I915_FORMAT_MOD_X_TILED)
                I915_WRITE(SPTILEOFF(pipe, plane), (y << 16) | x);
        else
                I915_WRITE(SPLINOFF(pipe, plane), linear_offset);
         */
        sprctl |= SPRITE_GAMMA_ENABLE;
 
-       if (fb->modifier[0] == I915_FORMAT_MOD_X_TILED)
+       if (fb->modifier == I915_FORMAT_MOD_X_TILED)
                sprctl |= SPRITE_TILED;
 
        if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
         * register */
        if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
                I915_WRITE(SPROFFSET(pipe), (y << 16) | x);
-       else if (fb->modifier[0] == I915_FORMAT_MOD_X_TILED)
+       else if (fb->modifier == I915_FORMAT_MOD_X_TILED)
                I915_WRITE(SPRTILEOFF(pipe), (y << 16) | x);
        else
                I915_WRITE(SPRLINOFF(pipe), linear_offset);
         */
        dvscntr |= DVS_GAMMA_ENABLE;
 
-       if (fb->modifier[0] == I915_FORMAT_MOD_X_TILED)
+       if (fb->modifier == I915_FORMAT_MOD_X_TILED)
                dvscntr |= DVS_TILED;
 
        if (IS_GEN6(dev_priv))
        I915_WRITE(DVSSTRIDE(pipe), fb->pitches[0]);
        I915_WRITE(DVSPOS(pipe), (crtc_y << 16) | crtc_x);
 
-       if (fb->modifier[0] == I915_FORMAT_MOD_X_TILED)
+       if (fb->modifier == I915_FORMAT_MOD_X_TILED)
                I915_WRITE(DVSTILEOFF(pipe), (y << 16) | x);
        else
                I915_WRITE(DVSLINOFF(pipe), linear_offset);