From: Edmund Dea <edmund.j....@intel.com>

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....@intel.com>
---
 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

Reply via email to