Displaying 20 results from an estimated 67 matches for "old_crtc_state".
2018 Dec 14
0
[WIP PATCH 15/15] drm/nouveau: Use atomic VCPI helpers for MST
...t drm_atomic_state *state = new_conn_state->state;
+	struct nv50_mstc *mstc = nv50_mstc(connector);
+	struct drm_dp_mst_topology_mgr *mgr = &mstc->mstm->mgr;
+	struct drm_connector_state *old_conn_state =
+		drm_atomic_get_old_connector_state(state, connector);
+	struct drm_crtc_state *old_crtc_state;
+	struct drm_crtc *new_crtc = new_conn_state->crtc,
+			*old_crtc = old_conn_state->crtc;
+
+	if (!old_crtc)
+		return 0;
+
+	old_crtc_state = drm_atomic_get_old_crtc_state(state, old_crtc);
+	if (!old_crtc_state || !old_crtc_state->enable)
+		return 0;
+
+	if (new_crtc)
+		return 0;
+
+...
2017 Jul 12
2
[PATCH 15/16] drm/nouveau: Convert nouveau to use new iterator macros
...m,
-				struct drm_connector *connector)
+				struct drm_connector_state *old_connector_state)
 {
-	struct drm_encoder *encoder = connector->state->best_encoder;
-	struct drm_crtc_state *crtc_state;
+	struct drm_encoder *encoder = old_connector_state->best_encoder;
+	struct drm_crtc_state *old_crtc_state, *new_crtc_state;
 	struct drm_crtc *crtc;
 	struct nv50_outp_atom *outp;
 
-	if (!(crtc = connector->state->crtc))
+	if (!(crtc = old_connector_state->crtc))
 		return 0;
 
-	crtc_state = drm_atomic_get_existing_crtc_state(&atom->state, crtc);
-	if (crtc->state->active &&...
2017 Jul 19
1
[PATCH v2 6/7] drm/nouveau: Convert nouveau to use new iterator macros, v2.
...m,
-				struct drm_connector *connector)
+				struct drm_connector_state *old_connector_state)
 {
-	struct drm_encoder *encoder = connector->state->best_encoder;
-	struct drm_crtc_state *crtc_state;
+	struct drm_encoder *encoder = old_connector_state->best_encoder;
+	struct drm_crtc_state *old_crtc_state, *new_crtc_state;
 	struct drm_crtc *crtc;
 	struct nv50_outp_atom *outp;
 
-	if (!(crtc = connector->state->crtc))
+	if (!(crtc = old_connector_state->crtc))
 		return 0;
 
-	crtc_state = drm_atomic_get_existing_crtc_state(&atom->state, crtc);
-	if (crtc->state->active &&...
2019 Aug 07
3
[PATCH v2 0/2] drm/nouveau: CRTC Runtime PM ref tracking fixes
Just some runtime PM fixes for some much less noticeable runtime PM ref
tracking issues that I got reminded of when fixing some unrelated issues
with nouveau.
Changes since v1:
* Don't fix CRTC RPM code in dispnv04, because it's not actually doing
  anything in the first place. Just get rid of it. - imirkin
Lyude Paul (2):
  drm/nouveau/dispnv04: Remove runtime PM
  drm/nouveau/dispnv50:
2018 Nov 26
4
[PATCH v6 3/6] drm/dp_mst: Start tracking per-port VCPI allocations
...ncoder *encoder,
>  	struct drm_connector *connector = conn_state->connector;
>  	void *port = to_intel_connector(connector)->port;
>  	struct drm_atomic_state *state = pipe_config->base.state;
> +	struct drm_crtc *crtc = pipe_config->base.crtc;
> +	struct drm_crtc_state *old_crtc_state =
> +		drm_atomic_get_old_crtc_state(state, crtc);
> +	struct drm_crtc_state *new_crtc_state = &pipe_config->base;
>  	int bpp;
> -	int lane_count, slots = 0;
> +	int lane_count, slots =
> +		to_intel_crtc_state(old_crtc_state)->dp_m_n.tu;
>  	const struct drm_display...
2018 Nov 29
1
[PATCH v6 3/6] drm/dp_mst: Start tracking per-port VCPI allocations
...void *port = to_intel_connector(connector)->port;
> > > > > > >  	struct drm_atomic_state *state = pipe_config->base.state;
> > > > > > > +	struct drm_crtc *crtc = pipe_config->base.crtc;
> > > > > > > +	struct drm_crtc_state *old_crtc_state =
> > > > > > > +		drm_atomic_get_old_crtc_state(state, crtc);
> > > > > > > +	struct drm_crtc_state *new_crtc_state = &pipe_config->base;
> > > > > > >  	int bpp;
> > > > > > > -	int lane_count, slots = 0;
&...
2018 Nov 16
8
[PATCH v6 0/6] drm/dp_mst: Improve VCPI helpers, use in nouveau
This patchset does some cleaning up of the atomic VCPI helpers for MST,
and converts nouveau over to using them. I would have included amdgpu in
this patch as well, but at the moment moving them over to the atomic
helpers is nontrivial.
[sorry for still not adding your R-Bs! I ended up needing to make a
lot of changes to make it so we do actually kref() each port in the
atomic state]
Cc: Daniel
2018 Nov 28
3
[PATCH v6 3/6] drm/dp_mst: Start tracking per-port VCPI allocations
...or;
> > > > >  	void *port = to_intel_connector(connector)->port;
> > > > >  	struct drm_atomic_state *state = pipe_config->base.state;
> > > > > +	struct drm_crtc *crtc = pipe_config->base.crtc;
> > > > > +	struct drm_crtc_state *old_crtc_state =
> > > > > +		drm_atomic_get_old_crtc_state(state, crtc);
> > > > > +	struct drm_crtc_state *new_crtc_state = &pipe_config->base;
> > > > >  	int bpp;
> > > > > -	int lane_count, slots = 0;
> > > > > +	int lane_count...
2018 Nov 27
2
[PATCH v6 3/6] drm/dp_mst: Start tracking per-port VCPI allocations
...ctor *connector = conn_state->connector;
> > >  	void *port = to_intel_connector(connector)->port;
> > >  	struct drm_atomic_state *state = pipe_config->base.state;
> > > +	struct drm_crtc *crtc = pipe_config->base.crtc;
> > > +	struct drm_crtc_state *old_crtc_state =
> > > +		drm_atomic_get_old_crtc_state(state, crtc);
> > > +	struct drm_crtc_state *new_crtc_state = &pipe_config->base;
> > >  	int bpp;
> > > -	int lane_count, slots = 0;
> > > +	int lane_count, slots =
> > > +		to_intel_crtc_state(ol...
2019 Aug 07
3
[PATCH 0/2] drm/nouveau: CRTC Runtime PM ref tracking fixes
Just some runtime PM fixes for some much less noticeable runtime PM ref
tracking issues that I got reminded of when fixing some unrelated issues
with nouveau.
Lyude Paul (2):
  drm/nouveau/dispnv04: Grab/put runtime PM refs on DPMS on/off
  drm/nouveau/dispnv50: Fix runtime PM ref tracking for non-blocking
    modesets
 drivers/gpu/drm/nouveau/dispnv04/crtc.c | 18 +++---------
2018 Dec 14
0
[WIP PATCH 13/15] drm/dp_mst: Start tracking per-port VCPI allocations
...ute_config(struct intel_encoder *encoder,
 	struct drm_connector *connector = conn_state->connector;
 	void *port = to_intel_connector(connector)->port;
 	struct drm_atomic_state *state = pipe_config->base.state;
+	struct drm_crtc *crtc = pipe_config->base.crtc;
+	struct drm_crtc_state *old_crtc_state =
+		drm_atomic_get_old_crtc_state(state, crtc);
+	struct drm_crtc_state *new_crtc_state = &pipe_config->base;
 	int bpp;
-	int lane_count, slots = 0;
+	int lane_count, slots =
+		to_intel_crtc_state(old_crtc_state)->dp_m_n.tu;
 	const struct drm_display_mode *adjusted_mode = &pipe_co...
2018 Nov 16
0
[PATCH v6 3/6] drm/dp_mst: Start tracking per-port VCPI allocations
...ute_config(struct intel_encoder *encoder,
 	struct drm_connector *connector = conn_state->connector;
 	void *port = to_intel_connector(connector)->port;
 	struct drm_atomic_state *state = pipe_config->base.state;
+	struct drm_crtc *crtc = pipe_config->base.crtc;
+	struct drm_crtc_state *old_crtc_state =
+		drm_atomic_get_old_crtc_state(state, crtc);
+	struct drm_crtc_state *new_crtc_state = &pipe_config->base;
 	int bpp;
-	int lane_count, slots = 0;
+	int lane_count, slots =
+		to_intel_crtc_state(old_crtc_state)->dp_m_n.tu;
 	const struct drm_display_mode *adjusted_mode = &pipe_co...
2018 Nov 26
0
[PATCH v6 3/6] drm/dp_mst: Start tracking per-port VCPI allocations
...;  	struct drm_connector *connector = conn_state->connector;
> >  	void *port = to_intel_connector(connector)->port;
> >  	struct drm_atomic_state *state = pipe_config->base.state;
> > +	struct drm_crtc *crtc = pipe_config->base.crtc;
> > +	struct drm_crtc_state *old_crtc_state =
> > +		drm_atomic_get_old_crtc_state(state, crtc);
> > +	struct drm_crtc_state *new_crtc_state = &pipe_config->base;
> >  	int bpp;
> > -	int lane_count, slots = 0;
> > +	int lane_count, slots =
> > +		to_intel_crtc_state(old_crtc_state)->dp_m_n.tu;
&...
2017 Jul 13
0
[Intel-gfx] [PATCH 15/16] drm/nouveau: Convert nouveau to use new iterator macros
...connector)
> +				struct drm_connector_state *old_connector_state)
>  {
> -	struct drm_encoder *encoder = connector->state->best_encoder;
> -	struct drm_crtc_state *crtc_state;
> +	struct drm_encoder *encoder = old_connector_state->best_encoder;
> +	struct drm_crtc_state *old_crtc_state, *new_crtc_state;
>  	struct drm_crtc *crtc;
>  	struct nv50_outp_atom *outp;
>  
> -	if (!(crtc = connector->state->crtc))
> +	if (!(crtc = old_connector_state->crtc))
>  		return 0;
>  
> -	crtc_state = drm_atomic_get_existing_crtc_state(&atom->state, crtc)...
2018 Nov 26
0
[PATCH v6 3/6] drm/dp_mst: Start tracking per-port VCPI allocations
...;  	struct drm_connector *connector = conn_state->connector;
> >  	void *port = to_intel_connector(connector)->port;
> >  	struct drm_atomic_state *state = pipe_config->base.state;
> > +	struct drm_crtc *crtc = pipe_config->base.crtc;
> > +	struct drm_crtc_state *old_crtc_state =
> > +		drm_atomic_get_old_crtc_state(state, crtc);
> > +	struct drm_crtc_state *new_crtc_state = &pipe_config->base;
> >  	int bpp;
> > -	int lane_count, slots = 0;
> > +	int lane_count, slots =
> > +		to_intel_crtc_state(old_crtc_state)->dp_m_n.tu;
&...
2018 Dec 19
0
[PATCH 03/14] drm/bochs: atomic: add atomic_flush+atomic_enable callbacks.
...ex f7e6d1a9b3..59d469f343 100644
--- a/drivers/gpu/drm/bochs/bochs_kms.c
+++ b/drivers/gpu/drm/bochs/bochs_kms.c
@@ -115,6 +115,29 @@ static int bochs_crtc_page_flip(struct drm_crtc *crtc,
 	return 0;
 }
 
+static void bochs_crtc_atomic_enable(struct drm_crtc *crtc,
+				     struct drm_crtc_state *old_crtc_state)
+{
+}
+
+static void bochs_crtc_atomic_flush(struct drm_crtc *crtc,
+				    struct drm_crtc_state *old_crtc_state)
+{
+	struct drm_device *dev = crtc->dev;
+	struct drm_pending_vblank_event *event;
+	unsigned long irqflags;
+
+	if (crtc->state && crtc->state->event) {
+		event...
2018 Nov 27
0
[PATCH v6 3/6] drm/dp_mst: Start tracking per-port VCPI allocations
...nn_state->connector;
> > > >  	void *port = to_intel_connector(connector)->port;
> > > >  	struct drm_atomic_state *state = pipe_config->base.state;
> > > > +	struct drm_crtc *crtc = pipe_config->base.crtc;
> > > > +	struct drm_crtc_state *old_crtc_state =
> > > > +		drm_atomic_get_old_crtc_state(state, crtc);
> > > > +	struct drm_crtc_state *new_crtc_state = &pipe_config->base;
> > > >  	int bpp;
> > > > -	int lane_count, slots = 0;
> > > > +	int lane_count, slots =
> > >...
2018 Nov 28
0
[PATCH v6 3/6] drm/dp_mst: Start tracking per-port VCPI allocations
...gt; > >  	void *port = to_intel_connector(connector)->port;
> > > > > >  	struct drm_atomic_state *state = pipe_config->base.state;
> > > > > > +	struct drm_crtc *crtc = pipe_config->base.crtc;
> > > > > > +	struct drm_crtc_state *old_crtc_state =
> > > > > > +		drm_atomic_get_old_crtc_state(state, crtc);
> > > > > > +	struct drm_crtc_state *new_crtc_state = &pipe_config->base;
> > > > > >  	int bpp;
> > > > > > -	int lane_count, slots = 0;
> > > > &...
2020 Jun 29
0
[PATCH] drm/nouveau/kms/nvd9-: Fix disabling CRCs alongside OR reprogramming
...raster;
 
+		if (asyh->clr.crc && asyh->set.crc)
+			atom->flush_disable = true;
+	} else {
+		asyh->set.crc = false;
+		asyh->clr.crc = false;
+	}
+
+	return 0;
+}
+
+void nv50_crc_atomic_check_outp(struct nv50_atom *atom)
+{
+	struct drm_crtc *crtc;
+	struct drm_crtc_state *old_crtc_state, *new_crtc_state;
+	int i;
+
+	if (atom->flush_disable)
+		return;
+
+	for_each_oldnew_crtc_in_state(&atom->state, crtc, old_crtc_state,
+				      new_crtc_state, i) {
+		struct nv50_head_atom *armh = nv50_head_atom(old_crtc_state);
+		struct nv50_head_atom *asyh = nv50_head_atom(new_crt...
2019 Mar 11
3
[PATCH] drm/bochs: Fix NULL dereference on atomic_disable helper
Hi,
> > >  static void bochs_crtc_atomic_flush(struct drm_crtc *crtc,
> > >  				    struct drm_crtc_state *old_crtc_state)
> > >  {
> > > @@ -66,6 +71,7 @@ static const struct drm_crtc_funcs bochs_crtc_funcs = {
> > >  static const struct drm_crtc_helper_funcs bochs_helper_funcs = {
> > >  	.mode_set_nofb = bochs_crtc_mode_set_nofb,
> > >  	.atomic_enable = bochs_crtc_atomi...