From patchwork Thu Jul 16 03:41:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Badhri Jagan Sridharan X-Patchwork-Id: 11666603 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 60CBD60D for ; Thu, 16 Jul 2020 03:41:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 446B12075F for ; Thu, 16 Jul 2020 03:41:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="K5ymQTs8" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728266AbgGPDle (ORCPT ); Wed, 15 Jul 2020 23:41:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728262AbgGPDle (ORCPT ); Wed, 15 Jul 2020 23:41:34 -0400 Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com [IPv6:2607:f8b0:4864:20::104a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 14B11C08C5CE for ; Wed, 15 Jul 2020 20:41:34 -0700 (PDT) Received: by mail-pj1-x104a.google.com with SMTP id jx16so4372706pjb.6 for ; Wed, 15 Jul 2020 20:41:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=JVqaQcsA9ryghGPWNt77bGonDTUiuVmDFOB6lIrP5uc=; b=K5ymQTs8/rpyXUKrYTyN/1HyUfnkOXOQil8fcN+1PzFV2h3fAH1SKSK//Ow6Okgu7R Uo5T1G1IWymG9mTvR22lPQ3wwNa3rrPYNhuFuDUueieKeMhNJ9fj3crby4bRj16wlmTe I/tuIVus84MZhHHQBrflnlrPk1H6AkhUWuJtL/ie9+q+BJIW3FuvDs3AMsiqMeMFDYbs yvdSEndTLz+KzUHvhDcpW7ruGhoDSETHfVSDYjDW+khHq9IWWLCp4P1wdCm4Y1pSuUMt x2/7FQc0k4Qn+8QZsPLrVbkqgp7LdJAI25ZgfY+wEzyQKmKJ0br0l0ejoL3IM/w/iVLx NKJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=JVqaQcsA9ryghGPWNt77bGonDTUiuVmDFOB6lIrP5uc=; b=KloMtvi+QAGX1BsSU5TSvT6rNC7EuEmACQwRSwgg/9JChu8b4HRycv2RoFrqFDdzN7 E/40iPwv1xGQZajq7o57oOFMS2yCgWwV7iOe5OsUaQ6Fiq2V5nBCfF6usu3SueH6Z0aS E8lwxRYrHRvhRDlmk9X6M209tQLUW9n2KWNSmtjApp7BAMZFJsdMqhgWDc4lgW6QP3Hc RMYs36g1izPD/9QLb6OggMUCoEW3G83gCohiZB1EHGPZWV/0j/++Hl7yCGFkgmVK4EmE ckpKYKdwqpGiQEwgwzyfx7EcOTHpFTW6qqDDAJZsI0nZi8W4rFFuQoid56F3PECh0FsN Onsg== X-Gm-Message-State: AOAM533J/aJoa/q9EY/AvHvlu7KCjtjRodCZoCrHCwlsDCGOhCS1VViQ 2EDyo3iWDop7KiX2z9HD4fomZ2qzF1A= X-Google-Smtp-Source: ABdhPJzW0b2j+f3mJfI3L/UXfvtVozfUxZ2l5SINSWF+xaz86zYtZAGYzDR31ITKGuaXsDjlTmAxOGsQgBY= X-Received: by 2002:a63:6c5:: with SMTP id 188mr2508631pgg.33.1594870893475; Wed, 15 Jul 2020 20:41:33 -0700 (PDT) Date: Wed, 15 Jul 2020 20:41:26 -0700 Message-Id: <20200716034128.1251728-1-badhri@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.27.0.389.gc38d7665816-goog Subject: [PATCH 1/3 v3] usb: typec: tcpm: Support bist test data mode for compliance From: Badhri Jagan Sridharan To: Guenter Roeck , Heikki Krogerus , reg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Badhri Jagan Sridharan Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org TCPM supports BIST carried mode. PD compliance tests require BIST Test Data to be supported as well. Introducing set_bist_data callback to signal tcpc driver for configuring the port controller hardware to enable/disable BIST Test Data mode. Signed-off-by: Badhri Jagan Sridharan Reviewed-by: Guenter Roeck --- Version history: Changes since V1:(Guenter's suggestions) - Split the change into two: TCPM and TCPCI - Move BIST log to TCPM log Changes since V2:(Guenter's suggestions) - Re-ordered patchset - Included Reviewed-by tag --- drivers/usb/typec/tcpm/tcpm.c | 11 +++++++++++ include/linux/usb/tcpm.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index 82b19ebd7838e0..379fcab9dbd973 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -2746,6 +2746,11 @@ static void tcpm_detach(struct tcpm_port *port) if (!port->attached) return; + if (port->tcpc->set_bist_data) { + tcpm_log(port, "disable BIST MODE TESTDATA"); + port->tcpc->set_bist_data(port->tcpc, false); + } + if (tcpm_port_is_disconnected(port)) port->hard_reset_count = 0; @@ -3555,6 +3560,12 @@ static void run_state_machine(struct tcpm_port *port) case BDO_MODE_CARRIER2: tcpm_pd_transmit(port, TCPC_TX_BIST_MODE_2, NULL); break; + case BDO_MODE_TESTDATA: + if (port->tcpc->set_bist_data) { + tcpm_log(port, "Enable BIST MODE TESTDATA"); + port->tcpc->set_bist_data(port->tcpc, true); + } + break; default: break; } diff --git a/include/linux/usb/tcpm.h b/include/linux/usb/tcpm.h index e7979c01c3517c..89f58760cf4800 100644 --- a/include/linux/usb/tcpm.h +++ b/include/linux/usb/tcpm.h @@ -79,6 +79,7 @@ enum tcpm_transmit_type { * @try_role: Optional; called to set a preferred role * @pd_transmit:Called to transmit PD message * @mux: Pointer to multiplexer data + * @set_bist_data: Turn on/off bist data mode for compliance testing */ struct tcpc_dev { struct fwnode_handle *fwnode; @@ -103,6 +104,7 @@ struct tcpc_dev { int (*try_role)(struct tcpc_dev *dev, int role); int (*pd_transmit)(struct tcpc_dev *dev, enum tcpm_transmit_type type, const struct pd_message *msg); + int (*set_bist_data)(struct tcpc_dev *dev, bool on); }; struct tcpm_port; From patchwork Thu Jul 16 03:41:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Badhri Jagan Sridharan X-Patchwork-Id: 11666605 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 626FF60D for ; Thu, 16 Jul 2020 03:41:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4A9CF20787 for ; Thu, 16 Jul 2020 03:41:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="SP5OdA53" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728276AbgGPDlk (ORCPT ); Wed, 15 Jul 2020 23:41:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728225AbgGPDli (ORCPT ); Wed, 15 Jul 2020 23:41:38 -0400 Received: from mail-qk1-x74a.google.com (mail-qk1-x74a.google.com [IPv6:2607:f8b0:4864:20::74a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC85CC08C5DD for ; Wed, 15 Jul 2020 20:41:37 -0700 (PDT) Received: by mail-qk1-x74a.google.com with SMTP id z1so2919415qkz.3 for ; Wed, 15 Jul 2020 20:41:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=RqXiuX4xTk+c+m3/+/qauF2hZhj8i+Z6YtZCdH2Snc8=; b=SP5OdA53xpO2g879UlHzND9x16PSS2YeWd6k1DiG2SEtDMCq+XiIiaQv3lp4dwcxBb GZgChSNNBaBvlmpPwQqfqdSSp96ht7M2qACj2PWt47uaITvzqZ5Oxv5bYTIUR61DjsgF hPt+lTMLfRM2gkOb9M19KbD4CtWSnbj8QyBskUezCC0jRJxz1QbRR+I/HDHlQT2ZZOYx zfvf9eJK2R8FCYbGlmaLNoioILOyvAC8Ftk3NOORSLnIpsGjs2gE+e7DeE5xR3Z9s/oE xlDsQ/4UyKXy4/CAcNXQSHZUOrxmXleX8jXCxl4GDsrmAumGqsEFeGvgMVYaQDKeXwtr NjWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=RqXiuX4xTk+c+m3/+/qauF2hZhj8i+Z6YtZCdH2Snc8=; b=uS0y6NS6sKY/Ri+A+eLFA8DJr9INUpkBD50CeMI9qJSFhbjILsLniI2gtwByMut1yD ttkQe470wXjoqNOrkX/3pazDW4OPkr6OAFkWDqzLkxoq9rj1qv58AWbqnKqNhmOdux/x mFG1YQm9KPy9LDb50gR520Wr2FFvGxnx2yphailRoH2ApbdR6bY9LiLtmVOH1lAZM03v qhYj4Y+WZ8b6sQ9mjkqpfYzIkqMjnJIda4lYKDmliqr/ieGC8E7DaYYvxu7xvfmbJBLU JwWA+GJerRGm7t/ndtnyza2nnZAg+0jUO7UZPl/EWglRCdStVXYxZccCn8ZR31f5aCk7 fmPA== X-Gm-Message-State: AOAM532M+0BsWNp0eyR7njl5aotIWGByaNyrduKGLGJlP+8DsIXKUnqY WDqoE9mcC8jQibaP7kBV12/iOIAQY9Y= X-Google-Smtp-Source: ABdhPJx/tvtrXjaNurK8r8bUP20wV+jbDXYBvFLMca6IAOG3Qo3S+zosA7MaGPg5sAlbB3kfn0j70NYK6bI= X-Received: by 2002:ad4:57c4:: with SMTP id y4mr2377290qvx.230.1594870897051; Wed, 15 Jul 2020 20:41:37 -0700 (PDT) Date: Wed, 15 Jul 2020 20:41:27 -0700 In-Reply-To: <20200716034128.1251728-1-badhri@google.com> Message-Id: <20200716034128.1251728-2-badhri@google.com> Mime-Version: 1.0 References: <20200716034128.1251728-1-badhri@google.com> X-Mailer: git-send-email 2.27.0.389.gc38d7665816-goog Subject: [PATCH 2/3 v3] usb: typec: tcpci: Support BIST test data mode for compliance. From: Badhri Jagan Sridharan To: Guenter Roeck , Heikki Krogerus , reg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Badhri Jagan Sridharan Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Quoting from TCPCI spec: "Setting this bit to 1 is intended to be used only when a USB compliance tester is using USB BIST Test Data to test the PHY layer of the TCPC. The TCPM should clear this bit when a disconnect is detected. 0: Normal Operation. Incoming messages enabled by RECEIVE_DETECT passed to TCPM via Alert. 1: BIST Test Mode. Incoming messages enabled by RECEIVE_DETECT result in GoodCRC response but may not be passed to the TCPM via Alert." Signed-off-by: Badhri Jagan Sridharan Reviewed-by: Guenter Roeck --- Changes since V1:(Guenter's suggestions) - Split the change into two: TCPM and TCPCI - Move BIST log to TCPM log - Alignment and column count changes Changes since V2:(Guenter's suggestions) - Re-ordered patchset - Included Reviewed-by tag --- drivers/usb/typec/tcpm/tcpci.c | 9 +++++++++ drivers/usb/typec/tcpm/tcpci.h | 1 + 2 files changed, 10 insertions(+) diff --git a/drivers/usb/typec/tcpm/tcpci.c b/drivers/usb/typec/tcpm/tcpci.c index 753645bb25273a..f57d91fd0e0924 100644 --- a/drivers/usb/typec/tcpm/tcpci.c +++ b/drivers/usb/typec/tcpm/tcpci.c @@ -227,6 +227,14 @@ static int tcpci_set_vconn(struct tcpc_dev *tcpc, bool enable) enable ? TCPC_POWER_CTRL_VCONN_ENABLE : 0); } +static int tcpci_set_bist_data(struct tcpc_dev *tcpc, bool enable) +{ + struct tcpci *tcpci = tcpc_to_tcpci(tcpc); + + return regmap_update_bits(tcpci->regmap, TCPC_TCPC_CTRL, TCPC_TCPC_CTRL_BIST_TM, + enable ? TCPC_TCPC_CTRL_BIST_TM : 0); +} + static int tcpci_set_roles(struct tcpc_dev *tcpc, bool attached, enum typec_role role, enum typec_data_role data) { @@ -530,6 +538,7 @@ struct tcpci *tcpci_register_port(struct device *dev, struct tcpci_data *data) tcpci->tcpc.set_pd_rx = tcpci_set_pd_rx; tcpci->tcpc.set_roles = tcpci_set_roles; tcpci->tcpc.pd_transmit = tcpci_pd_transmit; + tcpci->tcpc.set_bist_data = tcpci_set_bist_data; err = tcpci_parse_config(tcpci); if (err < 0) diff --git a/drivers/usb/typec/tcpm/tcpci.h b/drivers/usb/typec/tcpm/tcpci.h index 303ebde265465c..11c36d086c8608 100644 --- a/drivers/usb/typec/tcpm/tcpci.h +++ b/drivers/usb/typec/tcpm/tcpci.h @@ -36,6 +36,7 @@ #define TCPC_TCPC_CTRL 0x19 #define TCPC_TCPC_CTRL_ORIENTATION BIT(0) +#define TCPC_TCPC_CTRL_BIST_TM BIT(1) #define TCPC_ROLE_CTRL 0x1a #define TCPC_ROLE_CTRL_DRP BIT(6) From patchwork Thu Jul 16 03:41:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Badhri Jagan Sridharan X-Patchwork-Id: 11666607 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 DF350722 for ; Thu, 16 Jul 2020 03:41:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C6F8D2076C for ; Thu, 16 Jul 2020 03:41:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="X+ZDYKXj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728318AbgGPDlu (ORCPT ); Wed, 15 Jul 2020 23:41:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728275AbgGPDll (ORCPT ); Wed, 15 Jul 2020 23:41:41 -0400 Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com [IPv6:2607:f8b0:4864:20::449]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C4029C08C5CE for ; Wed, 15 Jul 2020 20:41:41 -0700 (PDT) Received: by mail-pf1-x449.google.com with SMTP id r12so3615292pfr.16 for ; Wed, 15 Jul 2020 20:41:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc:content-transfer-encoding; bh=eyGKIrNpC4d1P/2vRZTid13/ubCOQhtxZ8c/xlJYEpE=; b=X+ZDYKXjnyNj5AU7zCSbrpZoHPKZ51Hrfb1LR4pT/3xzCKM9/fUKUUNTWEEkmBN61r H9ebfBhG/IjIEUBJyrB+9l+v4rQMqLqi8vjpxM6S8K3uja/zR/oeHraNKLjsEb2Y41Rg Qg0v5wHhjIBeqZl8XBah6pM807Jy4VUarcw4gDAk8iUY6ffk+mLqW0vgzy20+mH5QLIX 345hY6WD0ktT+q0dztB9Y2xrSONOgMwxyHCHOsxL63qCLtNA3hSSUwWv3mCSs/n6nN1p /jsSPm6MsS1K9vT7UcT56OVxoU7xF4xqtCO1yBbnVGkUxOtgrxtngHSGmcOMdWg6pkdR 5RdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=eyGKIrNpC4d1P/2vRZTid13/ubCOQhtxZ8c/xlJYEpE=; b=FZZ9frPlvhPpJdxvZjP6j3QSs2wDBMOjabsctkq4d8VIeoPaVG/A8i0y3kS+tkR6VR qMvLnVqFQzxVM0c5NBNCsg8XAbwTmzHIxMiA97+rttbXyYejGEbzJXNxC1g66pdJIMu7 LF+YYDvXy+f7ycZQsW2nqLHOVOTL4Afyn25aHTP0kMuh+MXsmiNtuij2UuQsO6W4yeu7 B9S4sJorWvAm3daQvlMSFHxeDYP6uD4y4jG78D+Il7dRLv1f7yMQCe4noJWgrt5ZwWoY MgwN6H/ht/GtqTFQnWpnGBDTJ++k7nnkrJSCIOjB/y4gPdj55v+4JcKIzHdHn8QczF4R 37Ag== X-Gm-Message-State: AOAM533UMfKxmktdkYr7cIKwn6zSwv1oDITNI0EKfHkyDShzwo3zpYca nVJh/RTjlK0GW7ShhcuT6BmvE0AuVUY= X-Google-Smtp-Source: ABdhPJxfUJKtPzUYd517kts5e2ZalfpZFYJNAaqWBnkfCircu0u2gV2Mqp09m/xHeasMDg5A8lCL0f+o63w= X-Received: by 2002:a17:90a:1fcb:: with SMTP id z11mr1642988pjz.1.1594870900921; Wed, 15 Jul 2020 20:41:40 -0700 (PDT) Date: Wed, 15 Jul 2020 20:41:28 -0700 In-Reply-To: <20200716034128.1251728-1-badhri@google.com> Message-Id: <20200716034128.1251728-3-badhri@google.com> Mime-Version: 1.0 References: <20200716034128.1251728-1-badhri@google.com> X-Mailer: git-send-email 2.27.0.389.gc38d7665816-goog Subject: [PATCH 3/3 v3] usb: typec: tcpm: Stay in BIST mode till hardreset or unattached From: Badhri Jagan Sridharan To: Guenter Roeck , Heikki Krogerus , reg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Badhri Jagan Sridharan Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Port starts to toggle when transitioning to unattached state. This is incorrect while in BIST mode. 6.4.3.1 BIST Carrier Mode Upon receipt of a BIST Message, with a BIST Carrier Mode BIST Data Object, the UUT Shall send out a continuous string of BMC encoded alternating "1"s and “0”s. The UUT Shall exit the Continuous BIST Mode within tBISTContMode of this Continuous BIST Mode being enabled(see Section 6.6.7.2). 6.4.3.2 BIST Test Data Upon receipt of a BIST Message, with a BIST Test Data BIST Data Object, the UUT Shall return a GoodCRC Message and Shall enter a test mode in which it sends no further Messages except for GoodCRC Messages in response to received Messages. See Section 5.9.2 for the definition of the Test Data Frame. The test Shall be ended by sending Hard Reset Signaling to reset the UUT. Signed-off-by: Badhri Jagan Sridharan Reviewed-by: Guenter Roeck --- Version history: Changes since V1: - None Changes since V2:(Guenter's suggestions) - Fixed formatting error - Reduced timeout to 50ms --- drivers/usb/typec/tcpm/tcpm.c | 7 +++++-- include/linux/usb/pd.h | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index 379fcab9dbd973..38b958a9650104 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -3559,6 +3559,8 @@ static void run_state_machine(struct tcpm_port *port) switch (BDO_MODE_MASK(port->bist_request)) { case BDO_MODE_CARRIER2: tcpm_pd_transmit(port, TCPC_TX_BIST_MODE_2, NULL); + tcpm_set_state(port, unattached_state(port), + PD_T_BIST_CONT_MODE); break; case BDO_MODE_TESTDATA: if (port->tcpc->set_bist_data) { @@ -3569,8 +3571,6 @@ static void run_state_machine(struct tcpm_port *port) default: break; } - /* Always switch to unattached state */ - tcpm_set_state(port, unattached_state(port), 0); break; case GET_STATUS_SEND: tcpm_pd_send_control(port, PD_CTRL_GET_STATUS); @@ -3960,6 +3960,9 @@ static void _tcpm_pd_vbus_off(struct tcpm_port *port) static void _tcpm_pd_hard_reset(struct tcpm_port *port) { tcpm_log_force(port, "Received hard reset"); + if (port->bist_request == BDO_MODE_TESTDATA && port->tcpc->set_bist_data) + port->tcpc->set_bist_data(port->tcpc, false); + /* * If we keep receiving hard reset requests, executing the hard reset * must have failed. Revert to error recovery if that happens. diff --git a/include/linux/usb/pd.h b/include/linux/usb/pd.h index a665d7f211424d..b6c233e79bd457 100644 --- a/include/linux/usb/pd.h +++ b/include/linux/usb/pd.h @@ -483,4 +483,5 @@ static inline unsigned int rdo_max_power(u32 rdo) #define PD_N_CAPS_COUNT (PD_T_NO_RESPONSE / PD_T_SEND_SOURCE_CAP) #define PD_N_HARD_RESET_COUNT 2 +#define PD_T_BIST_CONT_MODE 50 /* 30 - 60 ms */ #endif /* __LINUX_USB_PD_H */