Message ID | 20190718144340.1114-2-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] drm/i915: Refuse modes with hdisplay==4096 on pre-HSW DP | expand |
On Fri, Oct 18, 2019 at 12:43:56PM -0700, Manasi Navare wrote: > From: Ville Syrjala <ville.syrjala@linux.intel.com> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > On ILK+ the documented min hdisplay is 64, min hblank is 32, and min > vblank is 5. On earlier platforms min hblank is also 32, and min > vblank is 3. Make sure the mode satisfies those limits. > > There are further limits for HDMI and pfit use cases, but we'll check > for those in a more specific location. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Double checked the min limits from the spec and looks good to me Reviewed-by: Manasi Navare <manasi.d.navare@intel.com> Manasi > --- > drivers/gpu/drm/i915/display/intel_display.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c > index e25b82d07d4f..1141f4aa31c7 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -15816,6 +15816,21 @@ intel_mode_valid(struct drm_device *dev, > mode->vtotal > vtotal_max) > return MODE_V_ILLEGAL; > > + if (INTEL_GEN(dev_priv) >= 5) { > + if (mode->hdisplay < 64 || > + mode->htotal - mode->hdisplay < 32) > + return MODE_H_ILLEGAL; > + > + if (mode->vtotal - mode->vdisplay < 5) > + return MODE_V_ILLEGAL; > + } else { > + if (mode->htotal - mode->hdisplay < 32) > + return MODE_H_ILLEGAL; > + > + if (mode->vtotal - mode->vdisplay < 3) > + return MODE_V_ILLEGAL; > + } > + > return MODE_OK; > } > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index e25b82d07d4f..1141f4aa31c7 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -15816,6 +15816,21 @@ intel_mode_valid(struct drm_device *dev, mode->vtotal > vtotal_max) return MODE_V_ILLEGAL; + if (INTEL_GEN(dev_priv) >= 5) { + if (mode->hdisplay < 64 || + mode->htotal - mode->hdisplay < 32) + return MODE_H_ILLEGAL; + + if (mode->vtotal - mode->vdisplay < 5) + return MODE_V_ILLEGAL; + } else { + if (mode->htotal - mode->hdisplay < 32) + return MODE_H_ILLEGAL; + + if (mode->vtotal - mode->vdisplay < 3) + return MODE_V_ILLEGAL; + } + return MODE_OK; }