search for: drm_atomic_crtc_needs_modeset

Displaying 20 results from an estimated 77 matches for "drm_atomic_crtc_needs_modeset".

2017 Jul 12
2
[PATCH 15/16] drm/nouveau: Convert nouveau to use new iterator macros
...w_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 && drm_atomic_crtc_needs_modeset(crtc_state)) { + old_crtc_state = drm_atomic_get_new_crtc_state(&atom->state, crtc); + new_crtc_state = drm_atomic_get_new_crtc_state(&atom->state, crtc); + if (old_crtc_state->active && drm_atomic_crtc_needs_modeset(new_crtc_state)) { outp = nv50_disp_outp_atomic_add(at...
2017 Jul 19
1
[PATCH v2 6/7] drm/nouveau: Convert nouveau to use new iterator macros, v2.
...w_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 && drm_atomic_crtc_needs_modeset(crtc_state)) { + old_crtc_state = drm_atomic_get_old_crtc_state(&atom->state, crtc); + new_crtc_state = drm_atomic_get_new_crtc_state(&atom->state, crtc); + if (old_crtc_state->active && drm_atomic_crtc_needs_modeset(new_crtc_state)) { outp = nv50_disp_outp_atomic_add(at...
2020 Aug 18
1
[PATCH 1/2] drm/virtio: fix unblank
When going through a disable/enable cycle without changing the framebuffer the optimization added by commit 3954ff10e06e ("drm/virtio: skip set_scanout if framebuffer didn't change") causes the screen stay blank. Add a bool to force an update to fix that. v2: use drm_atomic_crtc_needs_modeset() (Daniel). Cc: 1882851 at bugs.launchpad.net Fixes: 3954ff10e06e ("drm/virtio: skip set_scanout if framebuffer didn't change") Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> --- drivers/gpu/drm/virtio/virtgpu_drv.h | 1 + drivers/gpu/drm/virtio/virtgpu_display.c | 1...
2017 Jul 13
0
[Intel-gfx] [PATCH 15/16] drm/nouveau: Convert nouveau to use new iterator macros
...gt; 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 && drm_atomic_crtc_needs_modeset(crtc_state)) { > + old_crtc_state = drm_atomic_get_new_crtc_state(&atom->state, crtc); > + new_crtc_state = drm_atomic_get_new_crtc_state(&atom->state, crtc); I think you have a mixup here of the crtc states for old and new crtc, both are get_new_crtc_state. Otherwise lgtm. -D...
2020 Aug 28
1
[PATCH 1/2] drm/virtio: fix unblank
...nable cycle without changing the > > framebuffer the optimization added by commit 3954ff10e06e ("drm/virtio: > > skip set_scanout if framebuffer didn't change") causes the screen stay > > blank. Add a bool to force an update to fix that. > > > > v2: use drm_atomic_crtc_needs_modeset() (Daniel). > > > > Cc: 1882851 at bugs.launchpad.net > > Fixes: 3954ff10e06e ("drm/virtio: skip set_scanout if framebuffer didn't change") > > Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> > > Tested-by: Jiri Slaby <jirislaby at kernel.o...
2020 Aug 17
1
[PATCH] drm/virtio: fix unblank
...ling their > own. Or do I miss something here? Well, the virtio-gpu virtual hardware can't do plane updates and crtc updates independant from each other. So the crtc callbacks handle disable only (we don't need a fb for that) and leave the enable to the plane update. I suspect calling drm_atomic_crtc_needs_modeset() in plane update isn't going to fly ... take care, Gerd
2019 Feb 01
0
[PATCH v2 2/4] drm/dp_mst: Remove port validation in drm_dp_atomic_find_vcpi_slots()
...index 2e8a5fd9b262..60d858c2f2ce 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -771,8 +771,7 @@ nv50_msto_atomic_check(struct drm_encoder *encoder, mstc->pbn = drm_dp_calc_pbn_mode(crtc_state->adjusted_mode.clock, bpp); - if (drm_atomic_crtc_needs_modeset(crtc_state) && - !drm_connector_is_unregistered(connector)) { + if (drm_atomic_crtc_needs_modeset(crtc_state)) { slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr, mstc->port, mstc->pbn); if (slots < 0) -- 2.20.1
2016 Dec 22
1
[Intel-gfx] [PATCH v2 1/2] drm: Wrap the check for atomic_commit implementation
...anged, 22 insertions(+), 9 deletions(-) > > > > ... > > > diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h > > index 8cc7ca2..43db162 100644 > > --- a/include/drm/drm_atomic.h > > +++ b/include/drm/drm_atomic.h > > @@ -419,5 +419,16 @@ drm_atomic_crtc_needs_modeset(const struct drm_crtc_state > > *state) > >          state->connectors_changed; > >  } > >   > > +/* drm_drv_uses_atomic_modeset - check if the driver implements > > Shouldn't this be > > /** >  * drm_drv_uses_atomic_modeset - ... > > so...
2016 Dec 21
6
[PATCH v2 1/2] drm: Wrap the check for atomic_commit implementation
...drm_helper_disable_unused_functions(dev); ret = drm_fb_helper_initial_config(&fbcon->helper, preferred_bpp); diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h index 8cc7ca2..43db162 100644 --- a/include/drm/drm_atomic.h +++ b/include/drm/drm_atomic.h @@ -419,5 +419,16 @@ drm_atomic_crtc_needs_modeset(const struct drm_crtc_state *state) state->connectors_changed; } +/* drm_drv_uses_atomic_modeset - check if the driver implements + * atomic_commit() + * @dev: DRM device + * + * This check is useful if drivers do not have DRIVER_ATOMIC set but + * have atomic modesetting internally...
2019 Aug 01
1
[PATCH] drm/nouveau: Only release VCPI slots on mode changes
...26703816794 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -780,7 +780,7 @@ nv50_msto_atomic_check(struct drm_encoder *encoder, drm_dp_calc_pbn_mode(crtc_state->adjusted_mode.clock, connector->display_info.bpc * 3); - if (drm_atomic_crtc_needs_modeset(crtc_state)) { + if (crtc_state->mode_changed) { slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr, mstc->port, asyh->dp.pbn); -- 2.21.0
2019 Feb 01
6
[PATCH v2 0/4] drm/dp_mst: Fix regressions from new atomic VCPI helpers
This fixes the extra issues I discovered upstream after the introduction of my rework of the atomic VCPI helpers that occur during suspend/resume. This time around, we use a slightly different but much less complicated approach for fixing said issues. Cc: Daniel Vetter <daniel at ffwll.ch> Lyude Paul (4): drm/dp_mst: Fix unbalanced malloc ref in drm_dp_mst_deallocate_vcpi()
2016 Dec 22
0
[Intel-gfx] [PATCH v2 1/2] drm: Wrap the check for atomic_commit implementation
...            | 11 +++++++++++ >  5 files changed, 22 insertions(+), 9 deletions(-) > ... > diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h > index 8cc7ca2..43db162 100644 > --- a/include/drm/drm_atomic.h > +++ b/include/drm/drm_atomic.h > @@ -419,5 +419,16 @@ drm_atomic_crtc_needs_modeset(const struct drm_crtc_state > *state) >          state->connectors_changed; >  } >   > +/* drm_drv_uses_atomic_modeset - check if the driver implements Shouldn't this be /**  * drm_drv_uses_atomic_modeset - ... so it is included in the generated documentation? Ander >...
2018 Sep 18
0
[PATCH 5/6] drm/i915: Fix intel_dp_mst_best_encoder()
...or_state(state, connector); old_crtc = old_conn_state->crtc; if (!old_crtc) @@ -122,12 +129,6 @@ static int intel_dp_mst_atomic_check(struct drm_connector *connector, crtc_state = drm_atomic_get_new_crtc_state(state, old_crtc); slots = to_intel_crtc_state(crtc_state)->dp_m_n.tu; if (drm_atomic_crtc_needs_modeset(crtc_state) && slots > 0) { - struct drm_dp_mst_topology_mgr *mgr; - struct drm_encoder *old_encoder; - - old_encoder = old_conn_state->best_encoder; - mgr = &enc_to_mst(old_encoder)->primary->dp.mst_mgr; - ret = drm_dp_atomic_release_vcpi_slots(state, mgr, slots);...
2018 Sep 19
0
[PATCH v2 5/6] drm/i915: Fix intel_dp_mst_best_encoder()
...or_state(state, connector); old_crtc = old_conn_state->crtc; if (!old_crtc) @@ -122,12 +129,6 @@ static int intel_dp_mst_atomic_check(struct drm_connector *connector, crtc_state = drm_atomic_get_new_crtc_state(state, old_crtc); slots = to_intel_crtc_state(crtc_state)->dp_m_n.tu; if (drm_atomic_crtc_needs_modeset(crtc_state) && slots > 0) { - struct drm_dp_mst_topology_mgr *mgr; - struct drm_encoder *old_encoder; - - old_encoder = old_conn_state->best_encoder; - mgr = &enc_to_mst(old_encoder)->primary->dp.mst_mgr; - ret = drm_dp_atomic_release_vcpi_slots(state, mgr, slots);...
2018 Oct 23
0
[PATCH 3/6] drm/atomic: Add ->atomic_check() hook for private objects
...funcs->atomic_check(priv_obj, priv_state); + if (ret) { + DRM_DEBUG_ATOMIC("[PRIVATE:%p] atomic check on state %p failed\n", + priv_obj, priv_state); + return ret; + } + } + if (!state->allow_modeset) { for_each_new_crtc_in_state(state, crtc, crtc_state, i) { if (drm_atomic_crtc_needs_modeset(crtc_state)) { diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h index f9b35834c45d..3e504eeb1122 100644 --- a/include/drm/drm_atomic.h +++ b/include/drm/drm_atomic.h @@ -216,6 +216,22 @@ struct drm_private_state_funcs { */ void (*atomic_destroy_state)(struct drm_private_obj *ob...
2016 Dec 23
2
[PATCH v4 1/2] drm: Wrap the check for atomic_commit implementation
.../drm_atomic.h index 8cc7ca2..c894dde 100644 --- a/include/drm/drm_atomic.h +++ b/include/drm/drm_atomic.h @@ -29,6 +29,7 @@ #define DRM_ATOMIC_H_ #include <drm/drm_crtc.h> +#include <drm/drmP.h> /** * struct drm_crtc_commit - track modeset commits on a CRTC @@ -419,5 +420,17 @@ drm_atomic_crtc_needs_modeset(const struct drm_crtc_state *state) state->connectors_changed; } +/** + * drm_drv_uses_atomic_modeset - check if the driver implements + * atomic_commit() + * @dev: DRM device + * + * This check is useful if drivers do not have DRIVER_ATOMIC set but + * have atomic modesetting intern...
2018 Sep 19
1
[PATCH v2 1/6] drm/dp_mst: Introduce drm_dp_mst_connector_atomic_check()
...gr) +{ + struct drm_atomic_state *state = connector_state->state; + struct drm_crtc *crtc = connector_state->crtc; + struct drm_crtc_state *new_crtc_state; + + if (!crtc) + return 0; + + new_crtc_state = drm_atomic_get_new_crtc_state(state, crtc); + if (!new_crtc_state) + return 0; + + if (!drm_atomic_crtc_needs_modeset(new_crtc_state) || + !new_crtc_state->active) + return 0; + + /* Make sure that the port for this MST connector still exists */ + if (!drm_dp_mst_connector_still_exists(connector, mgr, + mgr->mst_primary)) { + DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] has disappeared from the...
2019 Feb 02
6
[PATCH v3 0/4] drm/dp_mst: Fix regressions from new atomic VCPI helpers
This fixes the extra issues I discovered upstream after the introduction of my rework of the atomic VCPI helpers that occur during suspend/resume. This time around, we use a slightly different but much less complicated approach for fixing said issues. Cc: Daniel Vetter <daniel at ffwll.ch> Lyude Paul (4): drm/dp_mst: Fix unbalanced malloc ref in drm_dp_mst_deallocate_vcpi()
2019 Feb 02
0
[PATCH v3 4/4] drm/nouveau: Move PBN and VCPI allocation into nv50_head_atom
...w remains the same and avoid recalculating it, as the connector's + * bpc may have changed after the state was duplicated + */ + if (!state->duplicated) + asyh->dp.pbn = + drm_dp_calc_pbn_mode(crtc_state->adjusted_mode.clock, + connector->display_info.bpc * 3); if (drm_atomic_crtc_needs_modeset(crtc_state)) { slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr, - mstc->port, mstc->pbn); + mstc->port, + asyh->dp.pbn); if (slots < 0) return slots; + + asyh->dp.tu = slots; } return nv50_outp_atomic_check_view(enco...
2018 Sep 18
4
[PATCH 1/6] drm/dp_mst: Introduce drm_dp_mst_connector_atomic_check()
...gr) +{ + struct drm_atomic_state *state = connector_state->state; + struct drm_crtc *crtc = connector_state->crtc; + struct drm_crtc_state *new_crtc_state; + + if (!crtc) + return 0; + + new_crtc_state = drm_atomic_get_new_crtc_state(state, crtc); + if (!new_crtc_state) + return 0; + + if (!drm_atomic_crtc_needs_modeset(new_crtc_state) || + !new_crtc_state->active) + return 0; + + /* Make sure that the port for this MST connector still exists */ + if (!drm_dp_mst_connector_still_exists(connector, mgr, + mgr->mst_primary)) { + DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] has disappeared from the...