mirror of https://gitee.com/openkylin/linux.git
drm/i915: Force planar YUV coordinates to be a multiple of 2, v2.
We can't make NV12 work any other way. The scaler doesn't handle odd coordinates well, and we will get visual corruption on the screen. Changes since v1: - Put the check in intel_plane_check_src_coordinates. (Ville) Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180920102711.4184-9-maarten.lankhorst@linux.intel.com
This commit is contained in:
parent
ab5c60bf76
commit
945ac78928
|
@ -253,13 +253,20 @@ int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state)
|
|||
src->y2 = (src_y + src_h) << 16;
|
||||
|
||||
if (fb->format->is_yuv &&
|
||||
fb->format->format != DRM_FORMAT_NV12 &&
|
||||
(src_x & 1 || src_w & 1)) {
|
||||
DRM_DEBUG_KMS("src x/w (%u, %u) must be a multiple of 2 for YUV planes\n",
|
||||
src_x, src_w);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (fb->format->is_yuv &&
|
||||
fb->format->num_planes > 1 &&
|
||||
(src_y & 1 || src_h & 1)) {
|
||||
DRM_DEBUG_KMS("src y/h (%u, %u) must be a multiple of 2 for planar YUV planes\n",
|
||||
src_y, src_h);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue