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: [09/18] xhci: xhci-ring: use port structures for port event handler From: Mathias Nyman Message-Id: <1526910006-26104-10-git-send-email-mathias.nyman@linux.intel.com> Date: Mon, 21 May 2018 16:39:57 +0300 To: gregkh@linuxfoundation.org Cc: linux-usb@vger.kernel.org, Mathias Nyman List-ID: dXNlIHBvcnQgc3RydWN0dXJlcyBpbiB0aGUgcG9ydCBldmVudCBoYW5kbGVyLgpHZXR0aW5nIHRo ZSByaWdodCBoY2QgYW5kIGhjZCBwb3J0bnVtYmVyIGZyb20gdGhlIGhhcmR3YXJlIHBvcnQgbnVt YmVyCmlzIGEgbG90IGVhc2llciB3aXRoIHBvcnQgc3RydWN0dXJlcywgYW5kIGFsbG93cyB1cyB0 byByZW1vdmUgYSBsb3QKb2YgdGhlIHByZXZpb3VzIGNvZGUsIGluY2x1ZGluZyB0aGUgZmluZF9m YWtlZF9wb3J0bnVtX2Zyb21faHdfaW5kZXgoKQpmdW5jdGlvbgoKU2lnbmVkLW9mZi1ieTogTWF0 aGlhcyBOeW1hbiA8bWF0aGlhcy5ueW1hbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy91 c2IvaG9zdC94aGNpLXJpbmcuYyB8IDc5ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA3MSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jIGIvZHJpdmVy cy91c2IvaG9zdC94aGNpLXJpbmcuYwppbmRleCA5MWExYTgyLi40ZDJkMGU4IDEwMDY0NAotLS0g YS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QveGhj aS1yaW5nLmMKQEAgLTE0OTcsNDQgKzE0OTcsNiBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfdmVuZG9y X2V2ZW50KHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwKIAkJaGFuZGxlX2NtZF9jb21wbGV0aW9uKHho Y2ksICZldmVudC0+ZXZlbnRfY21kKTsKIH0KIAotLyogQHBvcnRfaWQ6IHRoZSBvbmUtYmFzZWQg cG9ydCBJRCBmcm9tIHRoZSBoYXJkd2FyZSAoaW5kZXhlZCBmcm9tIGFycmF5IG9mIGFsbAotICog cG9ydCByZWdpc3RlcnMgLS0gVVNCIDMuMCBhbmQgVVNCIDIuMCkuCi0gKgotICogUmV0dXJucyBh IHplcm8tYmFzZWQgcG9ydCBudW1iZXIsIHdoaWNoIGlzIHN1aXRhYmxlIGZvciBpbmRleGluZyBp bnRvIGVhY2ggb2YKLSAqIHRoZSBzcGxpdCByb290aHVicycgcG9ydCBhcnJheXMgYW5kIGJ1cyBz dGF0ZSBhcnJheXMuCi0gKiBBZGQgb25lIHRvIGl0IGluIG9yZGVyIHRvIGNhbGwgeGhjaV9maW5k X3Nsb3RfaWRfYnlfcG9ydC4KLSAqLwotc3RhdGljIHVuc2lnbmVkIGludCBmaW5kX2Zha2VkX3Bv cnRudW1fZnJvbV9od19wb3J0bnVtKHN0cnVjdCB1c2JfaGNkICpoY2QsCi0JCXN0cnVjdCB4aGNp X2hjZCAqeGhjaSwgdTMyIHBvcnRfaWQpCi17Ci0JdW5zaWduZWQgaW50IGk7Ci0JdW5zaWduZWQg aW50IG51bV9zaW1pbGFyX3NwZWVkX3BvcnRzID0gMDsKLQotCS8qIHBvcnRfaWQgZnJvbSB0aGUg aGFyZHdhcmUgaXMgMS1iYXNlZCwgYnV0IHBvcnRfYXJyYXlbXSwgdXNiM19wb3J0c1tdLAotCSAq IGFuZCB1c2IyX3BvcnRzIGFyZSAwLWJhc2VkIGluZGV4ZXMuICBDb3VudCB0aGUgbnVtYmVyIG9m IHNpbWlsYXIKLQkgKiBzcGVlZCBwb3J0cywgdXAgdG8gMSBwb3J0IGJlZm9yZSB0aGlzIHBvcnQu Ci0JICovCi0JZm9yIChpID0gMDsgaSA8IChwb3J0X2lkIC0gMSk7IGkrKykgewotCQl1OCBwb3J0 X3NwZWVkID0geGhjaS0+cG9ydF9hcnJheVtpXTsKLQotCQkvKgotCQkgKiBTa2lwIHBvcnRzIHRo YXQgZG9uJ3QgaGF2ZSBrbm93biBzcGVlZHMsIG9yIGhhdmUgZHVwbGljYXRlCi0JCSAqIEV4dGVu ZGVkIENhcGFiaWxpdGllcyBwb3J0IHNwZWVkIGVudHJpZXMuCi0JCSAqLwotCQlpZiAocG9ydF9z cGVlZCA9PSAwIHx8IHBvcnRfc3BlZWQgPT0gRFVQTElDQVRFX0VOVFJZKQotCQkJY29udGludWU7 Ci0KLQkJLyoKLQkJICogVVNCIDMuMCBwb3J0cyBhcmUgYWx3YXlzIHVuZGVyIGEgVVNCIDMuMCBo dWIuICBVU0IgMi4wIGFuZAotCQkgKiAxLjEgcG9ydHMgYXJlIHVuZGVyIHRoZSBVU0IgMi4wIGh1 Yi4gIElmIHRoZSBwb3J0IHNwZWVkCi0JCSAqIG1hdGNoZXMgdGhlIGRldmljZSBzcGVlZCwgaXQn cyBhIHNpbWlsYXIgc3BlZWQgcG9ydC4KLQkJICovCi0JCWlmICgocG9ydF9zcGVlZCA9PSAweDAz KSA9PSAoaGNkLT5zcGVlZCA+PSBIQ0RfVVNCMykpCi0JCQludW1fc2ltaWxhcl9zcGVlZF9wb3J0 cysrOwotCX0KLQlyZXR1cm4gbnVtX3NpbWlsYXJfc3BlZWRfcG9ydHM7Ci19Ci0KIHN0YXRpYyB2 b2lkIGhhbmRsZV9kZXZpY2Vfbm90aWZpY2F0aW9uKHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwKIAkJ dW5pb24geGhjaV90cmIgKmV2ZW50KQogewpAQCAtMTU2NCwxMCArMTUyNiwxMCBAQCBzdGF0aWMg dm9pZCBoYW5kbGVfcG9ydF9zdGF0dXMoc3RydWN0IHhoY2lfaGNkICp4aGNpLAogCWludCBtYXhf cG9ydHM7CiAJaW50IHNsb3RfaWQ7CiAJdW5zaWduZWQgaW50IGZha2VkX3BvcnRfaW5kZXg7Ci0J dTggbWFqb3JfcmV2aXNpb247CiAJc3RydWN0IHhoY2lfYnVzX3N0YXRlICpidXNfc3RhdGU7CiAJ X19sZTMyIF9faW9tZW0gKipwb3J0X2FycmF5OwogCWJvb2wgYm9ndXNfcG9ydF9zdGF0dXMgPSBm YWxzZTsKKwlzdHJ1Y3QgeGhjaV9wb3J0ICpwb3J0OwogCiAJLyogUG9ydCBzdGF0dXMgY2hhbmdl IGV2ZW50cyBhbHdheXMgaGF2ZSBhIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiBjb2RlICovCiAJaWYg KEdFVF9DT01QX0NPREUobGUzMl90b19jcHUoZXZlbnQtPmdlbmVyaWMuZmllbGRbMl0pKSAhPSBD T01QX1NVQ0NFU1MpCkBAIC0xNTg0LDQ3ICsxNTQ2LDIyIEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9w b3J0X3N0YXR1cyhzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksCiAJCXJldHVybjsKIAl9CiAKLQkvKiBG aWd1cmUgb3V0IHdoaWNoIHVzYl9oY2QgdGhpcyBwb3J0IGlzIGF0dGFjaGVkIHRvOgotCSAqIGlz IGl0IGEgVVNCIDMuMCBwb3J0IG9yIGEgVVNCIDIuMC8xLjEgcG9ydD8KLQkgKi8KLQltYWpvcl9y ZXZpc2lvbiA9IHhoY2ktPnBvcnRfYXJyYXlbcG9ydF9pZCAtIDFdOwotCi0JLyogRmluZCB0aGUg cmlnaHQgcm9vdGh1Yi4gKi8KLQloY2QgPSB4aGNpX3RvX2hjZCh4aGNpKTsKLQlpZiAoKG1ham9y X3JldmlzaW9uID09IDB4MDMpICE9IChoY2QtPnNwZWVkID49IEhDRF9VU0IzKSkKLQkJaGNkID0g eGhjaS0+c2hhcmVkX2hjZDsKLQotCWlmIChtYWpvcl9yZXZpc2lvbiA9PSAwKSB7Ci0JCXhoY2lf d2Fybih4aGNpLCAiRXZlbnQgZm9yIHBvcnQgJXUgbm90IGluICIKLQkJCQkiRXh0ZW5kZWQgQ2Fw YWJpbGl0aWVzLCBpZ25vcmluZy5cbiIsCi0JCQkJcG9ydF9pZCk7Ci0JCWJvZ3VzX3BvcnRfc3Rh dHVzID0gdHJ1ZTsKLQkJZ290byBjbGVhbnVwOwotCX0KLQlpZiAobWFqb3JfcmV2aXNpb24gPT0g RFVQTElDQVRFX0VOVFJZKSB7Ci0JCXhoY2lfd2Fybih4aGNpLCAiRXZlbnQgZm9yIHBvcnQgJXUg ZHVwbGljYXRlZCBpbiIKLQkJCQkiRXh0ZW5kZWQgQ2FwYWJpbGl0aWVzLCBpZ25vcmluZy5cbiIs Ci0JCQkJcG9ydF9pZCk7CisJcG9ydCA9ICZ4aGNpLT5od19wb3J0c1twb3J0X2lkIC0gMV07CisJ aWYgKCFwb3J0IHx8ICFwb3J0LT5yaHViIHx8IHBvcnQtPmhjZF9wb3J0bnVtID09IERVUExJQ0FU RV9FTlRSWSkgeworCQl4aGNpX3dhcm4oeGhjaSwgIkV2ZW50IGZvciBpbnZhbGlkIHBvcnQgJXVc biIsIHBvcnRfaWQpOwogCQlib2d1c19wb3J0X3N0YXR1cyA9IHRydWU7CiAJCWdvdG8gY2xlYW51 cDsKIAl9CiAKLQkvKgotCSAqIEhhcmR3YXJlIHBvcnQgSURzIHJlcG9ydGVkIGJ5IGEgUG9ydCBT dGF0dXMgQ2hhbmdlIEV2ZW50IGluY2x1ZGUgVVNCCi0JICogMy4wIGFuZCBVU0IgMi4wIHBvcnRz LiAgV2Ugd2FudCB0byBjaGVjayBpZiB0aGUgcG9ydCBoYXMgcmVwb3J0ZWQgYQotCSAqIHJlc3Vt ZSBldmVudCwgYnV0IHdlIGZpcnN0IG5lZWQgdG8gdHJhbnNsYXRlIHRoZSBoYXJkd2FyZSBwb3J0 IElECi0JICogaW50byB0aGUgaW5kZXggaW50byB0aGUgcG9ydHMgb24gdGhlIGNvcnJlY3Qgc3Bs aXQgcm9vdGh1YiwgYW5kIHRoZQotCSAqIGNvcnJlY3QgYnVzX3N0YXRlIHN0cnVjdHVyZS4KLQkg Ki8KKwloY2QgPSBwb3J0LT5yaHViLT5oY2Q7CiAJYnVzX3N0YXRlID0gJnhoY2ktPmJ1c19zdGF0 ZVtoY2RfaW5kZXgoaGNkKV07CiAJaWYgKGhjZC0+c3BlZWQgPj0gSENEX1VTQjMpCiAJCXBvcnRf YXJyYXkgPSB4aGNpLT51c2IzX3BvcnRzOwogCWVsc2UKIAkJcG9ydF9hcnJheSA9IHhoY2ktPnVz YjJfcG9ydHM7Ci0JLyogRmluZCB0aGUgZmFrZWQgcG9ydCBodWIgbnVtYmVyICovCi0JZmFrZWRf cG9ydF9pbmRleCA9IGZpbmRfZmFrZWRfcG9ydG51bV9mcm9tX2h3X3BvcnRudW0oaGNkLCB4aGNp LAotCQkJcG9ydF9pZCk7Ci0JcG9ydHNjID0gcmVhZGwocG9ydF9hcnJheVtmYWtlZF9wb3J0X2lu ZGV4XSk7CisKKwlmYWtlZF9wb3J0X2luZGV4ID0gcG9ydC0+aGNkX3BvcnRudW07CisJcG9ydHNj ID0gcmVhZGwocG9ydC0+YWRkcik7CiAKIAl0cmFjZV94aGNpX2hhbmRsZV9wb3J0X3N0YXR1cyhm YWtlZF9wb3J0X2luZGV4LCBwb3J0c2MpOwogCg==