mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
drm/i915: Move CCS stride alignment W/A inside intel_fb_stride_alignment
Easier to read if all the alignment changes are in one place and contained within a function. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Matt Roper <matthew.d.roper@intel.com> Cc: Mika Kahola <mika.kahola@intel.com> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191221120543.22816-3-imre.deak@intel.com
This commit is contained in:
parent
021a411684
commit
86f236bbbd
@ -2590,7 +2590,22 @@ intel_fb_stride_alignment(const struct drm_framebuffer *fb, int color_plane)
|
|||||||
else
|
else
|
||||||
return 64;
|
return 64;
|
||||||
} else {
|
} else {
|
||||||
return intel_tile_width_bytes(fb, color_plane);
|
u32 tile_width = intel_tile_width_bytes(fb, color_plane);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Display WA #0531: skl,bxt,kbl,glk
|
||||||
|
*
|
||||||
|
* Render decompression and plane width > 3840
|
||||||
|
* combined with horizontal panning requires the
|
||||||
|
* plane stride to be a multiple of 4. We'll just
|
||||||
|
* require the entire fb to accommodate that to avoid
|
||||||
|
* potential runtime errors at plane configuration time.
|
||||||
|
*/
|
||||||
|
if (IS_GEN(dev_priv, 9) && is_ccs_modifier(fb->modifier) &&
|
||||||
|
color_plane == 0 && fb->width > 3840)
|
||||||
|
tile_width *= 4;
|
||||||
|
|
||||||
|
return tile_width;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16346,20 +16361,6 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
stride_alignment = intel_fb_stride_alignment(fb, i);
|
stride_alignment = intel_fb_stride_alignment(fb, i);
|
||||||
|
|
||||||
/*
|
|
||||||
* Display WA #0531: skl,bxt,kbl,glk
|
|
||||||
*
|
|
||||||
* Render decompression and plane width > 3840
|
|
||||||
* combined with horizontal panning requires the
|
|
||||||
* plane stride to be a multiple of 4. We'll just
|
|
||||||
* require the entire fb to accommodate that to avoid
|
|
||||||
* potential runtime errors at plane configuration time.
|
|
||||||
*/
|
|
||||||
if (IS_GEN(dev_priv, 9) && i == 0 && fb->width > 3840 &&
|
|
||||||
is_ccs_modifier(fb->modifier))
|
|
||||||
stride_alignment *= 4;
|
|
||||||
|
|
||||||
if (fb->pitches[i] & (stride_alignment - 1)) {
|
if (fb->pitches[i] & (stride_alignment - 1)) {
|
||||||
DRM_DEBUG_KMS("plane %d pitch (%d) must be at least %u byte aligned\n",
|
DRM_DEBUG_KMS("plane %d pitch (%d) must be at least %u byte aligned\n",
|
||||||
i, fb->pitches[i], stride_alignment);
|
i, fb->pitches[i], stride_alignment);
|
||||||
|
Loading…
Reference in New Issue
Block a user