search for: nv50_mstc

Displaying 20 results from an estimated 81 matches for "nv50_mstc".

2018 Sep 18
0
[PATCH 2/6] drm/nouveau: Unbreak nv50_mstc->best_encoder()
...1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index 9da0bdfe1e1c..8d6f6ee9bc75 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -881,22 +881,16 @@ nv50_mstc_atomic_best_encoder(struct drm_connector *connector, { struct nv50_head *head = nv50_head(connector_state->crtc); struct nv50_mstc *mstc = nv50_mstc(connector); - if (mstc->port) { - struct nv50_mstm *mstm = mstc->mstm; - return &mstm->msto[head->base.index]->encoder; -...
2018 Sep 19
0
[PATCH v2 2/6] drm/nouveau: Unbreak nv50_mstc->best_encoder()
...1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index 9da0bdfe1e1c..8d6f6ee9bc75 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -881,22 +881,16 @@ nv50_mstc_atomic_best_encoder(struct drm_connector *connector, { struct nv50_head *head = nv50_head(connector_state->crtc); struct nv50_mstc *mstc = nv50_mstc(connector); - if (mstc->port) { - struct nv50_mstm *mstm = mstc->mstm; - return &mstm->msto[head->base.index]->encoder; -...
2018 Oct 05
0
[PATCH v4 2/5] drm/nouveau: Fix nv50_mstc->best_encoder()
...1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index 5691dfa1db6f..63a23a80f279 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -843,22 +843,16 @@ nv50_mstc_atomic_best_encoder(struct drm_connector *connector, { struct nv50_head *head = nv50_head(connector_state->crtc); struct nv50_mstc *mstc = nv50_mstc(connector); - if (mstc->port) { - struct nv50_mstm *mstm = mstc->mstm; - return &mstm->msto[head->base.index]->encoder; -...
2018 Dec 14
0
[WIP PATCH 15/15] drm/nouveau: Use atomic VCPI helpers for MST
...that they're checking, and additionally don't actually check whether or not the topology still has enough bandwidth to provide the VCPI tokens required. So, drop usage of the old helpers and move entirely over to the atomic helpers. Changes since v5: - Update nv50_msto_atomic_check() and nv50_mstc_atomic_check() to the new requirements for drm_dp_atomic_find_vcpi_slots() and drm_dp_atomic_release_vcpi_slots() Signed-off-by: Lyude Paul <lyude at redhat.com> Cc: Daniel Vetter <daniel.vetter at ffwll.ch> --- drivers/gpu/drm/nouveau/dispnv50/disp.c | 52 ++++++++++++++++++++++...
2018 Oct 26
0
[PATCH v2 4/4] drm/nouveau: Use atomic VCPI helpers for MST
...f438b..37503319e5b1 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -747,16 +747,22 @@ nv50_msto_atomic_check(struct drm_encoder *encoder, struct drm_crtc_state *crtc_state, struct drm_connector_state *conn_state) { - struct nv50_mstc *mstc = nv50_mstc(conn_state->connector); + struct drm_atomic_state *state = crtc_state->state; + struct drm_connector *connector = conn_state->connector; + struct nv50_mstc *mstc = nv50_mstc(connector); struct nv50_mstm *mstm = mstc->mstm; - int bpp = conn_state->connector->dis...
2018 Jul 12
3
[PATCH 0/2] drm/nouveau: Add support for dp_mst_info in debugfs
This hooks up the DRM helpers for dumping information on the current status of each MST topology from nouveau's perspective to debugfs files, similar to what i915 does (albeit, i915 labels their debugfs node for this as i915_dp_mst_info). Lyude Paul (2): drm/nouveau: Expose nv50 MST structures in disp.h drm/nouveau: Hook up dp_mst_info in debugfs drivers/gpu/drm/nouveau/dispnv50/disp.c
2018 Dec 14
0
[WIP PATCH 10/15] drm/nouveau: Stop unsetting mstc->port, use malloc refs
Same as we did for i915, but for nouveau this time. Additionally, we grab a malloc reference to the port that lasts for the entire lifetime of nv50_mstc, which gives us the guarantee that mstc->port will always point to valid memory for as long as the mstc stays around. Signed-off-by: Lyude Paul <lyude at redhat.com> --- drivers/gpu/drm/nouveau/dispnv50/disp.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) dif...
2017 Nov 10
2
[PATCH] Accept 3d controllers and not only VGA controllers.
...play.c index fb47d46050ec..061daf036407 100644 --- a/drivers/gpu/drm/nouveau/nv50_display.c +++ b/drivers/gpu/drm/nouveau/nv50_display.c @@ -3214,6 +3214,13 @@ nv50_mstm_destroy_connector(struct drm_dp_mst_topology_mgr *mgr,      struct nouveau_drm *drm = nouveau_drm(connector->dev);      struct nv50_mstc *mstc = nv50_mstc(connector);   +    if (!drm->fbcon) +    { +        NV_WARN(drm, "drm->fbcon of %s point to NULL. Will not destroy connector\n", +            connector->name); +        return; +    } +      drm_connector_unregister(&mstc->connector);        drm_modeset_l...
2019 Sep 13
1
[PATCH 2/4] drm/nouveau: dispnv50: Remove nv50_mstc_best_encoder()
...anged, 9 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c > index b46be8a091e9..a3f350fdfa8c 100644 > --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c > +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c > @@ -920,14 +920,6 @@ nv50_mstc_atomic_best_encoder(struct drm_connector *connector, > return &mstc->mstm->msto[head->base.index]->encoder; > } > > -static struct drm_encoder * > -nv50_mstc_best_encoder(struct drm_connector *connector) > -{ > - struct nv50_mstc *mstc = nv50_mstc...
2018 Sep 14
1
[PATCH] drm/nouveau: Grab runtime PM ref in nv50_mstc_detect()
...), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index c94b7f42d62d..9da0bdfe1e1c 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -938,9 +938,22 @@ static enum drm_connector_status nv50_mstc_detect(struct drm_connector *connector, bool force) { struct nv50_mstc *mstc = nv50_mstc(connector); + enum drm_connector_status conn_status; + int ret; + if (!mstc->port) return connector_status_disconnected; - return drm_dp_mst_detect_port(connector, mstc->port->mgr, mstc->por...
2017 Dec 03
2
[PATCH] Accept 3d controllers and not only VGA controllers.
...--- a/drivers/gpu/drm/nouveau/nv50_display.c >> +++ b/drivers/gpu/drm/nouveau/nv50_display.c >> @@ -3214,6 +3214,13 @@ nv50_mstm_destroy_connector(struct >> drm_dp_mst_topology_mgr *mgr, >>       struct nouveau_drm *drm = nouveau_drm(connector->dev); >>       struct nv50_mstc *mstc = nv50_mstc(connector); >>   +    if (!drm->fbcon) >> +    { >> +        NV_WARN(drm, "drm->fbcon of %s point to NULL. Will not destroy >> connector\n", >> +            connector->name); >> +        return; >> +    } >> + >...
2019 Sep 13
6
[PATCH 1/4] drm/nouveau: dispnv50: Don't create MSTMs for eDP connectors
On the ThinkPad P71, we have one eDP connector exposed along with 5 DP connectors, resulting in a total of 11 TMDS encoders. Since the GPU on this system is also capable of MST, we create an additional 4 fake MST encoders for each DP port. Unfortunately, we also do this for the eDP port as well, resulting in: 1 eDP port: +1 TMDS encoder +4 DPMST encoders 5 DP ports: +2 TMDS
2019 Feb 02
0
[PATCH v3 4/4] drm/nouveau: Move PBN and VCPI allocation into nv50_head_atom
...head_atom_mask { struct { bool olut:1; diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index 60d858c2f2ce..e8bb35f6d015 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -659,8 +659,6 @@ struct nv50_mstc { struct drm_display_mode *native; struct edid *edid; - - int pbn; }; struct nv50_msto { @@ -765,17 +763,26 @@ nv50_msto_atomic_check(struct drm_encoder *encoder, struct drm_connector *connector = conn_state->connector; struct nv50_mstc *mstc = nv50_mstc(connector); struct nv50_m...
2018 Nov 17
0
[PATCH 2/6] drm/nouveau: Use drm_dp_get_payload_info() for getting payload/vcpi
...drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -665,41 +665,24 @@ struct nv50_msto { bool disabled; }; -static struct drm_dp_payload * -nv50_msto_payload(struct nv50_msto *msto) -{ - struct nouveau_drm *drm = nouveau_drm(msto->encoder.dev); - struct nv50_mstc *mstc = msto->mstc; - struct nv50_mstm *mstm = mstc->mstm; - int vcpi = mstc->port->vcpi.vcpi, i; - - NV_ATOMIC(drm, "%s: vcpi %d\n", msto->encoder.name, vcpi); - for (i = 0; i < mstm->mgr.max_payloads; i++) { - struct drm_dp_payload *payload = &mstm->mgr.payl...
2017 Dec 14
2
[PATCH] Accept 3d controllers and not only VGA controllers.
....c >>>> +++ b/drivers/gpu/drm/nouveau/nv50_display.c >>>> @@ -3214,6 +3214,13 @@ nv50_mstm_destroy_connector(struct >>>> drm_dp_mst_topology_mgr *mgr, >>>> struct nouveau_drm *drm = nouveau_drm(connector->dev); >>>> struct nv50_mstc *mstc = nv50_mstc(connector); >>>> + if (!drm->fbcon) >>>> + { >>>> + NV_WARN(drm, "drm->fbcon of %s point to NULL. Will not destroy >>>> connector\n", >>>> + connector->name); >>>>...
2018 Oct 05
10
[PATCH v4 0/5] Fix legacy DPMS changes with MST
Next version of https://patchwork.freedesktop.org/series/49878/ . No changes, except that these patches are against master so hopefully intel's CI doesn't get confused this time. Lyude Paul (5): drm/atomic_helper: Disallow new modesets on unregistered connectors drm/nouveau: Fix nv50_mstc->best_encoder() drm/i915: Leave intel_conn->mst_port set, use mst_port_gone instead drm/i915: Skip vcpi allocation for MSTB ports that are gone drm/i915: Fix intel_dp_mst_best_encoder() drivers/gpu/drm/drm_atomic_helper.c | 21 ++++++++++++++++- drivers/gpu/drm/i915/intel_dp_mst.c...
2018 Oct 04
5
[PATCH v3 0/5] Fix legacy DPMS changes with MST
Next version of https://patchwork.freedesktop.org/series/49877/ This fixes some rather silly bugs regarding DPMS On->Off changes failing for connectors which were just recently destroyed. Lyude Paul (5): drm/atomic_helper: Disallow new modesets on unregistered connectors drm/nouveau: Fix nv50_mstc->best_encoder() drm/i915: Leave intel_conn->mst_port set, use mst_port_gone instead drm/i915: Skip vcpi allocation for MSTB ports that are gone drm/i915: Fix intel_dp_mst_best_encoder() drivers/gpu/drm/drm_atomic_helper.c | 21 ++++++++++++++++- drivers/gpu/drm/i915/intel_dp_mst.c...
2018 Oct 08
5
[PATCH v5 0/5] Fix legacy DPMS changes with MST
Latest version of https://patchwork.freedesktop.org/series/49878/ Lyude Paul (5): drm/atomic_helper: Disallow new modesets on unregistered connectors drm/nouveau: Fix nv50_mstc->best_encoder() drm/i915: Don't unset intel_connector->mst_port drm/i915: Skip vcpi allocation for MSTB ports that are gone drm/i915: Fix intel_dp_mst_best_encoder() drivers/gpu/drm/drm_atomic_helper.c | 21 ++++++++++++- drivers/gpu/drm/i915/intel_dp_mst.c | 41 ++++++++++...
2018 Oct 08
5
[PATCH v6 0/5] Fix legacy DPMS changes with MST
Next version of https://patchwork.freedesktop.org/series/49878/ No functional changes, just a typo fix Lyude Paul (5): drm/atomic_helper: Disallow new modesets on unregistered connectors drm/nouveau: Fix nv50_mstc->best_encoder() drm/i915: Don't unset intel_connector->mst_port drm/i915: Skip vcpi allocation for MSTB ports that are gone drm/i915: Fix intel_dp_mst_best_encoder() drivers/gpu/drm/drm_atomic_helper.c | 21 ++++++++++++- drivers/gpu/drm/i915/intel_dp_mst.c | 41 ++++++++++...
2020 Jul 24
2
[PATCH 0/2] drm/probe_helper, drm/nouveau: Validate MST modes against PBN
Now that we've added the hooks that we've needed for this and used them in i915, let's add one more hook (which I could use some feedback on, I'm not sure if it's worth maybe just reworking how we do mode pruning in nouveau instead...) and start using this in our mst ->mode_valid callback to filter out impossible to set modes on MST connectors. Lyude Paul (2):