From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 5/5] drm: zte: add tvenc driver support Date: Mon, 23 Jan 2017 11:10:34 -0500 Message-ID: <20170123161034.GE19505@trickycodes.roam.corp.google.com> References: <1484843100-16284-1-git-send-email-shawnguo@kernel.org> <1484843100-16284-6-git-send-email-shawnguo@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1484843100-16284-6-git-send-email-shawnguo@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Shawn Guo Cc: Mark Rutland , devicetree@vger.kernel.org, Daniel Vetter , Baoyou Xie , dri-devel@lists.freedesktop.org, Rob Herring , Jun Nie List-Id: devicetree@vger.kernel.org T24gRnJpLCBKYW4gMjAsIDIwMTcgYXQgMTI6MjU6MDBBTSArMDgwMCwgU2hhd24gR3VvIHdyb3Rl Ogo+IEZyb206IFNoYXduIEd1byA8c2hhd24uZ3VvQGxpbmFyby5vcmc+Cj4gCj4gSXQgYWRkcyB0 aGUgVFYgRW5jb2RlciBkcml2ZXIgdG8gc3VwcG9ydCB2aWRlbyBvdXRwdXQgaW4gUEFMIGFuZCBO VFNDCj4gZm9ybWF0LiAgVGhlIGRyaXZlciB1c2VzIHN5c2Nvbi9yZWdtYXAgaW50ZXJmYWNlIHRv IGNvbmZpZ3VyZSByZWdpc3Rlcgo+IGJpdCBzaXR0aW5nIGluIFNZU0NUUkwgbW9kdWxlIGZvciBE QUMgcG93ZXIgY29udHJvbC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBTaGF3biBHdW8gPHNoYXduLmd1 b0BsaW5hcm8ub3JnPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0venRlL01ha2VmaWxlICAgICAg ICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS96dGUvenhfZHJtX2Rydi5jICAgIHwgICAxICsK PiAgZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9kcm1fZHJ2LmggICAgfCAgIDEgKwo+ICBkcml2ZXJz L2dwdS9kcm0venRlL3p4X3R2ZW5jLmMgICAgICB8IDQxNiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL3p0ZS96eF90dmVuY19yZWdzLmggfCAg MzEgKysrCj4gIGRyaXZlcnMvZ3B1L2RybS96dGUvenhfdm91LmMgICAgICAgIHwgICA1ICsKPiAg NiBmaWxlcyBjaGFuZ2VkLCA0NTUgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL3p0ZS96eF90dmVuYy5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0venRlL3p4X3R2ZW5jX3JlZ3MuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0venRlL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS9NYWtlZmlsZQo+IGlu ZGV4IDY5OTE4MGJmZDU3Yy4uMDEzNTJiNTZjNDE4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS96dGUvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0venRlL01ha2VmaWxlCj4g QEAgLTIsNiArMiw3IEBAIHp4ZHJtLXkgOj0gXAo+ICAJenhfZHJtX2Rydi5vIFwKPiAgCXp4X2hk bWkubyBcCj4gIAl6eF9wbGFuZS5vIFwKPiArCXp4X3R2ZW5jLm8gXAo+ICAJenhfdm91Lm8KPiAg Cj4gIG9iai0kKENPTkZJR19EUk1fWlRFKSArPSB6eGRybS5vCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS96dGUvenhfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9kcm1f ZHJ2LmMKPiBpbmRleCAzZTc2ZjcyYzkyZmYuLjEzMDgxZmVkOTAyZCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0venRlL3p4X2RybV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS96 dGUvenhfZHJtX2Rydi5jCj4gQEAgLTI0Nyw2ICsyNDcsNyBAQCBzdGF0aWMgaW50IHp4X2RybV9y ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgc3RhdGljIHN0cnVjdCBwbGF0 Zm9ybV9kcml2ZXIgKmRyaXZlcnNbXSA9IHsKPiAgCSZ6eF9jcnRjX2RyaXZlciwKPiAgCSZ6eF9o ZG1pX2RyaXZlciwKPiArCSZ6eF90dmVuY19kcml2ZXIsCj4gIAkmenhfZHJtX3BsYXRmb3JtX2Ry aXZlciwKPiAgfTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfZHJt X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9kcm1fZHJ2LmgKPiBpbmRleCBlNjVjZDE4 YTZjYmEuLjVjYTAzNWIwNzljNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0venRlL3p4 X2RybV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfZHJtX2Rydi5oCj4gQEAg LTEzLDYgKzEzLDcgQEAKPiAgCj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHp4X2Ny dGNfZHJpdmVyOwo+ICBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciB6eF9oZG1pX2RyaXZl cjsKPiArZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgenhfdHZlbmNfZHJpdmVyOwo+ICAK PiAgc3RhdGljIGlubGluZSB1MzIgenhfcmVhZGwodm9pZCBfX2lvbWVtICpyZWcpCj4gIHsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF90dmVuYy5jIGIvZHJpdmVycy9ncHUv ZHJtL3p0ZS96eF90dmVuYy5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAw MDAwMDAuLjVhNmNmZjFmZjhhOAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0venRlL3p4X3R2ZW5jLmMKPiBAQCAtMCwwICsxLDQxNiBAQAo+ICsvKgo+ICsgKiBDb3B5cmln aHQgMjAxNyBMaW5hcm8gTHRkLgo+ICsgKiBDb3B5cmlnaHQgMjAxNyBaVEUgQ29ycG9yYXRpb24u Cj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCj4gKyAqIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ICsgKgo+ICsgKi8KPiArCj4gKyNpbmNs dWRlIDxsaW51eC9jbGsuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2NvbXBvbmVudC5oPgo+ICsjaW5j bHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgo+ICsjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+Cj4g Kwo+ICsjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0v ZHJtX2NydGNfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ICsKPiArI2luY2x1 ZGUgInp4X2RybV9kcnYuaCIKPiArI2luY2x1ZGUgInp4X3R2ZW5jX3JlZ3MuaCIKPiArI2luY2x1 ZGUgInp4X3ZvdS5oIgo+ICsKPiArc3RydWN0IHp4X3R2ZW5jX3B3cmN0cmwgewo+ICsJc3RydWN0 IHJlZ21hcCAqcmVnbWFwOwo+ICsJdTMyIHJlZzsKPiArCXUzMiBtYXNrOwo+ICt9Owo+ICsKPiAr c3RydWN0IHp4X3R2ZW5jIHsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yIGNvbm5lY3RvcjsKPiAr CXN0cnVjdCBkcm1fZW5jb2RlciBlbmNvZGVyOwo+ICsJc3RydWN0IGRldmljZSAqZGV2Owo+ICsJ dm9pZCBfX2lvbWVtICptbWlvOwo+ICsJY29uc3Qgc3RydWN0IHZvdV9pbmYgKmluZjsKPiArCXN0 cnVjdCB6eF90dmVuY19wd3JjdHJsIHB3cmN0cmw7Cj4gK307Cj4gKwo+ICsjZGVmaW5lIHRvX3p4 X3R2ZW5jKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgenhfdHZlbmMsIHgpCj4gKwo+ICtzdHJ1 Y3QgenhfdHZlbmNfbW9kZSB7Cj4gKwljaGFyICpuYW1lOwo+ICsJdTMyIGhkaXNwbGF5Owo+ICsJ dTMyIHZkaXNwbGF5Owo+ICsJdTMyIGhmcDsKPiArCXUzMiBoYnA7Cj4gKwl1MzIgaHN3Owo+ICsJ dTMyIHZmcDsKPiArCXUzMiB2YnA7Cj4gKwl1MzIgdnN3OwoKTGV0J3Mgbm90IGR1cGxpY2F0ZSB0 aGVzZSBmaWVsZHMgYW5kIGRvIGNvbnZlcnNpb25zLiBJIHRoaW5rIHlvdSBzaG91bGQgZW1iZWQg YQpkcm1fZGlzcGxheV9tb2RlIHN0cnVjdCBoZXJlIGluc3RlYWQgYW5kIGp1c3QgcmV0dXJuIGl0 IGluIGdldF9tb2Rlcy4gQ2hlY2sgb3V0CnBhbmVsX2Rlc2MgaW4gZHJpdmVycy9ncHUvZHJtL3Bh bmVsL3BhbmVsLXNpbXBsZS5jLCBJIHRoaW5rIHlvdSBjYW4gZG8gc29tZXRoaW5nCnNpbWlsYXIg aGVyZS4KCj4gKwl1MzIgdmlkZW9faW5mbzsKPiArCXUzMiB2aWRlb19yZXM7Cj4gKwl1MzIgZmll bGQxX3BhcmFtOwo+ICsJdTMyIGZpZWxkMl9wYXJhbTsKPiArCXUzMiBidXJzdF9saW5lX29kZDE7 Cj4gKwl1MzIgYnVyc3RfbGluZV9ldmVuMTsKPiArCXUzMiBidXJzdF9saW5lX29kZDI7Cj4gKwl1 MzIgYnVyc3RfbGluZV9ldmVuMjsKPiArCXUzMiBsaW5lX3RpbWluZ19wYXJhbTsKPiArCXUzMiB3 ZWlnaHRfdmFsdWU7Cj4gKwl1MzIgYmxhbmtfYmxhY2tfbGV2ZWw7Cj4gKwl1MzIgYnVyc3RfbGV2 ZWw7Cj4gKwl1MzIgY29udHJvbF9wYXJhbTsKPiArCXUzMiBzdWJfY2Fycmllcl9waGFzZTE7Cj4g Kwl1MzIgcGhhc2VfbGluZV9pbmNyX2N2YnM7Cj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IHp4X3R2ZW5jX21vZGUgdHZlbmNfbW9kZXNbXSA9IHsKPiArCXsKPiArCQkubmFtZSA9ICJQ QUwiLAo+ICsJCS5oZGlzcGxheSA9IDcyMCwKPiArCQkudmRpc3BsYXkgPSA1NzYsCj4gKwkJLmhm cCA9IDEyLAo+ICsJCS5oYnAgPSAxMzAsCj4gKwkJLmhzdyA9IDIsCj4gKwkJLnZmcCA9IDIsCj4g KwkJLnZicCA9IDIwLAo+ICsJCS52c3cgPSAyLAo+ICsJCS52aWRlb19pbmZvID0gMHgwMDA0MDA0 MCwKPiArCQkudmlkZW9fcmVzID0gMHgwNWE5Yzc2MCwKPiArCQkuZmllbGQxX3BhcmFtID0gMHgw MDA0ZDQxNiwKPiArCQkuZmllbGQyX3BhcmFtID0gMHgwMDA5Yjk0ZiwKPiArCQkuYnVyc3RfbGlu ZV9vZGQxID0gMHgwMDA0ZDQwNiwKPiArCQkuYnVyc3RfbGluZV9ldmVuMSA9IDB4MDAwOWI1M2Us Cj4gKwkJLmJ1cnN0X2xpbmVfb2RkMiA9IDB4MDAwNGQ4MDUsCj4gKwkJLmJ1cnN0X2xpbmVfZXZl bjIgPSAweDAwMDliOTNmLAo+ICsJCS5saW5lX3RpbWluZ19wYXJhbSA9IDB4MDZhOTZmZGYsCj4g KwkJLndlaWdodF92YWx1ZSA9IDB4MDBjMTg4YTAsCj4gKwkJLmJsYW5rX2JsYWNrX2xldmVsID0g MHgwMDAwZmNmYywKPiArCQkuYnVyc3RfbGV2ZWwgPSAweDAwMDAxNTk1LAo+ICsJCS5jb250cm9s X3BhcmFtID0gMHgwMDAwMDAwMSwKPiArCQkuc3ViX2NhcnJpZXJfcGhhc2UxID0gMHgxNTA0YzU2 NiwKPiArCQkucGhhc2VfbGluZV9pbmNyX2N2YnMgPSAweGMwNjhkYjhjLAoKSSBkb24ndCBzdXBw b3NlIHlvdSBjYW4gZGVyaXZlIHRoZXNlIG1hZ2ljIHZhbHVlcyBmcm9tIHRoZSBtb2RlPwoKPiAr CX0sIHsKPiArCQkubmFtZSA9ICJOVFNDIiwKPiArCQkuaGRpc3BsYXkgPSA3MjAsCj4gKwkJLnZk aXNwbGF5ID0gNDgwLAo+ICsJCS5oZnAgPSAxNiwKPiArCQkuaGJwID0gMTIwLAo+ICsJCS5oc3cg PSAyLAo+ICsJCS52ZnAgPSAzLAo+ICsJCS52YnAgPSAxNywKPiArCQkudnN3ID0gMiwKPiArCQku dmlkZW9faW5mbyA9IDB4MDAwNDAwODAsCj4gKwkJLnZpZGVvX3JlcyA9IDB4MDVhODM3NWEsCj4g KwkJLmZpZWxkMV9wYXJhbSA9IDB4MDAwNDE4MTcsCj4gKwkJLmZpZWxkMl9wYXJhbSA9IDB4MDAw ODM1MWUsCj4gKwkJLmJ1cnN0X2xpbmVfb2RkMSA9IDB4MDAwNDEwMDYsCj4gKwkJLmJ1cnN0X2xp bmVfZXZlbjEgPSAweDAwMDgyOTBkLAo+ICsJCS5idXJzdF9saW5lX29kZDIgPSAweDAwMDAwMDAw LAo+ICsJCS5idXJzdF9saW5lX2V2ZW4yID0gMHgwMDAwMDAwMCwKPiArCQkubGluZV90aW1pbmdf cGFyYW0gPSAweDA2YThlZjllLAo+ICsJCS53ZWlnaHRfdmFsdWUgPSAweDAwYjY4MTk3LAo+ICsJ CS5ibGFua19ibGFja19sZXZlbCA9IDB4MDAwMGYwZjAsCj4gKwkJLmJ1cnN0X2xldmVsID0gMHgw MDAwMDA5YywKPiArCQkuY29udHJvbF9wYXJhbSA9IDB4MDAwMDAwMDEsCj4gKwkJLnN1Yl9jYXJy aWVyX3BoYXNlMSA9IDB4MTBmODNlMTAsCj4gKwkJLnBoYXNlX2xpbmVfaW5jcl9jdmJzID0gMHg4 MDAwMDAwMCwKPiArCX0sCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3R2ZW5j X21vZGUgKgo+ICt6eF90dmVuY19maW5kX3ptb2RlKHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlKQo+ICt7Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh0 dmVuY19tb2Rlcyk7IGkrKykgewo+ICsJCWNvbnN0IHN0cnVjdCB6eF90dmVuY19tb2RlICp6bW9k ZSA9ICZ0dmVuY19tb2Rlc1tpXTsKPiArCj4gKwkJaWYgKCFzdHJjbXAobW9kZS0+bmFtZSwgem1v ZGUtPm5hbWUpKQoKZHJtX21vZGVfZXF1YWwoKSBpcyB5b3VyIGZyaWVuZAoKPiArCQkJcmV0dXJu IHptb2RlOwo+ICsJfQo+ICsKPiArCXJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCB6eF90dmVuY19lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwK PiArCQkJCSAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ICsJCQkJICAgICAg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkal9tb2RlKQo+ICt7Cj4gKwlzdHJ1Y3QgenhfdHZl bmMgKnR2ZW5jID0gdG9fenhfdHZlbmMoZW5jb2Rlcik7Cj4gKwljb25zdCBzdHJ1Y3QgenhfdHZl bmNfbW9kZSAqem1vZGU7Cj4gKwlzdHJ1Y3Qgdm91X2Rpdl9jb25maWcgY29uZmlnc1tdID0gewo+ ICsJCXsgVk9VX0RJVl9JTkYsICAgVk9VX0RJVl80IH0sCj4gKwkJeyBWT1VfRElWX1RWRU5DLCBW T1VfRElWXzEgfSwKPiArCQl7IFZPVV9ESVZfTEFZRVIsIFZPVV9ESVZfMiB9LAo+ICsJfTsKPiAr Cj4gKwl6eF92b3VfY29uZmlnX2RpdmlkZXJzKGVuY29kZXItPmNydGMsIGNvbmZpZ3MsIEFSUkFZ X1NJWkUoY29uZmlncykpOwo+ICsKPiArCXptb2RlID0genhfdHZlbmNfZmluZF96bW9kZShtb2Rl KTsKPiArCWlmICghem1vZGUpIHsKPiArCQlEUk1fREVWX0VSUk9SKHR2ZW5jLT5kZXYsICJmYWls ZWQgdG8gZmluZCB6bW9kZVxuIik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCXp4X3dyaXRl bCh0dmVuYy0+bW1pbyArIFZFTkNfVklERU9fSU5GTywgem1vZGUtPnZpZGVvX2luZm8pOwo+ICsJ enhfd3JpdGVsKHR2ZW5jLT5tbWlvICsgVkVOQ19WSURFT19SRVMsIHptb2RlLT52aWRlb19yZXMp Owo+ICsJenhfd3JpdGVsKHR2ZW5jLT5tbWlvICsgVkVOQ19GSUVMRDFfUEFSQU0sIHptb2RlLT5m aWVsZDFfcGFyYW0pOwo+ICsJenhfd3JpdGVsKHR2ZW5jLT5tbWlvICsgVkVOQ19GSUVMRDJfUEFS QU0sIHptb2RlLT5maWVsZDJfcGFyYW0pOwo+ICsJenhfd3JpdGVsKHR2ZW5jLT5tbWlvICsgVkVO Q19MSU5FX09fMSwgem1vZGUtPmJ1cnN0X2xpbmVfb2RkMSk7Cj4gKwl6eF93cml0ZWwodHZlbmMt Pm1taW8gKyBWRU5DX0xJTkVfRV8xLCB6bW9kZS0+YnVyc3RfbGluZV9ldmVuMSk7Cj4gKwl6eF93 cml0ZWwodHZlbmMtPm1taW8gKyBWRU5DX0xJTkVfT18yLCB6bW9kZS0+YnVyc3RfbGluZV9vZGQy KTsKPiArCXp4X3dyaXRlbCh0dmVuYy0+bW1pbyArIFZFTkNfTElORV9FXzIsIHptb2RlLT5idXJz dF9saW5lX2V2ZW4yKTsKPiArCXp4X3dyaXRlbCh0dmVuYy0+bW1pbyArIFZFTkNfTElORV9USU1J TkdfUEFSQU0sCj4gKwkJICB6bW9kZS0+bGluZV90aW1pbmdfcGFyYW0pOwo+ICsJenhfd3JpdGVs KHR2ZW5jLT5tbWlvICsgVkVOQ19XRUlHSFRfVkFMVUUsIHptb2RlLT53ZWlnaHRfdmFsdWUpOwo+ ICsJenhfd3JpdGVsKHR2ZW5jLT5tbWlvICsgVkVOQ19CTEFOS19CTEFDS19MRVZFTCwKPiArCQkg IHptb2RlLT5ibGFua19ibGFja19sZXZlbCk7Cj4gKwl6eF93cml0ZWwodHZlbmMtPm1taW8gKyBW RU5DX0JVUlNUX0xFVkVMLCB6bW9kZS0+YnVyc3RfbGV2ZWwpOwo+ICsJenhfd3JpdGVsKHR2ZW5j LT5tbWlvICsgVkVOQ19DT05UUk9MX1BBUkFNLCB6bW9kZS0+Y29udHJvbF9wYXJhbSk7Cj4gKwl6 eF93cml0ZWwodHZlbmMtPm1taW8gKyBWRU5DX1NVQl9DQVJSSUVSX1BIQVNFMSwKPiArCQkgIHpt b2RlLT5zdWJfY2Fycmllcl9waGFzZTEpOwo+ICsJenhfd3JpdGVsKHR2ZW5jLT5tbWlvICsgVkVO Q19QSEFTRV9MSU5FX0lOQ1JfQ1ZCUywKPiArCQkgIHptb2RlLT5waGFzZV9saW5lX2luY3JfY3Zi cyk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHp4X3R2ZW5jX2VuY29kZXJfZW5hYmxlKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiArewo+ICsJc3RydWN0IHp4X3R2ZW5jICp0dmVuYyA9 IHRvX3p4X3R2ZW5jKGVuY29kZXIpOwo+ICsJc3RydWN0IHp4X3R2ZW5jX3B3cmN0cmwgKnB3cmN0 cmwgPSAmdHZlbmMtPnB3cmN0cmw7Cj4gKwo+ICsJLyogU2V0IGJpdCB0byBwb3dlciB1cCBUVkVO QyBEQUMgKi8KPiArCXJlZ21hcF91cGRhdGVfYml0cyhwd3JjdHJsLT5yZWdtYXAsIHB3cmN0cmwt PnJlZywgcHdyY3RybC0+bWFzaywKPiArCQkJICAgcHdyY3RybC0+bWFzayk7Cj4gKwo+ICsJdm91 X2luZl9lbmFibGUoVk9VX1RWX0VOQywgZW5jb2Rlci0+Y3J0Yyk7Cj4gKwo+ICsJenhfd3JpdGVs KHR2ZW5jLT5tbWlvICsgVkVOQ19FTkFCTEUsIDEpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCB6 eF90dmVuY19lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICt7 Cj4gKwlzdHJ1Y3QgenhfdHZlbmMgKnR2ZW5jID0gdG9fenhfdHZlbmMoZW5jb2Rlcik7Cj4gKwlz dHJ1Y3QgenhfdHZlbmNfcHdyY3RybCAqcHdyY3RybCA9ICZ0dmVuYy0+cHdyY3RybDsKPiArCj4g Kwl6eF93cml0ZWwodHZlbmMtPm1taW8gKyBWRU5DX0VOQUJMRSwgMCk7Cj4gKwo+ICsJdm91X2lu Zl9kaXNhYmxlKFZPVV9UVl9FTkMsIGVuY29kZXItPmNydGMpOwo+ICsKPiArCS8qIENsZWFyIGJp dCB0byBwb3dlciBkb3duIFRWRU5DIERBQyAqLwo+ICsJcmVnbWFwX3VwZGF0ZV9iaXRzKHB3cmN0 cmwtPnJlZ21hcCwgcHdyY3RybC0+cmVnLCBwd3JjdHJsLT5tYXNrLCAwKTsKPiArfQo+ICsKPiAr c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgenhfdHZlbmNfZW5j b2Rlcl9oZWxwZXJfZnVuY3MgPSB7Cj4gKwkuZW5hYmxlCT0genhfdHZlbmNfZW5jb2Rlcl9lbmFi bGUsCj4gKwkuZGlzYWJsZSA9IHp4X3R2ZW5jX2VuY29kZXJfZGlzYWJsZSwKPiArCS5tb2RlX3Nl dCA9IHp4X3R2ZW5jX2VuY29kZXJfbW9kZV9zZXQsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIHp4X3R2ZW5jX2VuY29kZXJfZnVuY3MgPSB7Cj4gKwku ZGVzdHJveSA9IGRybV9lbmNvZGVyX2NsZWFudXAsCj4gK307Cj4gKwo+ICtzdGF0aWMgdm9pZCB6 eF90dmVuY19tb2RlX3RvX2RybV9tb2RlKGNvbnN0IHN0cnVjdCB6eF90dmVuY19tb2RlICp6bW9k ZSwKPiArCQkJCSAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ICt7Cj4gKwlz dHJjcHkobW9kZS0+bmFtZSwgem1vZGUtPm5hbWUpOwoKQ29uc2lkZXIgZHJtX21vZGVfc2V0X25h bWUoKSBpbnN0ZWFkIG9mIHJvbGxpbmcgeW91ciBvd24gbmFtZXMKCj4gKwo+ICsJbW9kZS0+dHlw ZSA9IERSTV9NT0RFX1RZUEVfRFJJVkVSOwo+ICsJbW9kZS0+ZmxhZ3MgPSBEUk1fTU9ERV9GTEFH X0lOVEVSTEFDRTsKPiArCW1vZGUtPmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTkhTWU5DIHwgRFJN X01PREVfRkxBR19OVlNZTkM7Cj4gKwo+ICsJLyoKPiArCSAqIFRoZSBDUk0gY2Fubm90IGRpcmVj dGx5IHByb3ZpZGUgc3VjaCBhIGxvdyByYXRlLCBhbmQgd2UgaGF2ZSB0bwo+ICsJICogYXNrIGEg bXVsdGlmbGllZCByYXRlIGZyb20gQ1JNIGFuZCB1c2UgdGhlIGRpdmlkZXIgaW4gVk9VIHRvIGdl dAoKcy9tdWx0aWZpZWQvbXVsdGlwbGllZC8KCj4gKwkgKiB0aGUgZGlzaXJlZCBvbmUuCgpzL2Rp c2lyZWQvZGVzaXJlZC8KCj4gKwkgKi8KPiArCW1vZGUtPmNsb2NrID0gMTM1MDAgKiA0OwoKSSBk b24ndCB0aGluayB0aGlzIHNob3VsZCBiZSBoYXJkY29kZWQgYXQgcnVudGltZSwgc3RpY2sgaXQg aW4gdGhlIG1vZGVzIGFib3ZlCgo+ICsKPiArCW1vZGUtPmhkaXNwbGF5ID0gem1vZGUtPmhkaXNw bGF5Owo+ICsJbW9kZS0+aHN5bmNfc3RhcnQgPSBtb2RlLT5oZGlzcGxheSArIHptb2RlLT5oZnA7 Cj4gKwltb2RlLT5oc3luY19lbmQgPSBtb2RlLT5oc3luY19zdGFydCArIHptb2RlLT5oc3c7Cj4g Kwltb2RlLT5odG90YWwgPSBtb2RlLT5oc3luY19lbmQgKyB6bW9kZS0+aGJwOwo+ICsKPiArCW1v ZGUtPnZkaXNwbGF5ID0gem1vZGUtPnZkaXNwbGF5Owo+ICsJbW9kZS0+dnN5bmNfc3RhcnQgPSBt b2RlLT52ZGlzcGxheSArIHptb2RlLT52ZnA7Cj4gKwltb2RlLT52c3luY19lbmQgPSBtb2RlLT52 c3luY19zdGFydCArIHptb2RlLT52c3c7Cj4gKwltb2RlLT52dG90YWwgPSBtb2RlLT52c3luY19l bmQgKyB6bW9kZS0+dmJwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHp4X3R2ZW5jX2Nvbm5lY3Rv cl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3Ry dWN0IHp4X3R2ZW5jICp0dmVuYyA9IHRvX3p4X3R2ZW5jKGNvbm5lY3Rvcik7Cj4gKwlzdHJ1Y3Qg ZGV2aWNlICpkZXYgPSB0dmVuYy0+ZGV2Owo+ICsJaW50IGk7Cj4gKwo+ICsJZm9yIChpID0gMDsg aSA8IEFSUkFZX1NJWkUodHZlbmNfbW9kZXMpOyBpKyspIHsKPiArCQlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZTsKPiArCQljb25zdCBzdHJ1Y3QgenhfdHZlbmNfbW9kZSAqem1vZGUgPSAm dHZlbmNfbW9kZXNbaV07Cj4gKwo+ICsJCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGUoY29ubmVjdG9y LT5kZXYpOwo+ICsJCWlmICghbW9kZSkgewo+ICsJCQlEUk1fREVWX0VSUk9SKGRldiwgImZhaWxl ZCB0byBjcmVhdGUgZHJtIG1vZGVcbiIpOwo+ICsJCQlyZXR1cm4gMDsKPiArCQl9Cj4gKwo+ICsJ CXp4X3R2ZW5jX21vZGVfdG9fZHJtX21vZGUoem1vZGUsIG1vZGUpOwo+ICsJCWRybV9tb2RlX3By b2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKPiArCX0KPiArCj4gKwlyZXR1cm4gaTsKPiArfQo+ ICsKPiArc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzCj4gK3p4X3R2ZW5jX2Nvbm5lY3Rvcl9t b2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCSAgICAgIHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ICt7CgpZb3UgcHJvYmFibHkgd2FudCB0byBk byBhIHNhbml0eSBjaGVjayB0byBlbnN1cmUgdGhlIG1vZGUgaXMgaW4geW91ciBsaXN0IGFib3Zl CihhbmQgbm90IHVzZXItc3VibWl0dGVkKS4KCj4gKwlyZXR1cm4gTU9ERV9PSzsKPiArfQo+ICsK PiArc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB6eF90dmVuY19jb25u ZWN0b3JfaGVscGVyX2Z1bmNzID0gewo+ICsJLmdldF9tb2RlcyA9IHp4X3R2ZW5jX2Nvbm5lY3Rv cl9nZXRfbW9kZXMsCj4gKwkubW9kZV92YWxpZCA9IHp4X3R2ZW5jX2Nvbm5lY3Rvcl9tb2RlX3Zh bGlkLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNz IHp4X3R2ZW5jX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiArCS5kcG1zID0gZHJtX2F0b21pY19oZWxw ZXJfY29ubmVjdG9yX2RwbXMsCj4gKwkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2lu Z2xlX2Nvbm5lY3Rvcl9tb2RlcywKPiArCS5kZXN0cm95ID0gZHJtX2Nvbm5lY3Rvcl9jbGVhbnVw LAo+ICsJLnJlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3Jlc2V0LAo+ICsJLmF0 b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGlj YXRlX3N0YXRlLAo+ICsJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJf Y29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IHp4X3R2ZW5j X3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCB6eF90dmVuYyAqdHZlbmMp Cj4gK3sKPiArCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZ0dmVuYy0+ZW5jb2RlcjsK PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmdHZlbmMtPmNvbm5lY3RvcjsK PiArCj4gKwkvKgo+ICsJICogVGhlIHR2ZW5jIGlzIGRlc2lnbmVkIHRvIHVzZSBhdXggY2hhbm5l bCwgYXMgdGhlcmUgaXMgYSBkZWZsaWNrZXIKPiArCSAqIGJsb2NrIGZvciB0aGUgY2hhbm5lbC4K PiArCSAqLwo+ICsJZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgPSBCSVQoMSk7Cj4gKwo+ICsJZHJt X2VuY29kZXJfaW5pdChkcm0sIGVuY29kZXIsICZ6eF90dmVuY19lbmNvZGVyX2Z1bmNzLAo+ICsJ CQkgRFJNX01PREVfRU5DT0RFUl9UVkRBQywgTlVMTCk7Cj4gKwlkcm1fZW5jb2Rlcl9oZWxwZXJf YWRkKGVuY29kZXIsICZ6eF90dmVuY19lbmNvZGVyX2hlbHBlcl9mdW5jcyk7Cj4gKwo+ICsJY29u bmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dlZCA9IHRydWU7Cj4gKwo+ICsJZHJtX2Nvbm5lY3Rvcl9p bml0KGRybSwgY29ubmVjdG9yLCAmenhfdHZlbmNfY29ubmVjdG9yX2Z1bmNzLAo+ICsJCQkgICBE Uk1fTU9ERV9DT05ORUNUT1JfQ29tcG9zaXRlKTsKPiArCWRybV9jb25uZWN0b3JfaGVscGVyX2Fk ZChjb25uZWN0b3IsICZ6eF90dmVuY19jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKPiArCj4gKwlk cm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoY29ubmVjdG9yLCBlbmNvZGVyKTsKPiAr Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCB6eF90dmVuY19wd3JjdHJsX2lu aXQoc3RydWN0IHp4X3R2ZW5jICp0dmVuYykKPiArewo+ICsJc3RydWN0IHp4X3R2ZW5jX3B3cmN0 cmwgKnB3cmN0cmwgPSAmdHZlbmMtPnB3cmN0cmw7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSB0 dmVuYy0+ZGV2Owo+ICsJc3RydWN0IG9mX3BoYW5kbGVfYXJncyBvdXRfYXJnczsKPiArCXN0cnVj dCByZWdtYXAgKnJlZ21hcDsKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0gb2ZfcGFyc2VfcGhh bmRsZV93aXRoX2ZpeGVkX2FyZ3MoZGV2LT5vZl9ub2RlLAo+ICsJCQkJInp0ZSx0dmVuYy1wb3dl ci1jb250cm9sIiwgMiwgMCwgJm91dF9hcmdzKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJl dDsKPiArCj4gKwlyZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAob3V0X2FyZ3MubnApOwo+ ICsJaWYgKElTX0VSUihyZWdtYXApKSB7Cj4gKwkJcmV0ID0gUFRSX0VSUihyZWdtYXApOwo+ICsJ CWdvdG8gb3V0Owo+ICsJfQo+ICsKPiArCXB3cmN0cmwtPnJlZ21hcCA9IHJlZ21hcDsKPiArCXB3 cmN0cmwtPnJlZyA9IG91dF9hcmdzLmFyZ3NbMF07Cj4gKwlwd3JjdHJsLT5tYXNrID0gb3V0X2Fy Z3MuYXJnc1sxXTsKPiArCj4gK291dDoKPiArCW9mX25vZGVfcHV0KG91dF9hcmdzLm5wKTsKPiAr CXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgenhfdHZlbmNfYmluZChzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiArewo+ICsJ c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpOwo+ ICsJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGRhdGE7Cj4gKwlzdHJ1Y3QgcmVzb3VyY2UgKnJl czsKPiArCXN0cnVjdCB6eF90dmVuYyAqdHZlbmM7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXR2ZW5j ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCp0dmVuYyksIEdGUF9LRVJORUwpOwo+ICsJaWYg KCF0dmVuYykKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwl0dmVuYy0+ZGV2ID0gZGV2Owo+ ICsJZGV2X3NldF9kcnZkYXRhKGRldiwgdHZlbmMpOwo+ICsKPiArCXJlcyA9IHBsYXRmb3JtX2dl dF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Cj4gKwl0dmVuYy0+bW1pbyA9IGRl dm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4gKwlpZiAoSVNfRVJSKHR2ZW5jLT5tbWlv KSkgewo+ICsJCXJldCA9IFBUUl9FUlIodHZlbmMtPm1taW8pOwo+ICsJCURSTV9ERVZfRVJST1Io ZGV2LCAiZmFpbGVkIHRvIHJlbWFwIHR2ZW5jIHJlZ2lvbjogJWRcbiIsIHJldCk7Cj4gKwkJcmV0 dXJuIHJldDsKPiArCX0KPiArCj4gKwlyZXQgPSB6eF90dmVuY19wd3JjdHJsX2luaXQodHZlbmMp Owo+ICsJaWYgKHJldCkgewo+ICsJCURSTV9ERVZfRVJST1IoZGV2LCAiZmFpbGVkIHRvIGluaXQg cG93ZXIgY29udHJvbDogJWRcbiIsIHJldCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4g KwlyZXQgPSB6eF90dmVuY19yZWdpc3Rlcihkcm0sIHR2ZW5jKTsKPiArCWlmIChyZXQpIHsKPiAr CQlEUk1fREVWX0VSUk9SKGRldiwgImZhaWxlZCB0byByZWdpc3RlciB0dmVuYzogJWRcbiIsIHJl dCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAr c3RhdGljIHZvaWQgenhfdHZlbmNfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl dmljZSAqbWFzdGVyLAo+ICsJCQkgICAgdm9pZCAqZGF0YSkKPiArewo+ICsJc3RydWN0IHp4X3R2 ZW5jICp0dmVuYyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArCXR2ZW5jLT5jb25uZWN0 b3IuZnVuY3MtPmRlc3Ryb3koJnR2ZW5jLT5jb25uZWN0b3IpOwo+ICsJdHZlbmMtPmVuY29kZXIu ZnVuY3MtPmRlc3Ryb3koJnR2ZW5jLT5lbmNvZGVyKTsKCkkgdGhpbmsgZHJtX21vZGVfY29uZmln X2NsZWFudXAoKSBzaG91bGQgdGFrZSBjYXJlIG9mIGNhbGxpbmcgdGhlc2UKCj4gK30KPiArCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X29wcyB6eF90dmVuY19jb21wb25lbnRfb3Bz ID0gewo+ICsJLmJpbmQgPSB6eF90dmVuY19iaW5kLAo+ICsJLnVuYmluZCA9IHp4X3R2ZW5jX3Vu YmluZCwKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgenhfdHZlbmNfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiArewo+ICsJcmV0dXJuIGNvbXBvbmVudF9hZGQoJnBkZXYtPmRl diwgJnp4X3R2ZW5jX2NvbXBvbmVudF9vcHMpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHp4X3R2 ZW5jX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICt7Cj4gKwljb21wb25l bnRfZGVsKCZwZGV2LT5kZXYsICZ6eF90dmVuY19jb21wb25lbnRfb3BzKTsKPiArCXJldHVybiAw Owo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB6eF90dmVuY19v Zl9tYXRjaFtdID0gewo+ICsJeyAuY29tcGF0aWJsZSA9ICJ6dGUsengyOTY3MTgtdHZlbmMiLCB9 LAo+ICsJeyAvKiBlbmQgKi8gfSwKPiArfTsKPiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgenhf dHZlbmNfb2ZfbWF0Y2gpOwo+ICsKPiArc3RydWN0IHBsYXRmb3JtX2RyaXZlciB6eF90dmVuY19k cml2ZXIgPSB7Cj4gKwkucHJvYmUgPSB6eF90dmVuY19wcm9iZSwKPiArCS5yZW1vdmUgPSB6eF90 dmVuY19yZW1vdmUsCj4gKwkuZHJpdmVyCT0gewo+ICsJCS5uYW1lID0gInp4LXR2ZW5jIiwKPiAr CQkub2ZfbWF0Y2hfdGFibGUJPSB6eF90dmVuY19vZl9tYXRjaCwKPiArCX0sCj4gK307Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfdHZlbmNfcmVncy5oIGIvZHJpdmVycy9n cHUvZHJtL3p0ZS96eF90dmVuY19yZWdzLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4 IDAwMDAwMDAwMDAwMC4uYmQ5MWY1ZGNjMWYzCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS96dGUvenhfdHZlbmNfcmVncy5oCj4gQEAgLTAsMCArMSwzMSBAQAo+ICsvKgo+ ICsgKiBDb3B5cmlnaHQgMjAxNyBMaW5hcm8gTHRkLgo+ICsgKiBDb3B5cmlnaHQgMjAxNyBaVEUg Q29ycG9yYXRpb24uCj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCj4gKyAq IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ICsgKgo+ICsgKi8K PiArCj4gKyNpZm5kZWYgX19aWF9UVkVOQ19SRUdTX0hfXwo+ICsjZGVmaW5lIF9fWlhfVFZFTkNf UkVHU19IX18KPiArCj4gKyNkZWZpbmUgVkVOQ19WSURFT19JTkZPCQkJMHgwNAo+ICsjZGVmaW5l IFZFTkNfVklERU9fUkVTCQkJMHgwOAo+ICsjZGVmaW5lIFZFTkNfRklFTEQxX1BBUkFNCQkweDEw Cj4gKyNkZWZpbmUgVkVOQ19GSUVMRDJfUEFSQU0JCTB4MTQKPiArI2RlZmluZSBWRU5DX0xJTkVf T18xCQkJMHgxOAo+ICsjZGVmaW5lIFZFTkNfTElORV9FXzEJCQkweDFjCj4gKyNkZWZpbmUgVkVO Q19MSU5FX09fMgkJCTB4MjAKPiArI2RlZmluZSBWRU5DX0xJTkVfRV8yCQkJMHgyNAo+ICsjZGVm aW5lIFZFTkNfTElORV9USU1JTkdfUEFSQU0JCTB4MjgKPiArI2RlZmluZSBWRU5DX1dFSUdIVF9W QUxVRQkJMHgyYwo+ICsjZGVmaW5lIFZFTkNfQkxBTktfQkxBQ0tfTEVWRUwJCTB4MzAKPiArI2Rl ZmluZSBWRU5DX0JVUlNUX0xFVkVMCQkweDM0Cj4gKyNkZWZpbmUgVkVOQ19DT05UUk9MX1BBUkFN CQkweDNjCj4gKyNkZWZpbmUgVkVOQ19TVUJfQ0FSUklFUl9QSEFTRTEJCTB4NDAKPiArI2RlZmlu ZSBWRU5DX1BIQVNFX0xJTkVfSU5DUl9DVkJTCTB4NDgKPiArI2RlZmluZSBWRU5DX0VOQUJMRQkJ CTB4YTgKPiArCj4gKyNlbmRpZiAvKiBfX1pYX1RWRU5DX1JFR1NfSF9fICovCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfdm91LmMgYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4 X3ZvdS5jCj4gaW5kZXggOThmMGY1MWY5NzQ4Li42MWQ0ZmY3MDlkODMgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3p0ZS96eF92b3UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS96dGUv enhfdm91LmMKPiBAQCAtMTkyLDYgKzE5MiwxMSBAQCBzdHJ1Y3Qgdm91X2luZiB7Cj4gIAkJLmNs b2Nrc19lbl9iaXRzID0gQklUKDI0KSB8IEJJVCgxOCkgfCBCSVQoNiksCj4gIAkJLmNsb2Nrc19z ZWxfYml0cyA9IEJJVCgxMykgfCBCSVQoMiksCj4gIAl9LAo+ICsJW1ZPVV9UVl9FTkNdID0gewo+ ICsJCS5kYXRhX3NlbCA9IFZPVV9ZVVY0NDQsCj4gKwkJLmNsb2Nrc19lbl9iaXRzID0gQklUKDE1 KSwKPiArCQkuY2xvY2tzX3NlbF9iaXRzID0gQklUKDExKSB8IEJJVCgwKSwKPiArCX0sCj4gIH07 Cj4gIAo+ICBzdGF0aWMgaW5saW5lIHN0cnVjdCB6eF92b3VfaHcgKmNydGNfdG9fdm91KHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKPiAtLSAKPiAxLjkuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gClNlYW4gUGF1bCwgU29mdHdhcmUg RW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=