On Thu, 2018-11-29 at 07:37 +0000, Lisovskiy, Stanislav wrote: > On Wed, 2018-11-28 at 22:21 +0100, Daniel Vetter wrote: > > > > > I tried to read the bug and I have no idea what's going on here. > > > Userspace > > > is supposed to shut off outputs that are disconnected, whether > > > that's DP, > > > DP MST or something else shouldn't matter. New connectors can > > > come&go as > > > they see fit. Also not really something special. > > > > > > Why do we need to dynamically hide an output here? Note that this > > > also > > > affects normal DP ports, which I have no idea is actually what > > > you > > > want to > > > do or not. > > This bug is real and easily reproducible with recent drm-tip. > Unplugging and then quickly plugging back periodically leaves both my > external displays connected to the docking station blank, there are > also many duplicate bugs for this, which I simply didn't track. This > patch at least fixes that annoying thing. > The userspace seems to get confused when we are returning two > different > connector ids, one in disconnected state and another in connected > state > for the same output. This results in userspace believing that nothing > had changed and drm_mode_setcrtc call is not required( I have done > traces confirming that theory). > > This could be also fixed in userspace by checking connectors more > carefully - that fix I've also implemented for Intel DDX and attached > to the bug, however seems that this happens also for Wayland. > In addition to what I said above, I checked your changes instead of proposed(also with locking) - it doesn't help, the displays get blank after unplug/plug. > > > > > > diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c > > b/drivers/gpu/drm/i915/intel_dp_mst.c > > index 4de247ddf05f..e1b66396c83b 100644 > > --- a/drivers/gpu/drm/i915/intel_dp_mst.c > > +++ b/drivers/gpu/drm/i915/intel_dp_mst.c > > @@ -499,6 +499,8 @@ static void > > intel_dp_register_mst_connector(struct drm_connector *connector) > > drm_fb_helper_add_one_connector(&dev_priv->fbdev- > > > helper, > > > > connector); > > > > + list_move(&connector->head, &connector->dev- > > > mode_config.connector_list); > > > > + > > drm_connector_register(connector); > > } > > > > -- > Best Regards, > > Lisovskiy Stanislav > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Best Regards, Lisovskiy Stanislav