From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH 20/20] drm/i915: write AVI infoframes for LSPCON Date: Thu, 13 Jul 2017 11:11:53 +0530 Message-ID: <34f7b895-e127-b0c3-b922-fd3edb7e683d@intel.com> References: <1499685528-6926-1-git-send-email-shashank.sharma@intel.com> <1499685528-6926-21-git-send-email-shashank.sharma@intel.com> <20170712172451.GR12629@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170712172451.GR12629@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org UmVnYXJkcwoKU2hhc2hhbmsKCgpPbiA3LzEyLzIwMTcgMTA6NTQgUE0sIFZpbGxlIFN5cmrDpGzD pCB3cm90ZToKPiBPbiBNb24sIEp1bCAxMCwgMjAxNyBhdCAwNDo0ODo0OFBNICswNTMwLCBTaGFz aGFuayBTaGFybWEgd3JvdGU6Cj4+IExTUENPTiBjaGlwcyBjYW4ndCBwaWNrIHRoZSBIRE1JIEFW SSBpbmZvZnJhbWVzIGZyb20gZGlyZWN0IGxpbmsuCj4+IEluIG9yZGVyIHRvIHBhc3MgQVZJIGlu Zm9mcmFtZXMgZnJvbSBkaXNwbGF5IGNvbnRyb2xsZXIgdG8gTFNQQ09OLAo+PiB3ZSBoYXZlIHRv IHdyaXRlIGluZm9mcmFtZSBwYWNrZXRzIGludG8gdmVuZG9yIHNwZWNpZmllZCBBVVggYWRkcmVz cy4KPj4KPj4gQWxzbywgTFNQQ09OIHZlbmRvcnMgcHJvdmlkZSBBVVggb2Zmc2V0cywgdG8gaW5m b3JtIHRoZSBMU1BDT04KPj4gY2hpcCB0aGF0IHRoZSBBVkkgSUYgcGFja2V0cyBhcmUgd3JpdHRl biwgc28gdGhhdCB0aGUgZmlybXdhcmUKPj4gY2FuIHBpY2sgaXQgdXAgYW5kIGFwcGx5Lgo+Pgo+ PiBUaGlzIHBhdGNoIGFkZHMgZnVuY3Rpb24gdG8gd3JpdGUgQVZJIGluZm9mcmFtZXMgZm9yIGJv dGggTUNBIGFzCj4+IHdlbGwgYXMgUGFyYWRlIFRlY2ggTFNQQ09OIGNoaXBzLiBUaGVzZSB0d28g dmVuZG9ycyBwcm92aWRlIGRpZmZlcmVudAo+PiBtZXRob2RzIGZvciB3cml0aW5nIGluZm9mcmFt ZXMsIHNvIHRoaXMgcGF0Y2ggY29udGFpbnMgdHdvIGRpZmZlcmVudAo+PiBmdW5jdGlvbnMsIG9u ZSBmb3IgZWFjaC4KPiBTZWVtcyB0byBtZSB0aGF0IHdlIHNob3VsZCBhbHNvIGJlIGNoZWNraW5n IHRoZSByZWNlaXZlciBjYXAgZm9yIHRoZQo+IDQ0NC0+NDIwIGNvbnZlcnNpb24gc3VwcG9ydCwg YW5kIGVuYWJsZSBpdCBpbiB0aGUgUFJPVE9DT0xfQ09OVkVSVEVSCj4gRFBDRCByZWdpc3Rlci4g T3IgYXJlIHRoZXNlIExTUENPTiB0aGluZ3MgZXZlbiBpZ25vcmluZyB0aGF0IHBhcnQgb2YgdGhl Cj4gc3BlYz8KWWVzLCBMU1BDT04ganVzdCBuZWVkcyB0aGUgWUNCQ1I0NDQgaW5wdXQsIGFuZCBp bmZvIGZyYW1lcyBmb3IgNDIwLCBhbmQgCml0IHdvdWxkIHRha2UgY2FyZSBvZgo0NDQtPjQyMCBj b252ZXJzaW9uIGluIEZXLiBBbHNvLCBpdHMgYSBwYXJ0IG9mIExTUENPTiBzcGVjcywgdGhhdCBp dCBoYXMgCnRvIGhhdmUgNDIwIG91dHB1dCBjYXBhYmlsaXR5LgoKLSBTaGFzaGFuawo+Cj4+IENj OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+PiBDYzog SW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFu ayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgIHwgICA4ICsrCj4+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggICAgfCAgIDMgKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xzcGNvbi5jIHwgMTc0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ PiAgIDMgZmlsZXMgY2hhbmdlZCwgMTg1IGluc2VydGlvbnMoKykKPj4KPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGRpLmMKPj4gaW5kZXggZjY5MTcxMC4uOTQ0ZDlkNSAxMDA2NDQKPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMKPj4gQEAgLTIwNjgsNiArMjA2OCwxNCBAQCB2b2lkIGludGVsX2RkaV9z ZXRfYXZpX2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+ICAgCQkJCQkg ICByZ2JfcXJhbmdlX2xpbWl0ZWQsCj4+ICAgCQkJCQkgICByZ2JfcXJhbmdlX3NlbGVjdGFibGUp Owo+PiAgIAo+PiArCWlmIChjcnRjX3N0YXRlLT5sc3Bjb25fYWN0aXZlKSB7Cj4+ICsJCXN0cnVj dCBpbnRlbF9sc3Bjb24gKmxzcGNvbiA9IGVuY190b19pbnRlbF9sc3Bjb24oZW5jb2Rlcik7Cj4+ ICsKPj4gKwkJLyogTFNQQ09OIHdyaXRlcyBpbmZvZnJhbWVzIHZpYSBBVVggKi8KPj4gKwkJbHNw Y29uLT53cml0ZV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSwgJmZyYW1lKTsKPj4gKwkJ cmV0dXJuOwo+PiArCX0KPj4gKwo+PiAgIAlpbnRlbF93cml0ZV9pbmZvZnJhbWUoZW5jb2Rlciwg Y3J0Y19zdGF0ZSwgJmZyYW1lKTsKPj4gICB9Cj4+ICAgCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4+IGluZGV4IGZhZDlhNTMuLjNlNjg2ZDIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4+IEBAIC0xMDc5LDYgKzEwNzksOSBAQCBzdHJ1Y3QgaW50ZWxfbHNwY29uIHsKPj4g ICAJLyogQVZJIElGIHNldHVwIGZ1bmN0aW9uIGZvciBMU1BDT04gKi8KPj4gICAJdm9pZCAoKnNl dF9pbmZvZnJhbWVzKShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+ICAgCQkJCWNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPj4gKwl2b2lkICgqd3JpdGVf aW5mb2ZyYW1lKShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+ICsJCQkJY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICsJCQkJdW5pb24gaGRtaV9pbmZv ZnJhbWUgKmZyYW1lKTsKPj4gICB9Owo+PiAgIAo+PiAgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgewo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwo+PiBpbmRleCA1M2RkZDM5Li4w MWZkZGY3IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24u Ywo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwo+PiBAQCAtMzEs NiArMzEsMTggQEAKPj4gICAjZGVmaW5lIExTUENPTl9WRU5ET1JfUEFSQURFX09VSSAweDAwMUNG OAo+PiAgICNkZWZpbmUgTFNQQ09OX1ZFTkRPUl9NQ0FfT1VJIDB4MDA2MEFECj4+ICAgCj4+ICsv KiBBVVggYWRkcmVzc2VzIHRvIHdyaXRlIEFWSSBJRiBpbnRvICovCj4+ICsjZGVmaW5lIExTUENP Tl9NQ0FfQVZJX0lGX1dSSVRFX09GRlNFVCAweDVDMAo+PiArI2RlZmluZSBMU1BDT05fTUNBX0FW SV9JRl9DVFJMIDB4NURGCj4+ICsjZGVmaW5lICBMU1BDT05fTUNBX0FWSV9JRl9LSUNLT0ZGICgx IDw8IDApCj4+ICsjZGVmaW5lICBMU1BDT05fTUNBX0FWSV9JRl9IQU5ETEVEICgxIDw8IDEpCj4+ ICsKPj4gKyNkZWZpbmUgTFNQQ09OX1BBUkFERV9BVklfSUZfV1JJVEVfT0ZGU0VUIDB4NTE2Cj4+ ICsjZGVmaW5lIExTUENPTl9QQVJBREVfQVZJX0lGX0NUUkwgMHg1MUUKPj4gKyNkZWZpbmUgIExT UENPTl9QQVJBREVfQVZJX0lGX0tJQ0tPRkYgKDEgPDwgNykKPj4gKyNkZWZpbmUgTFNQQ09OX1BB UkFERV9BVklfSUZfU1RBVFVTIDB4NTFGCj4+ICsjZGVmaW5lICBMU1BDT05fUEFSQURFX0FWSV9J Rl9IQU5ETEVEICgyIDw8IDYpCj4+ICsKPj4gICBzdGF0aWMgc3RydWN0IGludGVsX2RwICpsc3Bj b25fdG9faW50ZWxfZHAoc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uKQo+PiAgIHsKPj4gICAJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPQo+PiBAQCAtMjE3LDYgKzIyOSwx NjcgQEAgYm9vbCBsc3Bjb25feWNiY3I0MjBfY29uZmlnKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IsCj4+ICAgCXJldHVybiBmYWxzZTsKPj4gICB9Cj4+ICAgCj4+ICtzdGF0aWMgYm9v bCBfbHNwY29uX3dyaXRlX2luZm9mcmFtZV9wYXJhZGUoc3RydWN0IGRybV9kcF9hdXggKmF1eCwK Pj4gKwkJCQkJICAgdWludDhfdCAqYnVmZmVyLCBzc2l6ZV90IGxlbikKPj4gK3sKPj4gKwl1OCBh dmlfaWZfY3RybDsKPj4gKwl1OCBhdmlfaWZfc3RhdHVzOwo+PiArCXU4IGNvdW50ID0gMDsKPj4g Kwl1OCByZXRyeSA9IDU7Cj4+ICsJdTggYXZpX2J1Zls4XSA9IHswLCB9Owo+PiArCXVpbnQxNl90 IHJlZzsKPj4gKwlzc2l6ZV90IHJldDsKPj4gKwo+PiArCXdoaWxlIChjb3VudCsrIDwgNCkgewo+ PiArCj4+ICsJCWRvIHsKPj4gKwkJCS8qIElzIExTUENPTiBGVyByZWFkeSAqLwo+PiArCQkJcmVn ID0gTFNQQ09OX1BBUkFERV9BVklfSUZfQ1RSTDsKPj4gKwkJCXJldCA9IGRybV9kcF9kcGNkX3Jl YWQoYXV4LCByZWcsICZhdmlfaWZfY3RybCwgMSk7Cj4+ICsJCQlpZiAocmV0IDwgMCkgewo+PiAr CQkJCURSTV9FUlJPUigiRFBDRCByZWFkIGZhaWxlZCwgYWRkOjB4JXhcbiIsIHJlZyk7Cj4+ICsJ CQkJcmV0dXJuIGZhbHNlOwo+PiArCQkJfQo+PiArCj4+ICsJCQlpZiAoYXZpX2lmX2N0cmwgJiBM U1BDT05fUEFSQURFX0FWSV9JRl9LSUNLT0ZGKQo+PiArCQkJCWJyZWFrOwo+PiArCQkJdXNsZWVw X3JhbmdlKDEwMCwgMjAwKTsKPj4gKwkJfSB3aGlsZSAoLS1yZXRyeSk7Cj4+ICsKPj4gKwkJaWYg KCEoYXZpX2lmX2N0cmwgJiBMU1BDT05fUEFSQURFX0FWSV9JRl9LSUNLT0ZGKSkgewo+PiArCQkJ RFJNX0VSUk9SKCJMU1BDT04gRlcgbm90IHJlYWR5IGZvciBpbmZvZnJhbWVzXG4iKTsKPj4gKwkJ CXJldHVybiBmYWxzZTsKPj4gKwkJfQo+PiArCj4+ICsJCS8qCj4+ICsJCSAqIEFWSSBJbmZvZnJh bWUgY29udGFpbnMgMzEgYnl0ZXMgb2YgZGF0YToKPj4gKwkJICoJSEIwIHRvIEhCMiAgICgzIGJ5 dGVzIGhlYWRlcikKPj4gKwkJICoJUEIwIHRvIFBCMjcgKDI4IGJ5dGVzIGRhdGEpCj4+ICsJCSAq IEFzIHBlciBQYXJhZGUgc3BlYywgd2hpbGUgc2VuZGluZyBmaXJzdCBibG9jayAoOGJ5dGVzKSwK Pj4gKwkJICogYnl0ZSAwIGlzIGtlcHQgZm9yIHJlcXVlc3QgdG9rZW4gbm8sIGFuZCBieXRlMSAt IGJ5dGU3Cj4+ICsJCSAqIGNvbnRhaW4gZnJhbWUgZGF0YS4gU28gd2UgaGF2ZSB0byBwYWNrIGZy YW1lIGxpa2UgdGhpczoKPj4gKwkJICoJZmlyc3QgYmxvY2sgb2YgOCBieXRlczogPHRva2VuPiA8 SEIwLUhCMj4gPFBCMC1QQjM+Cj4+ICsJCSAqCW5leHQgMyBibG9ja3M6IDxQQjQtUEIyNz4KPj4g KwkJICovCj4+ICsJCWlmIChjb3VudCkKPj4gKwkJCW1lbWNweShhdmlfYnVmLCBidWZmZXIgKyBj b3VudCAqIDggLSAxLCA4KTsKPj4gKwkJZWxzZSB7Cj4+ICsJCQlhdmlfYnVmWzBdID0gMTsKPj4g KwkJCW1lbWNweSgmYXZpX2J1ZlsxXSwgYnVmZmVyLCA3KTsKPj4gKwkJfQo+PiArCj4+ICsJCS8q IFdyaXRlIDggYnl0ZXMgb2YgZGF0YSBhdCBhIHRpbWUgKi8KPj4gKwkJcmVnID0gTFNQQ09OX1BB UkFERV9BVklfSUZfV1JJVEVfT0ZGU0VUOwo+PiArCQlyZXQgPSBkcm1fZHBfZHBjZF93cml0ZShh dXgsIHJlZywgYXZpX2J1ZiwgOCk7Cj4+ICsJCWlmIChyZXQgPCAwKSB7Cj4+ICsJCQlEUk1fRVJS T1IoIkRQQ0Qgd3JpdGUgZmFpbGVkLCBhZGQ6MHgleFxuIiwgcmVnKTsKPj4gKwkJCXJldHVybiBm YWxzZTsKPj4gKwkJfQo+PiArCj4+ICsJCS8qCj4+ICsJCSAqIFdoaWxlIHNlbmRpbmcgYSBibG9j ayBvZiA4IGJ5ZXMsIHdlIG5lZWQgdG8gaW5mb3JtIGJsb2NrCj4+ICsJCSAqIG51bWJlciB0byBG VywgYnkgcHJvZ3JhbW1pbmcgYml0c1sxOjBdIG9mIGN0cmwgcmVnIHdpdGgKPj4gKwkJICogYmxv Y2sgbnVtYmVyCj4+ICsJCSAqLwo+PiArCQlhdmlfaWZfY3RybCA9IDB4ODAgKyBjb3VudDsKPj4g KwkJcmVnID0gTFNQQ09OX1BBUkFERV9BVklfSUZfQ1RSTDsKPj4gKwkJcmV0ID0gZHJtX2RwX2Rw Y2Rfd3JpdGUoYXV4LCByZWcsICZhdmlfaWZfY3RybCwgMSk7Cj4+ICsJCWlmIChyZXQgPCAwKSB7 Cj4+ICsJCQlEUk1fRVJST1IoIkRQQ0Qgd3JpdGUgZmFpbGVkLCBhZGQ6MHgleFxuIiwgcmVnKTsK Pj4gKwkJCXJldHVybiBmYWxzZTsKPj4gKwkJfQo+PiArCX0KPj4gKwo+PiArCS8qIENoZWNrIExT UENPTiBGVyBzdGF0dXMgKi8KPj4gKwlyZWcgPSBMU1BDT05fUEFSQURFX0FWSV9JRl9TVEFUVVM7 Cj4+ICsJcmV0ID0gZHJtX2RwX2RwY2RfcmVhZChhdXgsIHJlZywgJmF2aV9pZl9zdGF0dXMsIDEp Owo+PiArCWlmIChyZXQgPCAwKSB7Cj4+ICsJCURSTV9FUlJPUigiRFBDRCB3cml0ZSBmYWlsZWQs IGFkZHJlc3MgMHgleFxuIiwgcmVnKTsKPj4gKwkJcmV0dXJuIGZhbHNlOwo+PiArCX0KPj4gKwo+ PiArCWlmIChhdmlfaWZfc3RhdHVzICYgTFNQQ09OX1BBUkFERV9BVklfSUZfSEFORExFRCkKPj4g KwkJRFJNX0RFQlVHX0tNUygiQVZJIElGIGhhbmRsZWQgYnkgRldcbiIpOwo+PiArCj4+ICsJcmV0 dXJuIHRydWU7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBib29sIF9sc3Bjb25fd3JpdGVfaW5mb2Zy YW1lX21jYShzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LAo+PiArCQkJCQl1aW50OF90ICpidWZmZXIs IHNzaXplX3QgbGVuKQo+PiArewo+PiArCWludCByZXQ7Cj4+ICsJdWludDMyX3QgdmFsID0gMDsK Pj4gKwl1aW50MTZfdCByZWc7Cj4+ICsJdWludDhfdCAqZGF0YSA9IGJ1ZmZlcjsKPj4gKwo+PiAr CXJlZyA9IExTUENPTl9NQ0FfQVZJX0lGX1dSSVRFX09GRlNFVDsKPj4gKwl3aGlsZSAodmFsIDwg bGVuKSB7Cj4+ICsJCXJldCA9IGRybV9kcF9kcGNkX3dyaXRlKGF1eCwgcmVnLCBkYXRhLCAxKTsK Pj4gKwkJaWYgKHJldCA8IDApIHsKPj4gKwkJCURSTV9FUlJPUigiRFBDRCB3cml0ZSBmYWlsZWQs IGFkZDoweCV4XG4iLCByZWcpOwo+PiArCQkJcmV0dXJuIGZhbHNlOwo+PiArCQl9Cj4+ICsJCXZh bCsrOyByZWcrKzsgZGF0YSsrOwo+PiArCX0KPj4gKwo+PiArCXZhbCA9IDA7Cj4+ICsJcmVnID0g TFNQQ09OX01DQV9BVklfSUZfQ1RSTDsKPj4gKwlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkKGF1eCwg cmVnLCAmdmFsLCAxKTsKPj4gKwlpZiAocmV0IDwgMCkgewo+PiArCQlEUk1fRVJST1IoIkRQQ0Qg cmVhZCBmYWlsZWQsIGFkZHJlc3MgMHgleFxuIiwgcmVnKTsKPj4gKwkJcmV0dXJuIGZhbHNlOwo+ PiArCX0KPj4gKwo+PiArCS8qIEluZGljYXRlIExTUENPTiBjaGlwIGFib3V0IGluZm9mcmFtZSwg Y2xlYXIgYml0IDEgYW5kIHNldCBiaXQgMCAqLwo+PiArCXZhbCAmPSB+TFNQQ09OX01DQV9BVklf SUZfSEFORExFRDsKPj4gKwl2YWwgfD0gTFNQQ09OX01DQV9BVklfSUZfS0lDS09GRjsKPj4gKwo+ PiArCXJldCA9IGRybV9kcF9kcGNkX3dyaXRlKGF1eCwgcmVnLCAmdmFsLCAxKTsKPj4gKwlpZiAo cmV0IDwgMCkgewo+PiArCQlEUk1fRVJST1IoIkRQQ0QgcmVhZCBmYWlsZWQsIGFkZHJlc3MgMHgl eFxuIiwgcmVnKTsKPj4gKwkJcmV0dXJuIGZhbHNlOwo+PiArCX0KPj4gKwo+PiArCXZhbCA9IDA7 Cj4+ICsJcmV0ID0gZHJtX2RwX2RwY2RfcmVhZChhdXgsIHJlZywgJnZhbCwgMSk7Cj4+ICsJaWYg KHJldCA8IDApIHsKPj4gKwkJRFJNX0VSUk9SKCJEUENEIHJlYWQgZmFpbGVkLCBhZGRyZXNzIDB4 JXhcbiIsIHJlZyk7Cj4+ICsJCXJldHVybiBmYWxzZTsKPj4gKwl9Cj4+ICsKPj4gKwlpZiAodmFs ID09IExTUENPTl9NQ0FfQVZJX0lGX0hBTkRMRUQpCj4+ICsJCURSTV9ERUJVR19LTVMoIkFWSSBJ RiBoYW5kbGVkIGJ5IEZXXG4iKTsKPj4gKwo+PiArCXJldHVybiB0cnVlOwo+PiArfQo+PiArCj4+ ICt2b2lkIGxzcGNvbl93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LAo+PiArCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ ICsJCQkJICB1bmlvbiBoZG1pX2luZm9mcmFtZSAqZnJhbWUpCj4+ICt7Cj4+ICsJYm9vbCByZXQ7 Cj4+ICsJc3NpemVfdCBsZW47Cj4+ICsJdWludDhfdCBidWZbVklERU9fRElQX0RBVEFfU0laRV07 Cj4+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVy KTsKPj4gKwlzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24gPSBlbmNfdG9faW50ZWxfbHNwY29u KGVuY29kZXIpOwo+PiArCj4+ICsJbGVuID0gaGRtaV9pbmZvZnJhbWVfcGFjayhmcmFtZSwgYnVm LCBzaXplb2YoYnVmKSk7Cj4+ICsJaWYgKGxlbiA8IDApIHsKPj4gKwkJRFJNX0VSUk9SKCJGYWls ZWQgdG8gcGFjayBBVkkgSUZcbiIpOwo+PiArCQlyZXR1cm47Cj4+ICsJfQo+PiArCj4+ICsJaWYg KGxzcGNvbi0+dmVuZG9yID09IExTUENPTl9WRU5ET1JfTUNBKQo+PiArCQlyZXQgPSBfbHNwY29u X3dyaXRlX2luZm9mcmFtZV9tY2EoJmludGVsX2RwLT5hdXgsIGJ1ZiwgbGVuKTsKPj4gKwllbHNl Cj4+ICsJCXJldCA9IF9sc3Bjb25fd3JpdGVfaW5mb2ZyYW1lX3BhcmFkZSgmaW50ZWxfZHAtPmF1 eCwgYnVmLCBsZW4pOwo+PiArCj4+ICsJaWYgKCFyZXQpCj4+ICsJCURSTV9FUlJPUigiRmFpbGVk IHRvIHdyaXRlIEFWSSBpbmZvZnJhbWVzXG4iKTsKPj4gKwllbHNlCj4+ICsJCURSTV9ERUJVR19E UklWRVIoIkFWSSBpbmZvZnJhbWVzIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5XG4iKTsKPj4gK30KPj4g Kwo+PiAgIHZvaWQgbHNwY29uX3Jlc3VtZShzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24pCj4+ ICAgewo+PiAgIAllbnVtIGRybV9sc3Bjb25fbW9kZSBleHBlY3RlZF9tb2RlOwo+PiBAQCAtMjgy LDYgKzQ1NSw3IEBAIGJvb2wgbHNwY29uX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQpCj4+ICAgCj4+ICAgCWNvbm5lY3Rvci0+eWNiY3JfNDIwX2FsbG93ZWQg PSB0cnVlOwo+PiAgIAlsc3Bjb24tPnNldF9pbmZvZnJhbWVzID0gaW50ZWxfZGRpX3NldF9hdmlf aW5mb2ZyYW1lOwo+PiArCWxzcGNvbi0+d3JpdGVfaW5mb2ZyYW1lID0gbHNwY29uX3dyaXRlX2lu Zm9mcmFtZTsKPj4gICAJZHJtX2RwX3JlYWRfZGVzYygmZHAtPmF1eCwgJmRwLT5kZXNjLCBkcm1f ZHBfaXNfYnJhbmNoKGRwLT5kcGNkKSk7Cj4+ICAgCj4+ICAgCURSTV9ERUJVR19LTVMoIlN1Y2Nl c3M6IExTUENPTiBpbml0XG4iKTsKPj4gLS0gCj4+IDIuNy40CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK