diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c index 86207f2394d856..96f686834e8c81 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c @@ -265,7 +265,11 @@ static enum vc4_scaling_mode vc4_get_scaling_mode(u32 src, u32 dst) { if (dst == src >> 16) return VC4_SCALING_NONE; - if (3 * dst >= 2 * (src >> 16)) + + if (src <= (1 << 16)) + /* Source rectangle <= 1 pixel can use TPZ for resize/upscale */ + return VC4_SCALING_TPZ; + else if (3 * dst >= 2 * (src >> 16)) return VC4_SCALING_PPF; else return VC4_SCALING_TPZ;