drm/i915: Disable live M/N updates when using bigjoiner
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 4 Apr 2024 21:34:28 +0000 (00:34 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 8 Apr 2024 12:27:56 +0000 (15:27 +0300)
All joined pipes share the same transcoder/timing generator.
Currently we just do the commits per-pipe, which doesn't really
work if we need to change the timings at the same time. For
now just disable live M/N updates when bigjoiner is needed.

Cc: stable@vger.kernel.org
Tested-by: Vidya Srinivas <vidya.srinivas@intel.com>
Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240404213441.17637-5-ville.syrjala@linux.intel.com
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
drivers/gpu/drm/i915/display/intel_dp.c

index 20f2d4d9d7b94ea0c664b6bccf1310e7ad8b846b..1df4b93e5e71f7489484ae0f21b433c6b3de8793 100644 (file)
@@ -2752,7 +2752,11 @@ intel_dp_drrs_compute_config(struct intel_connector *connector,
                intel_panel_downclock_mode(connector, &pipe_config->hw.adjusted_mode);
        int pixel_clock;
 
-       if (has_seamless_m_n(connector))
+       /*
+        * FIXME all joined pipes share the same transcoder.
+        * Need to account for that when updating M/N live.
+        */
+       if (has_seamless_m_n(connector) && !pipe_config->bigjoiner_pipes)
                pipe_config->update_m_n = true;
 
        if (!can_enable_drrs(connector, pipe_config, downclock_mode)) {