aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorImre Deak <[email protected]>2021-03-25 23:48:00 +0200
committerImre Deak <[email protected]>2021-03-29 22:58:12 +0300
commit67cfab66139b60939ad3dac2da6619f4998fd192 (patch)
tree5d6b9d97e7ee28543ed11efa625ce202afd47ae8
parent61169987c4d99d071af976ad5923fa990bc2d44e (diff)
drm/i915: Store the normal view FB pitch in FB's intel_fb_view
Instead of special casing getting the pitch for the normal view, store it during FB creation to the FB normal view struct and retrieve it from there during atomic check, as it's done for the rotated view. A follow-up patch does the same for a new FB remapped view. Cc: Ville Syrjälä <[email protected]> Signed-off-by: Imre Deak <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
-rw-r--r--drivers/gpu/drm/i915/display/intel_fb.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index cbf0b4fd8fea..a31934b3b293 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -484,12 +484,14 @@ static bool intel_plane_can_remap(const struct intel_plane_state *plane_state)
return true;
}
-int intel_fb_pitch(const struct drm_framebuffer *fb, int color_plane, unsigned int rotation)
+int intel_fb_pitch(const struct drm_framebuffer *drm_fb, int color_plane, unsigned int rotation)
{
+ struct intel_framebuffer *fb = to_intel_framebuffer(drm_fb);
+
if (drm_rotation_90_or_270(rotation))
- return to_intel_framebuffer(fb)->rotated_view.color_plane[color_plane].stride;
+ return fb->rotated_view.color_plane[color_plane].stride;
else
- return fb->pitches[color_plane];
+ return fb->normal_view.color_plane[color_plane].stride;
}
static bool intel_plane_needs_remap(const struct intel_plane_state *plane_state)
@@ -744,6 +746,7 @@ int intel_fill_fb_info(struct drm_i915_private *i915, struct drm_framebuffer *fb
*/
intel_fb->normal_view.color_plane[i].x = x;
intel_fb->normal_view.color_plane[i].y = y;
+ intel_fb->normal_view.color_plane[i].stride = intel_fb->base.pitches[i];
offset = calc_plane_aligned_offset(intel_fb, i, &x, &y);