drm/i915: Reject modes with linetime > 64 usec

Reject modes whose linetime exceeds 64 usec.

First reason being that WM_LINETIME is limited to (nearly) 64 usec.

Additionally knowing the linetime is bounded will help with
determining whether overflows may be a concern during various
calculations.

I decided to round up, and accept the linetime==64 case. We use
various rounding directions for this in other parts of the code,
so I feel this provides the most consistent result all around.

Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20251014191808.12326-3-ville.syrjala@linux.intel.com
This commit is contained in:
Ville Syrjälä
2025-10-14 22:18:01 +03:00
parent 755e430b1e
commit 5021ccb44d

View File

@@ -7978,6 +7978,14 @@ enum drm_mode_status intel_mode_valid(struct drm_device *dev,
mode->vtotal > vtotal_max)
return MODE_V_ILLEGAL;
/*
* WM_LINETIME only goes up to (almost) 64 usec, and also
* knowing that the linetime is always bounded will ease the
* mind during various calculations.
*/
if (DIV_ROUND_UP(mode->htotal * 1000, mode->clock) > 64)
return MODE_H_ILLEGAL;
return MODE_OK;
}