Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: USB: host: ehci: allow tine of highspeed nak-count From: Ben Dooks Message-Id: <20181114171315.27549-1-ben-linux@fluff.org> Date: Wed, 14 Nov 2018 17:13:15 +0000 To: stern@rowland.harvard.edu, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org Cc: linux-kernel@lists.codethink.co.uk, linux-kernel@vger.kernel.org, Ben Dooks List-ID: RnJvbTogQmVuIERvb2tzIDxiZW4uZG9va3NAY29kZXRoaW5rLmNvLnVrPgoKQXQgbGVhc3Qgc29t ZSBzeXN0ZW1zIGJlbmVmaXQgd2l0aCBsZXNzIHNjaGVkdWxpbmcgaWYgdGhlIE5BSyBjb3VudAp2 YWx1ZSBpcyBzZXQgaGlnaGVyIHRoYW4gdGhlIGRlZmF1bHQgNC4gRm9yIGluc3RhbmNlIGEgVGVn cmEzIHdpdGgKYW4gU01TQzk1MTIgc2hvd2VkIGxlc3MgaW50ZXJydXB0IGxvYWQgd2hlbiB0aGlz IHdhcyBjaGFuZ2VkIHRvIDE0LgoKVG8gYWxsb3cgdGhlIGNoYW5naW5nIG9mIHRoaXMgdmFsdWUs IGFkZCBhIHN5c2ZzIG5vZGUgdG8gZWFjaCBvZgp0aGUgY29udHJvbGxlcnMgdG8gYWxsb3cgcnVu LXRpbWUgY2hhbmdpbmcuCgpTaWduZWQtb2ZmLWJ5OiBCZW4gRG9va3MgPGJlbi5kb29rc0Bjb2Rl dGhpbmsuY28udWs+Ci0tLQogZHJpdmVycy91c2IvaG9zdC9laGNpLWhjZC5jICAgfCAgMSArCiBk cml2ZXJzL3VzYi9ob3N0L2VoY2ktcS5jICAgICB8ICA0ICstLQogZHJpdmVycy91c2IvaG9zdC9l aGNpLXN5c2ZzLmMgfCA1MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJp dmVycy91c2IvaG9zdC9laGNpLmggICAgICAgfCAgMSArCiA0IGZpbGVzIGNoYW5nZWQsIDU0IGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9z dC9laGNpLWhjZC5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLWhjZC5jCmluZGV4IDg2MDhhYzUx M2ZiNy4uNzk5MjYyOTUxZjQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktaGNk LmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLWhjZC5jCkBAIC01MjYsNiArNTI2LDcgQEAg c3RhdGljIGludCBlaGNpX2luaXQoc3RydWN0IHVzYl9oY2QgKmhjZCkKIAlody0+aHdfcXRkX25l eHQgPSBFSENJX0xJU1RfRU5EKGVoY2kpOwogCWVoY2ktPmFzeW5jLT5xaF9zdGF0ZSA9IFFIX1NU QVRFX0xJTktFRDsKIAlody0+aHdfYWx0X25leHQgPSBRVERfTkVYVChlaGNpLCBlaGNpLT5hc3lu Yy0+ZHVtbXktPnF0ZF9kbWEpOworCWVoY2ktPm5ha190dW5lX2hzID0gRUhDSV9UVU5FX1JMX0hT OwogCiAJLyogY2xlYXIgaW50ZXJydXB0IGVuYWJsZXMsIHNldCBpcnEgbGF0ZW5jeSAqLwogCWlm IChsb2cyX2lycV90aHJlc2ggPCAwIHx8IGxvZzJfaXJxX3RocmVzaCA+IDYpCmRpZmYgLS1naXQg YS9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktcS5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLXEuYwpp bmRleCAzMjc2MzA0MDU2OTUuLmNjYjc1NDg5M2I1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Iv aG9zdC9laGNpLXEuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktcS5jCkBAIC04OTgsMTIg Kzg5OCwxMiBAQCBxaF9tYWtlICgKIAljYXNlIFVTQl9TUEVFRF9ISUdIOgkJLyogbm8gVFQgaW52 b2x2ZWQgKi8KIAkJaW5mbzEgfD0gUUhfSElHSF9TUEVFRDsKIAkJaWYgKHR5cGUgPT0gUElQRV9D T05UUk9MKSB7Ci0JCQlpbmZvMSB8PSAoRUhDSV9UVU5FX1JMX0hTIDw8IDI4KTsKKwkJCWluZm8x IHw9IGVoY2ktPm5ha190dW5lX2hzIDw8IDI4OwogCQkJaW5mbzEgfD0gNjQgPDwgMTY7CS8qIHVz YjIgZml4ZWQgbWF4cGFja2V0ICovCiAJCQlpbmZvMSB8PSBRSF9UT0dHTEVfQ1RMOwkvKiB0b2dn bGUgZnJvbSBxdGQgKi8KIAkJCWluZm8yIHw9IChFSENJX1RVTkVfTVVMVF9IUyA8PCAzMCk7CiAJ CX0gZWxzZSBpZiAodHlwZSA9PSBQSVBFX0JVTEspIHsKLQkJCWluZm8xIHw9IChFSENJX1RVTkVf UkxfSFMgPDwgMjgpOworCQkJaW5mbzEgfD0gZWhjaS0+bmFrX3R1bmVfaHMgPDwgMjg7CiAJCQkv KiBUaGUgVVNCIHNwZWMgc2F5cyB0aGF0IGhpZ2ggc3BlZWQgYnVsayBlbmRwb2ludHMKIAkJCSAq IGFsd2F5cyB1c2UgNTEyIGJ5dGUgbWF4cGFja2V0LiAgQnV0IHNvbWUgZGV2aWNlCiAJCQkgKiB2 ZW5kb3JzIGRlY2lkZWQgdG8gaWdub3JlIHRoYXQsIGFuZCBNU0ZUIGlzIGhhcHB5CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktc3lzZnMuYyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhj aS1zeXNmcy5jCmluZGV4IDhmNzVjYjdiMTk3Yy4uZDcxMGQzNTI4MmE2IDEwMDY0NAotLS0gYS9k cml2ZXJzL3VzYi9ob3N0L2VoY2ktc3lzZnMuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2kt c3lzZnMuYwpAQCAtMTQ1LDE5ICsxNDUsNjYgQEAgc3RhdGljIHNzaXplX3QgdWZyYW1lX3Blcmlv ZGljX21heF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiB9CiBzdGF0aWMgREVWSUNFX0FUVFJf UlcodWZyYW1lX3BlcmlvZGljX21heCk7CiAKK3N0YXRpYyBzc2l6ZV90IG5ha190dW5lX2hzX3No b3coc3RydWN0IGRldmljZSAqZGV2LAorCQkJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy LAorCQkJCWNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgZWhjaV9oY2QJCSplaGNpOworCisJZWhjaSA9 IGhjZF90b19laGNpKGRldl9nZXRfZHJ2ZGF0YShkZXYpKTsKKwlyZXR1cm4gc2NucHJpbnRmKGJ1 ZiwgUEFHRV9TSVpFLCAiJWRcbiIsIGVoY2ktPm5ha190dW5lX2hzKTsKK30KKworc3RhdGljIHNz aXplX3QgbmFrX3R1bmVfaHNfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCQlzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCQkJY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291 bnQpCit7CisJc3RydWN0IGVoY2lfaGNkCQkqZWhjaTsKKwl1bnNpZ25lZAkJdmFsOworCXVuc2ln bmVkIGxvbmcJCWZsYWdzOworCisJZWhjaSA9IGhjZF90b19laGNpKGRldl9nZXRfZHJ2ZGF0YShk ZXYpKTsKKworCWlmIChrc3RydG91aW50KGJ1ZiwgMCwgJnZhbCkgPCAwKQorCQlyZXR1cm4gLUVJ TlZBTDsKKworCWlmICh2YWwgPj0gMTUpIHsKKwkJZWhjaV9pbmZvKGVoY2ksICJpbnZhbGlkIHZh bHVlIGZvciBuYWtfdHVuZV9ocyAoJWQpXG4iLCB2YWwpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9 CisKKwlzcGluX2xvY2tfaXJxc2F2ZSAoJmVoY2ktPmxvY2ssIGZsYWdzKTsKKwllaGNpLT5uYWtf dHVuZV9ocyA9IHZhbDsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlICgmZWhjaS0+bG9jaywgZmxh Z3MpOworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIERFVklDRV9BVFRSX1JXKG5ha190dW5l X2hzKTsKIAogc3RhdGljIGlubGluZSBpbnQgY3JlYXRlX3N5c2ZzX2ZpbGVzKHN0cnVjdCBlaGNp X2hjZCAqZWhjaSkKIHsKIAlzdHJ1Y3QgZGV2aWNlCSpjb250cm9sbGVyID0gZWhjaV90b19oY2Qo ZWhjaSktPnNlbGYuY29udHJvbGxlcjsKIAlpbnQJaSA9IDA7CiAKKwlpID0gZGV2aWNlX2NyZWF0 ZV9maWxlKGNvbnRyb2xsZXIsICZkZXZfYXR0cl9uYWtfdHVuZV9ocyk7CisJaWYgKGkpCisJCWdv dG8gb3V0OworCisJaSA9IGRldmljZV9jcmVhdGVfZmlsZShjb250cm9sbGVyLCAmZGV2X2F0dHJf dWZyYW1lX3BlcmlvZGljX21heCk7CisJaWYgKGkpCisJCWdvdG8gb3V0X25hazsKKwogCS8qIHdp dGggaW50ZWdyYXRlZCBUVCB0aGVyZSBpcyBubyBjb21wYW5pb24hICovCiAJaWYgKCFlaGNpX2lz X1RESShlaGNpKSkKIAkJaSA9IGRldmljZV9jcmVhdGVfZmlsZShjb250cm9sbGVyLCAmZGV2X2F0 dHJfY29tcGFuaW9uKTsKIAlpZiAoaSkKLQkJZ290byBvdXQ7CisJCWdvdG8gb3V0X2FsbDsKIAot CWkgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoY29udHJvbGxlciwgJmRldl9hdHRyX3VmcmFtZV9wZXJp b2RpY19tYXgpOworCXJldHVybiAwOworb3V0X2FsbDoKKwlkZXZpY2VfcmVtb3ZlX2ZpbGUoY29u dHJvbGxlciwgJmRldl9hdHRyX3VmcmFtZV9wZXJpb2RpY19tYXgpOworb3V0X25hazoKKwlkZXZp Y2VfcmVtb3ZlX2ZpbGUoY29udHJvbGxlciwgJmRldl9hdHRyX25ha190dW5lX2hzKTsKIG91dDoK IAlyZXR1cm4gaTsKIH0KQEAgLTE3MCw1ICsyMTcsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcmVt b3ZlX3N5c2ZzX2ZpbGVzKHN0cnVjdCBlaGNpX2hjZCAqZWhjaSkKIAlpZiAoIWVoY2lfaXNfVERJ KGVoY2kpKQogCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoY29udHJvbGxlciwgJmRldl9hdHRyX2NvbXBh bmlvbik7CiAKKwlkZXZpY2VfcmVtb3ZlX2ZpbGUoY29udHJvbGxlciwgJmRldl9hdHRyX25ha190 dW5lX2hzKTsKIAlkZXZpY2VfcmVtb3ZlX2ZpbGUoY29udHJvbGxlciwgJmRldl9hdHRyX3VmcmFt ZV9wZXJpb2RpY19tYXgpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9laGNpLmgg Yi9kcml2ZXJzL3VzYi9ob3N0L2VoY2kuaAppbmRleCBjOGU5YTQ4ZTFkNTEuLjFmYjZmMWFkODEy OCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLmgKKysrIGIvZHJpdmVycy91c2Iv aG9zdC9laGNpLmgKQEAgLTE1NCw2ICsxNTQsNyBAQCBzdHJ1Y3QgZWhjaV9oY2QgewkJCS8qIG9u ZSBwZXIgY29udHJvbGxlciAqLwogCWRtYV9hZGRyX3QJCXBlcmlvZGljX2RtYTsKIAlzdHJ1Y3Qg bGlzdF9oZWFkCWludHJfcWhfbGlzdDsKIAl1bnNpZ25lZAkJaV90aHJlc2g7CS8qIHVmcmFtZXMg SEMgbWlnaHQgY2FjaGUgKi8KKwl1MzIJCQluYWtfdHVuZV9oczsKIAogCXVuaW9uIGVoY2lfc2hh ZG93CSpwc2hhZG93OwkvKiBtaXJyb3IgaHcgcGVyaW9kaWMgdGFibGUgKi8KIAlzdHJ1Y3QgbGlz dF9oZWFkCWludHJfdW5saW5rX3dhaXQ7Cg==