Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp4156069pxb; Mon, 27 Sep 2021 10:31:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJymhTK78c+Ll9oyeqKb/iYEBssjVYQy1KRHf61t/2NLicJGCWu1snCdtPzuK1htPg/d1Kz9 X-Received: by 2002:a17:90a:ae18:: with SMTP id t24mr313392pjq.92.1632763902385; Mon, 27 Sep 2021 10:31:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632763902; cv=none; d=google.com; s=arc-20160816; b=kKnstXRHSXGxIALZRaT0XPXG2BHAuIPSdGjhW53myLH2gEmsXU9aiXx1b1YQgYBZBZ xHHstenIHLLKqTcjYHHfThiCMJTHCz5yG6lGmr1LH3jahJVAyhgwAMYciPE7vL52a62M 4o0jnm9pBwuRlt9zG4PfCkPR00ND6BZQ7WjKgwghtqmCGXDOfpbyYp9GABew9S2GcK8A IhrjaMzApSwxlNKTU4v404m8IoKU7q9olBelhVt9fMwrJ7dX7C3A60dboZ0pFhieUKfN 63Q9Ks1hVM5Xt9BflBytIk+sFPNQhcIAgSAny3SJYx89KDY+S3PlwmOqDLbMKpL/Gfji W66Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=foXo7Z5kJdhZrs+a0ZD1sku0BhSLGulbeX30kDFWz+U=; b=uoDI95ga7/9LFBN79+4rHnZLDQUg2rlYLQj7xDzVlITCbh1/aeAL2Zz5+oSxWjLMvt GtjnNYNCS4Yq3NxxNMwJfBhgC5n0XAMO0F8K7mvOsC0E0G+pOAfCOJDiUiMuTpiFv+Np +xVRLc5QXoiUJP5vH7so2V1KXVYyXWmBQt7QH7D102gAuXtUGSPWEmhiSroWAwvRc9GY XYpUAXtwpAYleGetCeGzwr3LE28yp39NcEbjy7b4PFjBPAkSsokwh/tcYEO8zx/iOIgJ arOcvK6UUTegIyZoZ25ljOJyjy7B3ReUWFEGldAwPBOkJaYSFS83L+4uKVCHz3xMcTzW BPZA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=IPjLkvkv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h69si7395405pge.191.2021.09.27.10.31.28; Mon, 27 Sep 2021 10:31:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=IPjLkvkv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238302AbhI0RcK (ORCPT + 99 others); Mon, 27 Sep 2021 13:32:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:41376 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237605AbhI0R2F (ORCPT ); Mon, 27 Sep 2021 13:28:05 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9544961414; Mon, 27 Sep 2021 17:17:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1632763028; bh=eZx7t8aU74FnyagsJucAccLo92T2UEj9jZMdRzx9LFQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IPjLkvkv20W6tjuByNyL7H80Nsc7A+UFXEkmUwd490ZDuZ/ybBTAg5IURHh7lOAYS ag0CFzJKgWOnSnSlS9uoU1mjE72azk0v0NIPZkzuKXtWuI4DuDd2Q8utUeC4eEsQ6U e19TFfwykPHGQmLqburTGcUKqMQHlwBRSKrz7eFo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Bhawanpreet Lakha , Mikita Lipski , Qingqing Zhuo , Daniel Wheeler , Alex Deucher , Sasha Levin Subject: [PATCH 5.14 141/162] drm/amd/display: Fix unstable HPCP compliance on Chrome Barcelo Date: Mon, 27 Sep 2021 19:03:07 +0200 Message-Id: <20210927170238.304249501@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210927170233.453060397@linuxfoundation.org> References: <20210927170233.453060397@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Qingqing Zhuo [ Upstream commit 4e00a434a08e0654a4dd9347485d9ec85deee1ef ] [Why] Intermittently, there presents two occurrences of 0 stream commits in a single HPD event. Current HDCP sequence does not consider such scenerio, and will thus disable HDCP. [How] Add condition check to include stream remove and re-enable case for HDCP enable. Reviewed-by: Bhawanpreet Lakha Acked-by: Mikita Lipski Signed-off-by: Qingqing Zhuo Tested-by: Daniel Wheeler Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index a4a4bb43c108..e7cf79b386da 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -8051,8 +8051,26 @@ static bool is_content_protection_different(struct drm_connector_state *state, state->content_protection == DRM_MODE_CONTENT_PROTECTION_ENABLED) state->content_protection = DRM_MODE_CONTENT_PROTECTION_DESIRED; - /* Check if something is connected/enabled, otherwise we start hdcp but nothing is connected/enabled - * hot-plug, headless s3, dpms + /* Stream removed and re-enabled + * + * Can sometimes overlap with the HPD case, + * thus set update_hdcp to false to avoid + * setting HDCP multiple times. + * + * Handles: DESIRED -> DESIRED (Special case) + */ + if (!(old_state->crtc && old_state->crtc->enabled) && + state->crtc && state->crtc->enabled && + connector->state->content_protection == DRM_MODE_CONTENT_PROTECTION_DESIRED) { + dm_con_state->update_hdcp = false; + return true; + } + + /* Hot-plug, headless s3, dpms + * + * Only start HDCP if the display is connected/enabled. + * update_hdcp flag will be set to false until the next + * HPD comes in. * * Handles: DESIRED -> DESIRED (Special case) */ -- 2.33.0