Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp792920pxv; Thu, 22 Jul 2021 12:16:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyB91golEnySn1GHpw/EqX5SIWAAtgNo54VixqLu7sr6mYf7QUSfQaxWoy9SxjC7Ll8LrKm X-Received: by 2002:a17:906:998c:: with SMTP id af12mr1257329ejc.240.1626981401273; Thu, 22 Jul 2021 12:16:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626981401; cv=none; d=google.com; s=arc-20160816; b=XHjrr7BozXXQjxklGd0snkBmLPG0dClDbi9YFITzlYoJE8rtPB61x6xEvREgsrSee7 eILeuQ6LlFc1SNRgCOSRXTcOtcLOYO6NUjDKpBHy/8DP0uxRMOWUKoOCWXv6aBiwTmcj rRd/EBWX2TmRxtUUM4BlKruNcK67eeOFwELeX3xwZdN3hOzWFfc0GO0Jr3W/wyzRUBU1 Oec1Muig0xEG2Hv4KuCuJom9ERaXMvLe66gX1Gv6dtGrbVoQXwygZcM25m5VZO35YwIF OLIXaj/aXmosSAA/X4JcTEwAPWyaSeFkUcHZZOBjDwWYhSC6bhmUpQXPgZkwOveVp87M 7+ew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:user-agent:from :references:in-reply-to:mime-version:dkim-signature; bh=wSvpCRiJmPrrtav1DmRC8DqUe0S6Omo2vxlNGYfx92Q=; b=Q6Ykc1noiQda9EswS6Vp8dvWFF0k/Hbt+Qx8g2lqjT4xxKo6taOuylHUWEOEx+weeK ntqSnMgU/popJc8zzv5HnQcF5MI2yzdHfMTHk06b2oSI0FCRgCVbd3grSAUM6oqI6YKY dr2aaw7bsGc0+/mYMK7Lqo8CuTgaJOMBJuXJrsJZvpc61ieV75njYrssortIz/6MT+yt 1fzwjgigSMFJ7a/ArFaz+pY0hDAPsY4piz6C4brFDQb8RtxkfrzEDGfRx4GcMrt8r8FL zlhalp/FwLScE/AWRokZ3EMk0vSPusq8MU+uKuluHv8H+3USODr5/ldxCJKeJZQ+lZl1 dEeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=Go+wWAXU; 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=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a5si30862541ejy.204.2021.07.22.12.16.16; Thu, 22 Jul 2021 12:16:41 -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=@chromium.org header.s=google header.b=Go+wWAXU; 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=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229945AbhGVSdu (ORCPT + 99 others); Thu, 22 Jul 2021 14:33:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55950 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229585AbhGVSdt (ORCPT ); Thu, 22 Jul 2021 14:33:49 -0400 Received: from mail-oi1-x22c.google.com (mail-oi1-x22c.google.com [IPv6:2607:f8b0:4864:20::22c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5583BC061575 for ; Thu, 22 Jul 2021 12:14:23 -0700 (PDT) Received: by mail-oi1-x22c.google.com with SMTP id u11so7772903oiv.1 for ; Thu, 22 Jul 2021 12:14:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:in-reply-to:references:from:user-agent:date:message-id :subject:to:cc; bh=wSvpCRiJmPrrtav1DmRC8DqUe0S6Omo2vxlNGYfx92Q=; b=Go+wWAXUxyLK4e/Lq/KcAs1fXB+LWfLLQGaA8F9OwN0D7tI2y8wDFaSbucrENDCWwg wF5r2zdEqu9iOztnA/2aZEePbF7+AIVFkvkIK5FZl2o0Zy0ITF4L9CNjlzoOsS4sRSEF V1sSVkDnZA03rV6XsH94QXCNGpRxh4VuKb+28= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from :user-agent:date:message-id:subject:to:cc; bh=wSvpCRiJmPrrtav1DmRC8DqUe0S6Omo2vxlNGYfx92Q=; b=MCeFyt4S2bTUuGxoPXO4gkVxP5/ND2SyZ3/uGakQNETp7TZ91eKQ2lI0aHRmULf6RY TdJb/cGCV/gERgVgt/fCtnXXh60AE/upmkbv/fpIzZAaoDQPefzi5fpGTiLOZ7UFa6W+ QpHg6EHe4adfSOqhKBfb+hGREkzSCjto7c1hNrU7uR4yQ0z/+nso4tQKEw0Oi/Og5Lsg w7wozG4qcFTZcz8JV/LN9qcPJlRCrKxRBDt3c7Hu076ppwRbGesXI8YpIkwf778qUj8Q /ZTC9SF/U7w+ztW/HlWj9b3r7nLV/hShQjzRn1Ipl8HP1tlJwZoJK0egGwU9eGu9OUda oBaA== X-Gm-Message-State: AOAM530AafuviB+UvwW0gSxAFHnyUDd3Z41Wqw6uI6NRtXBiL4DZk8Z/ b6CuQQs/jT3VB7Ym+s/CEhat/PP4s67j3GxqHhfDDw== X-Received: by 2002:a05:6808:114a:: with SMTP id u10mr1052996oiu.19.1626981262785; Thu, 22 Jul 2021 12:14:22 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Thu, 22 Jul 2021 19:14:21 +0000 MIME-Version: 1.0 In-Reply-To: <1626191647-13901-8-git-send-email-khsieh@codeaurora.org> References: <1626191647-13901-1-git-send-email-khsieh@codeaurora.org> <1626191647-13901-8-git-send-email-khsieh@codeaurora.org> From: Stephen Boyd User-Agent: alot/0.9.1 Date: Thu, 22 Jul 2021 19:14:21 +0000 Message-ID: Subject: Re: [PATCH v2 7/7] drm/msm/dp: retrain link when loss of symbol lock detected To: Kuogee Hsieh , dri-devel@lists.freedesktop.org, robdclark@gmail.com, sean@poorly.run Cc: abhinavk@codeaurora.org, aravindh@codeaurora.org, airlied@linux.ie, daniel@ffwll.ch, bjorn.andersson@linaro.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Kuogee Hsieh (2021-07-13 08:54:07) > diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c > index 6a013b0..20951c8 100644 > --- a/drivers/gpu/drm/msm/dp/dp_ctrl.c > +++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c > @@ -1638,6 +1638,25 @@ static bool dp_ctrl_clock_recovery_any_ok( > return drm_dp_clock_recovery_ok(link_status, lane_count); > } > > +static bool dp_ctrl_loss_symbol_lock(struct dp_ctrl_private *ctrl) > +{ > + u8 link_status[DP_LINK_STATUS_SIZE]; > + u8 status; > + int i; > + int num_lanes = ctrl->link->link_params.num_lanes; > + > + dp_ctrl_read_link_status(ctrl, link_status); > + > + for (i = 0; i < num_lanes; i++) { > + status = link_status[i / 2]; > + status >>= ((i % 2) * 4); > + if (!(status & DP_LANE_SYMBOL_LOCKED)) > + return true; > + } > + > + return false; > +} Can this function move to drivers/gpu/drm/drm_dp_helper.c and be called drm_dp_symbol_locked()? > + > int dp_ctrl_on_link(struct dp_ctrl *dp_ctrl) > { > int rc = 0;