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...