Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1640578pxa; Thu, 20 Aug 2020 17:04:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwN78xTCQCObaTtsIbII4UG3OBPfRxTCDFuAkZYZ2Mg2UBVErL0afXJvKhApWy39qdAwIL9 X-Received: by 2002:a05:6402:1443:: with SMTP id d3mr417675edx.40.1597968282326; Thu, 20 Aug 2020 17:04:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597968282; cv=none; d=google.com; s=arc-20160816; b=JGUJvdi0Vahm/uDvSzyrDHhcMlkpr5Cg01WYYwXUbmRCKlCNAxfMAVriUd4sAfcEzq xoP6ktS/gf7Ova7UWKAniUlCqU+v5Ua2q9a8mcYo+CiMRHs6oUKNeoDxxY+o9yH3gTvd a7ehoCmZP4EKuqunyV66eXW2N4ouyWj4oN4uK+KsaAK85RqmOepBWdydFY1r1nZOWyIo TEI8uVzbkV9Q+MstkS2bKob0HqtYCxPea/qBf9reCzINx7G2uI+4bYYa/CRLLL4/5Pft ilFsZVbdZaY5VzqkzWETjqZIZdTPrlRbitcSqNl2N7LFty7vXV1DzSOLLZ/KR3k5P1o9 fAaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=8gPBGC3S/z9HS8aDBgc5rqdRFeyO0//Bt9ssEZ7I3dw=; b=wgblE8mbZS7thuBHzxsDZvV+qvubKnDLmX29izKyVisLGRPnG+7LYw/2fB3OdP6rGw dU5d5rGMR0aYTAddYWG1cniT5bkqnM5sGXtaSdZphzy3D27JCQxZ04NO4+OEs8PD/ieA McTmPquAnQ/CewuID5VubGhY9/XHiQkSCz8i/0Z1FczBsHxb4om57jkYtu9pBLbngltD prxhHGnR7ICKGaeUGGTvBeAhRhNzHJTOSD+VMwc63dDlUPbE/cCWEVC2CZXX9Ezz6pkZ 8dAlhK1aUKVZwYdN04/Eve00kIN/M9nkCy84SwIP8mmeqO855h12/ufd09QwW3y6deVt MYhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=ogxHaAki; 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 m28si72618edj.385.2020.08.20.17.04.19; Thu, 20 Aug 2020 17:04:42 -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=ogxHaAki; 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 S1726731AbgHUABQ (ORCPT + 99 others); Thu, 20 Aug 2020 20:01:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50810 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725852AbgHUABP (ORCPT ); Thu, 20 Aug 2020 20:01:15 -0400 Received: from mail-pg1-x544.google.com (mail-pg1-x544.google.com [IPv6:2607:f8b0:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6005AC061385 for ; Thu, 20 Aug 2020 17:01:15 -0700 (PDT) Received: by mail-pg1-x544.google.com with SMTP id x6so123801pgx.12 for ; Thu, 20 Aug 2020 17:01:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=8gPBGC3S/z9HS8aDBgc5rqdRFeyO0//Bt9ssEZ7I3dw=; b=ogxHaAkiJ7Tyxqn8fhJ5nqSlNNoVbt0qVqudnNK0eOYtu/m2jGmES5ZZDlli37zho+ 5Z57S10gcgjQTurZgkmFSuoMU9y2hm23Njnr4rXqRpgDlsCVOpnNUkSbdenNm6yagSoX YRABQXoDHQi0W2N8ETIBZUILheszgnbDeJSx8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=8gPBGC3S/z9HS8aDBgc5rqdRFeyO0//Bt9ssEZ7I3dw=; b=tb/b3P0gapN4uW/y6z+AvvqZP2kQkXWHGIRHxgYF0LAKhn16UzrWpRMv9POlFYblEP SUlxmwoz8eT2rSUlW335W3beYaPfO/RDjYsu3cW4S6h1MdQ9pKPwp4kgwAoBSKpR8RE8 B7lE9PnEOlLm3eB1q4Zmz0BQNY8Dlpa6UAhTpixT1v851hb8bifRM9jhKBjuFBOOd56f 4FDiPJXAbhbtwN+xJnHPgxQkCx3tWrmC6iF+NTWgI0BI6p+XzOUq62o93ykNI5buYs8a pbCo4Ri49ILpDQSHbqDxPV8uhLPJ/U7VjW2P53A1MwltDUdcLsTLDqKsXzvl4WmBMIOA MG7g== X-Gm-Message-State: AOAM531vcbVVK+BwDuXd/EUXDNFtScYrnF6dkmH9NAXHYBqzZjHN32Ct 3Cdk8WKbp23VlqPg6VPW34hNjQ== X-Received: by 2002:a62:8cd3:: with SMTP id m202mr268324pfd.184.1597968074768; Thu, 20 Aug 2020 17:01:14 -0700 (PDT) Received: from google.com ([2620:15c:202:201:a28c:fdff:fef0:49dd]) by smtp.gmail.com with ESMTPSA id l78sm209018pfd.130.2020.08.20.17.01.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2020 17:01:14 -0700 (PDT) Date: Thu, 20 Aug 2020 17:01:13 -0700 From: Prashant Malani To: Azhar Shaikh Cc: bleung@chromium.org, enric.balletbo@collabora.com, groeck@chromium.org, heikki.krogerus@linux.intel.com, linux-kernel@vger.kernel.org, rajmohan.mani@intel.com, utkarsh.h.patel@intel.com, casey.g.bowman@intel.com Subject: Re: [PATCH v4 3/3] platform/chrome: cros_ec_typec: Re-order connector configuration steps Message-ID: <20200821000113.GA2553024@google.com> References: <20200820233833.4551-1-azhar.shaikh@intel.com> <20200820233833.4551-4-azhar.shaikh@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200820233833.4551-4-azhar.shaikh@intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Aug 20, 2020 at 04:38:32PM -0700, Azhar Shaikh wrote: > As per USB Type-C Spec R2.0 section 4.5.1.2 (Connecting Sources and Sinks) > and section 4.5.2.2 (Connection State Machine Requirements), the typical > flow for configuring a device connected to a typeC port is as below: > > 1. Source/sink detection > 2. Orientation > 3. Data role > 4. VCONN > 5. VBUS (USB Type-C currents) > 6. The connector is now configured. We can start the PD communication > that should lead into configuration of the mux if we enter a mode. > > But in existing code data role was set after the connector and mux are > already configured. So fix this by following the spec to set the data > role before the connector and mux are configured. > > Signed-off-by: Azhar Shaikh To be clear, I still maintain that the quoted section pertains to *detection* of those various properties (which is handled by the TCPM in the Chrome OS EC), and not any ordering for setting switches etc. That said, I'm not opposed to the re-ordering, so: Reviewed-by: Prashant Malani > --- > Changes in v4: > - No change > > Changes in v3: > - New patch added > > drivers/platform/chrome/cros_ec_typec.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/platform/chrome/cros_ec_typec.c b/drivers/platform/chrome/cros_ec_typec.c > index 2b43e1176e73..9e4fad9ca59e 100644 > --- a/drivers/platform/chrome/cros_ec_typec.c > +++ b/drivers/platform/chrome/cros_ec_typec.c > @@ -516,6 +516,12 @@ static int cros_typec_configure_mux(struct cros_typec_data *typec, int port_num, > if (ret) > return ret; > > + ret = usb_role_switch_set_role(typec->ports[port_num]->role_sw, > + pd_ctrl->role & PD_CTRL_RESP_ROLE_DATA > + ? USB_ROLE_HOST : USB_ROLE_DEVICE); > + if (ret) > + return ret; > + > if (mux_flags & USB_PD_MUX_TBT_COMPAT_ENABLED) { > ret = cros_typec_enable_tbt(typec, port_num, pd_ctrl); > } else if (mux_flags & USB_PD_MUX_DP_ENABLED) { > @@ -533,12 +539,7 @@ static int cros_typec_configure_mux(struct cros_typec_data *typec, int port_num, > ret = -ENOTSUPP; > } > > - if (ret) > - return ret; > - > - return usb_role_switch_set_role(typec->ports[port_num]->role_sw, > - pd_ctrl->role & PD_CTRL_RESP_ROLE_DATA > - ? USB_ROLE_HOST : USB_ROLE_DEVICE); > + return ret; > } > > static int cros_typec_port_update(struct cros_typec_data *typec, int port_num) > -- > 2.17.1 >