From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v3 01/10] arm: remove the ARM HDLCD driver Date: Tue, 22 May 2018 17:24:59 -0700 Message-ID: <1527035108-15051-1-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: julien.grall@arm.com Cc: artem_mygaiev@epam.com, lars.kurth@citrix.com, sstabellini@kernel.org, andrii_anisov@epam.com, dfaggioli@suse.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org VGhlIEFSTSBIRExDRCBkcml2ZXIgaXMgdW51c2VkLiBUaGUgZGV2aWNlIGl0c2VsZiBjYW4gb25s eSBiZSBmb3VuZCBvbgpWaXJ0dWFsIEV4cHJlc3MgYm9hcmRzIHRoYXQgYXJlIGZvciBlYXJseSBk ZXZlbG9wbWVudCBvbmx5LiBSZW1vdmUgdGhlCmRyaXZlci4KCkFsc28gcmVtb3ZlIHZleHByZXNz X3N5c2NmZywgbm93IHVudXNlZCwgYW5kICJzZWxlY3QgVklERU8iIHRoYXQgaXMgbm90CnVzZWZ1 bCBhbnltb3JlLgoKU3VnZ2VzdGVkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0u Y29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5l bC5vcmc+Ci0tLQpDaGFuZ2VzIGluIHYzOgotIHJlbW92ZSAic2VsZWN0IFZJREVPIgotIHJlbW92 ZSB2ZXhwcmVzc19zeXNjZmcKQ2hhbmdlcyBpbiB2MjoKLSBwYXRjaCBhZGRlZAotLS0KIHhlbi9h cmNoL2FybS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgfCAgIDIgLQogeGVuL2FyY2gvYXJt L3BsYXRmb3Jtcy92ZXhwcmVzcy5jICAgICAgICB8ICAzNSAtLS0tCiB4ZW4vZHJpdmVycy92aWRl by9LY29uZmlnICAgICAgICAgICAgICAgIHwgICAzIC0KIHhlbi9kcml2ZXJzL3ZpZGVvL01ha2Vm aWxlICAgICAgICAgICAgICAgfCAgIDEgLQogeGVuL2RyaXZlcnMvdmlkZW8vYXJtX2hkbGNkLmMg ICAgICAgICAgICB8IDI4MSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5j bHVkZS9hc20tYXJtL3BsYXRmb3Jtcy92ZXhwcmVzcy5oIHwgICA2IC0KIDYgZmlsZXMgY2hhbmdl ZCwgMzI4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3ZpZGVv L2FybV9oZGxjZC5jCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL0tjb25maWcgYi94ZW4vYXJj aC9hcm0vS2NvbmZpZwppbmRleCA4MTc0YzBjLi40ZGM3ZWY1IDEwMDY0NAotLS0gYS94ZW4vYXJj aC9hcm0vS2NvbmZpZworKysgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZwpAQCAtMTcsMTIgKzE3LDEw IEBAIGNvbmZpZyBBUk1fNjQKIGNvbmZpZyBBUk0KIAlkZWZfYm9vbCB5CiAJc2VsZWN0IEhBU19B TFRFUk5BVElWRQotCXNlbGVjdCBIQVNfQVJNX0hETENECiAJc2VsZWN0IEhBU19ERVZJQ0VfVFJF RQogCXNlbGVjdCBIQVNfTUVNX0FDQ0VTUwogCXNlbGVjdCBIQVNfUEFTU1RIUk9VR0gKIAlzZWxl Y3QgSEFTX1BEWAotCXNlbGVjdCBWSURFTwogCiBjb25maWcgQVJDSF9ERUZDT05GSUcKIAlzdHJp bmcKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMvdmV4cHJlc3MuYyBiL3hlbi9h cmNoL2FybS9wbGF0Zm9ybXMvdmV4cHJlc3MuYwppbmRleCA3MDgzOWQ2Li5iNjE5M2Y3IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL3ZleHByZXNzLmMKKysrIGIveGVuL2FyY2gv YXJtL3BsYXRmb3Jtcy92ZXhwcmVzcy5jCkBAIC01OSw0MSArNTksNiBAQCBzdGF0aWMgaW5saW5l IGludCB2ZXhwcmVzc19jdHJsX3N0YXJ0KHVpbnQzMl90ICpzeXNjZmcsIGludCB3cml0ZSwKICAg ICByZXR1cm4gMDsKIH0KIAotaW50IHZleHByZXNzX3N5c2NmZyhpbnQgd3JpdGUsIGludCBmdW5j dGlvbiwgaW50IGRldmljZSwgdWludDMyX3QgKmRhdGEpCi17Ci0gICAgdWludDMyX3QgKnN5c2Nm ZyA9ICh1aW50MzJfdCAqKSBGSVhNQVBfQUREUihGSVhNQVBfTUlTQyk7Ci0gICAgaW50IHJldCA9 IC0xOwotCi0gICAgc2V0X2ZpeG1hcChGSVhNQVBfTUlTQywgbWFkZHJfdG9fbWZuKFYyTV9TWVNf TU1JT19CQVNFKSwKLSAgICAgICAgICAgICAgIFBBR0VfSFlQRVJWSVNPUl9OT0NBQ0hFKTsKLQot ICAgIGlmICggc3lzY2ZnW1YyTV9TWVNfQ0ZHQ1RSTC80XSAmIFYyTV9TWVNfQ0ZHX1NUQVJUICkK LSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICAvKiBjbGVhciB0aGUgY29tcGxldGUgYml0IGluIHRo ZSBWMk1fU1lTX0NGR1NUQVQgc3RhdHVzIHJlZ2lzdGVyICovCi0gICAgc3lzY2ZnW1YyTV9TWVNf Q0ZHU1RBVC80XSA9IDA7Ci0KLSAgICBpZiAoIHdyaXRlICkKLSAgICB7Ci0gICAgICAgIC8qIHdy aXRlIGRhdGEgKi8KLSAgICAgICAgc3lzY2ZnW1YyTV9TWVNfQ0ZHREFUQS80XSA9ICpkYXRhOwot Ci0gICAgICAgIGlmICggdmV4cHJlc3NfY3RybF9zdGFydChzeXNjZmcsIHdyaXRlLCBmdW5jdGlv biwgZGV2aWNlKSA8IDAgKQotICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgfSBlbHNlIHsKLSAg ICAgICAgaWYgKCB2ZXhwcmVzc19jdHJsX3N0YXJ0KHN5c2NmZywgd3JpdGUsIGZ1bmN0aW9uLCBk ZXZpY2UpIDwgMCApCi0gICAgICAgICAgICBnb3RvIG91dDsKLSAgICAgICAgZWxzZQotICAgICAg ICAgICAgLyogcmVhZCBkYXRhICovCi0gICAgICAgICAgICAqZGF0YSA9IHN5c2NmZ1tWMk1fU1lT X0NGR0RBVEEvNF07Ci0gICAgfQotCi0gICAgcmV0ID0gMDsKLW91dDoKLSAgICBjbGVhcl9maXht YXAoRklYTUFQX01JU0MpOwotICAgIHJldHVybiByZXQ7Ci19Ci0KIC8qCiAgKiBUT0RPOiBHZXQg YmFzZSBhZGRyZXNzIGZyb20gdGhlIGRldmljZSB0cmVlCiAgKiBTZWUgYXJtLHZleHByZXNzLXJl c2V0IG5vZGUKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZpZGVvL0tjb25maWcgYi94ZW4vZHJp dmVycy92aWRlby9LY29uZmlnCmluZGV4IDUyZThjZTYuLjQxY2E1MDMgMTAwNjQ0Ci0tLSBhL3hl bi9kcml2ZXJzL3ZpZGVvL0tjb25maWcKKysrIGIveGVuL2RyaXZlcnMvdmlkZW8vS2NvbmZpZwpA QCAtMTEsNiArMTEsMyBAQCBjb25maWcgVkdBCiAJICBFbmFibGUgVkdBIG91dHB1dCBmb3IgdGhl IFhlbiBoeXBlcnZpc29yLgogCiAJICBJZiB1bnN1cmUsIHNheSBZLgotCi1jb25maWcgSEFTX0FS TV9IRExDRAotCWJvb2wKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZpZGVvL01ha2VmaWxlIGIv eGVuL2RyaXZlcnMvdmlkZW8vTWFrZWZpbGUKaW5kZXggMmJiOTFkNi4uMmIzZmM3NiAxMDA2NDQK LS0tIGEveGVuL2RyaXZlcnMvdmlkZW8vTWFrZWZpbGUKKysrIGIveGVuL2RyaXZlcnMvdmlkZW8v TWFrZWZpbGUKQEAgLTQsNCArNCwzIEBAIG9iai0kKENPTkZJR19WSURFTykgKz0gZm9udF84eDE2 Lm8KIG9iai0kKENPTkZJR19WSURFTykgKz0gZm9udF84eDgubwogb2JqLSQoQ09ORklHX1ZJREVP KSArPSBsZmIubwogb2JqLSQoQ09ORklHX1ZHQSkgKz0gdmVzYS5vCi1vYmotJChDT05GSUdfSEFT X0FSTV9IRExDRCkgKz0gYXJtX2hkbGNkLm8KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZpZGVv L2FybV9oZGxjZC5jIGIveGVuL2RyaXZlcnMvdmlkZW8vYXJtX2hkbGNkLmMKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGUxMTc0YjIuLjAwMDAwMDAKLS0tIGEveGVuL2RyaXZlcnMvdmlk ZW8vYXJtX2hkbGNkLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyODEgKzAsMCBAQAotLyoKLSAqIHhl bi9kcml2ZXJzL3ZpZGVvL2FybV9oZGxjZC5jCi0gKgotICogRHJpdmVyIGZvciBBUk0gSERMQ0Qg Q29udHJvbGxlcgotICoKLSAqIFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFiZWxsaW5p QGV1LmNpdHJpeC5jb20+Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMTMgQ2l0cml4IFN5c3RlbXMuCi0g KgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCi0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot ICovCi0KLSNpbmNsdWRlIDxhc20vZGVsYXkuaD4KLSNpbmNsdWRlIDxhc20vdHlwZXMuaD4KLSNp bmNsdWRlIDxhc20vcGxhdGZvcm1zL3ZleHByZXNzLmg+Ci0jaW5jbHVkZSA8eGVuL2RldmljZV90 cmVlLmg+Ci0jaW5jbHVkZSA8eGVuL2xpYmZkdC9saWJmZHQuaD4KLSNpbmNsdWRlIDx4ZW4vaW5p dC5oPgotI2luY2x1ZGUgPHhlbi9tbS5oPgotI2luY2x1ZGUgImZvbnQuaCIKLSNpbmNsdWRlICJs ZmIuaCIKLSNpbmNsdWRlICJtb2RlbGluZXMuaCIKLQotI2RlZmluZSBIRExDRCAoKHZvbGF0aWxl IHVpbnQzMl90ICopIEZJWE1BUF9BRERSKEZJWE1BUF9NSVNDKSkKLQotI2RlZmluZSBIRExDRF9J TlRNQVNLICAgICAgICgweDE4LzQpCi0jZGVmaW5lIEhETENEX0ZCQkFTRSAgICAgICAgKDB4MTAw LzQpCi0jZGVmaW5lIEhETENEX0xJTkVMRU5HVEggICAgKDB4MTA0LzQpCi0jZGVmaW5lIEhETENE X0xJTkVDT1VOVCAgICAgKDB4MTA4LzQpCi0jZGVmaW5lIEhETENEX0xJTkVQSVRDSCAgICAgKDB4 MTBDLzQpCi0jZGVmaW5lIEhETENEX0JVUyAgICAgICAgICAgKDB4MTEwLzQpCi0jZGVmaW5lIEhE TENEX1ZTWU5DICAgICAgICAgKDB4MjAwLzQpCi0jZGVmaW5lIEhETENEX1ZCQUNLICAgICAgICAg KDB4MjA0LzQpCi0jZGVmaW5lIEhETENEX1ZEQVRBICAgICAgICAgKDB4MjA4LzQpCi0jZGVmaW5l IEhETENEX1ZGUk9OVCAgICAgICAgKDB4MjBDLzQpCi0jZGVmaW5lIEhETENEX0hTWU5DICAgICAg ICAgKDB4MjEwLzQpCi0jZGVmaW5lIEhETENEX0hCQUNLICAgICAgICAgKDB4MjE0LzQpCi0jZGVm aW5lIEhETENEX0hEQVRBICAgICAgICAgKDB4MjE4LzQpCi0jZGVmaW5lIEhETENEX0hGUk9OVCAg ICAgICAgKDB4MjFDLzQpCi0jZGVmaW5lIEhETENEX1BPTEFSSVRJRVMgICAgKDB4MjIwLzQpCi0j ZGVmaW5lIEhETENEX0NPTU1BTkQgICAgICAgKDB4MjMwLzQpCi0jZGVmaW5lIEhETENEX1BGICAg ICAgICAgICAgKDB4MjQwLzQpCi0jZGVmaW5lIEhETENEX1JFRCAgICAgICAgICAgKDB4MjQ0LzQp Ci0jZGVmaW5lIEhETENEX0dSRUVOICAgICAgICAgKDB4MjQ4LzQpCi0jZGVmaW5lIEhETENEX0JM VUUgICAgICAgICAgKDB4MjRDLzQpCi0KLXN0cnVjdCBjb2xvcl9tYXNrcyB7Ci0gICAgaW50IHJl ZF9zaGlmdDsKLSAgICBpbnQgcmVkX3NpemU7Ci0gICAgaW50IGdyZWVuX3NoaWZ0OwotICAgIGlu dCBncmVlbl9zaXplOwotICAgIGludCBibHVlX3NoaWZ0OwotICAgIGludCBibHVlX3NpemU7Ci19 OwotCi1zdHJ1Y3QgcGl4ZWxfY29sb3JzIHsKLSAgICBjb25zdCBjaGFyKiBicHA7Ci0gICAgc3Ry dWN0IGNvbG9yX21hc2tzIGNvbG9yczsKLX07Ci0KLXN0cnVjdCBwaXhlbF9jb2xvcnMgX19pbml0 ZGF0YSBjb2xvcnNbXSA9IHsKLSAgICB7ICIxNiIsIHsgMCwgNSwgMTEsIDUsIDYsIDUgfSB9LAot ICAgIHsgIjI0IiwgeyAwLCA4LCAxNiwgOCwgOCwgOCB9IH0sCi0gICAgeyAiMzIiLCB7IDAsIDgs IDE2LCA4LCA4LCA4IH0gfSwKLX07Ci0KLXN0YXRpYyB2b2lkIHZnYV9ub29wX3B1dHMoY29uc3Qg Y2hhciAqcykge30KLXZvaWQgKCp2aWRlb19wdXRzKShjb25zdCBjaGFyICopID0gdmdhX25vb3Bf cHV0czsKLQotc3RhdGljIHZvaWQgaGRsY2RfZmx1c2godm9pZCkKLXsKLSAgICBkc2Ioc3kpOwot fQotCi1zdGF0aWMgaW50IF9faW5pdCBnZXRfY29sb3JfbWFza3MoY29uc3QgY2hhciogYnBwLCBz dHJ1Y3QgY29sb3JfbWFza3MgKiptYXNrcykKLXsKLSAgICBpbnQgaTsKLSAgICBmb3IgKCBpID0g MDsgaSA8IEFSUkFZX1NJWkUoY29sb3JzKTsgaSsrICkKLSAgICB7Ci0gICAgICAgIGlmICggIXN0 cm5jbXAoY29sb3JzW2ldLmJwcCwgYnBwLCAyKSApCi0gICAgICAgIHsKLSAgICAgICAgICAgICpt YXNrcyA9ICZjb2xvcnNbaV0uY29sb3JzOwotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAg IH0KLSAgICB9Ci0gICAgcmV0dXJuIC0xOwotfQotCi1zdGF0aWMgdm9pZCBfX2luaXQgc2V0X3Bp eGNsb2NrKHVpbnQzMl90IHBpeGNsb2NrKQotewotICAgIGlmICggZHRfZmluZF9jb21wYXRpYmxl X25vZGUoTlVMTCwgTlVMTCwgImFybSx2ZXhwcmVzcyIpICkKLSAgICAgICAgICAgIHZleHByZXNz X3N5c2NmZygxLCBWMk1fU1lTX0NGR19PU0NfRlVOQywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBWMk1fU1lTX0NGR19PU0M1LCAmcGl4Y2xvY2spOwotfQotCi12b2lkIF9faW5pdCB2aWRl b19pbml0KHZvaWQpCi17Ci0gICAgc3RydWN0IGxmYl9wcm9wIGxmYnA7Ci0gICAgdW5zaWduZWQg Y2hhciAqbGZiOwotICAgIHBhZGRyX3QgaGRsY2Rfc3RhcnQsIGhkbGNkX3NpemU7Ci0gICAgcGFk ZHJfdCBmcmFtZWJ1ZmZlcl9zdGFydCwgZnJhbWVidWZmZXJfc2l6ZTsKLSAgICBjb25zdCBjaGFy ICptb2RlX3N0cmluZzsKLSAgICBjaGFyIF9tb2RlX3N0cmluZ1sxNl07Ci0gICAgaW50IGJ5dGVz X3Blcl9waXhlbCA9IDQ7Ci0gICAgc3RydWN0IGNvbG9yX21hc2tzICpjID0gTlVMTDsKLSAgICBz dHJ1Y3QgbW9kZWxpbmUgKnZpZGVvbW9kZSA9IE5VTEw7Ci0gICAgaW50IGk7Ci0gICAgY29uc3Qg c3RydWN0IGR0X2RldmljZV9ub2RlICpkZXY7Ci0gICAgY29uc3QgX19iZTMyICpjZWxsczsKLSAg ICB1MzIgbGVucDsKLSAgICBpbnQgcmVzOwotCi0gICAgZGV2ID0gZHRfZmluZF9jb21wYXRpYmxl X25vZGUoTlVMTCwgTlVMTCwgImFybSxoZGxjZCIpOwotCi0gICAgaWYgKCAhZGV2ICkKLSAgICB7 Ci0gICAgICAgIHByaW50aygiSERMQ0Q6IENhbm5vdCBmaW5kIG5vZGUgY29tcGF0aWJsZSB3aXRo IFwiYXJtLGhkY2xkXCJcbiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcmVzID0g ZHRfZGV2aWNlX2dldF9hZGRyZXNzKGRldiwgMCwgJmhkbGNkX3N0YXJ0LCAmaGRsY2Rfc2l6ZSk7 Ci0gICAgaWYgKCAhcmVzICkKLSAgICB7Ci0gICAgICAgIHByaW50aygiSERMQ0Q6IFVuYWJsZSB0 byByZXRyaWV2ZSBNTUlPIGJhc2UgYWRkcmVzc1xuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9 Ci0KLSAgICBjZWxscyA9IGR0X2dldF9wcm9wZXJ0eShkZXYsICJmcmFtZWJ1ZmZlciIsICZsZW5w KTsKLSAgICBpZiAoICFjZWxscyApCi0gICAgewotICAgICAgICBwcmludGsoIkhETENEOiBVbmFi bGUgdG8gcmV0cmlldmUgZnJhbWVidWZmZXIgcHJvcGVydHlcbiIpOwotICAgICAgICByZXR1cm47 Ci0gICAgfQotCi0gICAgZnJhbWVidWZmZXJfc3RhcnQgPSBkdF9uZXh0X2NlbGwoZHRfbl9hZGRy X2NlbGxzKGRldiksICZjZWxscyk7Ci0gICAgZnJhbWVidWZmZXJfc2l6ZSA9IGR0X25leHRfY2Vs bChkdF9uX3NpemVfY2VsbHMoZGV2KSwgJmNlbGxzKTsKLQotICAgIGlmICggIWhkbGNkX3N0YXJ0 ICkKLSAgICB7Ci0gICAgICAgIHByaW50ayhLRVJOX0VSUiAiSERMQ0Q6IGFkZHJlc3MgbWlzc2lu ZyBmcm9tIGRldmljZSB0cmVlLCBkaXNhYmxpbmcgZHJpdmVyXG4iKTsKLSAgICAgICAgcmV0dXJu OwotICAgIH0KLQotICAgIGlmICggIWZyYW1lYnVmZmVyX3N0YXJ0ICkKLSAgICB7Ci0gICAgICAg IHByaW50ayhLRVJOX0VSUiAiSERMQ0Q6IGZyYW1lYnVmZmVyIGFkZHJlc3MgbWlzc2luZyBmcm9t IGRldmljZSB0cmVlLCBkaXNhYmxpbmcgZHJpdmVyXG4iKTsKLSAgICAgICAgcmV0dXJuOwotICAg IH0KLQotICAgIHJlcyA9IGR0X3Byb3BlcnR5X3JlYWRfc3RyaW5nKGRldiwgIm1vZGUiLCAmbW9k ZV9zdHJpbmcpOwotICAgIGlmICggcmVzICkKLSAgICB7Ci0gICAgICAgIGdldF9jb2xvcl9tYXNr cygiMzIiLCAmYyk7Ci0gICAgICAgIG1lbWNweShfbW9kZV9zdHJpbmcsICIxMjgweDEwMjRANjAi LCBzdHJsZW4oIjEyODB4MTAyNEA2MCIpICsgMSk7Ci0gICAgICAgIGJ5dGVzX3Blcl9waXhlbCA9 IDQ7Ci0gICAgfQotICAgIGVsc2UgaWYgKCBzdHJsZW4obW9kZV9zdHJpbmcpIDwgc3RybGVuKCI4 MDB4NjAwQDYwIikgfHwKLSAgICAgICAgICAgIHN0cmxlbihtb2RlX3N0cmluZykgPiBzaXplb2Yo X21vZGVfc3RyaW5nKSAtIDEgKQotICAgIHsKLSAgICAgICAgcHJpbnRrKEtFUk5fRVJSICJIRExD RDogaW52YWxpZCBtb2RlbGluZT0lc1xuIiwgbW9kZV9zdHJpbmcpOwotICAgICAgICByZXR1cm47 Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgY2hhciAqcyA9IHN0cmNocihtb2RlX3N0cmluZywgJy0n KTsKLSAgICAgICAgaWYgKCAhcyApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHByaW50ayhLRVJO X0lORk8gIkhETENEOiBicHAgbm90IGZvdW5kIGluIG1vZGVsaW5lICVzLCBhc3N1bWUgMzIgYnBw XG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVfc3RyaW5nKTsKLSAgICAgICAgICAg IGdldF9jb2xvcl9tYXNrcygiMzIiLCAmYyk7Ci0gICAgICAgICAgICBtZW1jcHkoX21vZGVfc3Ry aW5nLCBtb2RlX3N0cmluZywgc3RybGVuKG1vZGVfc3RyaW5nKSArIDEpOwotICAgICAgICAgICAg Ynl0ZXNfcGVyX3BpeGVsID0gNDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmICgg c3RybGVuKHMpIDwgNiApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJpbnRrKEtF Uk5fRVJSICJIRExDRDogaW52YWxpZCBtb2RlICVzXG4iLCBtb2RlX3N0cmluZyk7Ci0gICAgICAg ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcysrOwotICAgICAg ICAgICAgaWYgKCBnZXRfY29sb3JfbWFza3MocywgJmMpIDwgMCApCi0gICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fV0FSTklORyAiSERMQ0Q6IHVuc3VwcG9ydGVkIGJw cCAlc1xuIiwgcyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAg ICAgICAgICAgYnl0ZXNfcGVyX3BpeGVsID0gc2ltcGxlX3N0cnRvbGwocywgTlVMTCwgMTApIC8g ODsKLSAgICAgICAgfQotICAgICAgICBpID0gcyAtIG1vZGVfc3RyaW5nIC0gMTsKLSAgICAgICAg bWVtY3B5KF9tb2RlX3N0cmluZywgbW9kZV9zdHJpbmcsIGkpOwotICAgICAgICBtZW1jcHkoX21v ZGVfc3RyaW5nICsgaSwgbW9kZV9zdHJpbmcgKyBpICsgMywgNCk7Ci0gICAgfQotCi0gICAgZm9y ICggaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHZpZGVvbW9kZXMpOyBpKysgKSB7Ci0gICAgICAgIGlm ICggIXN0cmNtcChfbW9kZV9zdHJpbmcsIHZpZGVvbW9kZXNbaV0ubW9kZSkgKQotICAgICAgICB7 Ci0gICAgICAgICAgICB2aWRlb21vZGUgPSAmdmlkZW9tb2Rlc1tpXTsKLSAgICAgICAgICAgIGJy ZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmICggIXZpZGVvbW9kZSApCi0gICAgewotICAg ICAgICBwcmludGsoS0VSTl9XQVJOSU5HICJIRExDRDogdW5zdXBwb3J0ZWQgdmlkZW9tb2RlICVz XG4iLAotICAgICAgICAgICAgICAgX21vZGVfc3RyaW5nKTsKLSAgICAgICAgcmV0dXJuOwotICAg IH0KLQotICAgIGlmICggZnJhbWVidWZmZXJfc2l6ZSA8IGJ5dGVzX3Blcl9waXhlbCAqIHZpZGVv bW9kZS0+eHJlcyAqIHZpZGVvbW9kZS0+eXJlcyApCi0gICAgewotICAgICAgICBwcmludGsoS0VS Tl9FUlIgIkhETENEOiB0aGUgZnJhbWVidWZmZXIgaXMgdG9vIHNtYWxsLCBkaXNhYmxpbmcgdGhl IEhETENEIGRyaXZlclxuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBwcmludGso S0VSTl9JTkZPICJJbml0aWFsaXppbmcgSERMQ0QgZHJpdmVyXG4iKTsKLQotICAgIGxmYiA9IGlv cmVtYXBfd2MoZnJhbWVidWZmZXJfc3RhcnQsIGZyYW1lYnVmZmVyX3NpemUpOwotICAgIGlmICgg IWxmYiApCi0gICAgewotICAgICAgICBwcmludGsoS0VSTl9FUlIgIkNvdWxkbid0IG1hcCB0aGUg ZnJhbWVidWZmZXJcbiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1lbXNldChsZmIs IDB4MDAsIGJ5dGVzX3Blcl9waXhlbCAqIHZpZGVvbW9kZS0+eHJlcyAqIHZpZGVvbW9kZS0+eXJl cyk7Ci0KLSAgICAvKiB1c2VzIEZJWE1BUF9NSVNDICovCi0gICAgc2V0X3BpeGNsb2NrKHZpZGVv bW9kZS0+cGl4Y2xvY2spOwotCi0gICAgc2V0X2ZpeG1hcChGSVhNQVBfTUlTQywgbWFkZHJfdG9f bWZuKGhkbGNkX3N0YXJ0KSwgUEFHRV9IWVBFUlZJU09SX05PQ0FDSEUpOwotICAgIEhETENEW0hE TENEX0NPTU1BTkRdID0gMDsKLQotICAgIEhETENEW0hETENEX0xJTkVMRU5HVEhdID0gdmlkZW9t b2RlLT54cmVzICogYnl0ZXNfcGVyX3BpeGVsOwotICAgIEhETENEW0hETENEX0xJTkVDT1VOVF0g PSB2aWRlb21vZGUtPnlyZXMgLSAxOwotICAgIEhETENEW0hETENEX0xJTkVQSVRDSF0gPSB2aWRl b21vZGUtPnhyZXMgKiBieXRlc19wZXJfcGl4ZWw7Ci0gICAgSERMQ0RbSERMQ0RfUEZdID0gKChi eXRlc19wZXJfcGl4ZWwgLSAxKSA8PCAzKTsKLSAgICBIRExDRFtIRExDRF9JTlRNQVNLXSA9IDA7 Ci0gICAgSERMQ0RbSERMQ0RfRkJCQVNFXSA9IGZyYW1lYnVmZmVyX3N0YXJ0OwotICAgIEhETENE W0hETENEX0JVU10gPSAweGYwMCB8ICgxIDw8IDQpOwotICAgIEhETENEW0hETENEX1ZCQUNLXSA9 IHZpZGVvbW9kZS0+dmJhY2sgLSAxOwotICAgIEhETENEW0hETENEX1ZTWU5DXSA9IHZpZGVvbW9k ZS0+dnN5bmMgLSAxOwotICAgIEhETENEW0hETENEX1ZEQVRBXSA9IHZpZGVvbW9kZS0+eXJlcyAt IDE7Ci0gICAgSERMQ0RbSERMQ0RfVkZST05UXSA9IHZpZGVvbW9kZS0+dmZyb250IC0gMTsKLSAg ICBIRExDRFtIRExDRF9IQkFDS10gPSB2aWRlb21vZGUtPmhiYWNrIC0gMTsKLSAgICBIRExDRFtI RExDRF9IU1lOQ10gPSB2aWRlb21vZGUtPmhzeW5jIC0gMTsKLSAgICBIRExDRFtIRExDRF9IREFU QV0gPSB2aWRlb21vZGUtPnhyZXMgLSAxOwotICAgIEhETENEW0hETENEX0hGUk9OVF0gPSB2aWRl b21vZGUtPmhmcm9udCAtIDE7Ci0gICAgSERMQ0RbSERMQ0RfUE9MQVJJVElFU10gPSAoMSA8PCAy KSB8ICgxIDw8IDMpOwotICAgIEhETENEW0hETENEX1JFRF0gPSAoYy0+cmVkX3NpemUgPDwgOCkg fCBjLT5yZWRfc2hpZnQ7Ci0gICAgSERMQ0RbSERMQ0RfR1JFRU5dID0gKGMtPmdyZWVuX3NpemUg PDwgOCkgfCBjLT5ncmVlbl9zaGlmdDsKLSAgICBIRExDRFtIRExDRF9CTFVFXSA9IChjLT5ibHVl X3NpemUgPDwgOCkgfCBjLT5ibHVlX3NoaWZ0OwotICAgIEhETENEW0hETENEX0NPTU1BTkRdID0g MTsKLSAgICBjbGVhcl9maXhtYXAoRklYTUFQX01JU0MpOwotCi0gICAgbGZicC5waXhlbF9vbiA9 ICgoKDEgPDwgYy0+cmVkX3NpemUpIC0gMSkgPDwgYy0+cmVkX3NoaWZ0KSB8Ci0gICAgICAgICgo KDEgPDwgYy0+Z3JlZW5fc2l6ZSkgLSAxKSA8PCBjLT5ncmVlbl9zaGlmdCkgfAotICAgICAgICAo KCgxIDw8IGMtPmJsdWVfc2l6ZSkgLSAxKSA8PCBjLT5ibHVlX3NoaWZ0KTsKLSAgICBsZmJwLmxm YiA9IGxmYjsKLSAgICBsZmJwLmZvbnQgPSAmZm9udF92Z2FfOHgxNjsKLSAgICBsZmJwLmJpdHNf cGVyX3BpeGVsID0gYnl0ZXNfcGVyX3BpeGVsKjg7Ci0gICAgbGZicC5ieXRlc19wZXJfbGluZSA9 IGJ5dGVzX3Blcl9waXhlbCp2aWRlb21vZGUtPnhyZXM7Ci0gICAgbGZicC53aWR0aCA9IHZpZGVv bW9kZS0+eHJlczsKLSAgICBsZmJwLmhlaWdodCA9IHZpZGVvbW9kZS0+eXJlczsKLSAgICBsZmJw LmZsdXNoID0gaGRsY2RfZmx1c2g7Ci0gICAgbGZicC50ZXh0X2NvbHVtbnMgPSB2aWRlb21vZGUt PnhyZXMgLyA4OwotICAgIGxmYnAudGV4dF9yb3dzID0gdmlkZW9tb2RlLT55cmVzIC8gMTY7Ci0g ICAgaWYgKCBsZmJfaW5pdCgmbGZicCkgPCAwICkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB2 aWRlb19wdXRzID0gbGZiX3Njcm9sbF9wdXRzOwotfQotCi12b2lkIF9faW5pdCB2aWRlb19lbmRi b290KHZvaWQpIHsgfQotCi0vKgotICogTG9jYWwgdmFyaWFibGVzOgotICogbW9kZTogQwotICog Yy1maWxlLXN0eWxlOiAiQlNEIgotICogYy1iYXNpYy1vZmZzZXQ6IDQKLSAqIGluZGVudC10YWJz LW1vZGU6IG5pbAotICogRW5kOgotICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJt L3BsYXRmb3Jtcy92ZXhwcmVzcy5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wbGF0Zm9ybXMvdmV4 cHJlc3MuaAppbmRleCA1Y2YzYWJhLi44YjQ1ZDNhIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20tYXJtL3BsYXRmb3Jtcy92ZXhwcmVzcy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcGxh dGZvcm1zL3ZleHByZXNzLmgKQEAgLTI2LDEyICsyNiw2IEBACiAvKiBCb2FyZC1zcGVjaWZpYzog YmFzZSBhZGRyZXNzIG9mIHN5c3RlbSBjb250cm9sbGVyICovCiAjZGVmaW5lIFNQODEwX0FERFJF U1MgMHgxQzAyMDAwMAogCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotI2luY2x1ZGUgPHhlbi9pbnR0 eXBlcy5oPgotCi1pbnQgdmV4cHJlc3Nfc3lzY2ZnKGludCB3cml0ZSwgaW50IGZ1bmN0aW9uLCBp bnQgZGV2aWNlLCB1aW50MzJfdCAqZGF0YSk7Ci0jZW5kaWYKLQogI2VuZGlmIC8qIF9fQVNNX0FS TV9QTEFURk9STVNfVkVYUFJFU1NfSCAqLwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKLS0gCjEu OS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==