From patchwork Wed Oct 14 04:52:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Gupta, Anshuman" X-Patchwork-Id: 11836753 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 47A4514B2 for ; Wed, 14 Oct 2020 05:03:33 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E743020B1F for ; Wed, 14 Oct 2020 05:03:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E743020B1F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C77396E9C1; Wed, 14 Oct 2020 05:03:30 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 04E826E9C1 for ; Wed, 14 Oct 2020 05:03:29 +0000 (UTC) IronPort-SDR: ZpefVK7XzPY8OKJ9KKaWxRKp688IBJUardTRpalELEv9X3giB1g1C18RnYNXjU3w+KztQtGjBr ZJEbnA4iNspg== X-IronPort-AV: E=McAfee;i="6000,8403,9773"; a="166099952" X-IronPort-AV: E=Sophos;i="5.77,373,1596524400"; d="scan'208";a="166099952" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Oct 2020 22:03:28 -0700 IronPort-SDR: ipTh++SOmLcN1UxY0ZLy9Le3cJ/IwtDic/i0Ww+m/3yL493jI1UHsd1tSk1C59CbCERC0aeJxT IA2yXI1GPkUg== X-IronPort-AV: E=Sophos;i="5.77,373,1596524400"; d="scan'208";a="351376302" Received: from genxfsim-desktop.iind.intel.com ([10.223.74.178]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Oct 2020 22:03:26 -0700 From: Anshuman Gupta To: intel-gfx@lists.freedesktop.org Date: Wed, 14 Oct 2020 10:22:40 +0530 Message-Id: <20201014045252.13608-2-anshuman.gupta@intel.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201014045252.13608-1-anshuman.gupta@intel.com> References: <20201014045252.13608-1-anshuman.gupta@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 01/13] drm/i915/hdcp: Update CP property in update_pipe X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: seanpaul@chromium.org Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" When crtc state need_modeset is true it is not necessary it is going to be a real modeset, it can turns to be a update_pipe instead of modeset. This turns content protection property to be DESIRED and hdcp update_pipe left with property to be in DESIRED state but actually hdcp->value was ENABLED. This caught with DP MST setup, when disabling HDCP on a connector sets the crtc state need_modeset to true for all crtc driving the other DP-MST topology connectors. Fixes: 33f9a623bfc6 ("drm/i915/hdcp: Update CP as per the kernel internal state") Cc: Ramalingam C Signed-off-by: Anshuman Gupta --- drivers/gpu/drm/i915/display/intel_hdcp.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c index b2a4bbcfdcd2..cbe3ee661bb7 100644 --- a/drivers/gpu/drm/i915/display/intel_hdcp.c +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c @@ -2220,6 +2220,10 @@ void intel_hdcp_update_pipe(struct intel_atomic_state *state, /* Avoid enabling hdcp, if it already ENABLED */ desired_and_not_enabled = hdcp->value != DRM_MODE_CONTENT_PROTECTION_ENABLED; + + if (!desired_and_not_enabled && !content_protection_type_changed) + schedule_work(&hdcp->prop_work); + mutex_unlock(&hdcp->mutex); }