Commit bf893acc authored by Eric Anholt's avatar Eric Anholt

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
...@@ -157,6 +157,16 @@ static int vc4_plane_mode_set(struct drm_plane *plane, ...@@ -157,6 +157,16 @@ static int vc4_plane_mode_set(struct drm_plane *plane,
int crtc_w = state->crtc_w; int crtc_w = state->crtc_w;
int crtc_h = state->crtc_h; 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) { if (crtc_x < 0) {
offset += drm_format_plane_cpp(fb->pixel_format, 0) * -crtc_x; offset += drm_format_plane_cpp(fb->pixel_format, 0) * -crtc_x;
crtc_w += crtc_x; crtc_w += crtc_x;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment