Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752894AbdHOX0u (ORCPT ); Tue, 15 Aug 2017 19:26:50 -0400 Received: from mail-oi0-f41.google.com ([209.85.218.41]:34729 "EHLO mail-oi0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752335AbdHOX0t (ORCPT ); Tue, 15 Aug 2017 19:26:49 -0400 MIME-Version: 1.0 In-Reply-To: References: <20170815133626.GA30718@kuha.fi.intel.com> From: Badhri Jagan Sridharan Date: Tue, 15 Aug 2017 16:26:07 -0700 Message-ID: Subject: Re: Sometimes supports_usb_power_delivery reports incorrect value. To: Heikki Krogerus Cc: Guenter Roeck , USB , LKML 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: 2281 Lines: 62 Submitted couple of patches for the missing pieces in TCPM. Those patches along with "usb: typec: update partner power delivery support with opmode" seems to address the issue of reporting the right value for supports_usb_power_delivery. Thanks, Badhri On Tue, Aug 15, 2017 at 7:13 AM, Badhri Jagan Sridharan wrote: > On Tue, Aug 15, 2017 at 6:36 AM, Heikki Krogerus > wrote: >> Hi, >> >> On Mon, Aug 14, 2017 at 11:57:15AM -0700, Badhri Jagan Sridharan wrote: >>> Hi Heikki, >>> >>> While testing with different type-c phones available in the market, >>> With some phones, I noticed that supports_usb_power_delivery >>> reports "no" eventhough an explicit pd contract has been >>> established. After spending sometime debugging, I noticed that >>> the root cause of this is that the partner device(acting as source) >>> takes too long to send the SRC_CAP message. This makes the >>> underlying TCPM code to report usb_pd set to 0 while initially >>> calling typec_register_partner. However,since there is no >>> provision in the type-c sysfs interface to update >>> supports_usb_power_delivery once the contract is established, >>> supports_usb_power_delivery is left to report "no" even if the partner >>> source device is at present performing Type-C PD. >>> Is it OK to add a api to enable updating supports_usb_power_delivery >>> node in the typec sysfs code after typec_register_partner has been >>> called ? Or do you have other suggestions ? Please advice. >> >> supports_usb_power_delivery will be updated if typec_set_pwr_opmode() >> is called with value TYPEC_PWR_MODE_PD, and it should be called, also > > Oops my bad !! I somehow did not notice the presence of your following > commit: > > usb: typec: update partner power delivery support with opmode > > which has not been picked-up in our codebase yet. > >> in tcpm.c, always when USB PD contract has been established. I did not >> check the latest tcpm.c code, but I assume it does that. If it > > TCPM does do this. > >> doesn't, it needs to be fixed of course. >> >> Are you sure you really have the contract established? > > Yes I did verify using the pd-analyzer. I will your change and see how it goes. > Thanks ! > >> >> >> Thanks, >> >> -- >> heikki