drm/i915: Introduce skl_watermark_max_latency()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 6 Jun 2023 19:15:00 +0000 (22:15 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 27 Sep 2023 15:46:22 +0000 (18:46 +0300)
The DSB code will want to know the maximum PkgC latency
it has to contend with. Add a helper to expose that
information.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230606191504.18099-16-ville.syrjala@linux.intel.com
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
drivers/gpu/drm/i915/display/skl_watermark.c
drivers/gpu/drm/i915/display/skl_watermark.h

index 64a122d3c9c01dfab03527d3b95211068b8ec591..c1a90e058ffd0e6ef0f38e49e3568d75ac897db9 100644 (file)
@@ -3721,3 +3721,17 @@ void skl_watermark_debugfs_register(struct drm_i915_private *i915)
                debugfs_create_file("i915_sagv_status", 0444, minor->debugfs_root, i915,
                                    &intel_sagv_status_fops);
 }
+
+unsigned int skl_watermark_max_latency(struct drm_i915_private *i915)
+{
+       int level;
+
+       for (level = i915->display.wm.num_levels - 1; level >= 0; level--) {
+               unsigned int latency = skl_wm_latency(i915, level, NULL);
+
+               if (latency)
+                       return latency;
+       }
+
+       return 0;
+}
index f91a3d4ddc0756f352755b409c6d7a2a95b0025f..edb61e33df83acd70255c8138da4d40619dd9633 100644 (file)
@@ -46,6 +46,8 @@ void skl_watermark_ipc_update(struct drm_i915_private *i915);
 bool skl_watermark_ipc_enabled(struct drm_i915_private *i915);
 void skl_watermark_debugfs_register(struct drm_i915_private *i915);
 
+unsigned int skl_watermark_max_latency(struct drm_i915_private *i915);
+
 void skl_wm_init(struct drm_i915_private *i915);
 
 struct intel_dbuf_state {