[Intel-gfx] [PATCH v2] Return only active connectors for get_resources ioctl
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
> connector ids, one in disconnected state and another in connected
> 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
> > 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
More information about the Intel-gfx