All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manasi Navare <manasi.d.navare@intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 2/2] drm/i915/dp: Modeset only the tiled connectors with CRTC
Date: Thu, 23 Jan 2020 14:47:04 -0800	[thread overview]
Message-ID: <20200123224703.GC4379@intel.com> (raw)
In-Reply-To: <20200123182712.GV13686@intel.com>

On Thu, Jan 23, 2020 at 08:27:12PM +0200, Ville Syrjälä wrote:
> On Wed, Jan 22, 2020 at 04:24:15PM -0800, Manasi Navare wrote:
> 
> Missing commit msg.

Yes will add the commit message

> 
> 
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Fixes: a603f5bd1691 ("drm/i915/dp: Make sure all tiled connectors get added to the state with full modeset")
> > Closes: https://gitlab.freedesktop.org/drm/intel/issues/516
> > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_display.c | 10 +++++++---
> >  1 file changed, 7 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> > index 79f9054078ea..c8d6f6e8fc7f 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -13155,11 +13155,12 @@ intel_modeset_pipe_config(struct intel_crtc_state *pipe_config)
> >  	}
> >  
> >  	/* Get total number of tiled connectors in state that belong to
> > -	 * this tile group.
> > +	 * this tile group and that have a CRTC
> >  	 */
> >  	for_each_new_connector_in_state(state, connector, connector_state, i) {
> >  		if (connector->has_tile &&
> > -		    connector->tile_group->id == tile_group_id)
> > +		    connector->tile_group->id == tile_group_id &&
> > +		    connector_state->crtc)
> 
> It might have a crtc, but that crtc might not be active. So feels like
> this fixes things more by luck that by design.

In case of kms_flip test cases, the second connector did not have crtc and it was
still getting added to the state trying to do commit on that causing it to fail.

So adding this check fixes it. So I think this fix is definitely needed plus I will look at
adding a check for crtc_active using your suggested approach in your branch too.

> 
> The real problem of course is that we can't tell whether other crtcs are
> active or not during intel_modeset_pipe_config(). All pipes must finish
> that stage before we can make an actual decision based on what's active
> and what's inactive. And that requires the two stage approach I proposed
> in my branch before xmas.

Perhaps I was thinking of adding another check after intel_modeset_pipe_config() but in intel_atomic_check()
something like intel_port_sync_check() where we count the number of conns with active crtc and if that is
less than the num tiles and if trans_port_sync mode, then reset port sync mode assignments so it commits
in the normal non port sync mode.
What do you think of this approach? I will also take a look at your branch and try to understand that.

Manasi

> 
> >  			num_tiled_conns++;
> >  	}
> >  
> > @@ -14507,13 +14508,14 @@ intel_modeset_all_tiles(struct intel_atomic_state *state, int tile_grp_id)
> >  			continue;
> >  		conn_state = drm_atomic_get_connector_state(&state->base,
> >  							    connector);
> > +
> >  		if (IS_ERR(conn_state)) {
> >  			ret =  PTR_ERR(conn_state);
> >  			break;
> >  		}
> >  
> >  		if (!conn_state->crtc)
> > -			continue;
> > +			break;
> >  
> >  		crtc_state = drm_atomic_get_crtc_state(&state->base,
> >  						       conn_state->crtc);
> > @@ -14550,6 +14552,8 @@ intel_atomic_check_tiled_conns(struct intel_atomic_state *state)
> >  			continue;
> >  		if (!intel_connector_needs_modeset(state, connector))
> >  			continue;
> > +		if (!new_conn_state->crtc)
> > +			continue;
> >  
> >  		ret = intel_modeset_all_tiles(state, connector->tile_group->id);
> >  		if (ret)
> > -- 
> > 2.19.1
> 
> -- 
> Ville Syrjälä
> Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2020-01-23 22:46 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-23  0:24 [Intel-gfx] [PATCH 1/2] drm/i915/dp: Do not set master_trans bit in bitmak if INVALID_TRANSCODER Manasi Navare
2020-01-23  0:24 ` [Intel-gfx] [PATCH 2/2] drm/i915/dp: Modeset only the tiled connectors with CRTC Manasi Navare
2020-01-23 18:27   ` Ville Syrjälä
2020-01-23 22:47     ` Manasi Navare [this message]
2020-01-24 21:22       ` Manasi Navare
2020-01-23  4:40 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915/dp: Do not set master_trans bit in bitmak if INVALID_TRANSCODER Patchwork
2020-01-23  5:19 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2020-01-23 14:01 ` [Intel-gfx] [PATCH 1/2] " Ville Syrjälä
2020-01-23 22:04   ` Manasi Navare
2020-01-23 18:25 ` Souza, Jose
2020-01-23 18:31   ` Ville Syrjälä
2020-01-23 18:39     ` Ville Syrjälä
2020-01-23 22:00     ` Manasi Navare
2020-01-24  1:13 ` Manasi Navare

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200123224703.GC4379@intel.com \
    --to=manasi.d.navare@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.