From: Edmund Dea <edmund.j.dea@xxxxxxxxx> Monitors with vfp < 4 are not supported in KMB display. This change prunes display modes with vfp < 4. Fixes: 7f7b96a8a0a1 ("drm/kmb: Add support for KeemBay Display") Signed-off-by: Edmund Dea <edmund.j.dea@xxxxxxxxx> --- drivers/gpu/drm/kmb/kmb_crtc.c | 6 ++++++ drivers/gpu/drm/kmb/kmb_drv.h | 1 + 2 files changed, 7 insertions(+) diff --git a/drivers/gpu/drm/kmb/kmb_crtc.c b/drivers/gpu/drm/kmb/kmb_crtc.c index 42c8010ef2f6..0e42c40f0dce 100644 --- a/drivers/gpu/drm/kmb/kmb_crtc.c +++ b/drivers/gpu/drm/kmb/kmb_crtc.c @@ -191,6 +191,7 @@ static enum drm_mode_status { int refresh; struct drm_device *dev = crtc->dev; + int vfp = mode->vsync_start - mode->vdisplay; if (mode->vdisplay < KMB_CRTC_MAX_HEIGHT) { drm_dbg(dev, "height = %d less than %d", @@ -209,6 +210,11 @@ static enum drm_mode_status return MODE_BAD; } + if (vfp < KMB_CRTC_MIN_VFP) { + drm_dbg(dev, "vfp = %d less than %d", vfp, KMB_CRTC_MIN_VFP); + return MODE_BAD; + } + return MODE_OK; } diff --git a/drivers/gpu/drm/kmb/kmb_drv.h b/drivers/gpu/drm/kmb/kmb_drv.h index dc0679a70cc5..c4af1d927e45 100644 --- a/drivers/gpu/drm/kmb/kmb_drv.h +++ b/drivers/gpu/drm/kmb/kmb_drv.h @@ -21,6 +21,7 @@ #define DRIVER_MINOR 2 /* Platform definitions */ +#define KMB_CRTC_MIN_VFP 4 #define KMB_CRTC_MAX_WIDTH 1920 /* max width in pixels */ #define KMB_CRTC_MAX_HEIGHT 1080 /* max height in pixels */ #define KMB_CRTC_MIN_WIDTH 1920 -- 2.25.1