From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v4 01/10] arm: remove the ARM HDLCD driver Date: Thu, 31 May 2018 14:48:28 -0700 Message-ID: <1527803317-31750-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+ClJldmlld2VkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgot LS0KQ2hhbmdlcyBpbiB2MzoKLSByZW1vdmUgInNlbGVjdCBWSURFTyIKLSByZW1vdmUgdmV4cHJl c3Nfc3lzY2ZnCkNoYW5nZXMgaW4gdjI6Ci0gcGF0Y2ggYWRkZWQKLS0tCiB4ZW4vYXJjaC9hcm0v S2NvbmZpZyAgICAgICAgICAgICAgICAgICAgIHwgICAyIC0KIHhlbi9hcmNoL2FybS9wbGF0Zm9y bXMvdmV4cHJlc3MuYyAgICAgICAgfCAgMzUgLS0tLQogeGVuL2RyaXZlcnMvdmlkZW8vS2NvbmZp ZyAgICAgICAgICAgICAgICB8ICAgMyAtCiB4ZW4vZHJpdmVycy92aWRlby9NYWtlZmlsZSAgICAg ICAgICAgICAgIHwgICAxIC0KIHhlbi9kcml2ZXJzL3ZpZGVvL2FybV9oZGxjZC5jICAgICAgICAg ICAgfCAyODEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNt LWFybS9wbGF0Zm9ybXMvdmV4cHJlc3MuaCB8ICAgNiAtCiA2IGZpbGVzIGNoYW5nZWQsIDMyOCBk ZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCB4ZW4vZHJpdmVycy92aWRlby9hcm1faGRs Y2QuYwoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9LY29uZmlnIGIveGVuL2FyY2gvYXJtL0tj b25maWcKaW5kZXggODE3NGMwYy4uNGRjN2VmNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL0tj b25maWcKKysrIGIveGVuL2FyY2gvYXJtL0tjb25maWcKQEAgLTE3LDEyICsxNywxMCBAQCBjb25m aWcgQVJNXzY0CiBjb25maWcgQVJNCiAJZGVmX2Jvb2wgeQogCXNlbGVjdCBIQVNfQUxURVJOQVRJ VkUKLQlzZWxlY3QgSEFTX0FSTV9IRExDRAogCXNlbGVjdCBIQVNfREVWSUNFX1RSRUUKIAlzZWxl Y3QgSEFTX01FTV9BQ0NFU1MKIAlzZWxlY3QgSEFTX1BBU1NUSFJPVUdICiAJc2VsZWN0IEhBU19Q RFgKLQlzZWxlY3QgVklERU8KIAogY29uZmlnIEFSQ0hfREVGQ09ORklHCiAJc3RyaW5nCmRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL3ZleHByZXNzLmMgYi94ZW4vYXJjaC9hcm0v cGxhdGZvcm1zL3ZleHByZXNzLmMKaW5kZXggNzA4MzlkNi4uYjYxOTNmNyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy92ZXhwcmVzcy5jCisrKyBiL3hlbi9hcmNoL2FybS9wbGF0 Zm9ybXMvdmV4cHJlc3MuYwpAQCAtNTksNDEgKzU5LDYgQEAgc3RhdGljIGlubGluZSBpbnQgdmV4 cHJlc3NfY3RybF9zdGFydCh1aW50MzJfdCAqc3lzY2ZnLCBpbnQgd3JpdGUsCiAgICAgcmV0dXJu IDA7CiB9CiAKLWludCB2ZXhwcmVzc19zeXNjZmcoaW50IHdyaXRlLCBpbnQgZnVuY3Rpb24sIGlu dCBkZXZpY2UsIHVpbnQzMl90ICpkYXRhKQotewotICAgIHVpbnQzMl90ICpzeXNjZmcgPSAodWlu dDMyX3QgKikgRklYTUFQX0FERFIoRklYTUFQX01JU0MpOwotICAgIGludCByZXQgPSAtMTsKLQot ICAgIHNldF9maXhtYXAoRklYTUFQX01JU0MsIG1hZGRyX3RvX21mbihWMk1fU1lTX01NSU9fQkFT RSksCi0gICAgICAgICAgICAgICBQQUdFX0hZUEVSVklTT1JfTk9DQUNIRSk7Ci0KLSAgICBpZiAo IHN5c2NmZ1tWMk1fU1lTX0NGR0NUUkwvNF0gJiBWMk1fU1lTX0NGR19TVEFSVCApCi0gICAgICAg IGdvdG8gb3V0OwotCi0gICAgLyogY2xlYXIgdGhlIGNvbXBsZXRlIGJpdCBpbiB0aGUgVjJNX1NZ U19DRkdTVEFUIHN0YXR1cyByZWdpc3RlciAqLwotICAgIHN5c2NmZ1tWMk1fU1lTX0NGR1NUQVQv NF0gPSAwOwotCi0gICAgaWYgKCB3cml0ZSApCi0gICAgewotICAgICAgICAvKiB3cml0ZSBkYXRh ICovCi0gICAgICAgIHN5c2NmZ1tWMk1fU1lTX0NGR0RBVEEvNF0gPSAqZGF0YTsKLQotICAgICAg ICBpZiAoIHZleHByZXNzX2N0cmxfc3RhcnQoc3lzY2ZnLCB3cml0ZSwgZnVuY3Rpb24sIGRldmlj ZSkgPCAwICkKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlm ICggdmV4cHJlc3NfY3RybF9zdGFydChzeXNjZmcsIHdyaXRlLCBmdW5jdGlvbiwgZGV2aWNlKSA8 IDAgKQotICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIC8q IHJlYWQgZGF0YSAqLwotICAgICAgICAgICAgKmRhdGEgPSBzeXNjZmdbVjJNX1NZU19DRkdEQVRB LzRdOwotICAgIH0KLQotICAgIHJldCA9IDA7Ci1vdXQ6Ci0gICAgY2xlYXJfZml4bWFwKEZJWE1B UF9NSVNDKTsKLSAgICByZXR1cm4gcmV0OwotfQotCiAvKgogICogVE9ETzogR2V0IGJhc2UgYWRk cmVzcyBmcm9tIHRoZSBkZXZpY2UgdHJlZQogICogU2VlIGFybSx2ZXhwcmVzcy1yZXNldCBub2Rl CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92aWRlby9LY29uZmlnIGIveGVuL2RyaXZlcnMvdmlk ZW8vS2NvbmZpZwppbmRleCA1MmU4Y2U2Li40MWNhNTAzIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVy cy92aWRlby9LY29uZmlnCisrKyBiL3hlbi9kcml2ZXJzL3ZpZGVvL0tjb25maWcKQEAgLTExLDYg KzExLDMgQEAgY29uZmlnIFZHQQogCSAgRW5hYmxlIFZHQSBvdXRwdXQgZm9yIHRoZSBYZW4gaHlw ZXJ2aXNvci4KIAogCSAgSWYgdW5zdXJlLCBzYXkgWS4KLQotY29uZmlnIEhBU19BUk1fSERMQ0QK LQlib29sCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92aWRlby9NYWtlZmlsZSBiL3hlbi9kcml2 ZXJzL3ZpZGVvL01ha2VmaWxlCmluZGV4IDJiYjkxZDYuLjJiM2ZjNzYgMTAwNjQ0Ci0tLSBhL3hl bi9kcml2ZXJzL3ZpZGVvL01ha2VmaWxlCisrKyBiL3hlbi9kcml2ZXJzL3ZpZGVvL01ha2VmaWxl CkBAIC00LDQgKzQsMyBAQCBvYmotJChDT05GSUdfVklERU8pICs9IGZvbnRfOHgxNi5vCiBvYmot JChDT05GSUdfVklERU8pICs9IGZvbnRfOHg4Lm8KIG9iai0kKENPTkZJR19WSURFTykgKz0gbGZi Lm8KIG9iai0kKENPTkZJR19WR0EpICs9IHZlc2Eubwotb2JqLSQoQ09ORklHX0hBU19BUk1fSERM Q0QpICs9IGFybV9oZGxjZC5vCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92aWRlby9hcm1faGRs Y2QuYyBiL3hlbi9kcml2ZXJzL3ZpZGVvL2FybV9oZGxjZC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBlMTE3NGIyLi4wMDAwMDAwCi0tLSBhL3hlbi9kcml2ZXJzL3ZpZGVvL2FybV9o ZGxjZC5jCisrKyAvZGV2L251bGwKQEAgLTEsMjgxICswLDAgQEAKLS8qCi0gKiB4ZW4vZHJpdmVy cy92aWRlby9hcm1faGRsY2QuYwotICoKLSAqIERyaXZlciBmb3IgQVJNIEhETENEIENvbnRyb2xs ZXIKLSAqCi0gKiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBldS5jaXRy aXguY29tPgotICogQ29weXJpZ2h0IChjKSAyMDEzIENpdHJpeCBTeXN0ZW1zLgotICoKLSAqIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQot ICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqLwotCi0j aW5jbHVkZSA8YXNtL2RlbGF5Lmg+Ci0jaW5jbHVkZSA8YXNtL3R5cGVzLmg+Ci0jaW5jbHVkZSA8 YXNtL3BsYXRmb3Jtcy92ZXhwcmVzcy5oPgotI2luY2x1ZGUgPHhlbi9kZXZpY2VfdHJlZS5oPgot I2luY2x1ZGUgPHhlbi9saWJmZHQvbGliZmR0Lmg+Ci0jaW5jbHVkZSA8eGVuL2luaXQuaD4KLSNp bmNsdWRlIDx4ZW4vbW0uaD4KLSNpbmNsdWRlICJmb250LmgiCi0jaW5jbHVkZSAibGZiLmgiCi0j aW5jbHVkZSAibW9kZWxpbmVzLmgiCi0KLSNkZWZpbmUgSERMQ0QgKCh2b2xhdGlsZSB1aW50MzJf dCAqKSBGSVhNQVBfQUREUihGSVhNQVBfTUlTQykpCi0KLSNkZWZpbmUgSERMQ0RfSU5UTUFTSyAg ICAgICAoMHgxOC80KQotI2RlZmluZSBIRExDRF9GQkJBU0UgICAgICAgICgweDEwMC80KQotI2Rl ZmluZSBIRExDRF9MSU5FTEVOR1RIICAgICgweDEwNC80KQotI2RlZmluZSBIRExDRF9MSU5FQ09V TlQgICAgICgweDEwOC80KQotI2RlZmluZSBIRExDRF9MSU5FUElUQ0ggICAgICgweDEwQy80KQot I2RlZmluZSBIRExDRF9CVVMgICAgICAgICAgICgweDExMC80KQotI2RlZmluZSBIRExDRF9WU1lO QyAgICAgICAgICgweDIwMC80KQotI2RlZmluZSBIRExDRF9WQkFDSyAgICAgICAgICgweDIwNC80 KQotI2RlZmluZSBIRExDRF9WREFUQSAgICAgICAgICgweDIwOC80KQotI2RlZmluZSBIRExDRF9W RlJPTlQgICAgICAgICgweDIwQy80KQotI2RlZmluZSBIRExDRF9IU1lOQyAgICAgICAgICgweDIx MC80KQotI2RlZmluZSBIRExDRF9IQkFDSyAgICAgICAgICgweDIxNC80KQotI2RlZmluZSBIRExD RF9IREFUQSAgICAgICAgICgweDIxOC80KQotI2RlZmluZSBIRExDRF9IRlJPTlQgICAgICAgICgw eDIxQy80KQotI2RlZmluZSBIRExDRF9QT0xBUklUSUVTICAgICgweDIyMC80KQotI2RlZmluZSBI RExDRF9DT01NQU5EICAgICAgICgweDIzMC80KQotI2RlZmluZSBIRExDRF9QRiAgICAgICAgICAg ICgweDI0MC80KQotI2RlZmluZSBIRExDRF9SRUQgICAgICAgICAgICgweDI0NC80KQotI2RlZmlu ZSBIRExDRF9HUkVFTiAgICAgICAgICgweDI0OC80KQotI2RlZmluZSBIRExDRF9CTFVFICAgICAg ICAgICgweDI0Qy80KQotCi1zdHJ1Y3QgY29sb3JfbWFza3MgewotICAgIGludCByZWRfc2hpZnQ7 Ci0gICAgaW50IHJlZF9zaXplOwotICAgIGludCBncmVlbl9zaGlmdDsKLSAgICBpbnQgZ3JlZW5f c2l6ZTsKLSAgICBpbnQgYmx1ZV9zaGlmdDsKLSAgICBpbnQgYmx1ZV9zaXplOwotfTsKLQotc3Ry dWN0IHBpeGVsX2NvbG9ycyB7Ci0gICAgY29uc3QgY2hhciogYnBwOwotICAgIHN0cnVjdCBjb2xv cl9tYXNrcyBjb2xvcnM7Ci19OwotCi1zdHJ1Y3QgcGl4ZWxfY29sb3JzIF9faW5pdGRhdGEgY29s b3JzW10gPSB7Ci0gICAgeyAiMTYiLCB7IDAsIDUsIDExLCA1LCA2LCA1IH0gfSwKLSAgICB7ICIy NCIsIHsgMCwgOCwgMTYsIDgsIDgsIDggfSB9LAotICAgIHsgIjMyIiwgeyAwLCA4LCAxNiwgOCwg OCwgOCB9IH0sCi19OwotCi1zdGF0aWMgdm9pZCB2Z2Ffbm9vcF9wdXRzKGNvbnN0IGNoYXIgKnMp IHt9Ci12b2lkICgqdmlkZW9fcHV0cykoY29uc3QgY2hhciAqKSA9IHZnYV9ub29wX3B1dHM7Ci0K LXN0YXRpYyB2b2lkIGhkbGNkX2ZsdXNoKHZvaWQpCi17Ci0gICAgZHNiKHN5KTsKLX0KLQotc3Rh dGljIGludCBfX2luaXQgZ2V0X2NvbG9yX21hc2tzKGNvbnN0IGNoYXIqIGJwcCwgc3RydWN0IGNv bG9yX21hc2tzICoqbWFza3MpCi17Ci0gICAgaW50IGk7Ci0gICAgZm9yICggaSA9IDA7IGkgPCBB UlJBWV9TSVpFKGNvbG9ycyk7IGkrKyApCi0gICAgewotICAgICAgICBpZiAoICFzdHJuY21wKGNv bG9yc1tpXS5icHAsIGJwcCwgMikgKQotICAgICAgICB7Ci0gICAgICAgICAgICAqbWFza3MgPSAm Y29sb3JzW2ldLmNvbG9yczsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0gICAg fQotICAgIHJldHVybiAtMTsKLX0KLQotc3RhdGljIHZvaWQgX19pbml0IHNldF9waXhjbG9jayh1 aW50MzJfdCBwaXhjbG9jaykKLXsKLSAgICBpZiAoIGR0X2ZpbmRfY29tcGF0aWJsZV9ub2RlKE5V TEwsIE5VTEwsICJhcm0sdmV4cHJlc3MiKSApCi0gICAgICAgICAgICB2ZXhwcmVzc19zeXNjZmco MSwgVjJNX1NZU19DRkdfT1NDX0ZVTkMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVjJN X1NZU19DRkdfT1NDNSwgJnBpeGNsb2NrKTsKLX0KLQotdm9pZCBfX2luaXQgdmlkZW9faW5pdCh2 b2lkKQotewotICAgIHN0cnVjdCBsZmJfcHJvcCBsZmJwOwotICAgIHVuc2lnbmVkIGNoYXIgKmxm YjsKLSAgICBwYWRkcl90IGhkbGNkX3N0YXJ0LCBoZGxjZF9zaXplOwotICAgIHBhZGRyX3QgZnJh bWVidWZmZXJfc3RhcnQsIGZyYW1lYnVmZmVyX3NpemU7Ci0gICAgY29uc3QgY2hhciAqbW9kZV9z dHJpbmc7Ci0gICAgY2hhciBfbW9kZV9zdHJpbmdbMTZdOwotICAgIGludCBieXRlc19wZXJfcGl4 ZWwgPSA0OwotICAgIHN0cnVjdCBjb2xvcl9tYXNrcyAqYyA9IE5VTEw7Ci0gICAgc3RydWN0IG1v ZGVsaW5lICp2aWRlb21vZGUgPSBOVUxMOwotICAgIGludCBpOwotICAgIGNvbnN0IHN0cnVjdCBk dF9kZXZpY2Vfbm9kZSAqZGV2OwotICAgIGNvbnN0IF9fYmUzMiAqY2VsbHM7Ci0gICAgdTMyIGxl bnA7Ci0gICAgaW50IHJlczsKLQotICAgIGRldiA9IGR0X2ZpbmRfY29tcGF0aWJsZV9ub2RlKE5V TEwsIE5VTEwsICJhcm0saGRsY2QiKTsKLQotICAgIGlmICggIWRldiApCi0gICAgewotICAgICAg ICBwcmludGsoIkhETENEOiBDYW5ub3QgZmluZCBub2RlIGNvbXBhdGlibGUgd2l0aCBcImFybSxo ZGNsZFwiXG4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHJlcyA9IGR0X2Rldmlj ZV9nZXRfYWRkcmVzcyhkZXYsIDAsICZoZGxjZF9zdGFydCwgJmhkbGNkX3NpemUpOwotICAgIGlm ICggIXJlcyApCi0gICAgewotICAgICAgICBwcmludGsoIkhETENEOiBVbmFibGUgdG8gcmV0cmll dmUgTU1JTyBiYXNlIGFkZHJlc3NcbiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg Y2VsbHMgPSBkdF9nZXRfcHJvcGVydHkoZGV2LCAiZnJhbWVidWZmZXIiLCAmbGVucCk7Ci0gICAg aWYgKCAhY2VsbHMgKQotICAgIHsKLSAgICAgICAgcHJpbnRrKCJIRExDRDogVW5hYmxlIHRvIHJl dHJpZXZlIGZyYW1lYnVmZmVyIHByb3BlcnR5XG4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K LQotICAgIGZyYW1lYnVmZmVyX3N0YXJ0ID0gZHRfbmV4dF9jZWxsKGR0X25fYWRkcl9jZWxscyhk ZXYpLCAmY2VsbHMpOwotICAgIGZyYW1lYnVmZmVyX3NpemUgPSBkdF9uZXh0X2NlbGwoZHRfbl9z aXplX2NlbGxzKGRldiksICZjZWxscyk7Ci0KLSAgICBpZiAoICFoZGxjZF9zdGFydCApCi0gICAg ewotICAgICAgICBwcmludGsoS0VSTl9FUlIgIkhETENEOiBhZGRyZXNzIG1pc3NpbmcgZnJvbSBk ZXZpY2UgdHJlZSwgZGlzYWJsaW5nIGRyaXZlclxuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9 Ci0KLSAgICBpZiAoICFmcmFtZWJ1ZmZlcl9zdGFydCApCi0gICAgewotICAgICAgICBwcmludGso S0VSTl9FUlIgIkhETENEOiBmcmFtZWJ1ZmZlciBhZGRyZXNzIG1pc3NpbmcgZnJvbSBkZXZpY2Ug dHJlZSwgZGlzYWJsaW5nIGRyaXZlclxuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg ICByZXMgPSBkdF9wcm9wZXJ0eV9yZWFkX3N0cmluZyhkZXYsICJtb2RlIiwgJm1vZGVfc3RyaW5n KTsKLSAgICBpZiAoIHJlcyApCi0gICAgewotICAgICAgICBnZXRfY29sb3JfbWFza3MoIjMyIiwg JmMpOwotICAgICAgICBtZW1jcHkoX21vZGVfc3RyaW5nLCAiMTI4MHgxMDI0QDYwIiwgc3RybGVu KCIxMjgweDEwMjRANjAiKSArIDEpOwotICAgICAgICBieXRlc19wZXJfcGl4ZWwgPSA0OwotICAg IH0KLSAgICBlbHNlIGlmICggc3RybGVuKG1vZGVfc3RyaW5nKSA8IHN0cmxlbigiODAweDYwMEA2 MCIpIHx8Ci0gICAgICAgICAgICBzdHJsZW4obW9kZV9zdHJpbmcpID4gc2l6ZW9mKF9tb2RlX3N0 cmluZykgLSAxICkKLSAgICB7Ci0gICAgICAgIHByaW50ayhLRVJOX0VSUiAiSERMQ0Q6IGludmFs aWQgbW9kZWxpbmU9JXNcbiIsIG1vZGVfc3RyaW5nKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0g ZWxzZSB7Ci0gICAgICAgIGNoYXIgKnMgPSBzdHJjaHIobW9kZV9zdHJpbmcsICctJyk7Ci0gICAg ICAgIGlmICggIXMgKQotICAgICAgICB7Ci0gICAgICAgICAgICBwcmludGsoS0VSTl9JTkZPICJI RExDRDogYnBwIG5vdCBmb3VuZCBpbiBtb2RlbGluZSAlcywgYXNzdW1lIDMyIGJwcFxuIiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICBtb2RlX3N0cmluZyk7Ci0gICAgICAgICAgICBnZXRfY29s b3JfbWFza3MoIjMyIiwgJmMpOwotICAgICAgICAgICAgbWVtY3B5KF9tb2RlX3N0cmluZywgbW9k ZV9zdHJpbmcsIHN0cmxlbihtb2RlX3N0cmluZykgKyAxKTsKLSAgICAgICAgICAgIGJ5dGVzX3Bl cl9waXhlbCA9IDQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoIHN0cmxlbihz KSA8IDYgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0VSUiAi SERMQ0Q6IGludmFsaWQgbW9kZSAlc1xuIiwgbW9kZV9zdHJpbmcpOwotICAgICAgICAgICAgICAg IHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHMrKzsKLSAgICAgICAgICAgIGlm ICggZ2V0X2NvbG9yX21hc2tzKHMsICZjKSA8IDAgKQotICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgIHByaW50ayhLRVJOX1dBUk5JTkcgIkhETENEOiB1bnN1cHBvcnRlZCBicHAgJXNcbiIs IHMpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg IGJ5dGVzX3Blcl9waXhlbCA9IHNpbXBsZV9zdHJ0b2xsKHMsIE5VTEwsIDEwKSAvIDg7Ci0gICAg ICAgIH0KLSAgICAgICAgaSA9IHMgLSBtb2RlX3N0cmluZyAtIDE7Ci0gICAgICAgIG1lbWNweShf bW9kZV9zdHJpbmcsIG1vZGVfc3RyaW5nLCBpKTsKLSAgICAgICAgbWVtY3B5KF9tb2RlX3N0cmlu ZyArIGksIG1vZGVfc3RyaW5nICsgaSArIDMsIDQpOwotICAgIH0KLQotICAgIGZvciAoIGkgPSAw OyBpIDwgQVJSQVlfU0laRSh2aWRlb21vZGVzKTsgaSsrICkgewotICAgICAgICBpZiAoICFzdHJj bXAoX21vZGVfc3RyaW5nLCB2aWRlb21vZGVzW2ldLm1vZGUpICkKLSAgICAgICAgewotICAgICAg ICAgICAgdmlkZW9tb2RlID0gJnZpZGVvbW9kZXNbaV07Ci0gICAgICAgICAgICBicmVhazsKLSAg ICAgICAgfQotICAgIH0KLSAgICBpZiAoICF2aWRlb21vZGUgKQotICAgIHsKLSAgICAgICAgcHJp bnRrKEtFUk5fV0FSTklORyAiSERMQ0Q6IHVuc3VwcG9ydGVkIHZpZGVvbW9kZSAlc1xuIiwKLSAg ICAgICAgICAgICAgIF9tb2RlX3N0cmluZyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg ICBpZiAoIGZyYW1lYnVmZmVyX3NpemUgPCBieXRlc19wZXJfcGl4ZWwgKiB2aWRlb21vZGUtPnhy ZXMgKiB2aWRlb21vZGUtPnlyZXMgKQotICAgIHsKLSAgICAgICAgcHJpbnRrKEtFUk5fRVJSICJI RExDRDogdGhlIGZyYW1lYnVmZmVyIGlzIHRvbyBzbWFsbCwgZGlzYWJsaW5nIHRoZSBIRExDRCBk cml2ZXJcbiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcHJpbnRrKEtFUk5fSU5G TyAiSW5pdGlhbGl6aW5nIEhETENEIGRyaXZlclxuIik7Ci0KLSAgICBsZmIgPSBpb3JlbWFwX3dj KGZyYW1lYnVmZmVyX3N0YXJ0LCBmcmFtZWJ1ZmZlcl9zaXplKTsKLSAgICBpZiAoICFsZmIgKQot ICAgIHsKLSAgICAgICAgcHJpbnRrKEtFUk5fRVJSICJDb3VsZG4ndCBtYXAgdGhlIGZyYW1lYnVm ZmVyXG4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtZW1zZXQobGZiLCAweDAwLCBi eXRlc19wZXJfcGl4ZWwgKiB2aWRlb21vZGUtPnhyZXMgKiB2aWRlb21vZGUtPnlyZXMpOwotCi0g ICAgLyogdXNlcyBGSVhNQVBfTUlTQyAqLwotICAgIHNldF9waXhjbG9jayh2aWRlb21vZGUtPnBp eGNsb2NrKTsKLQotICAgIHNldF9maXhtYXAoRklYTUFQX01JU0MsIG1hZGRyX3RvX21mbihoZGxj ZF9zdGFydCksIFBBR0VfSFlQRVJWSVNPUl9OT0NBQ0hFKTsKLSAgICBIRExDRFtIRExDRF9DT01N QU5EXSA9IDA7Ci0KLSAgICBIRExDRFtIRExDRF9MSU5FTEVOR1RIXSA9IHZpZGVvbW9kZS0+eHJl cyAqIGJ5dGVzX3Blcl9waXhlbDsKLSAgICBIRExDRFtIRExDRF9MSU5FQ09VTlRdID0gdmlkZW9t b2RlLT55cmVzIC0gMTsKLSAgICBIRExDRFtIRExDRF9MSU5FUElUQ0hdID0gdmlkZW9tb2RlLT54 cmVzICogYnl0ZXNfcGVyX3BpeGVsOwotICAgIEhETENEW0hETENEX1BGXSA9ICgoYnl0ZXNfcGVy X3BpeGVsIC0gMSkgPDwgMyk7Ci0gICAgSERMQ0RbSERMQ0RfSU5UTUFTS10gPSAwOwotICAgIEhE TENEW0hETENEX0ZCQkFTRV0gPSBmcmFtZWJ1ZmZlcl9zdGFydDsKLSAgICBIRExDRFtIRExDRF9C VVNdID0gMHhmMDAgfCAoMSA8PCA0KTsKLSAgICBIRExDRFtIRExDRF9WQkFDS10gPSB2aWRlb21v ZGUtPnZiYWNrIC0gMTsKLSAgICBIRExDRFtIRExDRF9WU1lOQ10gPSB2aWRlb21vZGUtPnZzeW5j IC0gMTsKLSAgICBIRExDRFtIRExDRF9WREFUQV0gPSB2aWRlb21vZGUtPnlyZXMgLSAxOwotICAg IEhETENEW0hETENEX1ZGUk9OVF0gPSB2aWRlb21vZGUtPnZmcm9udCAtIDE7Ci0gICAgSERMQ0Rb SERMQ0RfSEJBQ0tdID0gdmlkZW9tb2RlLT5oYmFjayAtIDE7Ci0gICAgSERMQ0RbSERMQ0RfSFNZ TkNdID0gdmlkZW9tb2RlLT5oc3luYyAtIDE7Ci0gICAgSERMQ0RbSERMQ0RfSERBVEFdID0gdmlk ZW9tb2RlLT54cmVzIC0gMTsKLSAgICBIRExDRFtIRExDRF9IRlJPTlRdID0gdmlkZW9tb2RlLT5o ZnJvbnQgLSAxOwotICAgIEhETENEW0hETENEX1BPTEFSSVRJRVNdID0gKDEgPDwgMikgfCAoMSA8 PCAzKTsKLSAgICBIRExDRFtIRExDRF9SRURdID0gKGMtPnJlZF9zaXplIDw8IDgpIHwgYy0+cmVk X3NoaWZ0OwotICAgIEhETENEW0hETENEX0dSRUVOXSA9IChjLT5ncmVlbl9zaXplIDw8IDgpIHwg Yy0+Z3JlZW5fc2hpZnQ7Ci0gICAgSERMQ0RbSERMQ0RfQkxVRV0gPSAoYy0+Ymx1ZV9zaXplIDw8 IDgpIHwgYy0+Ymx1ZV9zaGlmdDsKLSAgICBIRExDRFtIRExDRF9DT01NQU5EXSA9IDE7Ci0gICAg Y2xlYXJfZml4bWFwKEZJWE1BUF9NSVNDKTsKLQotICAgIGxmYnAucGl4ZWxfb24gPSAoKCgxIDw8 IGMtPnJlZF9zaXplKSAtIDEpIDw8IGMtPnJlZF9zaGlmdCkgfAotICAgICAgICAoKCgxIDw8IGMt PmdyZWVuX3NpemUpIC0gMSkgPDwgYy0+Z3JlZW5fc2hpZnQpIHwKLSAgICAgICAgKCgoMSA8PCBj LT5ibHVlX3NpemUpIC0gMSkgPDwgYy0+Ymx1ZV9zaGlmdCk7Ci0gICAgbGZicC5sZmIgPSBsZmI7 Ci0gICAgbGZicC5mb250ID0gJmZvbnRfdmdhXzh4MTY7Ci0gICAgbGZicC5iaXRzX3Blcl9waXhl bCA9IGJ5dGVzX3Blcl9waXhlbCo4OwotICAgIGxmYnAuYnl0ZXNfcGVyX2xpbmUgPSBieXRlc19w ZXJfcGl4ZWwqdmlkZW9tb2RlLT54cmVzOwotICAgIGxmYnAud2lkdGggPSB2aWRlb21vZGUtPnhy ZXM7Ci0gICAgbGZicC5oZWlnaHQgPSB2aWRlb21vZGUtPnlyZXM7Ci0gICAgbGZicC5mbHVzaCA9 IGhkbGNkX2ZsdXNoOwotICAgIGxmYnAudGV4dF9jb2x1bW5zID0gdmlkZW9tb2RlLT54cmVzIC8g ODsKLSAgICBsZmJwLnRleHRfcm93cyA9IHZpZGVvbW9kZS0+eXJlcyAvIDE2OwotICAgIGlmICgg bGZiX2luaXQoJmxmYnApIDwgMCApCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgdmlkZW9fcHV0 cyA9IGxmYl9zY3JvbGxfcHV0czsKLX0KLQotdm9pZCBfX2luaXQgdmlkZW9fZW5kYm9vdCh2b2lk KSB7IH0KLQotLyoKLSAqIExvY2FsIHZhcmlhYmxlczoKLSAqIG1vZGU6IEMKLSAqIGMtZmlsZS1z dHlsZTogIkJTRCIKLSAqIGMtYmFzaWMtb2Zmc2V0OiA0Ci0gKiBpbmRlbnQtdGFicy1tb2RlOiBu aWwKLSAqIEVuZDoKLSAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9wbGF0Zm9y bXMvdmV4cHJlc3MuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcGxhdGZvcm1zL3ZleHByZXNzLmgK aW5kZXggNWNmM2FiYS4uOGI0NWQzYSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9w bGF0Zm9ybXMvdmV4cHJlc3MuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3BsYXRmb3Jtcy92 ZXhwcmVzcy5oCkBAIC0yNiwxMiArMjYsNiBAQAogLyogQm9hcmQtc3BlY2lmaWM6IGJhc2UgYWRk cmVzcyBvZiBzeXN0ZW0gY29udHJvbGxlciAqLwogI2RlZmluZSBTUDgxMF9BRERSRVNTIDB4MUMw MjAwMDAKIAotI2lmbmRlZiBfX0FTU0VNQkxZX18KLSNpbmNsdWRlIDx4ZW4vaW50dHlwZXMuaD4K LQotaW50IHZleHByZXNzX3N5c2NmZyhpbnQgd3JpdGUsIGludCBmdW5jdGlvbiwgaW50IGRldmlj ZSwgdWludDMyX3QgKmRhdGEpOwotI2VuZGlmCi0KICNlbmRpZiAvKiBfX0FTTV9BUk1fUExBVEZP Uk1TX1ZFWFBSRVNTX0ggKi8KIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6Ci0tIAoxLjkuMQoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=