drm/i915/dp: Do not set master_trans bit in bitmak if INVALID_TRANSCODER
authorManasi Navare <manasi.d.navare@intel.com>
Thu, 23 Jan 2020 00:24:14 +0000 (16:24 -0800)
committerManasi Navare <manasi.d.navare@intel.com>
Fri, 24 Jan 2020 01:05:05 +0000 (17:05 -0800)
In the port sync mode, for the master crtc, the master_transcoder is INVALID.
In that case since its value is -1, do not set the bit in the bitmask.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Fixes: d0eed1545fe7 ("drm/i915: Fix post-fastset modeset check for port sync")
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200123002415.31478-1-manasi.d.navare@intel.com
drivers/gpu/drm/i915/display/intel_display.c

index 878d331b9e8c38e258d4055ef4eb5d1a22811fbf..79f9054078ea36e03fe64cbc52dd3d331c4eab40 100644 (file)
@@ -14649,8 +14649,10 @@ static int intel_atomic_check(struct drm_device *dev,
                }
 
                if (is_trans_port_sync_mode(new_crtc_state)) {
-                       u8 trans = new_crtc_state->sync_mode_slaves_mask |
-                                  BIT(new_crtc_state->master_transcoder);
+                       u8 trans = new_crtc_state->sync_mode_slaves_mask;
+
+                       if (new_crtc_state->master_transcoder != INVALID_TRANSCODER)
+                               trans |= BIT(new_crtc_state->master_transcoder);
 
                        if (intel_cpu_transcoders_need_modeset(state, trans)) {
                                new_crtc_state->uapi.mode_changed = true;