From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v4 10/11] media: vsp1: Support Interlaced display pipelines Date: Thu, 24 May 2018 15:51:46 +0300 Message-ID: <2663986.uvcnutGSNp@avalon> References: <8e320ac8861b7fdd657a66138780c18fd66b1a19.1525354194.git-series.kieran.bingham+renesas@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9D47E6E5F9 for ; Thu, 24 May 2018 12:51:51 +0000 (UTC) In-Reply-To: <8e320ac8861b7fdd657a66138780c18fd66b1a19.1525354194.git-series.kieran.bingham+renesas@ideasonboard.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Kieran Bingham Cc: linux-renesas-soc@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org SGkgS2llcmFuLAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCgpPbiBUaHVyc2RheSwgMyBNYXkg MjAxOCAxNjozNjoyMSBFRVNUIEtpZXJhbiBCaW5naGFtIHdyb3RlOgo+IENhbGN1bGF0ZSB0aGUg dG9wIGFuZCBib3R0b20gZmllbGRzIGZvciB0aGUgaW50ZXJsYWNlZCBmcmFtZXMgYW5kCj4gdXRp bGlzZSB0aGUgZXh0ZW5kZWQgZGlzcGxheSBsaXN0IGNvbW1hbmQgZmVhdHVyZSB0byBpbXBsZW1l bnQgdGhlCj4gYXV0by1maWVsZCBvcGVyYXRpb25zLiBUaGlzIGFsbG93cyB0aGUgRFUgdG8gdXBk YXRlIHRoZSBWU1AyIHJlZ2lzdGVycwo+IGR5bmFtaWNhbGx5IGJhc2VkIHVwb24gdGhlIGN1cnJl bnRseSBwcm9jZXNzaW5nIGZpZWxkLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEtpZXJhbiBCaW5naGFt IDxraWVyYW4uYmluZ2hhbStyZW5lc2FzQGlkZWFzb25ib2FyZC5jb20+Cj4gCj4gLS0tCj4gdjM6 Cj4gIC0gUGFzcyBETCB0aHJvdWdoIHBhcnRpdGlvbiBjYWxscyB0byBhbGxvdyBhdXRvY21kJ3Mg dG8gYmUgcmV0cmlldmVkCj4gIC0gRG9jdW1lbnQgaW50ZXJsYWNlZCBmaWVsZCBpbiBzdHJ1Y3Qg dnNwMV9kdV9hdG9taWNfY29uZmlnCj4gCj4gdjI6Cj4gIC0gZml4IGVycm9uZW91cyBCSVQgdmFs dWUgd2hpY2ggZW5hYmxlZCBpbnRlcmxhY2VkCj4gIC0gZml4IGZpZWxkIGhhbmRsaW5nIGF0IGZy YW1lX2VuZCBpbnRlcnJ1cHQKPiAtLS0KPiAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3Zz cDFfZGwuYyAgIHwgMTAgKysrKy0KPiAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFf ZHJtLmMgIHwgMTEgKysrKy0KPiAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfcmVn cy5oIHwgIDEgKy0KPiAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfcnBmLmMgIHwg NzEgKysrKysrKysrKysrKysrKysrKysrKysrLS0KPiAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92 c3AxL3ZzcDFfcndwZi5oIHwgIDEgKy0KPiAgaW5jbHVkZS9tZWRpYS92c3AxLmggICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Zz cDEvdnNwMV9kbC5jCj4gYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9kbC5jIGlu ZGV4IGQzM2FlNWYxMjViZC4uYmJlOWYzMDA2ZjcxCj4gMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZGwuYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vdnNwMS92c3AxX2RsLmMKPiBAQCAtOTA2LDYgKzkwNiw4IEBAIHZvaWQgdnNwMV9kbF9saXN0 X2NvbW1pdChzdHJ1Y3QgdnNwMV9kbF9saXN0ICpkbCwgYm9vbAo+IGludGVybmFsKSAqLwo+ICB1 bnNpZ25lZCBpbnQgdnNwMV9kbG1faXJxX2ZyYW1lX2VuZChzdHJ1Y3QgdnNwMV9kbF9tYW5hZ2Vy ICpkbG0pCj4gIHsKPiArCXN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSA9IGRsbS0+dnNwMTsKPiAr CXUzMiBzdGF0dXMgPSB2c3AxX3JlYWQodnNwMSwgVkk2X1NUQVRVUyk7Cj4gIAl1bnNpZ25lZCBp bnQgZmxhZ3MgPSAwOwo+IAo+ICAJc3Bpbl9sb2NrKCZkbG0tPmxvY2spOwo+IEBAIC05MzEsNiAr OTMzLDE0IEBAIHVuc2lnbmVkIGludCB2c3AxX2RsbV9pcnFfZnJhbWVfZW5kKHN0cnVjdAo+IHZz cDFfZGxfbWFuYWdlciAqZGxtKSBnb3RvIGRvbmU7Cj4gCj4gIAkvKgo+ICsJICogUHJvZ3Jlc3Np dmUgc3RyZWFtcyByZXBvcnQgb25seSBUT1AgZmllbGRzLiBJZiB3ZSBoYXZlIGEgQk9UVE9NCj4g KwkgKiBmaWVsZCwgd2UgYXJlIGludGVybGFjZWQsIGFuZCBleHBlY3QgdGhlIGZyYW1lIHRvIGNv bXBsZXRlIG9uIHRoZQo+ICsJICogbmV4dCBmcmFtZSBlbmQgaW50ZXJydXB0Lgo+ICsJICovCj4g KwlpZiAoc3RhdHVzICYgVkk2X1NUQVRVU19GTERfU1REKGRsbS0+aW5kZXgpKQo+ICsJCWdvdG8g ZG9uZTsKPiArCj4gKwkvKgo+ICAJICogVGhlIGRldmljZSBzdGFydHMgcHJvY2Vzc2luZyB0aGUg cXVldWVkIGRpc3BsYXkgbGlzdCByaWdodCBhZnRlciB0aGUKPiAgCSAqIGZyYW1lIGVuZCBpbnRl cnJ1cHQuIFRoZSBkaXNwbGF5IGxpc3QgdGh1cyBiZWNvbWVzIGFjdGl2ZS4KPiAgCSAqLwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9kcm0uYwo+IGIvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZHJtLmMgaW5kZXggMmMzZGI4YjhhZGNlLi5j YzI5YzlkOTZiYjcKPiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEv dnNwMV9kcm0uYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX2RybS5j Cj4gQEAgLTgxMSw2ICs4MTEsMTcgQEAgaW50IHZzcDFfZHVfYXRvbWljX3VwZGF0ZShzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHVuc2lnbmVkCj4gaW50IHBpcGVfaW5kZXgsIHJldHVybiAtRUlOVkFMOwo+ ICAJfQo+IAo+ICsJaWYgKCEodnNwMV9mZWF0dXJlKHZzcDEsIFZTUDFfSEFTX0VYVF9ETCkpICYm IGNmZy0+aW50ZXJsYWNlZCkgewoKTml0cGlja2luZywgd3JpdGluZyB0aGUgY29uZGl0aW9uIGFz CgoJaWYgKGNmZy0+aW50ZXJsYWNlZCAmJiAhKHZzcDFfZmVhdHVyZSh2c3AxLCBWU1AxX0hBU19F WFRfREwpKSkKCndvdWxkIG1hdGNoIHRoZSBjb21tZW50IGJldHRlci4gWW91IGNhbiBhbHNvIGRy b3AgdGhlIHBhcmVudGhlc2VzIGFyb3VuZCB0aGUgCnZzcDFfZmVhdHVyZSgpIGNhbGwuCgo+ICsJ CS8qCj4gKwkJICogSW50ZXJsYWNlZCBzdXBwb3J0IHJlcXVpcmVzIGV4dGVuZGVkIGRpc3BsYXkg bGlzdHMgdG8KPiArCQkgKiBwcm92aWRlIHRoZSBhdXRvLWZsZCBmZWF0dXJlIHdpdGggdGhlIERV Lgo+ICsJCSAqLwo+ICsJCWRldl9kYmcodnNwMS0+ZGV2LCAiSW50ZXJsYWNlZCB1bnN1cHBvcnRl ZCBvbiB0aGlzIG91dHB1dFxuIik7CgpDb3VsZCB3ZSBjYXRjaCB0aGlzIGluIHRoZSBEVSBkcml2 ZXIgdG8gZmFpbCBhdG9taWMgdGVzdCA/Cgo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsK PiArCXJwZi0+aW50ZXJsYWNlZCA9IGNmZy0+aW50ZXJsYWNlZDsKPiArCj4gIAlycGYtPmZtdGlu Zm8gPSBmbXRpbmZvOwo+ICAJcnBmLT5mb3JtYXQubnVtX3BsYW5lcyA9IGZtdGluZm8tPnBsYW5l czsKPiAgCXJwZi0+Zm9ybWF0LnBsYW5lX2ZtdFswXS5ieXRlc3BlcmxpbmUgPSBjZmctPnBpdGNo Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9yZWdzLmgK PiBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX3JlZ3MuaCBpbmRleCBkMDU0NzY3 NTcwYzEuLmEyYWM2NWNjNTE1NQo+IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vdnNwMS92c3AxX3JlZ3MuaAo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92 c3AxX3JlZ3MuaAo+IEBAIC0yOCw2ICsyOCw3IEBACj4gICNkZWZpbmUgVkk2X1NSRVNFVF9TUlRT KG4pCQkoMSA8PCAobikpCj4gCj4gICNkZWZpbmUgVkk2X1NUQVRVUwkJCTB4MDAzOAo+ICsjZGVm aW5lIFZJNl9TVEFUVVNfRkxEX1NURChuKQkJKDEgPDwgKChuKSArIDI4KSkKPiAgI2RlZmluZSBW STZfU1RBVFVTX1NZU19BQ1QobikJCSgxIDw8ICgobikgKyA4KSkKPiAKPiAgI2RlZmluZSBWSTZf V1BGX0lSUV9FTkIobikJCSgweDAwNDggKyAobikgKiAxMikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfcnBmLmMKPiBiL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vdnNwMS92c3AxX3JwZi5jIGluZGV4IDhmYWU3YzQ4NTY0Mi4uNTExYjJlMTI3ODIwCj4gMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfcnBmLmMKPiArKysg Yi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9ycGYuYwo+IEBAIC0yMCw2ICsyMCwy MCBAQAo+ICAjZGVmaW5lIFJQRl9NQVhfV0lEVEgJCQkJODE5MAo+ICAjZGVmaW5lIFJQRl9NQVhf SEVJR0hUCQkJCTgxOTAKPiAKPiArLyogUHJlIGV4dGVuZGVkIGRpc3BsYXkgbGlzdCBjb21tYW5k IGRhdGEgc3RydWN0dXJlICovCj4gK3N0cnVjdCB2c3AxX2V4dGNtZF9hdXRvX2ZsZF9ib2R5IHsK PiArCXUzMiB0b3BfeTA7Cj4gKwl1MzIgYm90dG9tX3kwOwo+ICsJdTMyIHRvcF9jMDsKPiArCXUz MiBib3R0b21fYzA7Cj4gKwl1MzIgdG9wX2MxOwo+ICsJdTMyIGJvdHRvbV9jMTsKPiArCXUzMiBy ZXNlcnZlZDA7Cj4gKwl1MzIgcmVzZXJ2ZWQxOwo+ICt9IF9fcGFja2VkOwo+ICsKPiArI2RlZmlu ZSBWU1AxX0RMX0VYVF9BVVRPRkxEX0lOVAkJQklUKDApCgpTaG91bGQgdGhlIGJpdCBkZWZpbml0 aW9uIGJlIG1vdmVkIHRvIHZzcDFfcmVncy5oID8KCj4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAg KiBEZXZpY2UgQWNjZXNzCj4gICAqLwo+IEBAIC02NCw2ICs3OCwxNCBAQCBzdGF0aWMgdm9pZCBy cGZfY29uZmlndXJlX3N0cmVhbShzdHJ1Y3QgdnNwMV9lbnRpdHkKPiAqZW50aXR5LCBwc3RyaWRl IHw9IGZvcm1hdC0+cGxhbmVfZm10WzFdLmJ5dGVzcGVybGluZQo+ICAJCQk8PCBWSTZfUlBGX1NS Q01fUFNUUklERV9DX1NISUZUOwo+IAo+ICsJLyoKPiArCSAqIHBzdHJpZGUgaGFzIGJvdGggU1RS SURFX1kgYW5kIFNUUklERV9DLCBidXQgbXVsdGlwbHlpbmcgdGhlIHdob2xlCj4gKwkgKiBvZiBw c3RyaWRlIGJ5IDIgaXMgY29udmVuaWVudGx5IE9LIGhlcmUgYXMgd2UgYXJlIG11bHRpcGx5aW5n IGJvdGgKPiArCSAqIHZhbHVlcy4KPiArCSAqLwo+ICsJaWYgKHJwZi0+aW50ZXJsYWNlZCkKPiAr CQlwc3RyaWRlICo9IDI7Cj4gKwo+ICAJdnNwMV9ycGZfd3JpdGUocnBmLCBkbGIsIFZJNl9SUEZf U1JDTV9QU1RSSURFLCBwc3RyaWRlKTsKPiAKPiAgCS8qIEZvcm1hdCAqLwo+IEBAIC0xMDAsNiAr MTIyLDkgQEAgc3RhdGljIHZvaWQgcnBmX2NvbmZpZ3VyZV9zdHJlYW0oc3RydWN0IHZzcDFfZW50 aXR5Cj4gKmVudGl0eSwgdG9wID0gY29tcG9zZS0+dG9wOwo+ICAJfQo+IAo+ICsJaWYgKHJwZi0+ aW50ZXJsYWNlZCkKPiArCQl0b3AgLz0gMjsKPiArCj4gIAl2c3AxX3JwZl93cml0ZShycGYsIGRs YiwgVkk2X1JQRl9MT0MsCj4gIAkJICAgICAgIChsZWZ0IDw8IFZJNl9SUEZfTE9DX0hDT09SRF9T SElGVCkgfAo+ICAJCSAgICAgICAodG9wIDw8IFZJNl9SUEZfTE9DX1ZDT09SRF9TSElGVCkpOwo+ IEBAIC0xNjksNiArMTk0LDMxIEBAIHN0YXRpYyB2b2lkIHJwZl9jb25maWd1cmVfc3RyZWFtKHN0 cnVjdCB2c3AxX2VudGl0eQo+ICplbnRpdHksCj4gCj4gIH0KPiAKPiArc3RhdGljIHZvaWQgdnNw MV9ycGZfY29uZmlndXJlX2F1dG9mbGQoc3RydWN0IHZzcDFfcndwZiAqcnBmLAo+ICsJCQkJICAg ICAgIHN0cnVjdCB2c3AxX2RsX2V4dF9jbWQgKmNtZCkKPiArewo+ICsJY29uc3Qgc3RydWN0IHY0 bDJfcGl4X2Zvcm1hdF9tcGxhbmUgKmZvcm1hdCA9ICZycGYtPmZvcm1hdDsKPiArCXN0cnVjdCB2 c3AxX2V4dGNtZF9hdXRvX2ZsZF9ib2R5ICphdXRvX2ZsZCA9IGNtZC0+ZGF0YTsKPiArCXUzMiBv ZmZzZXRfeSwgb2Zmc2V0X2M7Cj4gKwo+ICsJLyogUmUtaW5kZXggb3VyIGF1dG9fZmxkIHRvIG1h dGNoIHRoZSBjdXJyZW50IFJQRiAqLwoKcy9SUEYvUlBGLi8KCj4gKwlhdXRvX2ZsZCA9ICZhdXRv X2ZsZFtycGYtPmVudGl0eS5pbmRleF07Cj4gKwo+ICsJYXV0b19mbGQtPnRvcF95MCA9IHJwZi0+ bWVtLmFkZHJbMF07Cj4gKwlhdXRvX2ZsZC0+dG9wX2MwID0gcnBmLT5tZW0uYWRkclsxXTsKPiAr CWF1dG9fZmxkLT50b3BfYzEgPSBycGYtPm1lbS5hZGRyWzJdOwo+ICsKPiArCW9mZnNldF95ID0g Zm9ybWF0LT5wbGFuZV9mbXRbMF0uYnl0ZXNwZXJsaW5lOwo+ICsJb2Zmc2V0X2MgPSBmb3JtYXQt PnBsYW5lX2ZtdFsxXS5ieXRlc3BlcmxpbmU7Cj4gKwo+ICsJYXV0b19mbGQtPmJvdHRvbV95MCA9 IHJwZi0+bWVtLmFkZHJbMF0gKyBvZmZzZXRfeTsKPiArCWF1dG9fZmxkLT5ib3R0b21fYzAgPSBy cGYtPm1lbS5hZGRyWzFdICsgb2Zmc2V0X2M7Cj4gKwlhdXRvX2ZsZC0+Ym90dG9tX2MxID0gcnBm LT5tZW0uYWRkclsyXSArIG9mZnNldF9jOwo+ICsKPiArCWNtZC0+ZmxhZ3MgfD0gVlNQMV9ETF9F WFRfQVVUT0ZMRF9JTlQ7Cj4gKwljbWQtPmZsYWdzIHw9IEJJVCgxNiArIHJwZi0+ZW50aXR5Lmlu ZGV4KTsKCkRvIHlvdSBleHBlY3Qgc29tZSBmbGFncyB0byBhbHJlYWR5IGJlIHNldCA/IElmIG5v dCwgY291bGRuJ3Qgd2UgYXNzaWduIHRoZSAKdmFsdWUgdG8gdGhlIGZpZWxkIGluc3RlYWQgb2Yg T1InaW5nIGl0ID8KCj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIHJwZl9jb25maWd1cmVfZnJhbWUo c3RydWN0IHZzcDFfZW50aXR5ICplbnRpdHksCj4gIAkJCQlzdHJ1Y3QgdnNwMV9waXBlbGluZSAq cGlwZSwKPiAgCQkJCXN0cnVjdCB2c3AxX2RsX2xpc3QgKmRsLAo+IEBAIC0xOTIsNiArMjQyLDcg QEAgc3RhdGljIHZvaWQgcnBmX2NvbmZpZ3VyZV9wYXJ0aXRpb24oc3RydWN0IHZzcDFfZW50aXR5 Cj4gKmVudGl0eSwgc3RydWN0IHZzcDFfcndwZiAqcnBmID0gdG9fcndwZigmZW50aXR5LT5zdWJk ZXYpOwo+ICAJc3RydWN0IHZzcDFfcndwZl9tZW1vcnkgbWVtID0gcnBmLT5tZW07Cj4gIAlzdHJ1 Y3QgdnNwMV9kZXZpY2UgKnZzcDEgPSBycGYtPmVudGl0eS52c3AxOwo+ICsJc3RydWN0IHZzcDFf ZGxfZXh0X2NtZCAqY21kOwo+ICAJY29uc3Qgc3RydWN0IHZzcDFfZm9ybWF0X2luZm8gKmZtdGlu Zm8gPSBycGYtPmZtdGluZm87Cj4gIAljb25zdCBzdHJ1Y3QgdjRsMl9waXhfZm9ybWF0X21wbGFu ZSAqZm9ybWF0ID0gJnJwZi0+Zm9ybWF0Owo+ICAJc3RydWN0IHY0bDJfcmVjdCBjcm9wOwo+IEBA IC0yMjAsNiArMjcxLDExIEBAIHN0YXRpYyB2b2lkIHJwZl9jb25maWd1cmVfcGFydGl0aW9uKHN0 cnVjdCB2c3AxX2VudGl0eQo+ICplbnRpdHksIGNyb3AubGVmdCArPSBwaXBlLT5wYXJ0aXRpb24t PnJwZi5sZWZ0Owo+ICAJfQo+IAo+ICsJaWYgKHJwZi0+aW50ZXJsYWNlZCkgewo+ICsJCWNyb3Au aGVpZ2h0ID0gcm91bmRfZG93bihjcm9wLmhlaWdodCAvIDIsIGZtdGluZm8tPnZzdWIpOwo+ICsJ CWNyb3AudG9wID0gcm91bmRfZG93bihjcm9wLnRvcCAvIDIsIGZtdGluZm8tPnZzdWIpOwo+ICsJ fQo+ICsKPiAgCXZzcDFfcnBmX3dyaXRlKHJwZiwgZGxiLCBWSTZfUlBGX1NSQ19CU0laRSwKPiAg CQkgICAgICAgKGNyb3Aud2lkdGggPDwgVkk2X1JQRl9TUkNfQlNJWkVfQkhTSVpFX1NISUZUKSB8 Cj4gIAkJICAgICAgIChjcm9wLmhlaWdodCA8PCBWSTZfUlBGX1NSQ19CU0laRV9CVlNJWkVfU0hJ RlQpKTsKPiBAQCAtMjQ4LDkgKzMwNCwxOCBAQCBzdGF0aWMgdm9pZCBycGZfY29uZmlndXJlX3Bh cnRpdGlvbihzdHJ1Y3QgdnNwMV9lbnRpdHkKPiAqZW50aXR5LCBmbXRpbmZvLT5zd2FwX3V2KQo+ ICAJCXN3YXAobWVtLmFkZHJbMV0sIG1lbS5hZGRyWzJdKTsKPiAKPiAtCXZzcDFfcnBmX3dyaXRl KHJwZiwgZGxiLCBWSTZfUlBGX1NSQ01fQUREUl9ZLCBtZW0uYWRkclswXSk7Cj4gLQl2c3AxX3Jw Zl93cml0ZShycGYsIGRsYiwgVkk2X1JQRl9TUkNNX0FERFJfQzAsIG1lbS5hZGRyWzFdKTsKPiAt CXZzcDFfcnBmX3dyaXRlKHJwZiwgZGxiLCBWSTZfUlBGX1NSQ01fQUREUl9DMSwgbWVtLmFkZHJb Ml0pOwo+ICsJLyoKPiArCSAqIEludGVybGFjZWQgcGlwZWxpbmVzIHdpbGwgdXNlIHRoZSBleHRl bmRlZCBwcmUtY21kIHRvIHByb2Nlc3MKPiArCSAqIFNSQ01fQUREUl97WSxDMCxDMX0KPiArCSAq Lwo+ICsJaWYgKHJwZi0+aW50ZXJsYWNlZCkgewo+ICsJCWNtZCA9IHZzcDFfZGxtX2dldF9hdXRv ZmxkX2NtZChkbCk7CgpIb3cgYWJvdXQgbW92aW5nIHRoaXMgY2FsbCB0byB2c3AxX3JwZl9jb25m aWd1cmVfYXV0b2ZsZCgpID8KCj4gKwkJdnNwMV9ycGZfY29uZmlndXJlX2F1dG9mbGQocnBmLCBj bWQpOwo+ICsJfSBlbHNlIHsKPiArCQl2c3AxX3JwZl93cml0ZShycGYsIGRsYiwgVkk2X1JQRl9T UkNNX0FERFJfWSwgbWVtLmFkZHJbMF0pOwo+ICsJCXZzcDFfcnBmX3dyaXRlKHJwZiwgZGxiLCBW STZfUlBGX1NSQ01fQUREUl9DMCwgbWVtLmFkZHJbMV0pOwo+ICsJCXZzcDFfcnBmX3dyaXRlKHJw ZiwgZGxiLCBWSTZfUlBGX1NSQ01fQUREUl9DMSwgbWVtLmFkZHJbMl0pOwo+ICsJfQo+ICB9Cj4g Cj4gIHN0YXRpYyB2b2lkIHJwZl9wYXJ0aXRpb24oc3RydWN0IHZzcDFfZW50aXR5ICplbnRpdHks Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX3J3cGYuaAo+ IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfcndwZi5oIGluZGV4IDcwNzQyZWNm NzY2Zi4uOGQ2ZTQyZjI3OTA4Cj4gMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9y bS92c3AxL3ZzcDFfcndwZi5oCj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3Zz cDFfcndwZi5oCj4gQEAgLTQyLDYgKzQyLDcgQEAgc3RydWN0IHZzcDFfcndwZiB7Cj4gIAlzdHJ1 Y3QgdjRsMl9waXhfZm9ybWF0X21wbGFuZSBmb3JtYXQ7Cj4gIAljb25zdCBzdHJ1Y3QgdnNwMV9m b3JtYXRfaW5mbyAqZm10aW5mbzsKPiAgCXVuc2lnbmVkIGludCBicnhfaW5wdXQ7Cj4gKwlib29s IGludGVybGFjZWQ7CgpTaG91bGRuJ3QgdGhpcyBiZSBzdG9yZWQgaW4gdGhlIHBpcGVsaW5lIGlu c3RlYWQgPyBJbnRlcmxhY2luZyBpcyBhIHByb3BlcnR5IApvZiB0aGUgd2hvbGUgcGlwZWxpbmUs IG5vdCBvZiBlYWNoIGlucHV0IGluZGl2aWR1YWxseS4KCj4gIAl1bnNpZ25lZCBpbnQgYWxwaGE7 Cj4gCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvdnNwMS5oIGIvaW5jbHVkZS9tZWRpYS92 c3AxLmgKPiBpbmRleCA2NzhjMjRkZTFhYzYuLmMxMDg4M2YzMDk4MCAxMDA2NDQKPiAtLS0gYS9p bmNsdWRlL21lZGlhL3ZzcDEuaAo+ICsrKyBiL2luY2x1ZGUvbWVkaWEvdnNwMS5oCj4gQEAgLTUw LDYgKzUwLDcgQEAgaW50IHZzcDFfZHVfc2V0dXBfbGlmKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5z aWduZWQgaW50Cj4gcGlwZV9pbmRleCwKPiAgICogQGRzdDogZGVzdGluYXRpb24gcmVjdGFuZ2xl IG9uIHRoZSBkaXNwbGF5IChpbnRlZ2VyIGNvb3JkaW5hdGVzKQo+ICAgKiBAYWxwaGE6IGFscGhh IHZhbHVlICgwOiBmdWxseSB0cmFuc3BhcmVudCwgMjU1OiBmdWxseSBvcGFxdWUpCj4gICAqIEB6 cG9zOiBaIHBvc2l0aW9uIG9mIHRoZSBwbGFuZSAoZnJvbSAwIHRvIG51bWJlciBvZiBwbGFuZXMg bWludXMgMSkKPiArICogQGludGVybGFjZWQ6IHRydWUgZm9yIGludGVybGFjZWQgcGlwZWxpbmVz Cj4gICAqLwo+ICBzdHJ1Y3QgdnNwMV9kdV9hdG9taWNfY29uZmlnIHsKPiAgCXUzMiBwaXhlbGZv cm1hdDsKPiBAQCAtNTksNiArNjAsNyBAQCBzdHJ1Y3QgdnNwMV9kdV9hdG9taWNfY29uZmlnIHsK PiAgCXN0cnVjdCB2NGwyX3JlY3QgZHN0Owo+ICAJdW5zaWduZWQgaW50IGFscGhhOwo+ICAJdW5z aWduZWQgaW50IHpwb3M7Cj4gKwlib29sIGludGVybGFjZWQ7CgpGb3IgdGhlIHNhbWUgcmVhc29u IHNob3VsZG4ndCB0aGUgaW50ZXJsYWNlZCBmbGFnIGJlIG1vdmVkIHRvIAp2c3AxX2R1X2xpZl9j b25maWcgPwoKPiAgfTsKPiAKPiAgLyoqCgotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGluY2hhcnQK CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==