summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/display/intel_overlay.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2022-02-23 15:13:12 +0200
committerVille Syrjälä <ville.syrjala@linux.intel.com>2022-03-04 18:24:19 +0200
commit26111a161ab56e7033d3b3086270c5a1dcfe0f2f (patch)
treeed5e789da09adf85117d6ba91849f6d1034015c0 /drivers/gpu/drm/i915/display/intel_overlay.c
parent0fa1d65e7dda66f12f703b2f00146d836211acc8 (diff)
drm/i915: Start tracking PIPESRC as a drm_rect
Instead of just having the pipe_src_{w,h} let's use a full drm_rect for it. This will be particularly useful to astract away some bigjoiner details. v2: No hweight() stuff yet Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220223131315.18016-11-ville.syrjala@linux.intel.com Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_overlay.c')
-rw-r--r--drivers/gpu/drm/i915/display/intel_overlay.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c
index 76845d34ad0c..631e1f1dc5e6 100644
--- a/drivers/gpu/drm/i915/display/intel_overlay.c
+++ b/drivers/gpu/drm/i915/display/intel_overlay.c
@@ -960,14 +960,16 @@ static int check_overlay_dst(struct intel_overlay *overlay,
{
const struct intel_crtc_state *pipe_config =
overlay->crtc->config;
+ int pipe_src_w = drm_rect_width(&pipe_config->pipe_src);
+ int pipe_src_h = drm_rect_height(&pipe_config->pipe_src);
if (rec->dst_height == 0 || rec->dst_width == 0)
return -EINVAL;
- if (rec->dst_x < pipe_config->pipe_src_w &&
- rec->dst_x + rec->dst_width <= pipe_config->pipe_src_w &&
- rec->dst_y < pipe_config->pipe_src_h &&
- rec->dst_y + rec->dst_height <= pipe_config->pipe_src_h)
+ if (rec->dst_x < pipe_src_w &&
+ rec->dst_x + rec->dst_width <= pipe_src_w &&
+ rec->dst_y < pipe_src_h &&
+ rec->dst_y + rec->dst_height <= pipe_src_h)
return 0;
else
return -EINVAL;
@@ -1160,7 +1162,7 @@ int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data,
crtc->overlay = overlay;
/* line too wide, i.e. one-line-mode */
- if (crtc->config->pipe_src_w > 1024 &&
+ if (drm_rect_width(&crtc->config->pipe_src) > 1024 &&
crtc->config->gmch_pfit.control & PFIT_ENABLE) {
overlay->pfit_active = true;
update_pfit_vscale_ratio(overlay);