[Intel-gfx] [PATCH] Revert "drm/i915: Fix DP-MST crtc_mask"

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Sep 4 14:02:46 UTC 2019


On Tue, Sep 03, 2019 at 08:10:18PM +0000, Souza, Jose wrote:
> On Tue, 2019-09-03 at 18:40 +0300, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > 
> > This reverts commit 4eaceea3a00f8e936a7f48dcd0c975a57f88930f.
> > 
> > Several userspace clients (modesetting ddx and mutter+wayland at
> > least)
> > handle encoder.possible_crtcs incorrectly. What they essentially do
> > is
> > the following:
> > 
> > possible_crtcs = ~0;
> > for_each_possible_encoder(connector)
> > 	possible_crtcs &= encoder->possible_crtcs;
> > 
> > Ie. they calculate the intersection of the possible_crtcs
> > for the connector when they really should be calculating the
> > union instead.
> > 
> > In our case each MST encoder now has just one unique bit set,
> > and so the intersection is always zero. The end result is that
> > MST connectors can't be lit up because no crtc can be found to
> > drive them.
> > 
> > I've submitted a fix for the modesetting ddx [1], and complained
> > on #wayland about mutter, so hopefully the situation will improve
> > in the future. In the meantime we have regression, and so must go
> > back to the old way of misconfiguring possible_crtcs in the kernel.
> 
> In the meantime are you planing to send a patch doing:
> 
> for_each_pipe(dev_priv, pipe)
> 		intel_encoder->crtc_mask |= BIT(pipe);
> 
> We had a patch doing that in one of the TGL enabling series but it was
> dropped because of your patch looked better, I can bring it back if you
> are not planning.

Yeah, please resend your version.

> 
> > 
> > [1] https://gitlab.freedesktop.org/xorg/xserver/merge_requests/277
> 
> Just looked to the merge request above, not to the other userspace
> clients
> 
> Reviewed-by: José Roberto de Souza <jose.souza at intel.com>

Ta.

> 
> > 
> > Cc: Jonas Ådahl <jadahl at gmail.com>
> > Cc: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>
> > Cc: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> > Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan at intel.com>
> > Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111507
> > Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_dp_mst.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > index 6df240a01b8c..37366f81255b 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > @@ -615,7 +615,7 @@ intel_dp_create_fake_mst_encoder(struct
> > intel_digital_port *intel_dig_port, enum
> >  	intel_encoder->type = INTEL_OUTPUT_DP_MST;
> >  	intel_encoder->power_domain = intel_dig_port-
> > >base.power_domain;
> >  	intel_encoder->port = intel_dig_port->base.port;
> > -	intel_encoder->crtc_mask = BIT(pipe);
> > +	intel_encoder->crtc_mask = 0x7;
> >  	intel_encoder->cloneable = 0;
> >  
> >  	intel_encoder->compute_config = intel_dp_mst_compute_config;

-- 
Ville Syrjälä
Intel


More information about the Intel-gfx mailing list