OSDN Git Service

drm/mali-dp: Don't enable scaling engine for planes that only rotate.
authorLiviu Dudau <Liviu.Dudau@arm.com>
Fri, 15 Dec 2017 16:42:19 +0000 (16:42 +0000)
committerLiviu Dudau <Liviu.Dudau@arm.com>
Wed, 14 Mar 2018 11:38:02 +0000 (11:38 +0000)
Currently the scaling engine gets enabled for a plane where the input
size differs from the composition size. As rotation is done natively
by the plane's hardware layer, we don't need the scaling engine to be
enabled.

Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
drivers/gpu/drm/arm/malidp_planes.c

index 6f813c4..7bc164a 100644 (file)
@@ -154,8 +154,14 @@ static int malidp_se_check_scaling(struct malidp_plane *mp,
        if (ret)
                return ret;
 
-       src_w = state->src_w >> 16;
-       src_h = state->src_h >> 16;
+       if (state->rotation & MALIDP_ROTATED_MASK) {
+               src_w = state->src_h >> 16;
+               src_h = state->src_w >> 16;
+       } else {
+               src_w = state->src_w >> 16;
+               src_h = state->src_h >> 16;
+       }
+
        if ((state->crtc_w == src_w) && (state->crtc_h == src_h)) {
                /* Scaling not necessary for this plane. */
                mc->scaled_planes_mask &= ~(mp->layer->id);