[Intel-gfx] [PATCH v2] Return only active connectors for get_resources ioctl

Lisovskiy, Stanislav stanislav.lisovskiy at intel.com
Thu Nov 29 08:17:07 UTC 2018


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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
-- 
Best Regards,

Lisovskiy Stanislav


More information about the dri-devel mailing list