| From 12ffed96d4369f086261ba2ee734fa8c932d7f55 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com> |
| Date: Thu, 23 Mar 2017 17:53:26 +0900 |
| Subject: drm/fb-helper: Allow var->x/yres(_virtual) < fb->width/height again |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Michel Dänzer <michel.daenzer@amd.com> |
| |
| commit 12ffed96d4369f086261ba2ee734fa8c932d7f55 upstream. |
| |
| Otherwise this can also prevent modesets e.g. for switching VTs, when |
| multiple monitors with different native resolutions are connected. |
| |
| The depths must match though, so keep the != test for that. |
| |
| Also update the DRM_DEBUG output to be slightly more accurate, this |
| doesn't only affect requests from userspace. |
| |
| Bugzilla: https://bugs.freedesktop.org/99841 |
| Fixes: 865afb11949e ("drm/fb-helper: reject any changes to the fbdev") |
| Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> |
| Reviewed-by: Daniel Stone <daniels@collabora.com> |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| Link: http://patchwork.freedesktop.org/patch/msgid/20170323085326.20185-1-michel@daenzer.net |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| |
| --- |
| drivers/gpu/drm/drm_fb_helper.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/gpu/drm/drm_fb_helper.c |
| +++ b/drivers/gpu/drm/drm_fb_helper.c |
| @@ -1256,9 +1256,9 @@ int drm_fb_helper_check_var(struct fb_va |
| * to KMS, hence fail if different settings are requested. |
| */ |
| if (var->bits_per_pixel != fb->bits_per_pixel || |
| - var->xres != fb->width || var->yres != fb->height || |
| - var->xres_virtual != fb->width || var->yres_virtual != fb->height) { |
| - DRM_DEBUG("fb userspace requested width/height/bpp different than current fb " |
| + var->xres > fb->width || var->yres > fb->height || |
| + var->xres_virtual > fb->width || var->yres_virtual > fb->height) { |
| + DRM_DEBUG("fb requested width/height/bpp can't fit in current fb " |
| "request %dx%d-%d (virtual %dx%d) > %dx%d-%d\n", |
| var->xres, var->yres, var->bits_per_pixel, |
| var->xres_virtual, var->yres_virtual, |