Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp2526286pxb; Mon, 11 Jan 2021 11:59:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJwAYJD3Haqh+kRukfyys3LmkJtMv+mvq7bDl4HjlW7Wj9Z1JeoTSxYIW7RFgeoAhhhyYCcD X-Received: by 2002:a50:d685:: with SMTP id r5mr766827edi.248.1610395149419; Mon, 11 Jan 2021 11:59:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610395149; cv=none; d=google.com; s=arc-20160816; b=KhZ0AVtWoQ0Gm40wIDRWQw5GdER7RaYEvBBSV7h0xqlTiY+4Oc6F+lqsWilt8urVCf bDxzKYAGtzedtWnEPMFxggT/uwZfmytb0p8C6+q8mhaxTcfG8OxHKesJMtT5C6gf3Aol /J8dOU7m30iqXpU6sX2SuU8djKQC1gnFejvIuXNO/dXQKqBQ6xjhnInZfaTsDHA0tUE5 F3c6kuwg0R2umdU2+O1hKYvcjijpCeRCn4sQPTI+w4jhb3uidUFox4xXmyZA3OpcH+lj bdEIu+vTF5In+A0RSJhK1P/9KDS2XXLS2mQF07rlekwWh9c5REKspl1dJIMKUs7oe2lI 9BXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:message-id:date:to:cc:from:subject :references:in-reply-to:content-transfer-encoding:mime-version :dkim-signature; bh=Vxk2nV7tt4HCztmmcM/p9PpvV3AZqTIQaGCtnRxgY5o=; b=N6ktnCRLOIXhDK+KJQpBjP6BBKJ7lWZs7C1pqG4xMqkfaPGhBL6ONNxk/FgKnOZizk 5wKUbAQNW9gkDZ3KRh19WgFPgJ7CxykwUXUXoTclVYkSSQNsx78ebA7N34jyTnTv7QRT RUBCA3lTqRERi3w4BEpnoWT7D1uveCxyh5ojPaWzmzzWutnQRTEtRQhXkg3MY+gnnpSu wzSeHf2A3hcLHY1WW4+naJqfoXeWzlR/sW/RYccHZWwSl66ciKZPMtvD3QXzPAT0n7cG 7Owy+kKP2XgLwN6ZYfmHPnsaMETXuN9bQ+7f0BiTO6uJU/iBJZhRlEba/BNQjPMhOI/T V5+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=PYTOCCGp; 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 w2si359409edi.59.2021.01.11.11.58.45; Mon, 11 Jan 2021 11:59:09 -0800 (PST) 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=PYTOCCGp; 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 S2391325AbhAKTyp (ORCPT + 99 others); Mon, 11 Jan 2021 14:54:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51296 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391092AbhAKTyo (ORCPT ); Mon, 11 Jan 2021 14:54:44 -0500 Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7D5FFC0617A4 for ; Mon, 11 Jan 2021 11:54:04 -0800 (PST) Received: by mail-pf1-x42a.google.com with SMTP id m6so586162pfm.6 for ; Mon, 11 Jan 2021 11:54:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:content-transfer-encoding:in-reply-to:references :subject:from:cc:to:date:message-id:user-agent; bh=Vxk2nV7tt4HCztmmcM/p9PpvV3AZqTIQaGCtnRxgY5o=; b=PYTOCCGpovAEIhp6SDc7oo7y6LDK0BrdmH5Bo6LK5wdMJMxJPgEfd+o4Ygb8Zm1W6N WT12d307T0ug2fNJrkoAHMKl/62zRSABiCuI41DTLqQTmWvAKerQmPYf8hZZ6PZ4IkQg 8XXC0t3qPdfh8ztVgYLAPMtyOlQzV4bAnFIN4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:content-transfer-encoding :in-reply-to:references:subject:from:cc:to:date:message-id :user-agent; bh=Vxk2nV7tt4HCztmmcM/p9PpvV3AZqTIQaGCtnRxgY5o=; b=P7Up/bwNek4OwpJ/7NJr13K1C73P+VUiwtKrBRwhjJui+++T0WwE560FdyAiYGxrxB wGZdjEz0Rhdmn9TZ5hTCVVfcjokJFYMZfF3WNs5vet61eJh48DhEQyRqj4oeMwlC1t1I 9LhD2pDAL4QbaQHeVA+er8DCYSxT6g3YBOnvgb5e6N5TaVF+S5MqE0jk1bJJxqVXlHsh 53Lkv0MahOKaAd9r4+nAGBH8CXcZ/JEIQ5jehp8wG6Tw7IpK3V9sGOiSbZhM/2We5Ks9 bZREJ3iRnDcG2kWhKjlZ3wDjnRrqwQ8EpMxPkz/DQWCGk9riPUHrhSkGhxbBQCPvgv5/ gcDg== X-Gm-Message-State: AOAM531Qg7Yrew+DsakYNStzrdXYTJ1v96a+OtilUWaw1JZh8GOPIoJ9 n9aHBnFWjG21fL5R9GDe8M93mQ== X-Received: by 2002:a65:494f:: with SMTP id q15mr1092942pgs.367.1610394844028; Mon, 11 Jan 2021 11:54:04 -0800 (PST) Received: from chromium.org ([2620:15c:202:201:3e52:82ff:fe6c:83ab]) by smtp.gmail.com with ESMTPSA id 5sm419116pff.125.2021.01.11.11.54.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Jan 2021 11:54:03 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable In-Reply-To: <1610051425-20632-3-git-send-email-khsieh@codeaurora.org> References: <1610051425-20632-1-git-send-email-khsieh@codeaurora.org> <1610051425-20632-3-git-send-email-khsieh@codeaurora.org> Subject: Re: [PATCH 2/2] drm/msm/dp: unplug interrupt missed after irq_hpd handler From: Stephen Boyd Cc: Kuogee Hsieh , tanmay@codeaurora.org, abhinavk@codeaurora.org, aravindh@codeaurora.org, airlied@linux.ie, daniel@ffwll.ch, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org To: Kuogee Hsieh , dri-devel@lists.freedesktop.org, robdclark@gmail.com, sean@poorly.run Date: Mon, 11 Jan 2021 11:54:01 -0800 Message-ID: <161039484176.3661239.14240346276437866761@swboyd.mtv.corp.google.com> User-Agent: alot/0.9.1 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Kuogee Hsieh (2021-01-07 12:30:25) > There is HPD unplug interrupts missed at scenario of an irq_hpd > followed by unplug interrupts with around 10 ms in between. > Since both AUX_SW_RESET and DP_SW_RESET clear pending HPD interrupts, > irq_hpd handler should not issues either aux or sw reset to avoid > following unplug interrupt be cleared accidentally. So the problem is that we're resetting the DP aux phy in the middle of the HPD state machine transitioning states? >=20 > Signed-off-by: Kuogee Hsieh > --- > diff --git a/drivers/gpu/drm/msm/dp/dp_catalog.c b/drivers/gpu/drm/msm/dp= /dp_catalog.c > index 44f0c57..9c0ce98 100644 > --- a/drivers/gpu/drm/msm/dp/dp_catalog.c > +++ b/drivers/gpu/drm/msm/dp/dp_catalog.c > @@ -190,6 +190,18 @@ int dp_catalog_aux_clear_hw_interrupts(struct dp_cat= alog *dp_catalog) > return 0; > } > =20 > +/** > + * dp_catalog_aux_reset() - reset AUX controller > + * > + * @aux: DP catalog structure > + * > + * return: void > + * > + * This function reset AUX controller > + * > + * NOTE: reset AUX controller will also clear any pending HPD related in= terrupts > + *=20 > + */ > void dp_catalog_aux_reset(struct dp_catalog *dp_catalog) > { > u32 aux_ctrl; > @@ -483,6 +495,18 @@ int dp_catalog_ctrl_set_pattern(struct dp_catalog *d= p_catalog, > return 0; > } > =20 > +/** > + * dp_catalog_ctrl_reset() - reset DP controller > + * > + * @aux: DP catalog structure It's called dp_catalog though. > + * > + * return: void > + * > + * This function reset DP controller resets the > + * > + * NOTE: reset DP controller will also clear any pending HPD related int= errupts > + *=20 > + */ > void dp_catalog_ctrl_reset(struct dp_catalog *dp_catalog) > { > u32 sw_reset; > diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp= _ctrl.c > index e3462f5..f96c415 100644 > --- a/drivers/gpu/drm/msm/dp/dp_ctrl.c > +++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c > @@ -1296,7 +1296,8 @@ static int dp_ctrl_setup_main_link(struct dp_ctrl_p= rivate *ctrl, > * transitioned to PUSH_IDLE. In order to start transmitting > * a link training pattern, we have to first do soft reset. > */ > - dp_catalog_ctrl_reset(ctrl->catalog); > + if (*training_step !=3D DP_TRAINING_NONE) Can we check for the positive value instead? i.e. DP_TRAINING_1/DP_TRAINING_2 > + dp_catalog_ctrl_reset(ctrl->catalog); > =20 > ret =3D dp_ctrl_link_train(ctrl, cr, training_step); >