Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp4168040imm; Mon, 8 Oct 2018 16:27:27 -0700 (PDT) X-Google-Smtp-Source: ACcGV62XCw1ADtGcSA8y3zWhZYOBKSjGwQFsZSo8iszsknrnWl8cRlIPFWtCeJvSX6JP0EHBEadU X-Received: by 2002:a63:6507:: with SMTP id z7-v6mr22820202pgb.200.1539041247463; Mon, 08 Oct 2018 16:27:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539041247; cv=none; d=google.com; s=arc-20160816; b=QaZABaby1OrOKrqIrzWISPyVO6AldCuK5KJ/smIYz2KjYodfPrRUVdOuV17UsmSinz /hCErdzGYy6+35OR88E7RVnLlVrPlpgta9s+TZGpZdRRNmIWDKo3HK5aNYrkTBYu40IR 2hsZvVlBiggOrvIVg2pwSWP370AE51AP/tiKPeSSOHzD/al7KLatBVq19ioyZYRmW0FS qv/VReDbgUnE4ZXdIMzk3VV6D8tYv8J+IHAJY+pFt5AbFd6j7b4oEET4kinrpzAhUMz/ sxEyCAFPkEpIqrhvifSDdBECxSOWnUZYrXgM6GNPkxi5cJoFHfC0id5xbFQxomXWidv/ kBMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=vujzAebR9A2b9BJ6y1IdTyjjLCMrXqghbKXLhiTefT8=; b=A6Ti2KtscrWJOVOKogixrwj+sOSmWotZOZjFTN6VP1InsUSjdIngQG80YuhHM6HLAL 5r3prU5KMJT/eQWEd+1ShhpPmWmRH5TfFiohRVxhjJD4Os6jh0VZT2ezOvgXHeTDalhD Al7hHRNEmm+xX8h3ly+x9wRFeFqEnVJAksFD54DM0dLGXzesX78HQ7uq8EYv0h2Q8pbc BcQtSXNgTD7qk7bYeDeehWftzMdtfwjc8/qhu2nHsZpwODbjNWl4xUy3rQbIVXrzfqu7 kWxIlzoIexVD7XqYJrdaiszj3GRV4l08fjuzUVyR3sHEmTzWtsjpxyS7xj93G+p/6eGh fyHw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u7-v6si19259239pls.28.2018.10.08.16.27.13; Mon, 08 Oct 2018 16:27:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726707AbeJIGi7 (ORCPT + 99 others); Tue, 9 Oct 2018 02:38:59 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45278 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725759AbeJIGi6 (ORCPT ); Tue, 9 Oct 2018 02:38:58 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6A54F4E8BC; Mon, 8 Oct 2018 23:24:52 +0000 (UTC) Received: from malachite.bss.redhat.com (dhcp-10-20-1-11.bss.redhat.com [10.20.1.11]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4A5E36888C; Mon, 8 Oct 2018 23:24:51 +0000 (UTC) From: Lyude Paul To: intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: stable@vger.kernel.org, Ben Skeggs , David Airlie , Daniel Vetter , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Thierry Reding , linux-kernel@vger.kernel.org Subject: [PATCH v7 2/5] drm/nouveau: Fix nv50_mstc->best_encoder() Date: Mon, 8 Oct 2018 19:24:31 -0400 Message-Id: <20181008232437.5571-3-lyude@redhat.com> In-Reply-To: <20181008232437.5571-1-lyude@redhat.com> References: <20181008232437.5571-1-lyude@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 08 Oct 2018 23:24:52 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Reviewed-by: Daniel Vetter Cc: stable@vger.kernel.org --- drivers/gpu/drm/nouveau/dispnv50/disp.c | 14 ++++---------- 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 9f32b10c7c29..31b94bc9ec90 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; - } - 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 -- 2.17.1