diff options
| -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 514a3055903c..c14afb794147 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, | |||
| 112 | format = ALIGN(src_w * 4, 0x100); | 112 | format = ALIGN(src_w * 4, 0x100); |
| 113 | 113 | ||
| 114 | if (format > 0xffff) | 114 | if (format > 0xffff) |
| 115 | return -EINVAL; | 115 | return -ERANGE; |
| 116 | |||
| 117 | if (dev->chipset >= 0x30) { | ||
| 118 | if (crtc_w < (src_w >> 1) || crtc_h < (src_h >> 1)) | ||
| 119 | return -ERANGE; | ||
| 120 | } else { | ||
| 121 | if (crtc_w < (src_w >> 3) || crtc_h < (src_h >> 3)) | ||
| 122 | return -ERANGE; | ||
| 123 | } | ||
| 116 | 124 | ||
| 117 | ret = nouveau_bo_pin(nv_fb->nvbo, TTM_PL_FLAG_VRAM); | 125 | ret = nouveau_bo_pin(nv_fb->nvbo, TTM_PL_FLAG_VRAM); |
| 118 | if (ret) | 126 | if (ret) |
