From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E6027C49ED7 for ; Fri, 13 Sep 2019 13:32:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B26B2205ED for ; Fri, 13 Sep 2019 13:32:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1568381521; bh=L5lXlUw5/PMXuCH5X8+4oMPcGDM7AqtUwpF/lxNLzdg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=VSVKbcwb7aJe+G+fpodGA/gIybwKBoeNMS69muIMhiJQPJ7WWe+XmjaLWTS//nNTY 7lBzKdF+j2jD/coQVAzprIH7xbdp2QCK9unCPDvmM/WS02MI3x6ZbRZh3trj+l6QS/ wOuIoIinq+BmVyo5L8uKB/W75sGB84PV3mEyAuGY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388907AbfIMNOQ (ORCPT ); Fri, 13 Sep 2019 09:14:16 -0400 Received: from mail.kernel.org ([198.145.29.99]:40054 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388465AbfIMNOK (ORCPT ); Fri, 13 Sep 2019 09:14:10 -0400 Received: from localhost (unknown [104.132.45.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8C926206BB; Fri, 13 Sep 2019 13:14:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1568380450; bh=L5lXlUw5/PMXuCH5X8+4oMPcGDM7AqtUwpF/lxNLzdg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1hqkrDFb/74ZYme1KLKlwSzP5n5IRywmfwYnDaqttii4uy57Z4A91J/CulhY//kUs J8B6ipmFS6datgYUGlVDUSBP90hbz1vRyE7UYidde6GUxIMaaxCHVh/m/P28OYu/rN rJctbvZlXBIxo4hSGwT5kIhTAV6gsj8v0hy73GxQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lyude Paul , Daniel Vetter , Sasha Levin Subject: [PATCH 4.19 045/190] drm/i915: Fix intel_dp_mst_best_encoder() Date: Fri, 13 Sep 2019 14:05:00 +0100 Message-Id: <20190913130603.372065665@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190913130559.669563815@linuxfoundation.org> References: <20190913130559.669563815@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org [ Upstream commit a9f9ca33d1fe9325f414914be526c0fc4ba5281c ] Currently, i915 appears to rely on blocking modesets on no-longer-present MSTB ports by simply returning NULL for ->best_encoder(), which in turn causes any new atomic commits that don't disable the CRTC to fail. This is wrong however, since we still want to allow userspace to disable CRTCs on no-longer-present MSTB ports by changing the DPMS state to off and this still requires that we retrieve an encoder. So, fix this by always returning a valid encoder regardless of the state of the MST port. Changes since v1: - Remove mst atomic helper, since this got replaced with a much simpler solution Signed-off-by: Lyude Paul Reviewed-by: Daniel Vetter Cc: stable@vger.kernel.org Link: https://patchwork.freedesktop.org/patch/msgid/20181008232437.5571-6-lyude@redhat.com Signed-off-by: Sasha Levin --- drivers/gpu/drm/i915/intel_dp_mst.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c index 1fec0c71b4d95..58ba14966d4f1 100644 --- a/drivers/gpu/drm/i915/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/intel_dp_mst.c @@ -408,8 +408,6 @@ static struct drm_encoder *intel_mst_atomic_best_encoder(struct drm_connector *c struct intel_dp *intel_dp = intel_connector->mst_port; struct intel_crtc *crtc = to_intel_crtc(state->crtc); - if (!READ_ONCE(connector->registered)) - return NULL; return &intel_dp->mst_encoders[crtc->pipe]->base.base; } -- 2.20.1