<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Hi Jeevan,</p>
    <div class="moz-cite-prefix">On 3/28/2025 2:21 PM, B, Jeevan wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:DM4PR11MB631277D5A542425D801C0F7390A02@DM4PR11MB6312.namprd11.prod.outlook.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">-----Original Message-----
From: igt-dev <a class="moz-txt-link-rfc2396E" href="mailto:igt-dev-bounces@lists.freedesktop.org"><igt-dev-bounces@lists.freedesktop.org></a> On Behalf Of Naladala
Ramanaidu
Sent: Friday, March 28, 2025 2:23 AM
To: <a class="moz-txt-link-abbreviated" href="mailto:igt-dev@lists.freedesktop.org">igt-dev@lists.freedesktop.org</a>
Cc: Sharma, Swati2 <a class="moz-txt-link-rfc2396E" href="mailto:swati2.sharma@intel.com"><swati2.sharma@intel.com></a>; Naladala, Ramanaidu
<a class="moz-txt-link-rfc2396E" href="mailto:ramanaidu.naladala@intel.com"><ramanaidu.naladala@intel.com></a>
Subject: [PATCH i-g-t v1 1/3] lib/igt_kms: Add mode restriction check for Intel
scaling

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

Signed-off-by: Naladala Ramanaidu <a class="moz-txt-link-rfc2396E" href="mailto:ramanaidu.naladala@intel.com"><ramanaidu.naladala@intel.com></a>
---
 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
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Can you please mention the spec number or Kernel patch where we have this restrictions mentioned ? </pre>
    </blockquote>
    As per Bspec: 49199 <span style="color: rgb(64, 64, 64); font-family: "Segoe UI", "Arial Unicode MS", "Lucida Grande", Helvetica, "Ubuntu Light", "DejaVu Sans", FreeSans, sans-serif; font-size: 13.3333px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Pipe
      scalers maximum horizontal source size 4096 pixels.</span>
    <blockquote type="cite" cite="mid:DM4PR11MB631277D5A542425D801C0F7390A02@DM4PR11MB6312.namprd11.prod.outlook.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+
 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
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
</pre>
    </blockquote>
  </body>
</html>