mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-14 22:44:27 +08:00
drm/nouveau: Fix nv50_mstc->best_encoder()
As mentioned in the previous commit, we currently prevent new modesets on recently-removed MST connectors by returning no encoder from our ->best_encoder() callback once the MST port has disappeared. This is wrong however, because it prevents legacy modesetting users from being able to disable CRTCs on MST connectors after the connector's respective topology has disappeared. So, fix this by instead by just always returning a valid encoder. Changes since v2: - Remove usage of atomic MST helper for now, since that got replaced with a much simpler solution Signed-off-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Ben Skeggs <bskeggs@redhat.com> Cc: stable@vger.kernel.org Link: https://patchwork.freedesktop.org/patch/msgid/20181008232437.5571-3-lyude@redhat.com
This commit is contained in:
parent
b5d29843d8
commit
e87b0bbc9f
@ -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;
|
||||
}
|
||||
return NULL;
|
||||
|
||||
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(connector);
|
||||
if (mstc->port) {
|
||||
struct nv50_mstm *mstm = mstc->mstm;
|
||||
return &mstm->msto[0]->encoder;
|
||||
}
|
||||
return NULL;
|
||||
|
||||
return &mstc->mstm->msto[0]->encoder;
|
||||
}
|
||||
|
||||
static enum drm_mode_status
|
||||
|
Loading…
Reference in New Issue
Block a user