|
@@ -2195,7 +2195,7 @@ intel_pin_and_fence_fb_obj(struct drm_framebuffer *fb, unsigned int rotation)
|
|
|
|
|
|
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);
|
|
|
|
|
@@ -2356,13 +2356,13 @@ static u32 intel_adjust_tile_offset(int *x, int *y,
|
|
|
|
|
|
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;
|
|
@@ -2405,7 +2405,7 @@ static u32 _intel_compute_tile_offset(const struct drm_i915_private *dev_priv,
|
|
|
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;
|
|
|
|
|
@@ -2464,7 +2464,7 @@ u32 intel_compute_tile_offset(int *x, int *y,
|
|
|
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);
|
|
@@ -2546,13 +2546,13 @@ intel_fill_fb_info(struct drm_i915_private *dev_priv,
|
|
|
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);
|
|
@@ -2711,7 +2711,7 @@ intel_alloc_initial_plane_obj(struct intel_crtc *crtc,
|
|
|
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),
|
|
@@ -2841,7 +2841,7 @@ static int skl_max_plane_width(const struct drm_framebuffer *fb, int plane,
|
|
|
{
|
|
|
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) {
|
|
@@ -2872,7 +2872,7 @@ static int skl_max_plane_width(const struct drm_framebuffer *fb, int plane,
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
- MISSING_CASE(fb->modifier[plane]);
|
|
|
+ MISSING_CASE(fb->modifier);
|
|
|
}
|
|
|
|
|
|
return 2048;
|
|
@@ -2900,7 +2900,7 @@ static int skl_check_main_surface(struct intel_plane_state *plane_state)
|
|
|
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
|
|
@@ -2917,7 +2917,7 @@ static int skl_check_main_surface(struct intel_plane_state *plane_state)
|
|
|
*
|
|
|
* 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]) {
|
|
@@ -3067,7 +3067,7 @@ static void i9xx_update_primary_plane(struct drm_plane *primary,
|
|
|
}
|
|
|
|
|
|
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))
|
|
@@ -3169,7 +3169,7 @@ static void ironlake_update_primary_plane(struct drm_plane *primary,
|
|
|
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))
|
|
@@ -3278,9 +3278,9 @@ u32 skl_plane_stride(const struct drm_framebuffer *fb, int plane,
|
|
|
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);
|
|
|
}
|
|
|
|
|
@@ -3399,7 +3399,7 @@ static void skylake_update_primary_plane(struct drm_plane *plane,
|
|
|
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);
|
|
|
|
|
@@ -8730,7 +8730,7 @@ i9xx_get_initial_plane_config(struct intel_crtc *crtc,
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -8759,7 +8759,7 @@ i9xx_get_initial_plane_config(struct intel_crtc *crtc,
|
|
|
|
|
|
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;
|
|
|
|
|
@@ -9773,17 +9773,17 @@ skylake_get_initial_plane_config(struct intel_crtc *crtc,
|
|
|
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);
|
|
@@ -9800,13 +9800,13 @@ skylake_get_initial_plane_config(struct intel_crtc *crtc,
|
|
|
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;
|
|
|
|
|
@@ -9874,7 +9874,7 @@ ironlake_get_initial_plane_config(struct intel_crtc *crtc,
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -9903,7 +9903,7 @@ ironlake_get_initial_plane_config(struct intel_crtc *crtc,
|
|
|
|
|
|
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;
|
|
|
|
|
@@ -11818,7 +11818,7 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
|
|
|
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.
|
|
@@ -11851,7 +11851,7 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
|
|
|
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,
|
|
@@ -11957,7 +11957,7 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
|
|
|
|
|
|
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));
|
|
|
|
|
@@ -12003,7 +12003,7 @@ static void skl_do_mmio_flip(struct intel_crtc *intel_crtc,
|
|
|
|
|
|
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:
|
|
@@ -12016,7 +12016,7 @@ static void skl_do_mmio_flip(struct intel_crtc *intel_crtc,
|
|
|
ctl |= PLANE_CTL_TILED_YF;
|
|
|
break;
|
|
|
default:
|
|
|
- MISSING_CASE(fb->modifier[0]);
|
|
|
+ MISSING_CASE(fb->modifier);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -12041,7 +12041,7 @@ static void ilk_do_mmio_flip(struct intel_crtc *intel_crtc,
|
|
|
|
|
|
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;
|
|
@@ -12256,7 +12256,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
|
|
|
|
|
|
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)) {
|
|
@@ -12412,7 +12412,7 @@ static bool intel_wm_need_update(struct drm_plane *plane,
|
|
|
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) ||
|
|
@@ -15106,7 +15106,7 @@ intel_check_cursor_plane(struct drm_plane *plane,
|
|
|
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;
|
|
|
}
|