Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753453AbdHJWRU (ORCPT ); Thu, 10 Aug 2017 18:17:20 -0400 Received: from mail-oi0-f53.google.com ([209.85.218.53]:34204 "EHLO mail-oi0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752281AbdHJWRR (ORCPT ); Thu, 10 Aug 2017 18:17:17 -0400 MIME-Version: 1.0 In-Reply-To: <20170810220633.15343-1-Badhri@google.com> References: <20170810220633.15343-1-Badhri@google.com> From: Badhri Jagan Sridharan Date: Thu, 10 Aug 2017 15:16:35 -0700 Message-ID: Subject: Re: [PATCH] staging: typec: tcpm: Consider port_type while determining unattached_state To: Guenter Roeck , Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org, LKML , Badhri Jagan Sridharan Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2020 Lines: 56 Please hold off on reviewing this patch. Patch went wrong while rebasing. Thanks, Badhri On Thu, Aug 10, 2017 at 3:06 PM, Badhri Jagan Sridharan wrote: > While performing PORT_RESET, upon receiving the cc disconnect > signal from the underlaying tcpc device, TCPM transitions into > unattached state. Consider, the current type of port while determining > the unattached state. > > In the below logs, although the port_type was set to sink, TCPM > transitioned into SRC_UNATTACHED. > > [ 762.290654] state change SRC_READY -> PORT_RESET > [ 762.324531] Setting voltage/current limit 0 mV 0 mA > [ 762.327912] polarity 0 > [ 762.334864] cc:=0 > [ 762.347193] pending state change PORT_RESET -> PORT_RESET_WAIT_OFF @ 100 ms > [ 762.347200] VBUS off > [ 762.347203] CC1: 2 -> 0, CC2: 0 -> 0 [state PORT_RESET, polarity 0, disconnected] > [ 762.347206] state change PORT_RESET -> SRC_UNATTACHED > > Signed-off-by: Badhri Jagan Sridharan > --- > drivers/staging/typec/tcpm.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/typec/tcpm.c b/drivers/staging/typec/tcpm.c > index 20eb4ebcf8c3..4c526341d850 100644 > --- a/drivers/staging/typec/tcpm.c > +++ b/drivers/staging/typec/tcpm.c > @@ -2099,10 +2099,16 @@ static inline enum tcpm_state ready_state(struct tcpm_port *port) > > static inline enum tcpm_state unattached_state(struct tcpm_port *port) > { > - if (port->pwr_role == TYPEC_SOURCE) > + if (port->port_type == TYPEC_PORT_DRP) { > + if (port->pwr_role == TYPEC_SOURCE) > + return SRC_UNATTACHED; > + else > + return SNK_UNATTACHED; > + } else if (port->port_type == TYPEC_PORT_DFP) { > return SRC_UNATTACHED; > - else > + } else { > return SNK_UNATTACHED; > + } > } > > static void tcpm_check_send_discover(struct tcpm_port *port) > -- > 2.14.0.434.g98096fd7a8-goog >