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: [04/18] xhci: Create new structures to store xhci port information From: Mathias Nyman Message-Id: <1526910006-26104-5-git-send-email-mathias.nyman@linux.intel.com> Date: Mon, 21 May 2018 16:39:52 +0300 To: gregkh@linuxfoundation.org Cc: linux-usb@vger.kernel.org, Mathias Nyman List-ID: Q3VycmVudCB3YXkgb2YgaGF2aW5nIG9uZSBhcnJheSB0ZWxsaW5nIG9ubHkgdGhlIHBvcnQgc3Bl ZWQsCmFuZCB0aGVuIHR3byBzZXBhcmF0ZSBhcnJheXMgd2l0aCBtbWlvIGFkZHJlc3NlcyBmb3Ig dXNiMiBhbmQgdXNiMyBwb3J0cwpyZXF1ZXJlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHRyYW5zYXRl ICBodyB0byBoY2QsIGFuZCBoY2QgdG8gaHcgcG9ydApudW1iZXJzLCBhbmQgaXMgaGFyZCB0byBl eHBhbmQuCgpJbnN0ZWFkIGNyZWF0ZSBhIHN0cnVjdHVyZSBkZXNjcmliaW5nIGEgcG9ydCwgaW5j bHVkaW5nIHRoZSBtbWlvIGFkZHJlc3MsCnRoZSBwb3J0IGhhcmR3YXJlIGluZGV4LCBoY2QgcG9y dCBpbmRleCwgYW5kIGEgcG9pbnRlciB0byB0aGUgcm9vdGh1YgppdCBiZWxvbmdzIHRvLgoKQ3Jl YXRlIG9uZSBhcnJheSBjb250YWluaW5nIGFsbCBwb3J0IHN0cnVjdHVyZXMgaW4gdGhlIHNhbWUg b3JkZXIgdGhlCmhhcmR3YXJlIGNvbnRyb2xsZXIgc2VlcyB0aGVtLiBUaGVuIGFkZCBhbiBhcnJh eSBvZiBwb3J0IHBvaW50ZXJzIHRvCmVhY2ggeGhjaSBodWIgc3RydWN0dXJlIHBvaW50aW5nIHRv IHRoZSBwb3J0cyB0aGF0IGJlbG9uZ2luZyB0byB0aGUKcm9vdGh1Yi4KClRoaXMgd2F5IHdlIGNh biBlYXNpbHkgY29udmVydCBodyBpbmRleGVkIHBvcnQgZXZlbnRzIHRvIHVzYiBjb3JlCmhjZCBw b3J0IG51bWJlcnMsIGFuZCB2aWNlIHZlcnNhIHVzYiBjb3JlIGh1YiBoY2QgcG9ydCBudW1iZXJz CnRvIGh3IGluZGV4IGFuZCBtbWlvIGFkZHJlc3MuCgpPdGhlciBiZW5lZml0IGlzIHRoYXQgd2Ug Y2FuIGVhc2lseSBmaW5kIHRoZSBwYXJlbnQgaGNkIGFuZCB4aGNpCnN0cnVjdHVyZSBvZiBhIHBv cnQgc3RydWN0dXJlLiBUaGlzIGlzIHVzZWZ1bCBpbiBkZWJ1Z2ZzIHdoZXJlCndlIGNhbiBnaXZl IG9uZSBwb3J0IHN0cnVjdHVyZSBwb2ludGVyIGFzIHBhcmFtZXRlciBhbmQgZ2V0IGJvdGgKdGhl IGNvcnJlY3QgbW1pbyBhZGRyZXNzIGFuZCB4aGNpIGxvY2sgbmVlZGVkIHRvIHNldCBzb21lIHBv cnQKcGFyYW1ldGVyLgoKU2lnbmVkLW9mZi1ieTogTWF0aGlhcyBOeW1hbiA8bWF0aGlhcy5ueW1h bkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy91c2IvaG9zdC94aGNpLW1lbS5jIHwgNTgg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBkcml2ZXJzL3Vz Yi9ob3N0L3hoY2kuaCAgICAgfCAyMSArKysrKysrKysrKystLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDczIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91 c2IvaG9zdC94aGNpLW1lbS5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLW1lbS5jCmluZGV4IGU1 YWNlODkuLjg4MTkyODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1tZW0uYwor KysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktbWVtLmMKQEAgLTE4OTIsMTYgKzE4OTIsMjQgQEAg dm9pZCB4aGNpX21lbV9jbGVhbnVwKHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkKIAl4aGNpLT5jbWRf cmluZ19yZXNlcnZlZF90cmJzID0gMDsKIAl4aGNpLT5udW1fdXNiMl9wb3J0cyA9IDA7CiAJeGhj aS0+bnVtX3VzYjNfcG9ydHMgPSAwOworCXhoY2ktPnVzYjJfcmh1Yi5udW1fcG9ydHMgPSAwOwor CXhoY2ktPnVzYjNfcmh1Yi5udW1fcG9ydHMgPSAwOwogCXhoY2ktPm51bV9hY3RpdmVfZXBzID0g MDsKIAlrZnJlZSh4aGNpLT51c2IyX3BvcnRzKTsKIAlrZnJlZSh4aGNpLT51c2IzX3BvcnRzKTsK IAlrZnJlZSh4aGNpLT5wb3J0X2FycmF5KTsKKwlrZnJlZSh4aGNpLT51c2IyX3JodWIucG9ydHMp OworCWtmcmVlKHhoY2ktPnVzYjNfcmh1Yi5wb3J0cyk7CisJa2ZyZWUoeGhjaS0+aHdfcG9ydHMp OwogCWtmcmVlKHhoY2ktPnJoX2J3KTsKIAlrZnJlZSh4aGNpLT5leHRfY2Fwcyk7CiAKIAl4aGNp LT51c2IyX3BvcnRzID0gTlVMTDsKIAl4aGNpLT51c2IzX3BvcnRzID0gTlVMTDsKIAl4aGNpLT5w b3J0X2FycmF5ID0gTlVMTDsKKwl4aGNpLT51c2IyX3JodWIucG9ydHMgPSBOVUxMOworCXhoY2kt PnVzYjNfcmh1Yi5wb3J0cyA9IE5VTEw7CisJeGhjaS0+aHdfcG9ydHMgPSBOVUxMOwogCXhoY2kt PnJoX2J3ID0gTlVMTDsKIAl4aGNpLT5leHRfY2FwcyA9IE5VTEw7CiAKQEAgLTIxODYsOCArMjE5 NCwxMCBAQCBzdGF0aWMgdm9pZCB4aGNpX2FkZF9pbl9wb3J0KHN0cnVjdCB4aGNpX2hjZCAqeGhj aSwgdW5zaWduZWQgaW50IG51bV9wb3J0cywKIAogCXBvcnRfb2Zmc2V0LS07CiAJZm9yIChpID0g cG9ydF9vZmZzZXQ7IGkgPCAocG9ydF9vZmZzZXQgKyBwb3J0X2NvdW50KTsgaSsrKSB7CisJCXN0 cnVjdCB4aGNpX3BvcnQgKmh3X3BvcnQgPSAmeGhjaS0+aHdfcG9ydHNbaV07CiAJCS8qIER1cGxp Y2F0ZSBlbnRyeS4gIElnbm9yZSB0aGUgcG9ydCBpZiB0aGUgcmV2aXNpb25zIGRpZmZlci4gKi8K LQkJaWYgKHhoY2ktPnBvcnRfYXJyYXlbaV0gIT0gMCkgeworCQlpZiAoeGhjaS0+cG9ydF9hcnJh eVtpXSAhPSAwIHx8CisJCSAgICBod19wb3J0LT5yaHViKSB7CiAJCQl4aGNpX3dhcm4oeGhjaSwg IkR1cGxpY2F0ZSBwb3J0IGVudHJ5LCBFeHQgQ2FwICVwLCIKIAkJCQkJIiBwb3J0ICV1XG4iLCBh ZGRyLCBpKTsKIAkJCXhoY2lfd2Fybih4aGNpLCAiUG9ydCB3YXMgbWFya2VkIGFzIFVTQiAldSwg IgpAQCAtMjIwNSw5ICsyMjE1LDE2IEBAIHN0YXRpYyB2b2lkIHhoY2lfYWRkX2luX3BvcnQoc3Ry dWN0IHhoY2lfaGNkICp4aGNpLCB1bnNpZ25lZCBpbnQgbnVtX3BvcnRzLAogCQkJCXhoY2ktPnBv cnRfYXJyYXlbaV0gPSBEVVBMSUNBVEVfRU5UUlk7CiAJCQl9CiAJCQkvKiBGSVhNRTogU2hvdWxk IHdlIGRpc2FibGUgdGhlIHBvcnQ/ICovCisJCQlpZiAoaHdfcG9ydC0+cmh1YiAhPSByaHViICYm CisJCQkJIGh3X3BvcnQtPmhjZF9wb3J0bnVtICE9IERVUExJQ0FURV9FTlRSWSkgeworCQkJCWh3 X3BvcnQtPnJodWItPm51bV9wb3J0cy0tOworCQkJCWh3X3BvcnQtPmhjZF9wb3J0bnVtID0gRFVQ TElDQVRFX0VOVFJZOworCQkJfQogCQkJY29udGludWU7CiAJCX0KIAkJeGhjaS0+cG9ydF9hcnJh eVtpXSA9IG1ham9yX3JldmlzaW9uOworCQlod19wb3J0LT5yaHViID0gcmh1YjsKKwkJcmh1Yi0+ bnVtX3BvcnRzKys7CiAJCWlmIChtYWpvcl9yZXZpc2lvbiA9PSAweDAzKQogCQkJeGhjaS0+bnVt X3VzYjNfcG9ydHMrKzsKIAkJZWxzZQpAQCAtMjIxNiw2ICsyMjMzLDI3IEBAIHN0YXRpYyB2b2lk IHhoY2lfYWRkX2luX3BvcnQoc3RydWN0IHhoY2lfaGNkICp4aGNpLCB1bnNpZ25lZCBpbnQgbnVt X3BvcnRzLAogCS8qIEZJWE1FOiBTaG91bGQgd2UgZGlzYWJsZSBwb3J0cyBub3QgaW4gdGhlIEV4 dGVuZGVkIENhcGFiaWxpdGllcz8gKi8KIH0KIAorc3RhdGljIHZvaWQgeGhjaV9jcmVhdGVfcmh1 Yl9wb3J0X2FycmF5KHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwKKwkJCQkJc3RydWN0IHhoY2lfaHVi ICpyaHViLCBnZnBfdCBmbGFncykKK3sKKwlpbnQgcG9ydF9pbmRleCA9IDA7CisJaW50IGk7CisK KwlpZiAoIXJodWItPm51bV9wb3J0cykKKwkJcmV0dXJuOworCXJodWItPnBvcnRzID0ga2NhbGxv YyhyaHViLT5udW1fcG9ydHMsIHNpemVvZihyaHViLT5wb3J0cyksIGZsYWdzKTsKKwlmb3IgKGkg PSAwOyBpIDwgSENTX01BWF9QT1JUUyh4aGNpLT5oY3NfcGFyYW1zMSk7IGkrKykgeworCQlpZiAo eGhjaS0+aHdfcG9ydHNbaV0ucmh1YiAhPSByaHViIHx8CisJCSAgICB4aGNpLT5od19wb3J0c1tp XS5oY2RfcG9ydG51bSA9PSBEVVBMSUNBVEVfRU5UUlkpCisJCQljb250aW51ZTsKKwkJeGhjaS0+ aHdfcG9ydHNbaV0uaGNkX3BvcnRudW0gPSBwb3J0X2luZGV4OworCQlyaHViLT5wb3J0c1twb3J0 X2luZGV4XSA9ICZ4aGNpLT5od19wb3J0c1tpXTsKKwkJcG9ydF9pbmRleCsrOworCQlpZiAocG9y dF9pbmRleCA9PSByaHViLT5udW1fcG9ydHMpCisJCQlicmVhazsKKwl9Cit9CisKIC8qCiAgKiBT Y2FuIHRoZSBFeHRlbmRlZCBDYXBhYmlsaXRpZXMgZm9yIHRoZSAiU3VwcG9ydGVkIFByb3RvY29s IENhcGFiaWxpdGllcyIgdGhhdAogICogc3BlY2lmeSB3aGF0IHNwZWVkcyBlYWNoIHBvcnQgaXMg c3VwcG9zZWQgdG8gYmUuICBXZSBjYW4ndCBjb3VudCBvbiB0aGUgcG9ydApAQCAtMjIzNCw5ICsy MjcyLDE2IEBAIHN0YXRpYyBpbnQgeGhjaV9zZXR1cF9wb3J0X2FycmF5cyhzdHJ1Y3QgeGhjaV9o Y2QgKnhoY2ksIGdmcF90IGZsYWdzKQogCiAJbnVtX3BvcnRzID0gSENTX01BWF9QT1JUUyh4aGNp LT5oY3NfcGFyYW1zMSk7CiAJeGhjaS0+cG9ydF9hcnJheSA9IGt6YWxsb2Moc2l6ZW9mKCp4aGNp LT5wb3J0X2FycmF5KSpudW1fcG9ydHMsIGZsYWdzKTsKKwl4aGNpLT5od19wb3J0cyA9IGtjYWxs b2MobnVtX3BvcnRzLCBzaXplb2YoKnhoY2ktPmh3X3BvcnRzKSwgZmxhZ3MpOwogCWlmICgheGhj aS0+cG9ydF9hcnJheSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwlmb3IgKGkgPSAwOyBpIDwgbnVt X3BvcnRzOyBpKyspIHsKKwkJeGhjaS0+aHdfcG9ydHNbaV0uYWRkciA9ICZ4aGNpLT5vcF9yZWdz LT5wb3J0X3N0YXR1c19iYXNlICsKKwkJCU5VTV9QT1JUX1JFR1MgKiBpOworCQl4aGNpLT5od19w b3J0c1tpXS5od19wb3J0bnVtID0gaTsKKwl9CisKIAl4aGNpLT5yaF9idyA9IGt6YWxsb2Moc2l6 ZW9mKCp4aGNpLT5yaF9idykqbnVtX3BvcnRzLCBmbGFncyk7CiAJaWYgKCF4aGNpLT5yaF9idykK IAkJcmV0dXJuIC1FTk9NRU07CkBAIC0yMjc0LDYgKzIzMTksOSBAQCBzdGF0aWMgaW50IHhoY2lf c2V0dXBfcG9ydF9hcnJheXMoc3RydWN0IHhoY2lfaGNkICp4aGNpLCBnZnBfdCBmbGFncykKIAkJ eGhjaV9hZGRfaW5fcG9ydCh4aGNpLCBudW1fcG9ydHMsIGJhc2UgKyBvZmZzZXQsIGNhcF9jb3Vu dCk7CiAJCWlmICh4aGNpLT5udW1fdXNiMl9wb3J0cyArIHhoY2ktPm51bV91c2IzX3BvcnRzID09 IG51bV9wb3J0cykKIAkJCWJyZWFrOworCQlpZiAoeGhjaS0+dXNiMl9yaHViLm51bV9wb3J0cyAr IHhoY2ktPnVzYjNfcmh1Yi5udW1fcG9ydHMgPT0KKwkJICAgIG51bV9wb3J0cykKKwkJCWJyZWFr OwogCQlvZmZzZXQgPSB4aGNpX2ZpbmRfbmV4dF9leHRfY2FwKGJhc2UsIG9mZnNldCwKIAkJCQkJ CVhIQ0lfRVhUX0NBUFNfUFJPVE9DT0wpOwogCX0KQEAgLTIyODIsNiArMjMzMCwxMCBAQCBzdGF0 aWMgaW50IHhoY2lfc2V0dXBfcG9ydF9hcnJheXMoc3RydWN0IHhoY2lfaGNkICp4aGNpLCBnZnBf dCBmbGFncykKIAkJeGhjaV93YXJuKHhoY2ksICJObyBwb3J0cyBvbiB0aGUgcm9vdGh1YnM/XG4i KTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQorCWlmICh4aGNpLT51c2IyX3JodWIubnVtX3BvcnRz ID09IDAgJiYgeGhjaS0+dXNiM19yaHViLm51bV9wb3J0cyA9PSAwKSB7CisJCXhoY2lfd2Fybih4 aGNpLCAiTm8gcG9ydHMgb24gdGhlIHJvb3RodWJzP1xuIik7CisJCXJldHVybiAtRU5PREVWOwor CX0KIAl4aGNpX2RiZ190cmFjZSh4aGNpLCB0cmFjZV94aGNpX2RiZ19pbml0LAogCQkJIkZvdW5k ICV1IFVTQiAyLjAgcG9ydHMgYW5kICV1IFVTQiAzLjAgcG9ydHMuIiwKIAkJCXhoY2ktPm51bV91 c2IyX3BvcnRzLCB4aGNpLT5udW1fdXNiM19wb3J0cyk7CkBAIC0yMzA2LDYgKzIzNTgsMTAgQEAg c3RhdGljIGludCB4aGNpX3NldHVwX3BvcnRfYXJyYXlzKHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwg Z2ZwX3QgZmxhZ3MpCiAJICogTm90ZSB3ZSBjb3VsZCBoYXZlIGFsbCBVU0IgMy4wIHBvcnRzLCBv ciBhbGwgVVNCIDIuMCBwb3J0cy4KIAkgKiBOb3Qgc3VyZSBob3cgdGhlIFVTQiBjb3JlIHdpbGwg aGFuZGxlIGEgaHViIHdpdGggbm8gcG9ydHMuLi4KIAkgKi8KKworCXhoY2lfY3JlYXRlX3JodWJf cG9ydF9hcnJheSh4aGNpLCAmeGhjaS0+dXNiMl9yaHViLCBmbGFncyk7CisJeGhjaV9jcmVhdGVf cmh1Yl9wb3J0X2FycmF5KHhoY2ksICZ4aGNpLT51c2IzX3JodWIsIGZsYWdzKTsKKwogCWlmICh4 aGNpLT5udW1fdXNiMl9wb3J0cykgewogCQl4aGNpLT51c2IyX3BvcnRzID0ga21hbGxvYyhzaXpl b2YoKnhoY2ktPnVzYjJfcG9ydHMpKgogCQkJCXhoY2ktPm51bV91c2IyX3BvcnRzLCBmbGFncyk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuaCBiL2RyaXZlcnMvdXNiL2hvc3Qv eGhjaS5oCmluZGV4IDZkZmM0ODYuLjM4YWE4YTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hv c3QveGhjaS5oCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5oCkBAIC0xNjgzLDEzICsxNjgz LDIzIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGhjZF9pbmRleChzdHJ1Y3QgdXNiX2hj ZCAqaGNkKQogCWVsc2UKIAkJcmV0dXJuIDE7CiB9CitzdHJ1Y3QgeGhjaV9wb3J0IHsKKwlfX2xl MzIgX19pb21lbQkJKmFkZHI7CisJaW50CQkJaHdfcG9ydG51bTsKKwlpbnQJCQloY2RfcG9ydG51 bTsKKwlzdHJ1Y3QgeGhjaV9odWIJCSpyaHViOworfTsKIAogc3RydWN0IHhoY2lfaHViIHsKLQl1 OAltYWpfcmV2OwotCXU4CW1pbl9yZXY7Ci0JdTMyCSpwc2k7CQkvKiBhcnJheSBvZiBwcm90b2Nv bCBzcGVlZCBJRCBlbnRyaWVzICovCi0JdTgJcHNpX2NvdW50OwotCXU4CXBzaV91aWRfY291bnQ7 CisJc3RydWN0IHhoY2lfcG9ydAkqKnBvcnRzOworCXVuc2lnbmVkIGludAkJbnVtX3BvcnRzOwor CXN0cnVjdCB1c2JfaGNkCQkqaGNkOworCS8qIHN1cHBvcnRlZCBwcm9jb2NvbCBleHRlbmRlZCBj YXBhYmlsaXkgdmFsdWVzICovCisJdTgJCQltYWpfcmV2OworCXU4CQkJbWluX3JldjsKKwl1MzIJ CQkqcHNpOwkvKiBhcnJheSBvZiBwcm90b2NvbCBzcGVlZCBJRCBlbnRyaWVzICovCisJdTgJCQlw c2lfY291bnQ7CisJdTgJCQlwc2lfdWlkX2NvdW50OwogfTsKIAogLyogVGhlcmUgaXMgb25lIHho Y2lfaGNkIHN0cnVjdHVyZSBwZXIgY29udHJvbGxlciAqLwpAQCAtMTgzOCw2ICsxODQ4LDcgQEAg c3RydWN0IHhoY2lfaGNkIHsKIAlzdHJ1Y3QgeGhjaV9idXNfc3RhdGUgICBidXNfc3RhdGVbMl07 CiAJLyogSXMgZWFjaCB4SENJIHJvb3RodWIgcG9ydCBhIFVTQiAzLjAsIFVTQiAyLjAsIG9yIFVT QiAxLjEgcG9ydD8gKi8KIAl1OAkJCSpwb3J0X2FycmF5OworCXN0cnVjdCB4aGNpX3BvcnQJKmh3 X3BvcnRzOwogCS8qIEFycmF5IG9mIHBvaW50ZXJzIHRvIFVTQiAzLjAgUE9SVFNDIHJlZ2lzdGVy cyAqLwogCV9fbGUzMiBfX2lvbWVtCQkqKnVzYjNfcG9ydHM7CiAJdW5zaWduZWQgaW50CQludW1f dXNiM19wb3J0czsK