search for: atomic_best_encod

Displaying 20 results from an estimated 45 matches for "atomic_best_encod".

Did you mean: atomic_best_encoder
2016 Jun 03
1
[PATCH 01/20] drm/atomic: Fix remaining places where !funcs->best_encoder is valid
...his hook unassigned if they know they want > >> to use drm_atomic_helper_best_encoder(). > > > > Could you please update include/drm/drm_modeset_helper_vtables.h to document > > this new behaviour ? > > Thanks for reminding me. Please update hooks for both > atomic_best_encoder and best_encoder. Also mention that it's only > optional for atomic drivers. There's lots of examples in that file for > the wording usually used. Hm, I haven't changed anything for the ->atomic_best_encoder() hook, or am I missing something? > > > The only drawba...
2016 Jun 03
1
[PATCH 01/20] drm/atomic: Fix remaining places where !funcs->best_encoder is valid
...his hook unassigned if they know they want > >> to use drm_atomic_helper_best_encoder(). > > > > Could you please update include/drm/drm_modeset_helper_vtables.h to document > > this new behaviour ? > > Thanks for reminding me. Please update hooks for both > atomic_best_encoder and best_encoder. Also mention that it's only > optional for atomic drivers. There's lots of examples in that file for > the wording usually used. Hm, I haven't changed anything for the ->atomic_best_encoder() hook, or am I missing something? > > > The only drawba...
2016 Jun 02
4
[PATCH 01/20] drm/atomic: Fix remaining places where !funcs->best_encoder is valid
...rs/gpu/drm/drm_atomic_helper.c > b/drivers/gpu/drm/drm_atomic_helper.c index f6a3350..849d029 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -300,8 +300,10 @@ update_connector_routing(struct drm_atomic_state > *state, if (funcs->atomic_best_encoder) > new_encoder = funcs->atomic_best_encoder(connector, > connector_state); > - else > + else if (funcs->best_encoder) > new_encoder = funcs->best_encoder(connector); > + else > + new_encoder = drm_atomic_helper_best_encoder(connector); > > if...
2016 Jun 02
4
[PATCH 01/20] drm/atomic: Fix remaining places where !funcs->best_encoder is valid
...rs/gpu/drm/drm_atomic_helper.c > b/drivers/gpu/drm/drm_atomic_helper.c index f6a3350..849d029 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -300,8 +300,10 @@ update_connector_routing(struct drm_atomic_state > *state, if (funcs->atomic_best_encoder) > new_encoder = funcs->atomic_best_encoder(connector, > connector_state); > - else > + else if (funcs->best_encoder) > new_encoder = funcs->best_encoder(connector); > + else > + new_encoder = drm_atomic_helper_best_encoder(connector); > > if...
2019 Sep 13
1
[PATCH 2/4] drm/nouveau: dispnv50: Remove nv50_mstc_best_encoder()
On Fri, Sep 13, 2019 at 6:05 PM Lyude Paul <lyude at redhat.com> wrote: > > When drm_connector_helper_funcs->atomic_best_encoder is defined, > ->best_encoder is ignored both by the atomic modesetting helpers. That By both the atomic modesetting helpers and ... (usually "both" implies 2 things) > being said, this hook is completely broken anyway - it always returns > the first msto for a given mstc,...
2016 Jun 07
0
[PATCH v2 01/20] drm/atomic: Fix remaining places where !funcs->best_encoder is valid
...(-) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index f6a3350..849d029 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -300,8 +300,10 @@ update_connector_routing(struct drm_atomic_state *state, if (funcs->atomic_best_encoder) new_encoder = funcs->atomic_best_encoder(connector, connector_state); - else + else if (funcs->best_encoder) new_encoder = funcs->best_encoder(connector); + else + new_encoder = drm_atomic_helper_best_encoder(connector); if (!new_encoder) { DRM_DEBUG_ATOMIC("...
2016 Jun 02
0
[PATCH 01/20] drm/atomic: Fix remaining places where !funcs->best_encoder is valid
...o >> that DRM drivers can leave this hook unassigned if they know they want >> to use drm_atomic_helper_best_encoder(). > > Could you please update include/drm/drm_modeset_helper_vtables.h to document > this new behaviour ? Thanks for reminding me. Please update hooks for both atomic_best_encoder and best_encoder. Also mention that it's only optional for atomic drivers. There's lots of examples in that file for the wording usually used. > The only drawback I see in this patch is the additional object lookup > performed by drm_atomic_helper_best_encoder() at runtime. I wonde...
2019 Sep 13
0
[PATCH 2/4] drm/nouveau: dispnv50: Remove nv50_mstc_best_encoder()
When drm_connector_helper_funcs->atomic_best_encoder is defined, ->best_encoder is ignored both by the atomic modesetting helpers. That being said, this hook is completely broken anyway - it always returns the first msto for a given mstc, despite the fact it might already be in use. So, just get rid of it. We'll need this in a moment anyway...
2016 Jun 02
0
[PATCH 01/20] drm/atomic: Fix remaining places where !funcs->best_encoder is valid
...(-) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index f6a3350..849d029 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -300,8 +300,10 @@ update_connector_routing(struct drm_atomic_state *state, if (funcs->atomic_best_encoder) new_encoder = funcs->atomic_best_encoder(connector, connector_state); - else + else if (funcs->best_encoder) new_encoder = funcs->best_encoder(connector); + else + new_encoder = drm_atomic_helper_best_encoder(connector); if (!new_encoder) { DRM_DEBUG_ATOMIC("...
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
2018 Oct 09
1
[PATCH v7 1/5] drm/atomic_helper: Disallow new modesets on unregistered connectors
...visible). Not sure why that is. Not that the full run would have caught this because we unwisely load the module before the tests start. Which means any failures during initial readout/takeover will not be flagged :( > + > funcs = connector->helper_private; > > if (funcs->atomic_best_encoder) > @@ -363,7 +383,6 @@ update_connector_routing(struct drm_atomic_state *state, > > set_best_encoder(state, new_connector_state, new_encoder); > > - crtc_state = drm_atomic_get_new_crtc_state(state, new_connector_state->crtc); > crtc_state->connectors_changed = tru...
2016 Jun 10
1
[PATCH v2 06/20] drm: i915: Rely on the default ->best_encoder() behavior where appropriate
...helpers: > we can drop the custom ->best_encoder() implementation and let the core > call drm_atomic_helper_best_encoder() for us. > > Signed-off-by: Boris Brezillon <boris.brezillon at free-electrons.com> You can also drop the best_encoder from intel_dp_mst, we only need the atomic_best_encoder. The best_encoder there was needed to help out the fbdev emulation. Care to respin? -Daniel > --- > drivers/gpu/drm/i915/intel_crt.c | 1 - > drivers/gpu/drm/i915/intel_display.c | 8 -------- > drivers/gpu/drm/i915/intel_dp.c | 1 - > drivers/gpu/drm/i915/intel_drv.h...
2016 Jun 10
1
[PATCH v2 06/20] drm: i915: Rely on the default ->best_encoder() behavior where appropriate
...helpers: > we can drop the custom ->best_encoder() implementation and let the core > call drm_atomic_helper_best_encoder() for us. > > Signed-off-by: Boris Brezillon <boris.brezillon at free-electrons.com> You can also drop the best_encoder from intel_dp_mst, we only need the atomic_best_encoder. The best_encoder there was needed to help out the fbdev emulation. Care to respin? -Daniel > --- > drivers/gpu/drm/i915/intel_crt.c | 1 - > drivers/gpu/drm/i915/intel_display.c | 8 -------- > drivers/gpu/drm/i915/intel_dp.c | 1 - > drivers/gpu/drm/i915/intel_drv.h...
2018 Sep 18
0
[PATCH 2/6] drm/nouveau: Unbreak nv50_mstc->best_encoder()
...nged, 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; - } - return NULL;...
2018 Sep 19
0
[PATCH v2 2/6] drm/nouveau: Unbreak nv50_mstc->best_encoder()
...nged, 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; - } - return NULL;...
2018 Oct 05
0
[PATCH v4 1/5] drm/atomic_helper: Disallow new modesets on unregistered connectors
...ot before. + */ + if (!READ_ONCE(connector->registered) && crtc_state->active) { + DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] is not registered\n", + connector->base.id, connector->name); + return -EINVAL; + } + funcs = connector->helper_private; if (funcs->atomic_best_encoder) @@ -351,7 +371,6 @@ update_connector_routing(struct drm_atomic_state *state, set_best_encoder(state, new_connector_state, new_encoder); - crtc_state = drm_atomic_get_new_crtc_state(state, new_connector_state->crtc); crtc_state->connectors_changed = true; DRM_DEBUG_ATOMIC("...
2018 Oct 08
0
[PATCH v7 1/5] drm/atomic_helper: Disallow new modesets on unregistered connectors
...ot before. + */ + if (!READ_ONCE(connector->registered) && crtc_state->active) { + DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] is not registered\n", + connector->base.id, connector->name); + return -EINVAL; + } + funcs = connector->helper_private; if (funcs->atomic_best_encoder) @@ -363,7 +383,6 @@ update_connector_routing(struct drm_atomic_state *state, set_best_encoder(state, new_connector_state, new_encoder); - crtc_state = drm_atomic_get_new_crtc_state(state, new_connector_state->crtc); crtc_state->connectors_changed = true; DRM_DEBUG_ATOMIC("...
2018 Dec 14
0
[WIP PATCH 15/15] drm/nouveau: Use atomic VCPI helpers for MST
...VCPI + * must be released here + */ + return drm_dp_atomic_release_vcpi_slots(state, mgr, mstc->port); +} + static const struct drm_connector_helper_funcs nv50_mstc_help = { .get_modes = nv50_mstc_get_modes, .mode_valid = nv50_mstc_mode_valid, .best_encoder = nv50_mstc_best_encoder, .atomic_best_encoder = nv50_mstc_atomic_best_encoder, + .atomic_check = nv50_mstc_atomic_check, }; static enum drm_connector_status @@ -2121,6 +2157,10 @@ nv50_disp_atomic_check(struct drm_device *dev, struct drm_atomic_state *state) return ret; } + ret = drm_dp_mst_atomic_check(state); + if (ret) + retu...
2018 Oct 26
0
[PATCH v2 4/4] drm/nouveau: Use atomic VCPI helpers for MST
...mic_check() won't be called + */ + return drm_dp_atomic_release_vcpi_slots(state, mgr, mstc->port); +} + static const struct drm_connector_helper_funcs nv50_mstc_help = { .get_modes = nv50_mstc_get_modes, .mode_valid = nv50_mstc_mode_valid, .best_encoder = nv50_mstc_best_encoder, .atomic_best_encoder = nv50_mstc_atomic_best_encoder, + .atomic_check = nv50_mstc_atomic_check, }; static enum drm_connector_status @@ -2084,6 +2116,8 @@ nv50_disp_atomic_check(struct drm_device *dev, struct drm_atomic_state *state) struct drm_connector *connector; struct drm_crtc_state *new_crtc_state; str...
2019 Oct 22
0
[PATCH v5 06/14] drm/dp_mst: Protect drm_dp_mst_port members with locking
..._funcs = { - .detect = intel_dp_mst_detect, .fill_modes = drm_helper_probe_single_connector_modes, .atomic_get_property = intel_digital_connector_atomic_get_property, .atomic_set_property = intel_digital_connector_atomic_set_property, @@ -465,11 +452,26 @@ static struct drm_encoder *intel_mst_atomic_best_encoder(struct drm_connector *c return &intel_dp->mst_encoders[crtc->pipe]->base.base; } +static int +intel_dp_mst_detect(struct drm_connector *connector, + struct drm_modeset_acquire_ctx *ctx, bool force) +{ + struct intel_connector *intel_connector = to_intel_connector(connector)...