From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HSJgy-0003GW-94 for qemu-devel@nongnu.org; Fri, 16 Mar 2007 17:10:28 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HSJgw-00039M-VN for qemu-devel@nongnu.org; Fri, 16 Mar 2007 17:10:27 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HSJgw-00038f-ON for qemu-devel@nongnu.org; Fri, 16 Mar 2007 16:10:26 -0500 Received: from an-out-0708.google.com ([209.85.132.251]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1HSJfm-00009c-Qe for qemu-devel@nongnu.org; Fri, 16 Mar 2007 17:09:15 -0400 Received: by an-out-0708.google.com with SMTP id d40so1347507and for ; Fri, 16 Mar 2007 14:09:14 -0700 (PDT) Message-ID: Date: Fri, 16 Mar 2007 22:09:10 +0100 From: "andrzej zaborowski" Sender: balrogg@gmail.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_99190_32422861.1174079350056" Subject: [Qemu-devel] [PATCH] Memory mapped OHCI host with PXA-specific bits. Reply-To: balrogg@gmail.com, qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ------=_Part_99190_32422861.1174079350056 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline This reuses the PCI OHCI code for a IO memory-mapped OHCI host (this is what Intel PXA and Samsung S3C processors have). Also adds PXA-specific things in the controller, in particular four additional registers. I renamed usb_ohci_init to usb_ohci_init_pci for consistency. Also includes the OHCI remote-wakeup interrupt change that was posted to the list earlier (numerous times?). Cheers, Andrew ------=_Part_99190_32422861.1174079350056 Content-Type: text/plain; name=0006-Memory-mapped-OHCI-host-with-PXA-specific-bits.txt; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_ezd6hos0 Content-Disposition: attachment; filename="0006-Memory-mapped-OHCI-host-with-PXA-specific-bits.txt" RnJvbSA1NTQ2NjM1MjNjNWY0NGQ4ZDA2ZThjY2U3OWI3ODQ5MDBmOTIwMzZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyemVqIFphYm9yb3dza2kgPGJhbHJvZ0B6YWJvci5vcmc+ CkRhdGU6IEZyaSwgMTYgTWFyIDIwMDcgMTY6MjU6MTMgKzAxMDAKU3ViamVjdDogW1BBVENIXSBN ZW1vcnkgbWFwcGVkIE9IQ0kgaG9zdCB3aXRoIFBYQS1zcGVjaWZpYyBiaXRzLgoKLS0tCiBody9w cGNfY2hycC5jICAgIHwgICAgMiArLQogaHcvcHBjX3ByZXAuYyAgICB8ICAgIDIgKy0KIGh3L3Jl YWx2aWV3LmMgICAgfCAgICAyICstCiBody91c2Itb2hjaS5jICAgIHwgIDE0MiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogaHcvdXNiLmggICAg ICAgICB8ICAgIDQgKy0KIGh3L3ZlcnNhdGlsZXBiLmMgfCAgICAyICstCiA2IGZpbGVzIGNoYW5n ZWQsIDExNyBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ody9w cGNfY2hycC5jIGIvaHcvcHBjX2NocnAuYwppbmRleCA5MzdiZTE1Li5iMTE5OWUyIDEwMDY0NAot LS0gYS9ody9wcGNfY2hycC5jCisrKyBiL2h3L3BwY19jaHJwLmMKQEAgLTUwMSw3ICs1MDEsNyBA QCBzdGF0aWMgdm9pZCBwcGNfY2hycF9pbml0IChpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFtX3Np emUsIGludCBib290X2RldmljZSwKICAgICB9CiAKICAgICBpZiAodXNiX2VuYWJsZWQpIHsKLSAg ICAgICAgdXNiX29oY2lfaW5pdChwY2lfYnVzLCAzLCAtMSk7CisgICAgICAgIHVzYl9vaGNpX2lu aXRfcGNpKHBjaV9idXMsIDMsIC0xKTsKICAgICB9CiAKICAgICBpZiAoZ3JhcGhpY19kZXB0aCAh PSAxNSAmJiBncmFwaGljX2RlcHRoICE9IDMyICYmIGdyYXBoaWNfZGVwdGggIT0gOCkKZGlmZiAt LWdpdCBhL2h3L3BwY19wcmVwLmMgYi9ody9wcGNfcHJlcC5jCmluZGV4IDI3ZDNkNDguLjMyYTNl NTIgMTAwNjQ0Ci0tLSBhL2h3L3BwY19wcmVwLmMKKysrIGIvaHcvcHBjX3ByZXAuYwpAQCAtNjY2 LDcgKzY2Niw3IEBAIHN0YXRpYyB2b2lkIHBwY19wcmVwX2luaXQgKGludCByYW1fc2l6ZSwgaW50 IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAogI2VuZGlmCiAKICAgICBpZiAodXNiX2Vu YWJsZWQpIHsKLSAgICAgICAgdXNiX29oY2lfaW5pdChwY2lfYnVzLCAzLCAtMSk7CisgICAgICAg IHVzYl9vaGNpX2luaXRfcGNpKHBjaV9idXMsIDMsIC0xKTsKICAgICB9CiAKICAgICBudnJhbSA9 IG00OHQ1OV9pbml0KDgsIDAsIDB4MDA3NCwgTlZSQU1fU0laRSwgNTkpOwpkaWZmIC0tZ2l0IGEv aHcvcmVhbHZpZXcuYyBiL2h3L3JlYWx2aWV3LmMKaW5kZXggNjE5NzM5Yy4uYTU2MDdlNyAxMDA2 NDQKLS0tIGEvaHcvcmVhbHZpZXcuYworKysgYi9ody9yZWFsdmlldy5jCkBAIC01Nyw3ICs1Nyw3 IEBAIHN0YXRpYyB2b2lkIHJlYWx2aWV3X2luaXQoaW50IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9z aXplLCBpbnQgYm9vdF9kZXZpY2UsCiAKICAgICBwY2lfYnVzID0gcGNpX3ZwYl9pbml0KHBpYywg NDgsIDEpOwogICAgIGlmICh1c2JfZW5hYmxlZCkgewotICAgICAgICB1c2Jfb2hjaV9pbml0KHBj aV9idXMsIDMsIC0xKTsKKyAgICAgICAgdXNiX29oY2lfaW5pdF9wY2kocGNpX2J1cywgMywgLTEp OwogICAgIH0KICAgICBzY3NpX2hiYSA9IGxzaV9zY3NpX2luaXQocGNpX2J1cywgLTEpOwogICAg IGZvciAobiA9IDA7IG4gPCBNQVhfRElTS1M7IG4rKykgewpkaWZmIC0tZ2l0IGEvaHcvdXNiLW9o Y2kuYyBiL2h3L3VzYi1vaGNpLmMKaW5kZXggZGUxMTNlOS4uYzAzZThlNyAxMDA2NDQKLS0tIGEv aHcvdXNiLW9oY2kuYworKysgYi9ody91c2Itb2hjaS5jCkBAIC0yLDYgKzIsNyBAQAogICogUUVN VSBVU0IgT0hDSSBFbXVsYXRpb24KICAqIENvcHlyaWdodCAoYykgMjAwNCBHaWFubmkgVGVkZXNj bwogICogQ29weXJpZ2h0IChjKSAyMDA2IENvZGVTb3VyY2VyeQorICogQ29weXJpZ2h0IChjKSAy MDA2IE9wZW5lZGhhbmQgTHRkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTUyLDExICs1MywxNiBA QCB0eXBlZGVmIHN0cnVjdCBPSENJUG9ydCB7CiAgICAgdWludDMyX3QgY3RybDsKIH0gT0hDSVBv cnQ7CiAKK3R5cGVkZWYgdm9pZCAoKm9oY2lfaXJxX3NlcnZpY2VfdCkodm9pZCAqb3BhcXVlLCBp bnQgaXJxLCBpbnQgbGV2ZWwpOworCiB0eXBlZGVmIHN0cnVjdCB7Ci0gICAgc3RydWN0IFBDSURl dmljZSBwY2lfZGV2OworICAgIHZvaWQgKnBpYzsKKyAgICBpbnQgaXJxOworICAgIG9oY2lfaXJx X3NlcnZpY2VfdCBzZXRfaXJxOwogICAgIHRhcmdldF9waHlzX2FkZHJfdCBtZW1fYmFzZTsKICAg ICBpbnQgbWVtOwogICAgIGludCBudW1fcG9ydHM7CisgICAgY29uc3QgY2hhciAqbmFtZTsKIAog ICAgIFFFTVVUaW1lciAqZW9mX3RpbWVyOwogICAgIGludDY0X3Qgc29mX3RpbWU7CkBAIC05MCw2 ICs5NiwxMiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgdWludDMyX3QgcmhzdGF0dXM7CiAgICAg T0hDSVBvcnQgcmhwb3J0W09IQ0lfTUFYX1BPUlRTXTsKIAorICAgIC8qIFBYQTI3eCBOb24tT0hD SSBldmVudHMgKi8KKyAgICB1aW50MzJfdCBoc3RhdHVzOworICAgIHVpbnQzMl90IGhtYXNrOwor ICAgIHVpbnQzMl90IGhyZXNldDsKKyAgICB1aW50MzJfdCBodGVzdDsKKwogICAgIC8qIEFjdGl2 ZSBwYWNrZXRzLiAgKi8KICAgICB1aW50MzJfdCBvbGRfY3RsOwogICAgIFVTQlBhY2tldCB1c2Jf cGFja2V0OwpAQCAtMjU2LDYgKzI2OCw4IEBAIHN0cnVjdCBvaGNpX3RkIHsKICNkZWZpbmUgT0hD SV9DQ19CVUZGRVJPVkVSUlVOICAgICAgIDB4YwogI2RlZmluZSBPSENJX0NDX0JVRkZFUlVOREVS UlVOICAgICAgMHhkCiAKKyNkZWZpbmUgT0hDSV9IUkVTRVRfRlNCSVIgICAgICAgKDEgPDwgMCkK KwogLyogVXBkYXRlIElSUSBsZXZlbHMgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBvaGNpX2ludHJf dXBkYXRlKE9IQ0lTdGF0ZSAqb2hjaSkKIHsKQEAgLTI2NSw3ICsyNzksNyBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgb2hjaV9pbnRyX3VwZGF0ZShPSENJU3RhdGUgKm9oY2kpCiAgICAgICAgIChvaGNp LT5pbnRyX3N0YXR1cyAmIG9oY2ktPmludHIpKQogICAgICAgICBsZXZlbCA9IDE7CiAKLSAgICBw Y2lfc2V0X2lycSgmb2hjaS0+cGNpX2RldiwgMCwgbGV2ZWwpOworICAgIG9oY2ktPnNldF9pcnEo b2hjaS0+cGljLCBvaGNpLT5pcnEsIGxldmVsKTsKIH0KIAogLyogU2V0IGFuIGludGVycnVwdCAq LwpAQCAtMjk1LDYgKzMwOSwxMSBAQCBzdGF0aWMgdm9pZCBvaGNpX2F0dGFjaChVU0JQb3J0ICpw b3J0MSwgVVNCRGV2aWNlICpkZXYpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHBvcnQtPmN0 cmwgJj0gfk9IQ0lfUE9SVF9MU0RBOwogICAgICAgICBwb3J0LT5wb3J0LmRldiA9IGRldjsKKwor ICAgICAgICAvKiBub3RpZnkgb2YgcmVtb3RlLXdha2V1cCAqLworICAgICAgICBpZiAoKHMtPmN0 bCAmIE9IQ0lfQ1RMX0hDRlMpID09IE9IQ0lfVVNCX1NVU1BFTkQpCisgICAgICAgICAgICBvaGNp X3NldF9pbnRlcnJ1cHQocywgT0hDSV9JTlRSX1JEKTsKKwogICAgICAgICAvKiBzZW5kIHRoZSBh dHRhY2ggbWVzc2FnZSAqLwogICAgICAgICB1c2Jfc2VuZF9tc2coZGV2LCBVU0JfTVNHX0FUVEFD SCk7CiAgICAgICAgIGRwcmludGYoInVzYi1vaGNpOiBBdHRhY2hlZCBwb3J0ICVkXG4iLCBwb3J0 MS0+aW5kZXgpOwpAQCAtMzY3LDcgKzM4Niw3IEBAIHN0YXRpYyB2b2lkIG9oY2lfcmVzZXQoT0hD SVN0YXRlICpvaGNpKQogICAgICAgICB1c2JfY2FuY2VsX3BhY2tldCgmb2hjaS0+dXNiX3BhY2tl dCk7CiAgICAgICAgIG9oY2ktPmFzeW5jX3RkID0gMDsKICAgICB9Ci0gICAgZHByaW50ZigidXNi LW9oY2k6IFJlc2V0ICVzXG4iLCBvaGNpLT5wY2lfZGV2Lm5hbWUpOworICAgIGRwcmludGYoInVz Yi1vaGNpOiBSZXNldCAlc1xuIiwgb2hjaS0+bmFtZSk7CiB9CiAKIC8qIEdldCBhbiBhcnJheSBv ZiBkd29yZHMgZnJvbSBtYWluIG1lbW9yeSAqLwpAQCAtNzk1LDEzICs4MTQsMTIgQEAgc3RhdGlj IGludCBvaGNpX2J1c19zdGFydChPSENJU3RhdGUgKm9oY2kpCiAgICAgICAgICAgICAgICAgICAg IG9oY2kpOwogCiAgICAgaWYgKG9oY2ktPmVvZl90aW1lciA9PSBOVUxMKSB7Ci0gICAgICAgIGZw cmludGYoc3RkZXJyLCAidXNiLW9oY2k6ICVzOiBxZW11X25ld190aW1lciBmYWlsZWRcbiIsCi0g ICAgICAgICAgICBvaGNpLT5wY2lfZGV2Lm5hbWUpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwg InVzYi1vaGNpOiAlczogcWVtdV9uZXdfdGltZXIgZmFpbGVkXG4iLCBvaGNpLT5uYW1lKTsKICAg ICAgICAgLyogVE9ETzogU2lnbmFsIHVucmVjb3ZlcmFibGUgZXJyb3IgKi8KICAgICAgICAgcmV0 dXJuIDA7CiAgICAgfQogCi0gICAgZHByaW50ZigidXNiLW9oY2k6ICVzOiBVU0IgT3BlcmF0aW9u YWxcbiIsIG9oY2ktPnBjaV9kZXYubmFtZSk7CisgICAgZHByaW50ZigidXNiLW9oY2k6ICVzOiBV U0IgT3BlcmF0aW9uYWxcbiIsIG9oY2ktPm5hbWUpOwogCiAgICAgb2hjaV9zb2Yob2hjaSk7CiAK QEAgLTg1NCw3ICs4NzIsNyBAQCBzdGF0aWMgdm9pZCBvaGNpX3NldF9mcmFtZV9pbnRlcnZhbChP SENJU3RhdGUgKm9oY2ksIHVpbnQxNl90IHZhbCkKIAogICAgIGlmICh2YWwgIT0gb2hjaS0+Zmkp IHsKICAgICAgICAgZHByaW50ZigidXNiLW9oY2k6ICVzOiBGcmFtZUludGVydmFsID0gMHgleCAo JXUpXG4iLAotICAgICAgICAgICAgb2hjaS0+cGNpX2Rldi5uYW1lLCBvaGNpLT5maSwgb2hjaS0+ ZmkpOworICAgICAgICAgICAgb2hjaS0+bmFtZSwgb2hjaS0+ZmksIG9oY2ktPmZpKTsKICAgICB9 CiAKICAgICBvaGNpLT5maSA9IHZhbDsKQEAgLTg5MiwxMyArOTEwLDEzIEBAIHN0YXRpYyB2b2lk IG9oY2lfc2V0X2N0bChPSENJU3RhdGUgKm9oY2ksIHVpbnQzMl90IHZhbCkKICAgICAgICAgYnJl YWs7CiAgICAgY2FzZSBPSENJX1VTQl9TVVNQRU5EOgogICAgICAgICBvaGNpX2J1c19zdG9wKG9o Y2kpOwotICAgICAgICBkcHJpbnRmKCJ1c2Itb2hjaTogJXM6IFVTQiBTdXNwZW5kZWRcbiIsIG9o Y2ktPnBjaV9kZXYubmFtZSk7CisgICAgICAgIGRwcmludGYoInVzYi1vaGNpOiAlczogVVNCIFN1 c3BlbmRlZFxuIiwgb2hjaS0+bmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT0hDSV9V U0JfUkVTVU1FOgotICAgICAgICBkcHJpbnRmKCJ1c2Itb2hjaTogJXM6IFVTQiBSZXN1bWVcbiIs IG9oY2ktPnBjaV9kZXYubmFtZSk7CisgICAgICAgIGRwcmludGYoInVzYi1vaGNpOiAlczogVVNC IFJlc3VtZVxuIiwgb2hjaS0+bmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgT0hDSV9V U0JfUkVTRVQ6Ci0gICAgICAgIGRwcmludGYoInVzYi1vaGNpOiAlczogVVNCIFJlc2V0XG4iLCBv aGNpLT5wY2lfZGV2Lm5hbWUpOworICAgICAgICBkcHJpbnRmKCJ1c2Itb2hjaTogJXM6IFVTQiBS ZXNldFxuIiwgb2hjaS0+bmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTEwODYs NiArMTEwNCwxOSBAQCBzdGF0aWMgdWludDMyX3Qgb2hjaV9tZW1fcmVhZCh2b2lkICpwdHIsIHRh cmdldF9waHlzX2FkZHJfdCBhZGRyKQogICAgIGNhc2UgMjA6IC8qIEhjUmhTdGF0dXMgKi8KICAg ICAgICAgcmV0dXJuIG9oY2ktPnJoc3RhdHVzOwogCisgICAgLyogUFhBMjd4IHNwZWNpZmljIHJl Z2lzdGVycyAqLworICAgIGNhc2UgMjQ6IC8qIEhjU3RhdHVzICovCisgICAgICAgIHJldHVybiBv aGNpLT5oc3RhdHVzICYgb2hjaS0+aG1hc2s7CisKKyAgICBjYXNlIDI1OiAvKiBIY0hSZXNldCAq LworICAgICAgICByZXR1cm4gb2hjaS0+aHJlc2V0OworCisgICAgY2FzZSAyNjogLyogSGNISW50 ZXJydXB0RW5hYmxlICovCisgICAgICAgIHJldHVybiBvaGNpLT5obWFzazsKKworICAgIGNhc2Ug Mjc6IC8qIEhjSEludGVycnVwdFRlc3QgKi8KKyAgICAgICAgcmV0dXJuIG9oY2ktPmh0ZXN0Owor CiAgICAgZGVmYXVsdDoKICAgICAgICAgZnByaW50ZihzdGRlcnIsICJvaGNpX3JlYWQ6IEJhZCBv ZmZzZXQgJXhcbiIsIChpbnQpYWRkcik7CiAgICAgICAgIHJldHVybiAweGZmZmZmZmZmOwpAQCAt MTE4Nyw2ICsxMjE4LDI0IEBAIHN0YXRpYyB2b2lkIG9oY2lfbWVtX3dyaXRlKHZvaWQgKnB0ciwg dGFyZ2V0X3BoeXNfYWRkcl90IGFkZHIsIHVpbnQzMl90IHZhbCkKICAgICAgICAgb2hjaV9zZXRf aHViX3N0YXR1cyhvaGNpLCB2YWwpOwogICAgICAgICBicmVhazsKIAorICAgIC8qIFBYQTI3eCBz cGVjaWZpYyByZWdpc3RlcnMgKi8KKyAgICBjYXNlIDI0OiAvKiBIY1N0YXR1cyAqLworICAgICAg ICBvaGNpLT5oc3RhdHVzICY9IH4odmFsICYgb2hjaS0+aG1hc2spOworCisgICAgY2FzZSAyNTog LyogSGNIUmVzZXQgKi8KKyAgICAgICAgb2hjaS0+aHJlc2V0ID0gdmFsICYgfk9IQ0lfSFJFU0VU X0ZTQklSOworICAgICAgICBpZiAodmFsICYgT0hDSV9IUkVTRVRfRlNCSVIpCisgICAgICAgICAg ICBvaGNpX3Jlc2V0KG9oY2kpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgMjY6IC8qIEhj SEludGVycnVwdEVuYWJsZSAqLworICAgICAgICBvaGNpLT5obWFzayA9IHZhbDsKKyAgICAgICAg YnJlYWs7CisKKyAgICBjYXNlIDI3OiAvKiBIY0hJbnRlcnJ1cHRUZXN0ICovCisgICAgICAgIG9o Y2ktPmh0ZXN0ID0gdmFsOworICAgICAgICBicmVhazsKKwogICAgIGRlZmF1bHQ6CiAgICAgICAg IGZwcmludGYoc3RkZXJyLCAib2hjaV93cml0ZTogQmFkIG9mZnNldCAleFxuIiwgKGludClhZGRy KTsKICAgICAgICAgYnJlYWs7CkBAIC0xMjA3LDIyICsxMjU2LDExIEBAIHN0YXRpYyBDUFVXcml0 ZU1lbW9yeUZ1bmMgKm9oY2lfd3JpdGVmblszXT17CiAgICAgb2hjaV9tZW1fd3JpdGUKIH07CiAK LXN0YXRpYyB2b2lkIG9oY2lfbWFwZnVuYyhQQ0lEZXZpY2UgKnBjaV9kZXYsIGludCBpLAotICAg ICAgICAgICAgdWludDMyX3QgYWRkciwgdWludDMyX3Qgc2l6ZSwgaW50IHR5cGUpCi17Ci0gICAg T0hDSVN0YXRlICpvaGNpID0gKE9IQ0lTdGF0ZSAqKXBjaV9kZXY7Ci0gICAgb2hjaS0+bWVtX2Jh c2UgPSBhZGRyOwotICAgIGNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1vcnkoYWRkciwgc2l6ZSwg b2hjaS0+bWVtKTsKLX0KLQotdm9pZCB1c2Jfb2hjaV9pbml0KHN0cnVjdCBQQ0lCdXMgKmJ1cywg aW50IG51bV9wb3J0cywgaW50IGRldmZuKQorc3RhdGljIHZvaWQgdXNiX29oY2lfaW5pdChPSENJ U3RhdGUgKm9oY2ksIGludCBudW1fcG9ydHMsIGludCBkZXZmbiwKKyAgICAgICAgICAgIHZvaWQg KnBpYywgaW50IGlycSwgb2hjaV9pcnFfc2VydmljZV90IHNldF9pcnEsIGNvbnN0IGNoYXIgKm5h bWUpCiB7Ci0gICAgT0hDSVN0YXRlICpvaGNpOwotICAgIGludCB2aWQgPSAweDEwNmI7Ci0gICAg aW50IGRpZCA9IDB4MDAzZjsKICAgICBpbnQgaTsKIAotCiAgICAgaWYgKHVzYl9mcmFtZV90aW1l ID09IDApIHsKICNpZiBPSENJX1RJTUVfV0FSUAogICAgICAgICB1c2JfZnJhbWVfdGltZSA9IHRp Y2tzX3Blcl9zZWM7CkBAIC0xMjM5LDggKzEyNzcsNDMgQEAgdm9pZCB1c2Jfb2hjaV9pbml0KHN0 cnVjdCBQQ0lCdXMgKmJ1cywgaW50IG51bV9wb3J0cywgaW50IGRldmZuKQogICAgICAgICAgICAg ICAgIHVzYl9mcmFtZV90aW1lLCB1c2JfYml0X3RpbWUpOwogICAgIH0KIAotICAgIG9oY2kgPSAo T0hDSVN0YXRlICopcGNpX3JlZ2lzdGVyX2RldmljZShidXMsICJPSENJIFVTQiIsIHNpemVvZigq b2hjaSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmZu LCBOVUxMLCBOVUxMKTsKKyAgICBvaGNpLT5tZW0gPSBjcHVfcmVnaXN0ZXJfaW9fbWVtb3J5KDAs IG9oY2lfcmVhZGZuLCBvaGNpX3dyaXRlZm4sIG9oY2kpOworICAgIG9oY2ktPm5hbWUgPSBuYW1l OworCisgICAgb2hjaS0+cGljID0gcGljOworICAgIG9oY2ktPmlycSA9IGlycTsKKyAgICBvaGNp LT5zZXRfaXJxID0gc2V0X2lycTsKKworICAgIG9oY2ktPm51bV9wb3J0cyA9IG51bV9wb3J0czsK KyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3BvcnRzOyBpKyspIHsKKyAgICAgICAgcWVtdV9yZWdp c3Rlcl91c2JfcG9ydCgmb2hjaS0+cmhwb3J0W2ldLnBvcnQsIG9oY2ksIGksIG9oY2lfYXR0YWNo KTsKKyAgICB9CisKKyAgICBvaGNpLT5hc3luY190ZCA9IDA7CisgICAgb2hjaV9yZXNldChvaGNp KTsKK30KKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFBDSURldmljZSBwY2lfZGV2OworICAgIE9I Q0lTdGF0ZSBzdGF0ZTsKK30gT0hDSVBDSVN0YXRlOworCitzdGF0aWMgdm9pZCBvaGNpX21hcGZ1 bmMoUENJRGV2aWNlICpwY2lfZGV2LCBpbnQgaSwKKyAgICAgICAgICAgIHVpbnQzMl90IGFkZHIs IHVpbnQzMl90IHNpemUsIGludCB0eXBlKQoreworICAgIE9IQ0lQQ0lTdGF0ZSAqb2hjaSA9IChP SENJUENJU3RhdGUgKilwY2lfZGV2OworICAgIG9oY2ktPnN0YXRlLm1lbV9iYXNlID0gYWRkcjsK KyAgICBjcHVfcmVnaXN0ZXJfcGh5c2ljYWxfbWVtb3J5KGFkZHIsIHNpemUsIG9oY2ktPnN0YXRl Lm1lbSk7Cit9CisKK3ZvaWQgdXNiX29oY2lfaW5pdF9wY2koc3RydWN0IFBDSUJ1cyAqYnVzLCBp bnQgbnVtX3BvcnRzLCBpbnQgZGV2Zm4pCit7CisgICAgT0hDSVBDSVN0YXRlICpvaGNpOworICAg IGludCB2aWQgPSAweDEwNmI7CisgICAgaW50IGRpZCA9IDB4MDAzZjsKKworICAgIG9oY2kgPSAo T0hDSVBDSVN0YXRlICopcGNpX3JlZ2lzdGVyX2RldmljZShidXMsICJPSENJIFVTQiIsIHNpemVv Zigqb2hjaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRldmZuLCBOVUxMLCBOVUxMKTsKICAgICBpZiAob2hjaSA9PSBOVUxMKSB7CiAgICAgICAgIGZw cmludGYoc3RkZXJyLCAidXNiLW9oY2k6IEZhaWxlZCB0byByZWdpc3RlciBQQ0kgZGV2aWNlXG4i KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTI1NSwxNiArMTMyOCwyMSBAQCB2b2lkIHVzYl9vaGNp X2luaXQoc3RydWN0IFBDSUJ1cyAqYnVzLCBpbnQgbnVtX3BvcnRzLCBpbnQgZGV2Zm4pCiAgICAg b2hjaS0+cGNpX2Rldi5jb25maWdbMHgwYl0gPSAweGM7CiAgICAgb2hjaS0+cGNpX2Rldi5jb25m aWdbMHgzZF0gPSAweDAxOyAvKiBpbnRlcnJ1cHQgcGluIDEgKi8KIAotICAgIG9oY2ktPm1lbSA9 IGNwdV9yZWdpc3Rlcl9pb19tZW1vcnkoMCwgb2hjaV9yZWFkZm4sIG9oY2lfd3JpdGVmbiwgb2hj aSk7CisgICAgdXNiX29oY2lfaW5pdCgmb2hjaS0+c3RhdGUsIG51bV9wb3J0cywgZGV2Zm4sICZv aGNpLT5wY2lfZGV2LAorICAgICAgICAgICAgICAgICAgMCwgKG9oY2lfaXJxX3NlcnZpY2VfdCkg cGNpX3NldF9pcnEsIG9oY2ktPnBjaV9kZXYubmFtZSk7CiAKICAgICBwY2lfcmVnaXN0ZXJfaW9f cmVnaW9uKChzdHJ1Y3QgUENJRGV2aWNlICopb2hjaSwgMCwgMjU2LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUENJX0FERFJFU1NfU1BBQ0VfTUVNLCBvaGNpX21hcGZ1bmMpOworfQogCi0g ICAgb2hjaS0+bnVtX3BvcnRzID0gbnVtX3BvcnRzOwotICAgIGZvciAoaSA9IDA7IGkgPCBudW1f cG9ydHM7IGkrKykgewotICAgICAgICBxZW11X3JlZ2lzdGVyX3VzYl9wb3J0KCZvaGNpLT5yaHBv cnRbaV0ucG9ydCwgb2hjaSwgaSwgb2hjaV9hdHRhY2gpOwotICAgIH0KK3ZvaWQgdXNiX29oY2lf aW5pdF9tZW1pbyh0YXJnZXRfcGh5c19hZGRyX3QgYmFzZSwgaW50IG51bV9wb3J0cywgaW50IGRl dmZuLAorICAgICAgICAgICAgdm9pZCAqcGljLCBpbnQgaXJxKQoreworICAgIE9IQ0lTdGF0ZSAq b2hjaSA9IChPSENJU3RhdGUgKilxZW11X21hbGxvY3ooc2l6ZW9mKE9IQ0lTdGF0ZSkpOwogCi0g ICAgb2hjaS0+YXN5bmNfdGQgPSAwOwotICAgIG9oY2lfcmVzZXQob2hjaSk7CisgICAgdXNiX29o Y2lfaW5pdChvaGNpLCBudW1fcG9ydHMsIGRldmZuLCBwaWMsIGlycSwKKyAgICAgICAgICAgICAg ICAgIHBpY19zZXRfaXJxX25ldywgIk9IQ0kgVVNCIik7CisgICAgb2hjaS0+bWVtX2Jhc2UgPSBi YXNlOworCisgICAgY3B1X3JlZ2lzdGVyX3BoeXNpY2FsX21lbW9yeShvaGNpLT5tZW1fYmFzZSwg MHhmZmYsIG9oY2ktPm1lbSk7CiB9CmRpZmYgLS1naXQgYS9ody91c2IuaCBiL2h3L3VzYi5oCmlu ZGV4IGE2ZDBhZTYuLmFhNTdmMDEgMTAwNjQ0Ci0tLSBhL2h3L3VzYi5oCisrKyBiL2h3L3VzYi5o CkBAIC0yMDYsNyArMjA2LDkgQEAgVVNCRGV2aWNlICp1c2JfaHViX2luaXQoaW50IG5iX3BvcnRz KTsKIHZvaWQgdXNiX3VoY2lfaW5pdChQQ0lCdXMgKmJ1cywgaW50IGRldmZuKTsKIAogLyogdXNi LW9oY2kuYyAqLwotdm9pZCB1c2Jfb2hjaV9pbml0KHN0cnVjdCBQQ0lCdXMgKmJ1cywgaW50IG51 bV9wb3J0cywgaW50IGRldmZuKTsKK3ZvaWQgdXNiX29oY2lfaW5pdF9wY2koc3RydWN0IFBDSUJ1 cyAqYnVzLCBpbnQgbnVtX3BvcnRzLCBpbnQgZGV2Zm4pOwordm9pZCB1c2Jfb2hjaV9pbml0X21l bWlvKHRhcmdldF9waHlzX2FkZHJfdCBiYXNlLCBpbnQgbnVtX3BvcnRzLCBpbnQgZGV2Zm4sCisg ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcGljLCBpbnQgaXJxKTsKIAogLyogdXNiLWxp bnV4LmMgKi8KIFVTQkRldmljZSAqdXNiX2hvc3RfZGV2aWNlX29wZW4oY29uc3QgY2hhciAqZGV2 bmFtZSk7CmRpZmYgLS1naXQgYS9ody92ZXJzYXRpbGVwYi5jIGIvaHcvdmVyc2F0aWxlcGIuYwpp bmRleCAwNTA4NzhkLi41ZDNlODU3IDEwMDY0NAotLS0gYS9ody92ZXJzYXRpbGVwYi5jCisrKyBi L2h3L3ZlcnNhdGlsZXBiLmMKQEAgLTE5NSw3ICsxOTUsNyBAQCBzdGF0aWMgdm9pZCB2ZXJzYXRp bGVfaW5pdChpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwK ICAgICAgICAgfQogICAgIH0KICAgICBpZiAodXNiX2VuYWJsZWQpIHsKLSAgICAgICAgdXNiX29o Y2lfaW5pdChwY2lfYnVzLCAzLCAtMSk7CisgICAgICAgIHVzYl9vaGNpX2luaXRfcGNpKHBjaV9i dXMsIDMsIC0xKTsKICAgICB9CiAgICAgc2NzaV9oYmEgPSBsc2lfc2NzaV9pbml0KHBjaV9idXMs IC0xKTsKICAgICBmb3IgKG4gPSAwOyBuIDwgTUFYX0RJU0tTOyBuKyspIHsKLS0gCjEuNC40LjMK Cg== ------=_Part_99190_32422861.1174079350056--