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=-6.3 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 5A38BC47254 for ; Tue, 5 May 2020 16:32:42 +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 27A98206FA for ; Tue, 5 May 2020 16:32:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DZNmWKWk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 27A98206FA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.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 7A7C16E7E5; Tue, 5 May 2020 16:32:41 +0000 (UTC) Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 66B966E554 for ; Tue, 5 May 2020 07:27:49 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id f12so930925edn.12 for ; Tue, 05 May 2020 00:27:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=662qM0PS3uWGQuroRV2WQUYJ0E5+YLCW7yDli6cu13k=; b=DZNmWKWkp0uw05x8wjqL2yM2xCduC/OqMBHsd2xLwJd4/t1jJNaSrEY5gqWxdPK6mC MTswzgDUMD0TiWYOEzXRt/Hyt4pyLDjb8aOpllcjN4aGwlNFWbJqF/gMeK1ZmtyUrxoj h2K4yg7OnkM+6WhAfI0t942ei43WsNMWPTU2T3g+rwti3aV6EOzfXunPC+b1VwE6dnuW O1Wqww0qrJ2XpkQka4NTzSZFzDcuJDeYop5hnP9N1Q9sgHvlwakkpnf/gNPYjGncmOiZ UXOJMytzTh+JRB9MqLSoRrdFxaCM5bJbB7auWlB7NY+bj3KGKtYLoufKR2hHYVTlPr+W igYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=662qM0PS3uWGQuroRV2WQUYJ0E5+YLCW7yDli6cu13k=; b=m4wdWHjWKzIS+JGOKOpmPFKuhCGirjPMuKcf3+LwJ8VB+479djF2Tl1vauVZrvPbnV EglpAVyI1UVCC0KjLIKOoiXF36sNMApbkTn9flhp5cpen+rSz95qqSUgeSE+fVael17Q Rwz+T5BAE4nWBomfyOlVPydCw5Yp2mnlK2L/6Vjrbi8pnVrBJduzzX5txAimR5qPrmg5 f+OFGV4xSZsTfqCFLNJNvXdyssOPoA1XMnGdhADib+ZCK+eVNLPpR7nHhUc0mygx4Ylp Q1IAvbbOreFkPkj2aXdiXJ0VX1gz+izGxZAvnzWEOEvmLx7+QR6l/B7KCnpO5plWCROL PNcA== X-Gm-Message-State: AGi0PuZbgv7GceWTRi/qiUx1hkQ1h3mG1mR1ZjKDzHT5HCcuXhQdcpxA +DBfsz1TfcFpVZeTWMXd/xE/C1FZsXieY/UpWvM= X-Google-Smtp-Source: APiQypJN36lFIwM6yDg7qw2XmSb9N1LBXscihHRY8GWB4qCzVmizo9ng7s1ydRy1YGCNOUhFWv0M9ElOHyvOP6zCd2I= X-Received: by 2002:aa7:de0b:: with SMTP id h11mr1393844edv.133.1588663668002; Tue, 05 May 2020 00:27:48 -0700 (PDT) MIME-Version: 1.0 References: <20200504123524.7731-1-oliver.barta@aptiv.com> In-Reply-To: From: Oliver Barta Date: Tue, 5 May 2020 09:27:31 +0200 Message-ID: To: Sean Paul X-Mailman-Approved-At: Tue, 05 May 2020 16:32:36 +0000 Subject: Re: [Intel-gfx] [PATCH] drm/i915: HDCP: retry link integrity check on failure 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: Daniel Vetter , Intel Graphics Development , Ravisankar Madasamy , Sean Paul , Oliver Barta , Chris Wilson Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Mon, May 4, 2020 at 10:24 PM Sean Paul wrote: > > On Mon, May 4, 2020 at 1:32 PM Oliver Barta wrote: > > > > From: Oliver Barta > > > > A single Ri mismatch doesn't automatically mean that the link integrity > > is broken. Update and check of Ri and Ri' are done asynchronously. In > > case an update happens just between the read of Ri' and the check against > > Ri there will be a mismatch even if the link integrity is fine otherwise. > > > > Signed-off-by: Oliver Barta > > --- > > drivers/gpu/drm/i915/display/intel_hdmi.c | 19 ++++++++++++++++--- > > 1 file changed, 16 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c > > index 010f37240710..3156fde392f2 100644 > > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > > @@ -1540,7 +1540,7 @@ int intel_hdmi_hdcp_toggle_signalling(struct intel_digital_port *intel_dig_port, > > } > > > > static > > -bool intel_hdmi_hdcp_check_link(struct intel_digital_port *intel_dig_port) > > +bool intel_hdmi_hdcp_check_link_once(struct intel_digital_port *intel_dig_port) > > { > > struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev); > > struct intel_connector *connector = > > @@ -1563,8 +1563,7 @@ bool intel_hdmi_hdcp_check_link(struct intel_digital_port *intel_dig_port) > > if (wait_for((intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, port)) & > > (HDCP_STATUS_RI_MATCH | HDCP_STATUS_ENC)) == > > (HDCP_STATUS_RI_MATCH | HDCP_STATUS_ENC), 1)) { > > Why doesn't the wait_for catch this? > > Sean > Hello Sean, thank you for having a look on my patch. The wait_for can't catch this because it is Ri' which is outdated compared to Ri. Ri' however needs to be read over DDC interface which is done only once during the check sequence. It is not updated during the waiting time. Oliver > > - drm_err(&i915->drm, > > - "Ri' mismatch detected, link check failed (%x)\n", > > + drm_dbg_kms(&i915->drm, "Ri' mismatch detected (%x)\n", > > intel_de_read(i915, HDCP_STATUS(i915, cpu_transcoder, > > port))); > > return false; > > @@ -1572,6 +1571,20 @@ bool intel_hdmi_hdcp_check_link(struct intel_digital_port *intel_dig_port) > > return true; > > } > > > > +static > > +bool intel_hdmi_hdcp_check_link(struct intel_digital_port *intel_dig_port) > > +{ > > + struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev); > > + int retry; > > + > > + for (retry = 0; retry < 3; retry++) > > + if (intel_hdmi_hdcp_check_link_once(intel_dig_port)) > > + return true; > > + > > + drm_err(&i915->drm, "Link check failed\n"); > > + return false; > > +} > > + > > struct hdcp2_hdmi_msg_timeout { > > u8 msg_id; > > u16 timeout; > > -- > > 2.20.1 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx