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: Alan Cooper Message-Id: <1539815349-24126-3-git-send-email-alcooperx@gmail.com> Date: Wed, 17 Oct 2018 18:29:05 -0400 To: linux-kernel@vger.kernel.org Cc: Al Cooper , Alan Stern , Alban Bedel , Alex Elder , Andrew Morton , Arnd Bergmann , Avi Fishman , bcm-kernel-feedback-list@broadcom.com, Bjorn Andersson , Chunfeng Yun , "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: QWRkIHRoZSBhYmlsaXR5IHRvIHNraXAgY2FsbGluZyB0aGUgUEhZJ3MgZXhpdCByb3V0aW5lIG9u IHN1c3BlbmQKYW5kIHRoZSBQSFkncyBpbml0IHJvdXRpbmUgb24gcmVzdW1lLiBUaGlzIGlzIHRv IGhhbmRsZSBhIFVTQiBQSFkKdGhhdCBzaG91bGQgaGF2ZSBpdCdzIHBvd2VyX29mZiBmdW5jdGlv biBjYWxsZWQgb24gc3VzcGVuZCBidXQgY2Fubm90CmhhdmUgaXQncyBleGl0IGZ1bmN0aW9uIGNh bGxlZCBiZWNhdXNlIG9uIGV4aXQgaXQgd2lsbCBkaXNhYmxlIHRoZQpQSFkgdG8gdGhlIHBvaW50 IHdoZXJlIHJlZ2lzdGVyIGFjY2Vzc2VzIHRvIHRoZSBIb3N0IENvbnRyb2xsZXJzCnVzaW5nIHRo ZSBQSFkgd2lsbCBiZSBkaXNhYmxlZCBhbmQgdGhlIGhvc3QgZHJpdmVycyB3aWxsIGNyYXNoLgoK VGhpcyBpcyBlbmFibGVkIHdpdGggdGhlIEhDRCBmbGFnICJzdXNwZW5kX3dpdGhvdXRfcGh5X2V4 aXQiIHdoaWNoCmNhbiBiZSBzZXQgZnJvbSBhbnkgSENEIGRyaXZlci4KClNpZ25lZC1vZmYtYnk6 IEFsIENvb3BlciA8YWxjb29wZXJ4QGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL3VzYi9jb3JlL2hj ZC5jICB8ICA4ICsrKystLS0tCiBkcml2ZXJzL3VzYi9jb3JlL3BoeS5jICB8IDE4ICsrKysrKysr KysrKy0tLS0tLQogZHJpdmVycy91c2IvY29yZS9waHkuaCAgfCAgOSArKysrKystLS0KIGluY2x1 ZGUvbGludXgvdXNiL2hjZC5oIHwgIDMgKysrCiA0IGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlv bnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaGNk LmMgYi9kcml2ZXJzL3VzYi9jb3JlL2hjZC5jCmluZGV4IDFjMjE5NTVmZTdjMC4uZTY3ZTRkNmIz ZDIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2hjZC5jCisrKyBiL2RyaXZlcnMvdXNi L2NvcmUvaGNkLmMKQEAgLTIyNjMsNyArMjI2Myw3IEBAIGludCBoY2RfYnVzX3N1c3BlbmQoc3Ry dWN0IHVzYl9kZXZpY2UgKnJoZGV2LCBwbV9tZXNzYWdlX3QgbXNnKQogCQloY2QtPnN0YXRlID0g SENfU1RBVEVfU1VTUEVOREVEOwogCiAJCWlmICghUE1TR19JU19BVVRPKG1zZykpCi0JCQl1c2Jf cGh5X3Jvb3RodWJfc3VzcGVuZChoY2QtPnNlbGYuc3lzZGV2LAorCQkJdXNiX3BoeV9yb290aHVi X3N1c3BlbmQoaGNkLAogCQkJCQkJaGNkLT5waHlfcm9vdGh1Yik7CiAKIAkJLyogRGlkIHdlIHJh Y2Ugd2l0aCBhIHJvb3QtaHViIHdha2V1cCBldmVudD8gKi8KQEAgLTIzMDQsNyArMjMwNCw3IEBA IGludCBoY2RfYnVzX3Jlc3VtZShzdHJ1Y3QgdXNiX2RldmljZSAqcmhkZXYsIHBtX21lc3NhZ2Vf dCBtc2cpCiAJfQogCiAJaWYgKCFQTVNHX0lTX0FVVE8obXNnKSkgewotCQlzdGF0dXMgPSB1c2Jf cGh5X3Jvb3RodWJfcmVzdW1lKGhjZC0+c2VsZi5zeXNkZXYsCisJCXN0YXR1cyA9IHVzYl9waHlf cm9vdGh1Yl9yZXN1bWUoaGNkLAogCQkJCQkJaGNkLT5waHlfcm9vdGh1Yik7CiAJCWlmIChzdGF0 dXMpCiAJCQlyZXR1cm4gc3RhdHVzOwpAQCAtMjM0Nyw3ICsyMzQ3LDcgQEAgaW50IGhjZF9idXNf cmVzdW1lKHN0cnVjdCB1c2JfZGV2aWNlICpyaGRldiwgcG1fbWVzc2FnZV90IG1zZykKIAkJfQog CX0gZWxzZSB7CiAJCWhjZC0+c3RhdGUgPSBvbGRfc3RhdGU7Ci0JCXVzYl9waHlfcm9vdGh1Yl9z dXNwZW5kKGhjZC0+c2VsZi5zeXNkZXYsIGhjZC0+cGh5X3Jvb3RodWIpOworCQl1c2JfcGh5X3Jv b3RodWJfc3VzcGVuZChoY2QsIGhjZC0+cGh5X3Jvb3RodWIpOwogCQlkZXZfZGJnKCZyaGRldi0+ ZGV2LCAiYnVzICVzIGZhaWwsIGVyciAlZFxuIiwKIAkJCQkicmVzdW1lIiwgc3RhdHVzKTsKIAkJ aWYgKHN0YXR1cyAhPSAtRVNIVVRET1dOKQpAQCAtMjc0NCw3ICsyNzQ0LDcgQEAgaW50IHVzYl9h ZGRfaGNkKHN0cnVjdCB1c2JfaGNkICpoY2QsCiAJc3RydWN0IHVzYl9kZXZpY2UgKnJoZGV2Owog CiAJaWYgKCFoY2QtPnNraXBfcGh5X2luaXRpYWxpemF0aW9uICYmIHVzYl9oY2RfaXNfcHJpbWFy eV9oY2QoaGNkKSkgewotCQloY2QtPnBoeV9yb290aHViID0gdXNiX3BoeV9yb290aHViX2FsbG9j KGhjZC0+c2VsZi5zeXNkZXYpOworCQloY2QtPnBoeV9yb290aHViID0gdXNiX3BoeV9yb290aHVi X2FsbG9jKGhjZCk7CiAJCWlmIChJU19FUlIoaGNkLT5waHlfcm9vdGh1YikpCiAJCQlyZXR1cm4g UFRSX0VSUihoY2QtPnBoeV9yb290aHViKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29y ZS9waHkuYyBiL2RyaXZlcnMvdXNiL2NvcmUvcGh5LmMKaW5kZXggOTg3OTc2NzQ1MmEyLi5iNTRk YjM5ZWVlNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvcGh5LmMKKysrIGIvZHJpdmVy cy91c2IvY29yZS9waHkuYwpAQCAtNDUsMTAgKzQ1LDExIEBAIHN0YXRpYyBpbnQgdXNiX3BoeV9y b290aHViX2FkZF9waHkoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgaW5kZXgsCiAJcmV0dXJuIDA7 CiB9CiAKLXN0cnVjdCB1c2JfcGh5X3Jvb3RodWIgKnVzYl9waHlfcm9vdGh1Yl9hbGxvYyhzdHJ1 Y3QgZGV2aWNlICpkZXYpCitzdHJ1Y3QgdXNiX3BoeV9yb290aHViICp1c2JfcGh5X3Jvb3RodWJf YWxsb2Moc3RydWN0IHVzYl9oY2QgKmhjZCkKIHsKIAlzdHJ1Y3QgdXNiX3BoeV9yb290aHViICpw aHlfcm9vdGh1YjsKIAlpbnQgaSwgbnVtX3BoeXMsIGVycjsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYg PSBoY2QtPnNlbGYuc3lzZGV2OwogCiAJaWYgKCFJU19FTkFCTEVEKENPTkZJR19HRU5FUklDX1BI WSkpCiAJCXJldHVybiBOVUxMOwpAQCAtMTYxLDI2ICsxNjIsMzAgQEAgdm9pZCB1c2JfcGh5X3Jv b3RodWJfcG93ZXJfb2ZmKHN0cnVjdCB1c2JfcGh5X3Jvb3RodWIgKnBoeV9yb290aHViKQogfQog RVhQT1JUX1NZTUJPTF9HUEwodXNiX3BoeV9yb290aHViX3Bvd2VyX29mZik7CiAKLWludCB1c2Jf cGh5X3Jvb3RodWJfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpjb250cm9sbGVyX2RldiwKK2ludCB1 c2JfcGh5X3Jvb3RodWJfc3VzcGVuZChzdHJ1Y3QgdXNiX2hjZCAqaGNkLAogCQkJICAgIHN0cnVj dCB1c2JfcGh5X3Jvb3RodWIgKnBoeV9yb290aHViKQogeworCXN0cnVjdCBkZXZpY2UgKmNvbnRy b2xsZXJfZGV2ID0gaGNkLT5zZWxmLnN5c2RldjsKKwogCXVzYl9waHlfcm9vdGh1Yl9wb3dlcl9v ZmYocGh5X3Jvb3RodWIpOwogCiAJLyoga2VlcCB0aGUgUEhZcyBpbml0aWFsaXplZCBzbyB0aGUg ZGV2aWNlIGNhbiB3YWtlIHVwIHRoZSBzeXN0ZW0gKi8KLQlpZiAoZGV2aWNlX21heV93YWtldXAo Y29udHJvbGxlcl9kZXYpKQorCWlmIChkZXZpY2VfbWF5X3dha2V1cChjb250cm9sbGVyX2Rldikg fHwgaGNkLT5zdXNwZW5kX3dpdGhvdXRfcGh5X2V4aXQpCiAJCXJldHVybiAwOwogCiAJcmV0dXJu IHVzYl9waHlfcm9vdGh1Yl9leGl0KHBoeV9yb290aHViKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BM KHVzYl9waHlfcm9vdGh1Yl9zdXNwZW5kKTsKIAotaW50IHVzYl9waHlfcm9vdGh1Yl9yZXN1bWUo c3RydWN0IGRldmljZSAqY29udHJvbGxlcl9kZXYsCitpbnQgdXNiX3BoeV9yb290aHViX3Jlc3Vt ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLAogCQkJICAgc3RydWN0IHVzYl9waHlfcm9vdGh1YiAqcGh5 X3Jvb3RodWIpCiB7CisJc3RydWN0IGRldmljZSAqY29udHJvbGxlcl9kZXYgPSBoY2QtPnNlbGYu c3lzZGV2OwogCWludCBlcnI7CiAKIAkvKiBpZiB0aGUgZGV2aWNlIGNhbid0IHdha2UgdXAgdGhl IHN5c3RlbSBfZXhpdCB3YXMgY2FsbGVkICovCi0JaWYgKCFkZXZpY2VfbWF5X3dha2V1cChjb250 cm9sbGVyX2RldikpIHsKKwlpZiAoIWRldmljZV9tYXlfd2FrZXVwKGNvbnRyb2xsZXJfZGV2KSAm JgorCSAgICAhaGNkLT5zdXNwZW5kX3dpdGhvdXRfcGh5X2V4aXQpIHsKIAkJZXJyID0gdXNiX3Bo eV9yb290aHViX2luaXQocGh5X3Jvb3RodWIpOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsK QEAgLTE4OSw3ICsxOTQsOCBAQCBpbnQgdXNiX3BoeV9yb290aHViX3Jlc3VtZShzdHJ1Y3QgZGV2 aWNlICpjb250cm9sbGVyX2RldiwKIAllcnIgPSB1c2JfcGh5X3Jvb3RodWJfcG93ZXJfb24ocGh5 X3Jvb3RodWIpOwogCiAJLyogdW5kbyBfaW5pdCBpZiBfcG93ZXJfb24gZmFpbGVkICovCi0JaWYg KGVyciAmJiAhZGV2aWNlX21heV93YWtldXAoY29udHJvbGxlcl9kZXYpKQorCWlmIChlcnIgJiYg IWRldmljZV9tYXlfd2FrZXVwKGNvbnRyb2xsZXJfZGV2KQorCSAgICAmJiAhaGNkLT5zdXNwZW5k X3dpdGhvdXRfcGh5X2V4aXQpCiAJCXVzYl9waHlfcm9vdGh1Yl9leGl0KHBoeV9yb290aHViKTsK IAogCXJldHVybiBlcnI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL3BoeS5oIGIvZHJp dmVycy91c2IvY29yZS9waHkuaAppbmRleCA4OGEzYzAzN2U5ZGYuLjM0MjkzZTExYTkxNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy91c2IvY29yZS9waHkuaAorKysgYi9kcml2ZXJzL3VzYi9jb3JlL3Bo eS5oCkBAIC01LDEzICs1LDE2IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTggTWFydGluIEJsdW1l bnN0aW5nbCA8bWFydGluLmJsdW1lbnN0aW5nbEBnb29nbGVtYWlsLmNvbT4KICAqLwogCisjaW5j bHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8bGludXgvdXNiL2hjZC5oPgorCiAjaWZuZGVm IF9fVVNCX0NPUkVfUEhZX0hfCiAjZGVmaW5lIF9fVVNCX0NPUkVfUEhZX0hfCiAKIHN0cnVjdCBk ZXZpY2U7CiBzdHJ1Y3QgdXNiX3BoeV9yb290aHViOwogCi1zdHJ1Y3QgdXNiX3BoeV9yb290aHVi ICp1c2JfcGh5X3Jvb3RodWJfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2KTsKK3N0cnVjdCB1c2Jf cGh5X3Jvb3RodWIgKnVzYl9waHlfcm9vdGh1Yl9hbGxvYyhzdHJ1Y3QgdXNiX2hjZCAqaGNkKTsK IAogaW50IHVzYl9waHlfcm9vdGh1Yl9pbml0KHN0cnVjdCB1c2JfcGh5X3Jvb3RodWIgKnBoeV9y b290aHViKTsKIGludCB1c2JfcGh5X3Jvb3RodWJfZXhpdChzdHJ1Y3QgdXNiX3BoeV9yb290aHVi ICpwaHlfcm9vdGh1Yik7CkBAIC0xOSw5ICsyMiw5IEBACiBpbnQgdXNiX3BoeV9yb290aHViX3Bv d2VyX29uKHN0cnVjdCB1c2JfcGh5X3Jvb3RodWIgKnBoeV9yb290aHViKTsKIHZvaWQgdXNiX3Bo eV9yb290aHViX3Bvd2VyX29mZihzdHJ1Y3QgdXNiX3BoeV9yb290aHViICpwaHlfcm9vdGh1Yik7 CiAKLWludCB1c2JfcGh5X3Jvb3RodWJfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpjb250cm9sbGVy X2RldiwKK2ludCB1c2JfcGh5X3Jvb3RodWJfc3VzcGVuZChzdHJ1Y3QgdXNiX2hjZCAqaGNkLAog CQkJICAgIHN0cnVjdCB1c2JfcGh5X3Jvb3RodWIgKnBoeV9yb290aHViKTsKLWludCB1c2JfcGh5 X3Jvb3RodWJfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmNvbnRyb2xsZXJfZGV2LAoraW50IHVzYl9w aHlfcm9vdGh1Yl9yZXN1bWUoc3RydWN0IHVzYl9oY2QgKmhjZCwKIAkJCSAgIHN0cnVjdCB1c2Jf cGh5X3Jvb3RodWIgKnBoeV9yb290aHViKTsKIAogI2VuZGlmIC8qIF9fVVNCX0NPUkVfUEhZX0hf ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3VzYi9oY2QuaCBiL2luY2x1ZGUvbGludXgv dXNiL2hjZC5oCmluZGV4IDk3ZTJkZGVjMThiMS4uODdhMTA0MDU1YjVlIDEwMDY0NAotLS0gYS9p bmNsdWRlL2xpbnV4L3VzYi9oY2QuaAorKysgYi9pbmNsdWRlL2xpbnV4L3VzYi9oY2QuaApAQCAt MTU3LDYgKzE1Nyw5IEBAIHN0cnVjdCB1c2JfaGNkIHsKIAkgKi8KIAl1bnNpZ25lZAkJc2tpcF9w aHlfaW5pdGlhbGl6YXRpb246MTsKIAorCS8qIFNvbWUgcGh5cyBkb24ndCB3YW50IHRoZSBwaHkn cyBleGl0L2luaXQgY2FsbGVkIG9uIHN1c3BlbmQvcmVzdW1lICovCisJdW5zaWduZWQJCXN1c3Bl bmRfd2l0aG91dF9waHlfZXhpdDoxOworCiAJLyogVGhlIG5leHQgZmxhZyBpcyBhIHN0b3BnYXAs IHRvIGJlIHJlbW92ZWQgd2hlbiBhbGwgdGhlIEhDRHMKIAkgKiBzdXBwb3J0IHRoZSBuZXcgcm9v dC1odWIgcG9sbGluZyBtZWNoYW5pc20uICovCiAJdW5zaWduZWQJCXVzZXNfbmV3X3BvbGxpbmc6 MTsK