Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf893acc authored by Eric Anholt's avatar Eric Anholt
Browse files

drm/vc4: Make sure that planes aren't scaled.



We would scan out the memory around them if an upscale was attempted,
and would just scan out incorrectly for downscaling.

Signed-off-by: default avatarEric Anholt <eric@anholt.net>
parent 36f4f69a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -157,6 +157,16 @@ static int vc4_plane_mode_set(struct drm_plane *plane,
	int crtc_w = state->crtc_w;
	int crtc_h = state->crtc_h;

	if (state->crtc_w << 16 != state->src_w ||
	    state->crtc_h << 16 != state->src_h) {
		/* We don't support scaling yet, which involves
		 * allocating the LBM memory for scaling temporary
		 * storage, and putting filter kernels in the HVS
		 * context.
		 */
		return -EINVAL;
	}

	if (crtc_x < 0) {
		offset += drm_format_plane_cpp(fb->pixel_format, 0) * -crtc_x;
		crtc_w += crtc_x;