projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
ab5c60b
)
drm/i915: Force planar YUV coordinates to be a multiple of 2, v2.
author
Maarten Lankhorst
<
[email protected]
>
Thu, 20 Sep 2018 10:27:11 +0000
(12:27 +0200)
committer
Maarten Lankhorst
<
[email protected]
>
Fri, 21 Sep 2018 17:30:54 +0000
(19:30 +0200)
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 <
[email protected]
>
Reviewed-by: Matt Roper <
[email protected]
>
Link:
https://patchwork.freedesktop.org/patch/msgid/
[email protected]
drivers/gpu/drm/i915/intel_sprite.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/i915/intel_sprite.c
b/drivers/gpu/drm/i915/intel_sprite.c
index 7d3c7469d2719928075bf676b4933fcd8f0169f8..46c6336cb85831dcc016faa2f592daba244cd39f 100644
(file)
--- a/
drivers/gpu/drm/i915/intel_sprite.c
+++ b/
drivers/gpu/drm/i915/intel_sprite.c
@@
-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;
}