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: [v4,10/13] usb: typec: tcpm: set cc for drp toggling attach From: Jun Li Message-Id: <1522253178-32414-11-git-send-email-jun.li@nxp.com> Date: Thu, 29 Mar 2018 00:06:15 +0800 To: robh+dt@kernel.org, gregkh@linuxfoundation.org, heikki.krogerus@linux.intel.com, linux@roeck-us.net Cc: a.hajda@samsung.com, shufan_lee@richtek.com, peter.chen@nxp.com, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-imx@nxp.com, jun.li@nxp.com, devel@driverdev.osuosl.org List-ID: SW4gY2FzZSBvZiBkcnAgdG9nZ2xpbmcsIHdlIG1heSBuZWVkIHNldCBjb3JyZWN0IGNjIHZhbHVl IGZvciByb2xlIGNvbnRyb2wKYWZ0ZXIgYXR0YWNoIGFzIGl0IG1heSBuZXZlciBiZWVuIHNldC4K ClNpZ25lZC1vZmYtYnk6IExpIEp1biA8anVuLmxpQG54cC5jb20+Ci0tLQogZHJpdmVycy91c2Iv dHlwZWMvdGNwbS5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3R5cGVjL3RjcG0uYyBiL2RyaXZlcnMvdXNiL3R5cGVj L3RjcG0uYwppbmRleCAyMThjMjMwLi43MmQ0MjMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi90 eXBlYy90Y3BtLmMKKysrIGIvZHJpdmVycy91c2IvdHlwZWMvdGNwbS5jCkBAIC0yMTI2LDYgKzIx MjYsNyBAQCBzdGF0aWMgdm9pZCB0Y3BtX3Jlc2V0X3BvcnQoc3RydWN0IHRjcG1fcG9ydCAqcG9y dCkKIAl0Y3BtX3NldF9hdHRhY2hlZF9zdGF0ZShwb3J0LCBmYWxzZSk7CiAJcG9ydC0+dHJ5X3Ny Y19jb3VudCA9IDA7CiAJcG9ydC0+dHJ5X3Nua19jb3VudCA9IDA7CisJcG9ydC0+Y2NfcmVxID0g MDsKIH0KIAogc3RhdGljIHZvaWQgdGNwbV9kZXRhY2goc3RydWN0IHRjcG1fcG9ydCAqcG9ydCkK QEAgLTIzNjEsNiArMjM2Miw4IEBAIHN0YXRpYyB2b2lkIHJ1bl9zdGF0ZV9tYWNoaW5lKHN0cnVj dCB0Y3BtX3BvcnQgKnBvcnQpCiAJCWJyZWFrOwogCiAJY2FzZSBTUkNfQVRUQUNIRUQ6CisJCWlm ICghcG9ydC0+Y2NfcmVxKQorCQkJdGNwbV9zZXRfY2MocG9ydCwgdGNwbV9ycF9jYyhwb3J0KSk7 CiAJCXJldCA9IHRjcG1fc3JjX2F0dGFjaChwb3J0KTsKIAkJdGNwbV9zZXRfc3RhdGUocG9ydCwg U1JDX1VOQVRUQUNIRUQsCiAJCQkgICAgICAgcmV0IDwgMCA/IDAgOiBQRF9UX1BTX1NPVVJDRV9P Tik7CkBAIC0yNTMxLDYgKzI1MzQsOCBAQCBzdGF0aWMgdm9pZCBydW5fc3RhdGVfbWFjaGluZShz dHJ1Y3QgdGNwbV9wb3J0ICpwb3J0KQogCQl0Y3BtX3NldF9zdGF0ZShwb3J0LCBTTktfVU5BVFRB Q0hFRCwgUERfVF9QRF9ERUJPVU5DRSk7CiAJCWJyZWFrOwogCWNhc2UgU05LX0FUVEFDSEVEOgor CQlpZiAoIXBvcnQtPmNjX3JlcSkKKwkJCXRjcG1fc2V0X2NjKHBvcnQsIFRZUEVDX0NDX1JEKTsK IAkJcmV0ID0gdGNwbV9zbmtfYXR0YWNoKHBvcnQpOwogCQlpZiAocmV0IDwgMCkKIAkJCXRjcG1f c2V0X3N0YXRlKHBvcnQsIFNOS19VTkFUVEFDSEVELCAwKTsK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Li Jun Subject: [PATCH v4 10/13] usb: typec: tcpm: set cc for drp toggling attach Date: Thu, 29 Mar 2018 00:06:15 +0800 Message-ID: <1522253178-32414-11-git-send-email-jun.li@nxp.com> References: <1522253178-32414-1-git-send-email-jun.li@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1522253178-32414-1-git-send-email-jun.li@nxp.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" To: robh+dt@kernel.org, gregkh@linuxfoundation.org, heikki.krogerus@linux.intel.com, linux@roeck-us.net Cc: devel@driverdev.osuosl.org, devicetree@vger.kernel.org, peter.chen@nxp.com, linux-usb@vger.kernel.org, a.hajda@samsung.com, linux-imx@nxp.com, jun.li@nxp.com, shufan_lee@richtek.com List-Id: devicetree@vger.kernel.org In case of drp toggling, we may need set correct cc value for role control after attach as it may never been set. 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 218c230..72d4232 100644 --- a/drivers/usb/typec/tcpm.c +++ b/drivers/usb/typec/tcpm.c @@ -2126,6 +2126,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 = 0; } static void tcpm_detach(struct tcpm_port *port) @@ -2361,6 +2362,8 @@ static void run_state_machine(struct tcpm_port *port) break; case SRC_ATTACHED: + if (!port->cc_req) + 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); @@ -2531,6 +2534,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) + tcpm_set_cc(port, TYPEC_CC_RD); ret = tcpm_snk_attach(port); if (ret < 0) tcpm_set_state(port, SNK_UNATTACHED, 0); -- 2.7.4