From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 11 Jun 2018 15:29:58 +0300 From: Heikki Krogerus Subject: Re: [PATCH v6 12/15] usb: typec: tcpm: set cc for drp toggling attach Message-ID: <20180611122958.GK17155@kuha.fi.intel.com> References: <1527475967-15201-1-git-send-email-jun.li@nxp.com> <1527475967-15201-13-git-send-email-jun.li@nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1527475967-15201-13-git-send-email-jun.li@nxp.com> To: Li Jun Cc: robh+dt@kernel.org, gregkh@linuxfoundation.org, linux@roeck-us.net, cw00.choi@samsung.com, a.hajda@samsung.com, shufan_lee@richtek.com, peter.chen@nxp.com, garsilva@embeddedor.com, gsomlo@gmail.com, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-imx@nxp.com List-ID: On Mon, May 28, 2018 at 10:52:44AM +0800, Li Jun wrote: > In case of drp toggling, we may need set correct cc value for role control > after attach as it may never been set. Is this something that should be considered as a fix? > Signed-off-by: Li Jun > --- > drivers/usb/typec/tcpm.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/usb/typec/tcpm.c b/drivers/usb/typec/tcpm.c > index d885bff..98ea916 100644 > --- a/drivers/usb/typec/tcpm.c > +++ b/drivers/usb/typec/tcpm.c > @@ -2599,6 +2599,7 @@ static void tcpm_reset_port(struct tcpm_port *port) > tcpm_set_attached_state(port, false); > port->try_src_count = 0; > port->try_snk_count = 0; > + port->cc_req = TYPEC_CC_OPEN; > port->supply_voltage = 0; > port->current_limit = 0; > port->usb_type = POWER_SUPPLY_USB_TYPE_C; > @@ -2831,6 +2832,8 @@ static void run_state_machine(struct tcpm_port *port) > break; > > case SRC_ATTACHED: > + if (port->cc_req == TYPEC_CC_OPEN) > + tcpm_set_cc(port, tcpm_rp_cc(port)); > ret = tcpm_src_attach(port); > tcpm_set_state(port, SRC_UNATTACHED, > ret < 0 ? 0 : PD_T_PS_SOURCE_ON); > @@ -3004,6 +3007,8 @@ static void run_state_machine(struct tcpm_port *port) > tcpm_set_state(port, SNK_UNATTACHED, PD_T_PD_DEBOUNCE); > break; > case SNK_ATTACHED: > + if (port->cc_req == TYPEC_CC_OPEN) > + tcpm_set_cc(port, TYPEC_CC_RD); > ret = tcpm_snk_attach(port); > if (ret < 0) > tcpm_set_state(port, SNK_UNATTACHED, 0); -- heikki From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v6,12/15] usb: typec: tcpm: set cc for drp toggling attach From: Heikki Krogerus Message-Id: <20180611122958.GK17155@kuha.fi.intel.com> Date: Mon, 11 Jun 2018 15:29:58 +0300 To: Li Jun Cc: robh+dt@kernel.org, gregkh@linuxfoundation.org, linux@roeck-us.net, cw00.choi@samsung.com, a.hajda@samsung.com, shufan_lee@richtek.com, peter.chen@nxp.com, garsilva@embeddedor.com, gsomlo@gmail.com, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-imx@nxp.com List-ID: T24gTW9uLCBNYXkgMjgsIDIwMTggYXQgMTA6NTI6NDRBTSArMDgwMCwgTGkgSnVuIHdyb3RlOgo+ IEluIGNhc2Ugb2YgZHJwIHRvZ2dsaW5nLCB3ZSBtYXkgbmVlZCBzZXQgY29ycmVjdCBjYyB2YWx1 ZSBmb3Igcm9sZSBjb250cm9sCj4gYWZ0ZXIgYXR0YWNoIGFzIGl0IG1heSBuZXZlciBiZWVuIHNl dC4KCklzIHRoaXMgc29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgYSBmaXg/ Cgo+IFNpZ25lZC1vZmYtYnk6IExpIEp1biA8anVuLmxpQG54cC5jb20+Cj4gLS0tCj4gIGRyaXZl cnMvdXNiL3R5cGVjL3RjcG0uYyB8IDUgKysrKysKPiAgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0 aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi90eXBlYy90Y3BtLmMgYi9kcml2 ZXJzL3VzYi90eXBlYy90Y3BtLmMKPiBpbmRleCBkODg1YmZmLi45OGVhOTE2IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvdXNiL3R5cGVjL3RjcG0uYwo+ICsrKyBiL2RyaXZlcnMvdXNiL3R5cGVjL3Rj cG0uYwo+IEBAIC0yNTk5LDYgKzI1OTksNyBAQCBzdGF0aWMgdm9pZCB0Y3BtX3Jlc2V0X3BvcnQo c3RydWN0IHRjcG1fcG9ydCAqcG9ydCkKPiAgCXRjcG1fc2V0X2F0dGFjaGVkX3N0YXRlKHBvcnQs IGZhbHNlKTsKPiAgCXBvcnQtPnRyeV9zcmNfY291bnQgPSAwOwo+ICAJcG9ydC0+dHJ5X3Nua19j b3VudCA9IDA7Cj4gKwlwb3J0LT5jY19yZXEgPSBUWVBFQ19DQ19PUEVOOwo+ICAJcG9ydC0+c3Vw cGx5X3ZvbHRhZ2UgPSAwOwo+ICAJcG9ydC0+Y3VycmVudF9saW1pdCA9IDA7Cj4gIAlwb3J0LT51 c2JfdHlwZSA9IFBPV0VSX1NVUFBMWV9VU0JfVFlQRV9DOwo+IEBAIC0yODMxLDYgKzI4MzIsOCBA QCBzdGF0aWMgdm9pZCBydW5fc3RhdGVfbWFjaGluZShzdHJ1Y3QgdGNwbV9wb3J0ICpwb3J0KQo+ ICAJCWJyZWFrOwo+ICAKPiAgCWNhc2UgU1JDX0FUVEFDSEVEOgo+ICsJCWlmIChwb3J0LT5jY19y ZXEgPT0gVFlQRUNfQ0NfT1BFTikKPiArCQkJdGNwbV9zZXRfY2MocG9ydCwgdGNwbV9ycF9jYyhw b3J0KSk7Cj4gIAkJcmV0ID0gdGNwbV9zcmNfYXR0YWNoKHBvcnQpOwo+ICAJCXRjcG1fc2V0X3N0 YXRlKHBvcnQsIFNSQ19VTkFUVEFDSEVELAo+ICAJCQkgICAgICAgcmV0IDwgMCA/IDAgOiBQRF9U X1BTX1NPVVJDRV9PTik7Cj4gQEAgLTMwMDQsNiArMzAwNyw4IEBAIHN0YXRpYyB2b2lkIHJ1bl9z dGF0ZV9tYWNoaW5lKHN0cnVjdCB0Y3BtX3BvcnQgKnBvcnQpCj4gIAkJdGNwbV9zZXRfc3RhdGUo cG9ydCwgU05LX1VOQVRUQUNIRUQsIFBEX1RfUERfREVCT1VOQ0UpOwo+ICAJCWJyZWFrOwo+ICAJ Y2FzZSBTTktfQVRUQUNIRUQ6Cj4gKwkJaWYgKHBvcnQtPmNjX3JlcSA9PSBUWVBFQ19DQ19PUEVO KQo+ICsJCQl0Y3BtX3NldF9jYyhwb3J0LCBUWVBFQ19DQ19SRCk7Cj4gIAkJcmV0ID0gdGNwbV9z bmtfYXR0YWNoKHBvcnQpOwo+ICAJCWlmIChyZXQgPCAwKQo+ICAJCQl0Y3BtX3NldF9zdGF0ZShw b3J0LCBTTktfVU5BVFRBQ0hFRCwgMCk7Cg==