Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [6/6] xhci: Add quirk to workaround the errata seen on Cavium Thunder-X2 Soc From: Mathias Nyman Message-Id: <1542010889-8716-7-git-send-email-mathias.nyman@linux.intel.com> Date: Mon, 12 Nov 2018 10:21:29 +0200 To: linux-usb@vger.kernel.org List-ID: RnJvbTogIkNoZXJpYW4sIEdlb3JnZSIgPEdlb3JnZS5DaGVyaWFuQGNhdml1bS5jb20+CgpJbXBs ZW1lbnQgd29ya2Fyb3VuZCBmb3IgVGh1bmRlclgyIEVycmF0YS0xMjkgKGRvY3VtZW50ZWQgaW4K Q045OVhYIEtub3duIElzc3VlcyIgYXZhaWxhYmxlIGF0IENhdml1bSBzdXBwb3J0IHNpdGUpLgpB cyBwZXIgVGh1bmRlclgyZXJyYXRhLTEyOSwgVVNCIDIgZGV2aWNlIG1heSBjb21lIHVwIGFzIFVT QiAxCmlmIGEgY29ubmVjdGlvbiB0byBhIFVTQiAxIGRldmljZSBpcyBmb2xsb3dlZCBieSBhbm90 aGVyIGNvbm5lY3Rpb24gdG8KYSBVU0IgMiBkZXZpY2UsIHRoZSBsaW5rIHdpbGwgY29tZSB1cCBh cyBVU0IgMSBmb3IgdGhlIFVTQiAyIGRldmljZS4KClJlc29sdXRpb246IFJlc2V0IHRoZSBQSFkg YWZ0ZXIgdGhlIFVTQiAxIGRldmljZSBpcyBkaXNjb25uZWN0ZWQuClRoZSBQSFkgcmVzZXQgc2Vx dWVuY2UgaXMgZG9uZSB1c2luZyBwcml2YXRlIHJlZ2lzdGVycyBpbiBYSENJIHJlZ2lzdGVyCnNw YWNlLiBBZnRlciB0aGUgUEhZIGlzIHJlc2V0IHdlIGNoZWNrIGZvciB0aGUgUExMIGxvY2sgc3Rh dHVzIGFuZCByZXRyeQp0aGUgb3BlcmF0aW9uIGlmIGl0IGZhaWxzLiBGcm9tIG91ciB0ZXN0cywg cmV0cnlpbmcgNCB0aW1lcyBpcyBzdWZmaWNpZW50LgoKQWRkIGEgbmV3IHF1aXJrIGZsYWcgWEhD SV9SRVNFVF9QTExfT05fRElTQ09OTkVDVCB0byBpbnZva2UgdGhlIHdvcmthcm91bmQKaW4gaGFu ZGxlX3hoY2lfcG9ydF9zdGF0dXMoKS4KCkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnClNpZ25l ZC1vZmYtYnk6IEdlb3JnZSBDaGVyaWFuIDxnZW9yZ2UuY2hlcmlhbkBjYXZpdW0uY29tPgpTaWdu ZWQtb2ZmLWJ5OiBNYXRoaWFzIE55bWFuIDxtYXRoaWFzLm55bWFuQGxpbnV4LmludGVsLmNvbT4K LS0tCiBkcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMgIHwgIDUgKysrKysKIGRyaXZlcnMvdXNi L2hvc3QveGhjaS1yaW5nLmMgfCAzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQogZHJpdmVycy91c2IvaG9zdC94aGNpLmggICAgICB8ICAxICsKIDMgZmlsZXMgY2hhbmdlZCwg NDAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNi L2hvc3QveGhjaS1wY2kuYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYwppbmRleCAxZmI0 NDhjLi5hOTUxNTI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMKKysr IGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jCkBAIC0yNDgsNiArMjQ4LDExIEBAIHN0YXRp YyB2b2lkIHhoY2lfcGNpX3F1aXJrcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB4aGNpX2hj ZCAqeGhjaSkKIAlpZiAocGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfVEkgJiYgcGRldi0+ ZGV2aWNlID09IDB4ODI0MSkKIAkJeGhjaS0+cXVpcmtzIHw9IFhIQ0lfTElNSVRfRU5EUE9JTlRf SU5URVJWQUxfNzsKIAorCWlmICgocGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfQlJPQURD T00gfHwKKwkgICAgIHBkZXYtPnZlbmRvciA9PSBQQ0lfVkVORE9SX0lEX0NBVklVTSkgJiYKKwkg ICAgIHBkZXYtPmRldmljZSA9PSAweDkwMjYpCisJCXhoY2ktPnF1aXJrcyB8PSBYSENJX1JFU0VU X1BMTF9PTl9ESVNDT05ORUNUOworCiAJaWYgKHhoY2ktPnF1aXJrcyAmIFhIQ0lfUkVTRVRfT05f UkVTVU1FKQogCQl4aGNpX2RiZ190cmFjZSh4aGNpLCB0cmFjZV94aGNpX2RiZ19xdWlya3MsCiAJ CQkJIlFVSVJLOiBSZXNldHRpbmcgb24gcmVzdW1lIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Vz Yi9ob3N0L3hoY2ktcmluZy5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYwppbmRleCAy NTBiNzU4Li42NTc1MDU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5j CisrKyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMKQEAgLTE1MjEsNiArMTUyMSwzNSBA QCBzdGF0aWMgdm9pZCBoYW5kbGVfZGV2aWNlX25vdGlmaWNhdGlvbihzdHJ1Y3QgeGhjaV9oY2Qg KnhoY2ksCiAJCXVzYl93YWtldXBfbm90aWZpY2F0aW9uKHVkZXYtPnBhcmVudCwgdWRldi0+cG9y dG51bSk7CiB9CiAKKy8qCisgKiBRdWlyayBoYW5sZGVyIGZvciBlcnJhdGEgc2VlbiBvbiBDYXZp dW0gVGh1bmRlclgyIHByb2Nlc3NvciBYSENJCisgKiBDb250cm9sbGVyLgorICogQXMgcGVyIFRo dW5kZXJYMmVycmF0YS0xMjkgVVNCIDIgZGV2aWNlIG1heSBjb21lIHVwIGFzIFVTQiAxCisgKiBJ ZiBhIGNvbm5lY3Rpb24gdG8gYSBVU0IgMSBkZXZpY2UgaXMgZm9sbG93ZWQgYnkgYW5vdGhlciBj b25uZWN0aW9uCisgKiB0byBhIFVTQiAyIGRldmljZS4KKyAqCisgKiBSZXNldCB0aGUgUEhZIGFm dGVyIHRoZSBVU0IgZGV2aWNlIGlzIGRpc2Nvbm5lY3RlZCBpZiBkZXZpY2Ugc3BlZWQKKyAqIGlz IGxlc3MgdGhhbiBIQ0RfVVNCMy4KKyAqIFJldHJ5IHRoZSByZXNldCBzZXF1ZW5jZSBtYXggb2Yg NCB0aW1lcyBjaGVja2luZyB0aGUgUExMIGxvY2sgc3RhdHVzLgorICoKKyAqLworc3RhdGljIHZv aWQgeGhjaV9jYXZpdW1fcmVzZXRfcGh5X3F1aXJrKHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkKK3sK KwlzdHJ1Y3QgdXNiX2hjZCAqaGNkID0geGhjaV90b19oY2QoeGhjaSk7CisJdTMyIHBsbF9sb2Nr X2NoZWNrOworCXUzMiByZXRyeV9jb3VudCA9IDQ7CisKKwlkbyB7CisJCS8qIEFzc2VydCBQSFkg cmVzZXQgKi8KKwkJd3JpdGVsKDB4NkYsIGhjZC0+cmVncyArIDB4MTA0OCk7CisJCXVkZWxheSgx MCk7CisJCS8qIERlLWFzc2VydCB0aGUgUEhZIHJlc2V0ICovCisJCXdyaXRlbCgweDdGLCBoY2Qt PnJlZ3MgKyAweDEwNDgpOworCQl1ZGVsYXkoMjAwKTsKKwkJcGxsX2xvY2tfY2hlY2sgPSByZWFk bChoY2QtPnJlZ3MgKyAweDEwNzApOworCX0gd2hpbGUgKCEocGxsX2xvY2tfY2hlY2sgJiAweDEp ICYmIC0tcmV0cnlfY291bnQpOworfQorCiBzdGF0aWMgdm9pZCBoYW5kbGVfcG9ydF9zdGF0dXMo c3RydWN0IHhoY2lfaGNkICp4aGNpLAogCQl1bmlvbiB4aGNpX3RyYiAqZXZlbnQpCiB7CkBAIC0x NjU0LDggKzE2ODMsMTIgQEAgc3RhdGljIHZvaWQgaGFuZGxlX3BvcnRfc3RhdHVzKHN0cnVjdCB4 aGNpX2hjZCAqeGhjaSwKIAkJZ290byBjbGVhbnVwOwogCX0KIAotCWlmIChoY2QtPnNwZWVkIDwg SENEX1VTQjMpCisJaWYgKGhjZC0+c3BlZWQgPCBIQ0RfVVNCMykgewogCQl4aGNpX3Rlc3RfYW5k X2NsZWFyX2JpdCh4aGNpLCBwb3J0LCBQT1JUX1BMQyk7CisJCWlmICgoeGhjaS0+cXVpcmtzICYg WEhDSV9SRVNFVF9QTExfT05fRElTQ09OTkVDVCkgJiYKKwkJICAgIChwb3J0c2MgJiBQT1JUX0NT QykgJiYgIShwb3J0c2MgJiBQT1JUX0NPTk5FQ1QpKQorCQkJeGhjaV9jYXZpdW1fcmVzZXRfcGh5 X3F1aXJrKHhoY2kpOworCX0KIAogY2xlYW51cDoKIAkvKiBVcGRhdGUgZXZlbnQgcmluZyBkZXF1 ZXVlIHBvaW50ZXIgYmVmb3JlIGRyb3BwaW5nIHRoZSBsb2NrICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9ob3N0L3hoY2kuaCBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5oCmluZGV4IDVmMGM0 ZjEuLjI2MGIyNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS5oCisrKyBiL2Ry aXZlcnMvdXNiL2hvc3QveGhjaS5oCkBAIC0xODQ5LDYgKzE4NDksNyBAQCBzdHJ1Y3QgeGhjaV9o Y2QgewogI2RlZmluZSBYSENJX0lOVEVMX1VTQl9ST0xFX1NXCUJJVF9VTEwoMzEpCiAjZGVmaW5l IFhIQ0lfWkVST182NEJfUkVHUwlCSVRfVUxMKDMyKQogI2RlZmluZSBYSENJX0RFRkFVTFRfUE1f UlVOVElNRV9BTExPVwlCSVRfVUxMKDMzKQorI2RlZmluZSBYSENJX1JFU0VUX1BMTF9PTl9ESVND T05ORUNUCUJJVF9VTEwoMzQpCiAKIAl1bnNpZ25lZCBpbnQJCW51bV9hY3RpdmVfZXBzOwogCXVu c2lnbmVkIGludAkJbGltaXRfYWN0aXZlX2VwczsK