On Fri, Feb 23, 2024 at 11:37:41PM +0200, Ville Syrjälä wrote: > On Tue, Feb 20, 2024 at 11:18:32PM +0200, Imre Deak wrote: > > +static void queue_retry_work(struct intel_atomic_state *state, > > + struct drm_dp_tunnel *tunnel, > > + const struct intel_crtc_state *crtc_state) > > +{ > > + struct drm_i915_private *i915 = to_i915(state->base.dev); > > + struct intel_encoder *encoder; > > + > > + encoder = intel_get_crtc_new_encoder(state, crtc_state); > > I was pondering what happens if we have no encoder here? That is when the crtc is disabled. > But I guess crtc_state->tunnel_ref.tunnel should be NULL in > that case and so we should not end up here. Yes, in case crtc is disabled tunnel should be NULL, so queue_retry_work() is not called. > > + > > + if (!intel_digital_port_connected(encoder)) > > + return; > > + > > + drm_dbg_kms(&i915->drm, > > + "[DPTUN %s][ENCODER:%d:%s] BW allocation failed on a connected sink\n", > > + drm_dp_tunnel_name(tunnel), > > + encoder->base.base.id, > > + encoder->base.name); > > + > > + intel_dp_queue_modeset_retry_for_link(state, encoder, crtc_state); > > +} > > + > > -- > Ville Syrjälä > Intel