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: [V2,2/6] usb: core: Add ability to skip phy exit on suspend and init on resume From: Chunfeng Yun Message-Id: <1539827206.32173.62.camel@mhfsdcap03> Date: Thu, 18 Oct 2018 09:46:46 +0800 To: Al Cooper Cc: linux-kernel@vger.kernel.org, Alan Stern , Alban Bedel , Alex Elder , Andrew Morton , Arnd Bergmann , Avi Fishman , bcm-kernel-feedback-list@broadcom.com, Bjorn Andersson , "David S. Miller" , devicetree@vger.kernel.org, Dmitry Osipenko , Greg Kroah-Hartman , "Gustavo A. R. Silva" , Hans de Goede , James Hogan , Jianguo Sun , Johan Hovold , Kees Cook , linux-usb@vger.kernel.org, Lu Baolu , Mark Rutland , Martin Blumenstingl , Mathias Nyman , Mathias Nyman , Mauro Carvalho Chehab , Rishabh Bhatnagar , Rob Herring , Roger Quadros List-ID: aGksCgpPbiBXZWQsIDIwMTgtMTAtMTcgYXQgMTg6MjkgLTA0MDAsIEFsIENvb3BlciB3cm90ZToK PiBBZGQgdGhlIGFiaWxpdHkgdG8gc2tpcCBjYWxsaW5nIHRoZSBQSFkncyBleGl0IHJvdXRpbmUg b24gc3VzcGVuZAo+IGFuZCB0aGUgUEhZJ3MgaW5pdCByb3V0aW5lIG9uIHJlc3VtZS4gVGhpcyBp cyB0byBoYW5kbGUgYSBVU0IgUEhZCj4gdGhhdCBzaG91bGQgaGF2ZSBpdCdzIHBvd2VyX29mZiBm dW5jdGlvbiBjYWxsZWQgb24gc3VzcGVuZCBidXQgY2Fubm90Cj4gaGF2ZSBpdCdzIGV4aXQgZnVu Y3Rpb24gY2FsbGVkIGJlY2F1c2Ugb24gZXhpdCBpdCB3aWxsIGRpc2FibGUgdGhlCj4gUEhZIHRv IHRoZSBwb2ludCB3aGVyZSByZWdpc3RlciBhY2Nlc3NlcyB0byB0aGUgSG9zdCBDb250cm9sbGVy cwo+IHVzaW5nIHRoZSBQSFkgd2lsbCBiZSBkaXNhYmxlZCBhbmQgdGhlIGhvc3QgZHJpdmVycyB3 aWxsIGNyYXNoLgo+IAo+IFRoaXMgaXMgZW5hYmxlZCB3aXRoIHRoZSBIQ0QgZmxhZyAic3VzcGVu ZF93aXRob3V0X3BoeV9leGl0IiB3aGljaAo+IGNhbiBiZSBzZXQgZnJvbSBhbnkgSENEIGRyaXZl ci4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBBbCBDb29wZXIgPGFsY29vcGVyeEBnbWFpbC5jb20+Cj4g LS0tCj4gIGRyaXZlcnMvdXNiL2NvcmUvaGNkLmMgIHwgIDggKysrKy0tLS0KPiAgZHJpdmVycy91 c2IvY29yZS9waHkuYyAgfCAxOCArKysrKysrKysrKystLS0tLS0KPiAgZHJpdmVycy91c2IvY29y ZS9waHkuaCAgfCAgOSArKysrKystLS0KPiAgaW5jbHVkZS9saW51eC91c2IvaGNkLmggfCAgMyAr KysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9oY2QuYyBiL2RyaXZlcnMvdXNiL2Nv cmUvaGNkLmMKPiBpbmRleCAxYzIxOTU1ZmU3YzAuLmU2N2U0ZDZiM2QyMSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL3VzYi9jb3JlL2hjZC5jCj4gKysrIGIvZHJpdmVycy91c2IvY29yZS9oY2QuYwo+ IEBAIC0yMjYzLDcgKzIyNjMsNyBAQCBpbnQgaGNkX2J1c19zdXNwZW5kKHN0cnVjdCB1c2JfZGV2 aWNlICpyaGRldiwgcG1fbWVzc2FnZV90IG1zZykKPiAgCQloY2QtPnN0YXRlID0gSENfU1RBVEVf U1VTUEVOREVEOwo+ICAKPiAgCQlpZiAoIVBNU0dfSVNfQVVUTyhtc2cpKQo+IC0JCQl1c2JfcGh5 X3Jvb3RodWJfc3VzcGVuZChoY2QtPnNlbGYuc3lzZGV2LAo+ICsJCQl1c2JfcGh5X3Jvb3RodWJf c3VzcGVuZChoY2QsCj4gIAkJCQkJCWhjZC0+cGh5X3Jvb3RodWIpOwo+ICAKPiAgCQkvKiBEaWQg d2UgcmFjZSB3aXRoIGEgcm9vdC1odWIgd2FrZXVwIGV2ZW50PyAqLwo+IEBAIC0yMzA0LDcgKzIz MDQsNyBAQCBpbnQgaGNkX2J1c19yZXN1bWUoc3RydWN0IHVzYl9kZXZpY2UgKnJoZGV2LCBwbV9t ZXNzYWdlX3QgbXNnKQo+ICAJfQo+ICAKPiAgCWlmICghUE1TR19JU19BVVRPKG1zZykpIHsKPiAt CQlzdGF0dXMgPSB1c2JfcGh5X3Jvb3RodWJfcmVzdW1lKGhjZC0+c2VsZi5zeXNkZXYsCj4gKwkJ c3RhdHVzID0gdXNiX3BoeV9yb290aHViX3Jlc3VtZShoY2QsCj4gIAkJCQkJCWhjZC0+cGh5X3Jv b3RodWIpOwo+ICAJCWlmIChzdGF0dXMpCj4gIAkJCXJldHVybiBzdGF0dXM7Cj4gQEAgLTIzNDcs NyArMjM0Nyw3IEBAIGludCBoY2RfYnVzX3Jlc3VtZShzdHJ1Y3QgdXNiX2RldmljZSAqcmhkZXYs IHBtX21lc3NhZ2VfdCBtc2cpCj4gIAkJfQo+ICAJfSBlbHNlIHsKPiAgCQloY2QtPnN0YXRlID0g b2xkX3N0YXRlOwo+IC0JCXVzYl9waHlfcm9vdGh1Yl9zdXNwZW5kKGhjZC0+c2VsZi5zeXNkZXYs IGhjZC0+cGh5X3Jvb3RodWIpOwo+ICsJCXVzYl9waHlfcm9vdGh1Yl9zdXNwZW5kKGhjZCwgaGNk LT5waHlfcm9vdGh1Yik7Cj4gIAkJZGV2X2RiZygmcmhkZXYtPmRldiwgImJ1cyAlcyBmYWlsLCBl cnIgJWRcbiIsCj4gIAkJCQkicmVzdW1lIiwgc3RhdHVzKTsKPiAgCQlpZiAoc3RhdHVzICE9IC1F U0hVVERPV04pCj4gQEAgLTI3NDQsNyArMjc0NCw3IEBAIGludCB1c2JfYWRkX2hjZChzdHJ1Y3Qg dXNiX2hjZCAqaGNkLAo+ICAJc3RydWN0IHVzYl9kZXZpY2UgKnJoZGV2Owo+ICAKPiAgCWlmICgh aGNkLT5za2lwX3BoeV9pbml0aWFsaXphdGlvbiAmJiB1c2JfaGNkX2lzX3ByaW1hcnlfaGNkKGhj ZCkpIHsKPiAtCQloY2QtPnBoeV9yb290aHViID0gdXNiX3BoeV9yb290aHViX2FsbG9jKGhjZC0+ c2VsZi5zeXNkZXYpOwo+ICsJCWhjZC0+cGh5X3Jvb3RodWIgPSB1c2JfcGh5X3Jvb3RodWJfYWxs b2MoaGNkKTsKPiAgCQlpZiAoSVNfRVJSKGhjZC0+cGh5X3Jvb3RodWIpKQo+ICAJCQlyZXR1cm4g UFRSX0VSUihoY2QtPnBoeV9yb290aHViKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNi L2NvcmUvcGh5LmMgYi9kcml2ZXJzL3VzYi9jb3JlL3BoeS5jCj4gaW5kZXggOTg3OTc2NzQ1MmEy Li5iNTRkYjM5ZWVlNGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91c2IvY29yZS9waHkuYwo+ICsr KyBiL2RyaXZlcnMvdXNiL2NvcmUvcGh5LmMKPiBAQCAtNDUsMTAgKzQ1LDExIEBAIHN0YXRpYyBp bnQgdXNiX3BoeV9yb290aHViX2FkZF9waHkoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgaW5kZXgs Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RydWN0IHVzYl9waHlfcm9vdGh1YiAqdXNiX3Bo eV9yb290aHViX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldikKPiArc3RydWN0IHVzYl9waHlfcm9v dGh1YiAqdXNiX3BoeV9yb290aHViX2FsbG9jKHN0cnVjdCB1c2JfaGNkICpoY2QpCj4gIHsKPiAg CXN0cnVjdCB1c2JfcGh5X3Jvb3RodWIgKnBoeV9yb290aHViOwo+ICAJaW50IGksIG51bV9waHlz LCBlcnI7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBoY2QtPnNlbGYuc3lzZGV2Owo+ICAKPiAg CWlmICghSVNfRU5BQkxFRChDT05GSUdfR0VORVJJQ19QSFkpKQo+ICAJCXJldHVybiBOVUxMOwo+ IEBAIC0xNjEsMjYgKzE2MiwzMCBAQCB2b2lkIHVzYl9waHlfcm9vdGh1Yl9wb3dlcl9vZmYoc3Ry dWN0IHVzYl9waHlfcm9vdGh1YiAqcGh5X3Jvb3RodWIpCj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9H UEwodXNiX3BoeV9yb290aHViX3Bvd2VyX29mZik7Cj4gIAo+IC1pbnQgdXNiX3BoeV9yb290aHVi X3N1c3BlbmQoc3RydWN0IGRldmljZSAqY29udHJvbGxlcl9kZXYsCj4gK2ludCB1c2JfcGh5X3Jv b3RodWJfc3VzcGVuZChzdHJ1Y3QgdXNiX2hjZCAqaGNkLAo+ICAJCQkgICAgc3RydWN0IHVzYl9w aHlfcm9vdGh1YiAqcGh5X3Jvb3RodWIpCj4gIHsKPiArCXN0cnVjdCBkZXZpY2UgKmNvbnRyb2xs ZXJfZGV2ID0gaGNkLT5zZWxmLnN5c2RldjsKPiArCj4gIAl1c2JfcGh5X3Jvb3RodWJfcG93ZXJf b2ZmKHBoeV9yb290aHViKTsKPiAgCj4gIAkvKiBrZWVwIHRoZSBQSFlzIGluaXRpYWxpemVkIHNv IHRoZSBkZXZpY2UgY2FuIHdha2UgdXAgdGhlIHN5c3RlbSAqLwo+IC0JaWYgKGRldmljZV9tYXlf d2FrZXVwKGNvbnRyb2xsZXJfZGV2KSkKPiArCWlmIChkZXZpY2VfbWF5X3dha2V1cChjb250cm9s bGVyX2RldikgfHwgaGNkLT5zdXNwZW5kX3dpdGhvdXRfcGh5X2V4aXQpCj4gIAkJcmV0dXJuIDA7 Cj4gIAo+ICAJcmV0dXJuIHVzYl9waHlfcm9vdGh1Yl9leGl0KHBoeV9yb290aHViKTsKPiAgfQo+ ICBFWFBPUlRfU1lNQk9MX0dQTCh1c2JfcGh5X3Jvb3RodWJfc3VzcGVuZCk7Cj4gIAo+IC1pbnQg dXNiX3BoeV9yb290aHViX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpjb250cm9sbGVyX2RldiwKPiAr aW50IHVzYl9waHlfcm9vdGh1Yl9yZXN1bWUoc3RydWN0IHVzYl9oY2QgKmhjZCwKPiAgCQkJICAg c3RydWN0IHVzYl9waHlfcm9vdGh1YiAqcGh5X3Jvb3RodWIpCj4gIHsKPiArCXN0cnVjdCBkZXZp Y2UgKmNvbnRyb2xsZXJfZGV2ID0gaGNkLT5zZWxmLnN5c2RldjsKPiAgCWludCBlcnI7Cj4gIAo+ ICAJLyogaWYgdGhlIGRldmljZSBjYW4ndCB3YWtlIHVwIHRoZSBzeXN0ZW0gX2V4aXQgd2FzIGNh bGxlZCAqLwo+IC0JaWYgKCFkZXZpY2VfbWF5X3dha2V1cChjb250cm9sbGVyX2RldikpIHsKPiAr CWlmICghZGV2aWNlX21heV93YWtldXAoY29udHJvbGxlcl9kZXYpICYmCj4gKwkgICAgIWhjZC0+ c3VzcGVuZF93aXRob3V0X3BoeV9leGl0KSB7Cj4gIAkJZXJyID0gdXNiX3BoeV9yb290aHViX2lu aXQocGh5X3Jvb3RodWIpOwo+ICAJCWlmIChlcnIpCj4gIAkJCXJldHVybiBlcnI7Cj4gQEAgLTE4 OSw3ICsxOTQsOCBAQCBpbnQgdXNiX3BoeV9yb290aHViX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpj b250cm9sbGVyX2RldiwKPiAgCWVyciA9IHVzYl9waHlfcm9vdGh1Yl9wb3dlcl9vbihwaHlfcm9v dGh1Yik7Cj4gIAo+ICAJLyogdW5kbyBfaW5pdCBpZiBfcG93ZXJfb24gZmFpbGVkICovCj4gLQlp ZiAoZXJyICYmICFkZXZpY2VfbWF5X3dha2V1cChjb250cm9sbGVyX2RldikpCj4gKwlpZiAoZXJy ICYmICFkZXZpY2VfbWF5X3dha2V1cChjb250cm9sbGVyX2RldikKPiArCSAgICAmJiAhaGNkLT5z dXNwZW5kX3dpdGhvdXRfcGh5X2V4aXQpCj4gIAkJdXNiX3BoeV9yb290aHViX2V4aXQocGh5X3Jv b3RodWIpOwo+ICAKPiAgCXJldHVybiBlcnI7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2Nv cmUvcGh5LmggYi9kcml2ZXJzL3VzYi9jb3JlL3BoeS5oCj4gaW5kZXggODhhM2MwMzdlOWRmLi4z NDI5M2UxMWE5MTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91c2IvY29yZS9waHkuaAo+ICsrKyBi L2RyaXZlcnMvdXNiL2NvcmUvcGh5LmgKPiBAQCAtNSwxMyArNSwxNiBAQAo+ICAgKiBDb3B5cmln aHQgKEMpIDIwMTggTWFydGluIEJsdW1lbnN0aW5nbCA8bWFydGluLmJsdW1lbnN0aW5nbEBnb29n bGVtYWlsLmNvbT4KPiAgICovCj4gIAo+ICsjaW5jbHVkZSA8bGludXgvdXNiLmg+Cj4gKyNpbmNs dWRlIDxsaW51eC91c2IvaGNkLmg+Cj4gKwo+ICAjaWZuZGVmIF9fVVNCX0NPUkVfUEhZX0hfCj4g ICNkZWZpbmUgX19VU0JfQ09SRV9QSFlfSF8KPiAgCj4gIHN0cnVjdCBkZXZpY2U7Cj4gIHN0cnVj dCB1c2JfcGh5X3Jvb3RodWI7Cj4gIAo+IC1zdHJ1Y3QgdXNiX3BoeV9yb290aHViICp1c2JfcGh5 X3Jvb3RodWJfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2KTsKPiArc3RydWN0IHVzYl9waHlfcm9v dGh1YiAqdXNiX3BoeV9yb290aHViX2FsbG9jKHN0cnVjdCB1c2JfaGNkICpoY2QpOwo+ICAKPiAg aW50IHVzYl9waHlfcm9vdGh1Yl9pbml0KHN0cnVjdCB1c2JfcGh5X3Jvb3RodWIgKnBoeV9yb290 aHViKTsKPiAgaW50IHVzYl9waHlfcm9vdGh1Yl9leGl0KHN0cnVjdCB1c2JfcGh5X3Jvb3RodWIg KnBoeV9yb290aHViKTsKPiBAQCAtMTksOSArMjIsOSBAQAo+ICBpbnQgdXNiX3BoeV9yb290aHVi X3Bvd2VyX29uKHN0cnVjdCB1c2JfcGh5X3Jvb3RodWIgKnBoeV9yb290aHViKTsKPiAgdm9pZCB1 c2JfcGh5X3Jvb3RodWJfcG93ZXJfb2ZmKHN0cnVjdCB1c2JfcGh5X3Jvb3RodWIgKnBoeV9yb290 aHViKTsKPiAgCj4gLWludCB1c2JfcGh5X3Jvb3RodWJfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpj b250cm9sbGVyX2RldiwKPiAraW50IHVzYl9waHlfcm9vdGh1Yl9zdXNwZW5kKHN0cnVjdCB1c2Jf aGNkICpoY2QsCj4gIAkJCSAgICBzdHJ1Y3QgdXNiX3BoeV9yb290aHViICpwaHlfcm9vdGh1Yik7 Cj4gLWludCB1c2JfcGh5X3Jvb3RodWJfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmNvbnRyb2xsZXJf ZGV2LAo+ICtpbnQgdXNiX3BoeV9yb290aHViX3Jlc3VtZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLAo+ ICAJCQkgICBzdHJ1Y3QgdXNiX3BoeV9yb290aHViICpwaHlfcm9vdGh1Yik7Cj4gIAo+ICAjZW5k aWYgLyogX19VU0JfQ09SRV9QSFlfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC91 c2IvaGNkLmggYi9pbmNsdWRlL2xpbnV4L3VzYi9oY2QuaAo+IGluZGV4IDk3ZTJkZGVjMThiMS4u ODdhMTA0MDU1YjVlIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvdXNiL2hjZC5oCj4gKysr IGIvaW5jbHVkZS9saW51eC91c2IvaGNkLmgKPiBAQCAtMTU3LDYgKzE1Nyw5IEBAIHN0cnVjdCB1 c2JfaGNkIHsKPiAgCSAqLwo+ICAJdW5zaWduZWQJCXNraXBfcGh5X2luaXRpYWxpemF0aW9uOjE7 Cj4gIAo+ICsJLyogU29tZSBwaHlzIGRvbid0IHdhbnQgdGhlIHBoeSdzIGV4aXQvaW5pdCBjYWxs ZWQgb24gc3VzcGVuZC9yZXN1bWUgKi8KPiArCXVuc2lnbmVkCQlzdXNwZW5kX3dpdGhvdXRfcGh5 X2V4aXQ6MTsKQXMgc3VnZ2VzdGVkIGJlZm9yZSwgeW91IGNhbiBza2lwIHBoeSdzIGV4aXQvaW5p dCBkdXJpbmcgc3VzcGVuZC9yZXN1bWUKYnkgZW5hYmxpbmcgd2FrZXVwIG9mIGhjZCwgc28gbmVl ZG4ndCBhZGQgYSBuZXcgdmFyaWFibGUgZm9yIGl0LgoKPiArCj4gIAkvKiBUaGUgbmV4dCBmbGFn IGlzIGEgc3RvcGdhcCwgdG8gYmUgcmVtb3ZlZCB3aGVuIGFsbCB0aGUgSENEcwo+ICAJICogc3Vw cG9ydCB0aGUgbmV3IHJvb3QtaHViIHBvbGxpbmcgbWVjaGFuaXNtLiAqLwo+ICAJdW5zaWduZWQJ CXVzZXNfbmV3X3BvbGxpbmc6MTsK