diff mbox series

[2/2] drm/i915: Check some transcoder timing minimum limits

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

Commit Message

Ville Syrjälä July 18, 2019, 2:43 p.m. UTC
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>
---
 drivers/gpu/drm/i915/display/intel_display.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Comments

Navare, Manasi Oct. 18, 2019, 7:45 p.m. UTC | #1
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 mbox series

Patch

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;
 }