summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/intel_display.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index de0d7b641d56..c02055164583 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -10942,6 +10942,17 @@ intel_gen9_pipe_scale(struct intel_crtc *intel_crtc,
pipe_config->pipe_src_w))
goto done;
+ /* Out of boundary, clamping it */
+ if ((pipe_config->pipe_dst_x + pipe_config->pipe_dst_w) >
+ adjusted_mode->hdisplay)
+ pipe_config->pipe_dst_w =
+ (adjusted_mode->hdisplay - pipe_config->pipe_dst_x);
+
+ if ((pipe_config->pipe_dst_y + pipe_config->pipe_dst_h) >
+ adjusted_mode->vdisplay)
+ pipe_config->pipe_dst_h =
+ (adjusted_mode->vdisplay - pipe_config->pipe_dst_y);
+
x = pipe_config->pipe_dst_x;
y = pipe_config->pipe_dst_y;
width = pipe_config->pipe_dst_w;