[PATCH i-g-t v2 1/3] lib/igt_kms: Add mode restriction check for Intel scaling

Naladala Ramanaidu ramanaidu.naladala at intel.com
Tue Apr 8 17:03:27 UTC 2025


Add function to verify display mode parameters (horizontal
resolution, vertical resolution, refresh rate) within 4K
limits for scaling operation.

Bspec: 49199

v2: Add Bspec number. (Jeevan)

Signed-off-by: Naladala Ramanaidu <ramanaidu.naladala at intel.com>
---
 lib/igt_kms.c | 23 +++++++++++++++++++++++
 lib/igt_kms.h |  1 +
 2 files changed, 24 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 99c8707c7..332f6dbf3 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -93,6 +93,10 @@
 #define MAX_EDID 2
 #define DISPLAY_TILE_BLOCK 0x12
 
+#define HDISPLAY_SCALING_MAX 3840
+#define VDISPLAY_SCALING_MAX 2160
+#define VREFRESH_SCALING_MAX 60
+
 typedef bool (*igt_connector_attr_set)(int dir, const char *attr, const char *value);
 
 struct igt_connector_attr {
@@ -6998,6 +7002,25 @@ int get_num_scalers(igt_display_t *display, enum pipe pipe)
 	return num_scalers;
 }
 
+/**
+ * is_intel_support_scaling:
+ * @drmModeModeInfo *mode: Pointer to a structure with display mode information.
+ *
+ * Finds the display mode's horizontal resolution, vertical resolution, and refresh
+ * rate are within the specified maximum limits.
+ *
+ * Returns: true on success, false  on failure
+ */
+bool is_intel_support_scaling(drmModeModeInfo *mode)
+{
+	if ((mode->hdisplay <= HDISPLAY_SCALING_MAX) &&
+	    (mode->vdisplay <= VDISPLAY_SCALING_MAX) &&
+	    (mode->vrefresh <= VREFRESH_SCALING_MAX))
+		return true;
+
+	return false;
+}
+
 /**
  * igt_parse_marked_value:
  * @buf: Buffer containing the content to parse
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 0381c82ad..0e3d1297d 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -1279,5 +1279,6 @@ void igt_set_link_params(int drm_fd, igt_output_t *output,
 			   char *link_rate, char *lane_count);
 int igt_backlight_read(int *result, const char *fname, igt_backlight_context_t *context);
 int igt_backlight_write(int value, const char *fname, igt_backlight_context_t *context);
+bool is_intel_support_scaling(drmModeModeInfo *mode);
 
 #endif /* __IGT_KMS_H__ */
-- 
2.43.0



More information about the igt-dev mailing list