Commit 75c13993 authored by Daniel Vetter's avatar Daniel Vetter

drm/i915: fixup overlay checks for interlaced modes

The drm core _really_ likes to frob around with the crtc timings and
put halfed vertical timings (in fields) in there. Which confuses the
overlay code, resulting in it's refusal to display anything at the
lower half of an interlaced pipe.
Tested-by: default avatarChristopher Egert <cme3000@gmail.com>
Reviewed-by: default avatarEugeni Dodonov <eugeni.dodonov@intel.com>
Signed-Off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent c3febcc4
...@@ -937,10 +937,10 @@ static int check_overlay_dst(struct intel_overlay *overlay, ...@@ -937,10 +937,10 @@ static int check_overlay_dst(struct intel_overlay *overlay,
{ {
struct drm_display_mode *mode = &overlay->crtc->base.mode; struct drm_display_mode *mode = &overlay->crtc->base.mode;
if (rec->dst_x < mode->crtc_hdisplay && if (rec->dst_x < mode->hdisplay &&
rec->dst_x + rec->dst_width <= mode->crtc_hdisplay && rec->dst_x + rec->dst_width <= mode->hdisplay &&
rec->dst_y < mode->crtc_vdisplay && rec->dst_y < mode->vdisplay &&
rec->dst_y + rec->dst_height <= mode->crtc_vdisplay) rec->dst_y + rec->dst_height <= mode->vdisplay)
return 0; return 0;
else else
return -EINVAL; return -EINVAL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment