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: [v3,2/3] xhci: Add quirk to zero 64bit registers on Renesas PCIe controllers From: Marc Zyngier Message-Id: <20180523174138.1250-3-marc.zyngier@arm.com> Date: Wed, 23 May 2018 18:41:37 +0100 To: linux-usb@vger.kernel.org Cc: Mathias Nyman , Christian Brauns , Domenico Andreoli , Bockholdt Arne , Ard Biesheuvel , Faiz Abbas , Troy Kisky , Greg KH List-ID: U29tZSBSZW5lc2FzIGNvbnRyb2xsZXJzIGdldCBpbnRvIGEgd2VpcmQgc3RhdGUgaWYgdGhleSBh cmUgcmVzZXQgd2hpbGUKcHJvZ3JhbW1lZCB3aXRoIDY0Yml0IGFkZHJlc3NlcyAodGhleSB3aWxs IHByZXNlcnZlIHRoZSB0b3AgaGFsZiBvZiB0aGUKYWRkcmVzcyBpbiBpbnRlcm5hbCwgbm9uIHZp c2libGUgcmVnaXN0ZXJzKS4KCllvdSBlbmQgdXAgd2l0aCBoYWxmIHRoZSBhZGRyZXNzIGNvbWlu ZyBmcm9tIHRoZSBrZXJuZWwsIGFuZCB0aGUgb3RoZXIKaGFsZiBjb21pbmcgZnJvbSB0aGUgZmly bXdhcmUuCgpBbHNvLCBjaGFuZ2luZyB0aGUgcHJvZ3JhbW1pbmcgbGVhZHMgdG8gZXh0cmEgYWNj ZXNzZXMgZXZlbiBpZiB0aGUKY29udHJvbGxlciBpcyBzdXBwb3NlZCB0byBiZSBoYWx0ZWQuIFRo ZSBjb250cm9sbGVyIGVuZHMgdXAgd2l0aCBhIGZhdGFsCmZhdWx0LCBhbmQgaXMgdGhlbiByaXBl IGZvciBiZWluZyBwcm9wZXJseSByZXNldC4gT24gdGhlIGZsaXAgc2lkZSwKdGhpcyBpcyBjb21w bGV0ZWx5IHVuc2FmZSBpZiB0aGUgZGVmdmljZSBpc24ndCBiZWhpbmQgYW4gSU9NTVUsIHNvCndl IGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQgdGhpcyBpcyB0aGUgY2FzZS4gQ2FuIHlvdSBzYXkgImJy b2tlbiI/CgpUaGlzIGlzIGFuIGFsdGVybmF0aXZlIG1ldGhvZCB0byB0aGUgb25lIGludHJvZHVj ZWQgaW4gODQ2NjQ4OWVmNWJhCigieGhjaTogUmVzZXQgUmVuZXNhcyB1UEQ3MjAyMHggVVNCIGNv bnRyb2xsZXIgZm9yIDMyLWJpdCBETUEgaXNzdWUiKSwKd2hpY2ggd2lsbCBzdWJzZXF1ZW50bHkg YmUgcmVtb3ZlZC4KClRlc3RlZC1ieTogRG9tZW5pY28gQW5kcmVvbGkgPGRvbWVuaWNvLmFuZHJl b2xpQGxpbnV4LmNvbT4KU2lnbmVkLW9mZi1ieTogTWFyYyBaeW5naWVyIDxtYXJjLnp5bmdpZXJA YXJtLmNvbT4KLS0tCiBkcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMgfCAgOCArKysrLS0KIGRy aXZlcnMvdXNiL2hvc3QveGhjaS5jICAgICB8IDY1ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogZHJpdmVycy91c2IvaG9zdC94aGNpLmggICAgIHwgIDEgKwog MyBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2kuYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhj aS1wY2kuYwppbmRleCA4NWZmZGE4NWY4YWIuLmUwYTBhMTI4NzFlMiAxMDA2NDQKLS0tIGEvZHJp dmVycy91c2IvaG9zdC94aGNpLXBjaS5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1wY2ku YwpAQCAtMTk2LDExICsxOTYsMTUgQEAgc3RhdGljIHZvaWQgeGhjaV9wY2lfcXVpcmtzKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IHhoY2lfaGNkICp4aGNpKQogCQl4aGNpLT5xdWlya3MgfD0g WEhDSV9CUk9LRU5fU1RSRUFNUzsKIAl9CiAJaWYgKHBkZXYtPnZlbmRvciA9PSBQQ0lfVkVORE9S X0lEX1JFTkVTQVMgJiYKLQkJCXBkZXYtPmRldmljZSA9PSAweDAwMTQpCisJICAgIHBkZXYtPmRl dmljZSA9PSAweDAwMTQpIHsKIAkJeGhjaS0+cXVpcmtzIHw9IFhIQ0lfVFJVU1RfVFhfTEVOR1RI OworCQl4aGNpLT5xdWlya3MgfD0gWEhDSV9aRVJPXzY0Ql9SRUdTOworCX0KIAlpZiAocGRldi0+ dmVuZG9yID09IFBDSV9WRU5ET1JfSURfUkVORVNBUyAmJgotCQkJcGRldi0+ZGV2aWNlID09IDB4 MDAxNSkKKwkgICAgcGRldi0+ZGV2aWNlID09IDB4MDAxNSkgewogCQl4aGNpLT5xdWlya3MgfD0g WEhDSV9SRVNFVF9PTl9SRVNVTUU7CisJCXhoY2ktPnF1aXJrcyB8PSBYSENJX1pFUk9fNjRCX1JF R1M7CisJfQogCWlmIChwZGV2LT52ZW5kb3IgPT0gUENJX1ZFTkRPUl9JRF9WSUEpCiAJCXhoY2kt PnF1aXJrcyB8PSBYSENJX1JFU0VUX09OX1JFU1VNRTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91 c2IvaG9zdC94aGNpLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuYwppbmRleCA4ZGJhMjZkM2Rl MDcuLjRkOTQzNzI3OTY4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLmMKKysr IGIvZHJpdmVycy91c2IvaG9zdC94aGNpLmMKQEAgLTIwOSw2ICsyMDksNjggQEAgaW50IHhoY2lf cmVzZXQoc3RydWN0IHhoY2lfaGNkICp4aGNpKQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2 b2lkIHhoY2lfemVyb182NGJfcmVncyhzdHJ1Y3QgeGhjaV9oY2QgKnhoY2kpCit7CisJc3RydWN0 IGRldmljZSAqZGV2ID0geGhjaV90b19oY2QoeGhjaSktPnNlbGYuc3lzZGV2OworCWludCBlcnIs IGk7CisJdTY0IHZhbDsKKworCS8qCisJICogU29tZSBSZW5lc2FzIGNvbnRyb2xsZXJzIGdldCBp bnRvIGEgd2VpcmQgc3RhdGUgaWYgdGhleSBhcmUKKwkgKiByZXNldCB3aGlsZSBwcm9ncmFtbWVk IHdpdGggNjRiaXQgYWRkcmVzc2VzICh0aGV5IHdpbGwgcHJlc2VydmUKKwkgKiB0aGUgdG9wIGhh bGYgb2YgdGhlIGFkZHJlc3MgaW4gaW50ZXJuYWwsIG5vbiB2aXNpYmxlCisJICogcmVnaXN0ZXJz KS4gWW91IGVuZCB1cCB3aXRoIGhhbGYgdGhlIGFkZHJlc3MgY29taW5nIGZyb20gdGhlCisJICog a2VybmVsLCBhbmQgdGhlIG90aGVyIGhhbGYgY29taW5nIGZyb20gdGhlIGZpcm13YXJlLiBBbHNv LAorCSAqIGNoYW5naW5nIHRoZSBwcm9ncmFtbWluZyBsZWFkcyB0byBleHRyYSBhY2Nlc3NlcyBl dmVuIGlmIHRoZQorCSAqIGNvbnRyb2xsZXIgaXMgc3VwcG9zZWQgdG8gYmUgaGFsdGVkLiBUaGUg Y29udHJvbGxlciBlbmRzIHVwIHdpdGgKKwkgKiBhIGZhdGFsIGZhdWx0LCBhbmQgaXMgdGhlbiBy aXBlIGZvciBiZWluZyBwcm9wZXJseSByZXNldC4KKwkgKgorCSAqIFNwZWNpYWwgY2FyZSBpcyB0 YWtlbiB0byBvbmx5IGFwcGx5IHRoaXMgaWYgdGhlIGRldmljZSBpcyBiZWhpbmQKKwkgKiBhbiBp b21tdS4gRG9pbmcgYW55dGhpbmcgd2hlbiB0aGVyZSBpcyBubyBpb21tdSBpcyBkZWZpbml0ZWx5 CisJICogdW5zYWZlLi4uCisJICovCisJaWYgKCEoeGhjaS0+cXVpcmtzICYgWEhDSV9aRVJPXzY0 Ql9SRUdTKSB8fCAhZGV2LT5pb21tdV9ncm91cCkKKwkJcmV0dXJuOworCisJeGhjaV9pbmZvKHho Y2ksICJaZXJvaW5nIDY0Yml0IGJhc2UgcmVnaXN0ZXJzLCBleHBlY3RpbmcgZmF1bHRcbiIpOwor CisJLyogQ2xlYXIgSFNFSUUgc28gdGhhdCBmYXVsdHMgZG8gbm90IGdldCBzaWduYWxlZCAqLwor CXZhbCA9IHJlYWRsKCZ4aGNpLT5vcF9yZWdzLT5jb21tYW5kKTsKKwl2YWwgJj0gfkNNRF9IU0VJ RTsKKwl3cml0ZWwodmFsLCAmeGhjaS0+b3BfcmVncy0+Y29tbWFuZCk7CisKKwkvKiBDbGVhciBI U0UgKGFrYSBGQVRBTCkgKi8KKwl2YWwgPSByZWFkbCgmeGhjaS0+b3BfcmVncy0+c3RhdHVzKTsK Kwl2YWwgfD0gU1RTX0ZBVEFMOworCXdyaXRlbCh2YWwsICZ4aGNpLT5vcF9yZWdzLT5zdGF0dXMp OworCisJLyogTm93IHplcm8gdGhlIHJlZ2lzdGVycywgYW5kIGJyYWNlIGZvciBpbXBhY3QgKi8K Kwl2YWwgPSB4aGNpX3JlYWRfNjQoeGhjaSwgJnhoY2ktPm9wX3JlZ3MtPmRjYmFhX3B0cik7CisJ aWYgKHVwcGVyXzMyX2JpdHModmFsKSkKKwkJeGhjaV93cml0ZV82NCh4aGNpLCAwLCAmeGhjaS0+ b3BfcmVncy0+ZGNiYWFfcHRyKTsKKwl2YWwgPSB4aGNpX3JlYWRfNjQoeGhjaSwgJnhoY2ktPm9w X3JlZ3MtPmNtZF9yaW5nKTsKKwlpZiAodXBwZXJfMzJfYml0cyh2YWwpKQorCQl4aGNpX3dyaXRl XzY0KHhoY2ksIDAsICZ4aGNpLT5vcF9yZWdzLT5jbWRfcmluZyk7CisKKwlmb3IgKGkgPSAwOyBp IDwgSENTX01BWF9JTlRSUyh4aGNpLT5oY3NfcGFyYW1zMSk7IGkrKykgeworCQlzdHJ1Y3QgeGhj aV9pbnRyX3JlZyBfX2lvbWVtICppcjsKKworCQlpciA9ICZ4aGNpLT5ydW5fcmVncy0+aXJfc2V0 W2ldOworCQl2YWwgPSB4aGNpX3JlYWRfNjQoeGhjaSwgJmlyLT5lcnN0X2Jhc2UpOworCQlpZiAo dXBwZXJfMzJfYml0cyh2YWwpKQorCQkJeGhjaV93cml0ZV82NCh4aGNpLCAwLCAmaXItPmVyc3Rf YmFzZSk7CisJCXZhbD0geGhjaV9yZWFkXzY0KHhoY2ksICZpci0+ZXJzdF9kZXF1ZXVlKTsKKwkJ aWYgKHVwcGVyXzMyX2JpdHModmFsKSkKKwkJCXhoY2lfd3JpdGVfNjQoeGhjaSwgMCwgJmlyLT5l cnN0X2RlcXVldWUpOworCX0KKworCS8qIFdhaXQgZm9yIHRoZSBmYXVsdCB0byBhcHBlYXIuIEl0 IHdpbGwgYmUgY2xlYXJlZCBvbiByZXNldCAqLworCWVyciA9IHhoY2lfaGFuZHNoYWtlKCZ4aGNp LT5vcF9yZWdzLT5zdGF0dXMsCisJCQkgICAgIFNUU19GQVRBTCwgU1RTX0ZBVEFMLAorCQkJICAg ICBYSENJX01BWF9IQUxUX1VTRUMpOworCWlmICghZXJyKQorCQl4aGNpX2luZm8oeGhjaSwgIkZh dWx0IGRldGVjdGVkXG4iKTsKK30KIAogI2lmZGVmIENPTkZJR19VU0JfUENJCiAvKgpAQCAtMTAw NCw2ICsxMDY2LDcgQEAgaW50IHhoY2lfcmVzdW1lKHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwgYm9v bCBoaWJlcm5hdGVkKQogCiAJCXhoY2lfZGJnKHhoY2ksICJTdG9wIEhDRFxuIik7CiAJCXhoY2lf aGFsdCh4aGNpKTsKKwkJeGhjaV96ZXJvXzY0Yl9yZWdzKHhoY2kpOwogCQl4aGNpX3Jlc2V0KHho Y2kpOwogCQlzcGluX3VubG9ja19pcnEoJnhoY2ktPmxvY2spOwogCQl4aGNpX2NsZWFudXBfbXNp eCh4aGNpKTsKQEAgLTQ5MjEsNiArNDk4NCw4IEBAIGludCB4aGNpX2dlbl9zZXR1cChzdHJ1Y3Qg dXNiX2hjZCAqaGNkLCB4aGNpX2dldF9xdWlya3NfdCBnZXRfcXVpcmtzKQogCWlmIChyZXR2YWwp CiAJCXJldHVybiByZXR2YWw7CiAKKwl4aGNpX3plcm9fNjRiX3JlZ3MoeGhjaSk7CisKIAl4aGNp X2RiZyh4aGNpLCAiUmVzZXR0aW5nIEhDRFxuIik7CiAJLyogUmVzZXQgdGhlIGludGVybmFsIEhD IG1lbW9yeSBzdGF0ZSBhbmQgcmVnaXN0ZXJzLiAqLwogCXJldHZhbCA9IHhoY2lfcmVzZXQoeGhj aSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuaCBiL2RyaXZlcnMvdXNiL2hv c3QveGhjaS5oCmluZGV4IGUzMjJhZmQzZjA4Yi4uODU0YjYxZWRlMTQ1IDEwMDY0NAotLS0gYS9k cml2ZXJzL3VzYi9ob3N0L3hoY2kuaAorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuaApAQCAt MTgzMSw2ICsxODMxLDcgQEAgc3RydWN0IHhoY2lfaGNkIHsKICNkZWZpbmUgWEhDSV9IV19MUE1f RElTQUJMRQlCSVRfVUxMKDI5KQogI2RlZmluZSBYSENJX1NVU1BFTkRfREVMQVkJQklUX1VMTCgz MCkKICNkZWZpbmUgWEhDSV9JTlRFTF9VU0JfUk9MRV9TVwlCSVRfVUxMKDMxKQorI2RlZmluZSBY SENJX1pFUk9fNjRCX1JFR1MJQklUX1VMTCgzMikKIAogCXVuc2lnbmVkIGludAkJbnVtX2FjdGl2 ZV9lcHM7CiAJdW5zaWduZWQgaW50CQlsaW1pdF9hY3RpdmVfZXBzOwo=