| From 0653d501409eeb9f1deb7e4c12e4d0d2c9f1cba1 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com> |
| Date: Fri, 5 Apr 2024 00:34:27 +0300 |
| Subject: drm/i915: Disable port sync when bigjoiner is used |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Ville Syrjälä <ville.syrjala@linux.intel.com> |
| |
| commit 0653d501409eeb9f1deb7e4c12e4d0d2c9f1cba1 upstream. |
| |
| The current modeset sequence can't handle port sync and bigjoiner |
| at the same time. Refuse port sync when bigjoiner is needed, |
| at least until we fix the modeset sequence. |
| |
| v2: Add a FIXME (Vandite) |
| |
| Cc: stable@vger.kernel.org |
| Tested-by: Vidya Srinivas <vidya.srinivas@intel.com> |
| Reviewed-by: Vandita Kulkarni <vandita.kulkarni@intel.com> |
| Link: https://patchwork.freedesktop.org/patch/msgid/20240404213441.17637-4-ville.syrjala@linux.intel.com |
| Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> |
| (cherry picked from commit b37e1347b991459c38c56ec2476087854a4f720b) |
| Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/gpu/drm/i915/display/intel_ddi.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| --- a/drivers/gpu/drm/i915/display/intel_ddi.c |
| +++ b/drivers/gpu/drm/i915/display/intel_ddi.c |
| @@ -4229,7 +4229,12 @@ static bool m_n_equal(const struct intel |
| static bool crtcs_port_sync_compatible(const struct intel_crtc_state *crtc_state1, |
| const struct intel_crtc_state *crtc_state2) |
| { |
| + /* |
| + * FIXME the modeset sequence is currently wrong and |
| + * can't deal with bigjoiner + port sync at the same time. |
| + */ |
| return crtc_state1->hw.active && crtc_state2->hw.active && |
| + !crtc_state1->bigjoiner_pipes && !crtc_state2->bigjoiner_pipes && |
| crtc_state1->output_types == crtc_state2->output_types && |
| crtc_state1->output_format == crtc_state2->output_format && |
| crtc_state1->lane_count == crtc_state2->lane_count && |