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: [v3,2/2] usb: dwc3: Add workaround for host mode VBUS glitch when boot From: Ran Wang Message-Id: <20190226070016.27372-2-ran.wang_1@nxp.com> Date: Tue, 26 Feb 2019 06:59:25 +0000 To: Greg Kroah-Hartman , Rob Herring , Mark Rutland , Felipe Balbi , Yang Li Cc: "linux-usb@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Ran Wang List-ID: V2hlbiBEV0MzIGlzIHNldCB0byBob3N0IG1vZGUgYnkgcHJvZ3JhbW1pbmcgcmVnaXN0ZXIgRFdD M19HQ1RMLCBWQlVTCihvciBpdHMgY29udHJvbCBzaWduYWwpIHdpbGwgYmUgdHVybmVkIG9uIGlt bWVkaWF0ZWx5IG9uIHJlbGF0ZWQgUm9vdCBIdWIKcG9ydHMuIFRoZW4sIHRoZSBWQlVTIGlzIHR1 cm5lZCBvZmYgZm9yIGEgbGl0dGxlIHdoaWxlKDE1dXMpIHdoZW4gZG8geGhjaQpyZXNldCAoY29u ZHVjdGVkIGJ5IHhoY2kgZHJpdmVyKSBhbmQgYmFjayB0byBub3JtYWwgZmluYWxseSwgd2UgY2Fu Cm9ic2VydmUgYSBuZWdhdGl2ZSBnbGl0Y2ggb2YgcmVsYXRlZCBzaWduYWwgaGFwcGVuLgoKVGhp cyBWQlVTIGdsaXRjaCBtaWdodCBjYXVzZSBzb21lIFVTQiBkZXZpY2VzIGVudW1lcmF0aW9uIGZh aWwgaWYga2VybmVsCmJvb3Qgd2l0aCB0aGVtIGNvbm5lY3RlZC4gU3VjaCBhcyBMUzEwMTJBRldS WS9MUzEwNDNBUkRCL0xYMjE2MEFRRFMKL0xTMTA4OEFSREIgd2l0aCBLaW5nc3RvbiAxNkdCIFVT QjIuMC9LaW5nc3RvbiBVU0IzLjAvSmV0Rmxhc2ggVHJhbnNjZW5kCjRHQiBVU0IyLjAgZHJpdmVz LiBUaGUgZmFpbCBjYXNlcyBpbmNsdWRlIGVudW1lcmF0ZWQgYXMgZnVsbC1zcGVlZCBkZXZpY2UK b3IgcmVwb3J0IHdyb25nIGRldmljZSBkZXNjcmlwdG9yLCBldGMuCgpPbmUgU1cgd29ya2Fyb3Vu ZCB3aGljaCBjYW4gZml4IHRoaXMgaXMgYnkgcHJvZ3JhbWluZyBhbGwgeGhjaSBQT1JUU0NbUFBd CnRvIDAgdG8gdHVybiBvZmYgVkJVUyBpbW1lZGlhdGVseSBhZnRlciBzZXR0aW5nIGhvc3QgbW9k ZSBpbiBEV0MzIGRyaXZlcgoocGVyIHNpZ25hbCBtZWFzdXJlbWVudCByZXN1bHQsIGl0IHdpbGwg YmUgdG9vIGxhdGUgdG8gZG8gaXQgaW4KeGhjaS1wbGF0LmMgb3IgeGhjaS5jKS4gVGhlbiwgYWZ0 ZXIgeGhjaSByZXNldCBjb21wbGV0ZSBpbiB4aGNpIGRyaXZlciwKUE9SVFNDW1BQXXMnIHZhbHVl IHdpbGwgYmFjayB0byAxIGF1dG9tYXRpY2FsbHkgYW5kIFZCVVMgb24gYXQgdGhhdCB0aW1lLApu byBnbGl0Y2ggaGFwcGVuIGFuZCBub3JtYWwgZW51bWVyYXRpb24gcHJvY2VzcyBoYXMgbm8gaW1w YWN0LgoKU2lnbmVkLW9mZi1ieTogUmFuIFdhbmcgPHJhbi53YW5nXzFAbnhwLmNvbT4KLS0tCkNo YW5nZXMgaW4gdjM6CiAgLSBBZGQgbWFjcm8gUE9SVF9SRUdTX1NJWkUgdG8gcmVwbGFjZSAweDEw CiAgLSBDaGFuZ2UgaW5pdGlhbCB2YWx1ZSBvZiBpIHRvIDAgZm9yIHRoZSBmb3IgbG9vcAogIC0g Q29zbWV0aWMgY2hhbmdlcwoKQ2hhbmdlcyBpbiB2MjoKICAtIFJlbmFtZSByZWxhdGVkIHByb3Bl cnR5IHRvICdzbnBzLGhvc3QtdmJ1cy1nbGl0Y2hlcycKICAtIFJlbmFtZSByZWxhdGVkIGR3YyBt ZW1iZXIgdG8gJ2hvc3RfdmJ1c19nbGl0Y2hlcycKICAtIEFkZCBtZW1iZXIgJ2hvc3RfdmJ1c19n bGl0Y2hlcycgZGVzY3JpcHRpb24gaW4gJ2R3YzMnCgogZHJpdmVycy91c2IvZHdjMy9jb3JlLmMg fCAgIDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBk cml2ZXJzL3VzYi9kd2MzL2NvcmUuaCB8ICAgMTIgKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdl ZCwgNjAgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L3VzYi9kd2MzL2NvcmUuYyBiL2RyaXZlcnMvdXNiL2R3YzMvY29yZS5jCmluZGV4IGExYjEyNmYu LmRkODBlM2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2R3YzMvY29yZS5jCisrKyBiL2RyaXZl cnMvdXNiL2R3YzMvY29yZS5jCkBAIC0xMDAsNiArMTAwLDQyIEBAIHN0YXRpYyBpbnQgZHdjM19n ZXRfZHJfbW9kZShzdHJ1Y3QgZHdjMyAqZHdjKQogCXJldHVybiAwOwogfQogCisvKgorICogZHdj M19wb3dlcl9vZl9hbGxfcm9vdGh1Yl9wb3J0cyAtIFBvd2VyIG9mZiBhbGwgUm9vdCBodWIgcG9y dHMKKyAqIEBkd2MzOiBQb2ludGVyIHRvIG91ciBjb250cm9sbGVyIGNvbnRleHQgc3RydWN0dXJl CisgKi8KK3N0YXRpYyB2b2lkIGR3YzNfcG93ZXJfb2ZmX2FsbF9yb290aHViX3BvcnRzKHN0cnVj dCBkd2MzICpkd2MpCit7CisJaW50IGksIHBvcnRfbnVtOworCXUzMiByZWcsIG9wX3JlZ3NfYmFz ZSwgb2Zmc2V0OworCXZvaWQgX19pb21lbQkJKnhoY2lfcmVnczsKKworCS8qIHhoY2kgcmVncyBp cyBub3QgbWFwcGVkIHlldCwgZG8gaXQgdGVtcGVyYXJ5IGhlcmUgKi8KKwlpZiAoZHdjLT54aGNp X3Jlc291cmNlc1swXS5zdGFydCkgeworCQl4aGNpX3JlZ3MgPSBpb3JlbWFwKGR3Yy0+eGhjaV9y ZXNvdXJjZXNbMF0uc3RhcnQsCisJCQkJRFdDM19YSENJX1JFR1NfRU5EKTsKKwkJaWYgKElTX0VS Uih4aGNpX3JlZ3MpKSB7CisJCQlkZXZfZXJyKGR3Yy0+ZGV2LCAiRmFpbGVkIHRvIGlvcmVtYXAg eGhjaV9yZWdzXG4iKTsKKwkJCXJldHVybjsKKwkJfQorCisJCW9wX3JlZ3NfYmFzZSA9IEhDX0xF TkdUSChyZWFkbCh4aGNpX3JlZ3MpKTsKKwkJcmVnID0gcmVhZGwoeGhjaV9yZWdzICsgWEhDSV9I Q1NQQVJBTVMxKTsKKwkJcG9ydF9udW0gPSBIQ1NfTUFYX1BPUlRTKHJlZyk7CisKKwkJZm9yIChp ID0gMDsgaSA8IHBvcnRfbnVtOyBpKyspIHsKKwkJCW9mZnNldCA9IG9wX3JlZ3NfYmFzZSArIFhI Q0lfUE9SVFNDX0JBU0UgKworCQkJCVBPUlRfUkVHU19TSVpFICogaTsKKwkJCXJlZyA9IHJlYWRs KHhoY2lfcmVncyArIG9mZnNldCk7CisJCQlyZWcgJj0gflBPUlRfUE9XRVI7CisJCQl3cml0ZWwo cmVnLCB4aGNpX3JlZ3MgKyBvZmZzZXQpOworCQl9CisKKwkJaW91bm1hcCh4aGNpX3JlZ3MpOwor CX0gZWxzZQorCQlkZXZfZXJyKGR3Yy0+ZGV2LCAieGhjaSBiYXNlIHJlZyBpbnZhbGlkXG4iKTsK K30KKwogdm9pZCBkd2MzX3NldF9wcnRjYXAoc3RydWN0IGR3YzMgKmR3YywgdTMyIG1vZGUpCiB7 CiAJdTMyIHJlZzsKQEAgLTEwOSw2ICsxNDUsMTUgQEAgdm9pZCBkd2MzX3NldF9wcnRjYXAoc3Ry dWN0IGR3YzMgKmR3YywgdTMyIG1vZGUpCiAJcmVnIHw9IERXQzNfR0NUTF9QUlRDQVBESVIobW9k ZSk7CiAJZHdjM193cml0ZWwoZHdjLT5yZWdzLCBEV0MzX0dDVEwsIHJlZyk7CiAKKwkvKgorCSAq IFdlIGhhdmUgdG8gcG93ZXIgb2ZmIGFsbCBSb290IGh1YiBwb3J0cyBpbW1lZGlhdGVseSBhZnRl ciBEV0MzIHNldAorCSAqIHRvIGhvc3QgbW9kZSB0byBhdm9pZCBWQlVTIGdsaXRjaCBoYXBwZW4g d2hlbiB4aGNpIGdldCByZXNldCBsYXRlci4KKwkgKi8KKwlpZiAoZHdjLT5ob3N0X3ZidXNfZ2xp dGNoZXMpIHsKKwkJaWYgKG1vZGUgPT0gRFdDM19HQ1RMX1BSVENBUF9IT1NUKQorCQkJZHdjM19w b3dlcl9vZmZfYWxsX3Jvb3RodWJfcG9ydHMoZHdjKTsKKwl9CisKIAlkd2MtPmN1cnJlbnRfZHJf cm9sZSA9IG1vZGU7CiB9CiAKQEAgLTEzMDYsNiArMTM1MSw5IEBAIHN0YXRpYyB2b2lkIGR3YzNf Z2V0X3Byb3BlcnRpZXMoc3RydWN0IGR3YzMgKmR3YykKIAlkd2MtPmRpc19tZXRhc3RhYmlsaXR5 X3F1aXJrID0gZGV2aWNlX3Byb3BlcnR5X3JlYWRfYm9vbChkZXYsCiAJCQkJInNucHMsZGlzX21l dGFzdGFiaWxpdHlfcXVpcmsiKTsKIAorCWR3Yy0+aG9zdF92YnVzX2dsaXRjaGVzID0gZGV2aWNl X3Byb3BlcnR5X3JlYWRfYm9vbChkZXYsCisJCQkJInNucHMsaG9zdC12YnVzLWdsaXRjaGVzIik7 CisKIAlkd2MtPmxwbV9ueWV0X3RocmVzaG9sZCA9IGxwbV9ueWV0X3RocmVzaG9sZDsKIAlkd2Mt PnR4X2RlX2VtcGhhc2lzID0gdHhfZGVfZW1waGFzaXM7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv dXNiL2R3YzMvY29yZS5oIGIvZHJpdmVycy91c2IvZHdjMy9jb3JlLmgKaW5kZXggZGY4NzY0MS4u YzJkZWUwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZHdjMy9jb3JlLmgKKysrIGIvZHJpdmVy cy91c2IvZHdjMy9jb3JlLmgKQEAgLTYwNiw2ICs2MDYsMTUgQEAKICNkZWZpbmUgRFdDM19PU1RT X1ZCVVNWTEQJCUJJVCgxKQogI2RlZmluZSBEV0MzX09TVFNfQ09OSURTVFMJCUJJVCgwKQogCisv KiBQYXJ0aWFsIFhIQ0kgUmVnaXN0ZXIgYW5kIEJpdCBmaWVsZHMgZm9yIHF1aXJrICovCisjZGVm aW5lIFhIQ0lfSENTUEFSQU1TMQkJMHg0CisjZGVmaW5lIFhIQ0lfUE9SVFNDX0JBU0UJMHg0MDAK KyNkZWZpbmUgUE9SVF9SRUdTX1NJWkUJCTB4MTAKKyNkZWZpbmUgUE9SVF9QT1dFUgkJCSgxIDw8 IDkpCisjZGVmaW5lIEhDU19NQVhfUE9SVFMocCkJKCgocCkgPj4gMjQpICYgMHg3ZikKKyNkZWZp bmUgWEhDSV9IQ19MRU5HVEgocCkJKCgocCk+PjAwKSYweDAwZmYpCisjZGVmaW5lIEhDX0xFTkdU SChwKQkJWEhDSV9IQ19MRU5HVEgocCkKKwogLyogU3RydWN0dXJlcyAqLwogCiBzdHJ1Y3QgZHdj M190cmI7CkBAIC0xMDI0LDYgKzEwMzMsOCBAQCBzdHJ1Y3QgZHdjM19zY3JhdGNocGFkX2FycmF5 IHsKICAqIAkyCS0gTm8gZGUtZW1waGFzaXMKICAqIAkzCS0gUmVzZXJ2ZWQKICAqIEBkaXNfbWV0 YXN0YWJpbGl0eV9xdWlyazogc2V0IHRvIGRpc2FibGUgbWV0YXN0YWJpbGl0eSBxdWlyay4KKyAq IEBob3N0LXZidXMtZ2xpdGNoZXM6IHNldCB0byBhdm9pZCB2YnVzIGdsaXRjaCBkdXJpbmcKKyAq ICAgICAgICAgICAgICAgICAgICAgIHhoY2kgcmVzZXQuCiAgKiBAaW1vZF9pbnRlcnZhbDogc2V0 IHRoZSBpbnRlcnJ1cHQgbW9kZXJhdGlvbiBpbnRlcnZhbCBpbiAyNTBucwogICogICAgICAgICAg ICAgICAgIGluY3JlbWVudHMgb3IgMCB0byBkaXNhYmxlLgogICovCkBAIC0xMjA5LDYgKzEyMjAs NyBAQCBzdHJ1Y3QgZHdjMyB7CiAJdW5zaWduZWQJCXR4X2RlX2VtcGhhc2lzOjI7CiAKIAl1bnNp Z25lZAkJZGlzX21ldGFzdGFiaWxpdHlfcXVpcms6MTsKKwl1bnNpZ25lZAkJaG9zdF92YnVzX2ds aXRjaGVzOjE7CiAKIAl1MTYJCQlpbW9kX2ludGVydmFsOwogfTsK