diff options
author | Ilia Mirkin <imirkin@alum.mit.edu> | 2013-11-15 11:26:42 -0500 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2013-12-03 23:28:54 +1000 |
commit | 050828e9563d03cbaab950c16ae4aebaa02ff0de (patch) | |
tree | 3eb333ed90ff1ef899d434aa25e008ea98e75894 /drivers/gpu/drm/nouveau | |
parent | 92e5b0a2b121c29eac31e6d8106ceefa31de46a9 (diff) |
drm/nv10/plane: add downscaling restrictions
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau')
-rw-r--r-- | drivers/gpu/drm/nouveau/dispnv04/overlay.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/dispnv04/overlay.c b/drivers/gpu/drm/nouveau/dispnv04/overlay.c index 514a3055903..c14afb79414 100644 --- a/drivers/gpu/drm/nouveau/dispnv04/overlay.c +++ b/drivers/gpu/drm/nouveau/dispnv04/overlay.c @@ -112,7 +112,15 @@ nv10_update_plane(struct drm_plane *plane, struct drm_crtc *crtc, format = ALIGN(src_w * 4, 0x100); if (format > 0xffff) - return -EINVAL; + return -ERANGE; + + if (dev->chipset >= 0x30) { + if (crtc_w < (src_w >> 1) || crtc_h < (src_h >> 1)) + return -ERANGE; + } else { + if (crtc_w < (src_w >> 3) || crtc_h < (src_h >> 3)) + return -ERANGE; + } ret = nouveau_bo_pin(nv_fb->nvbo, TTM_PL_FLAG_VRAM); if (ret) |