From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v4 08/11] media: vsp1: Add support for extended display list headers Date: Thu, 24 May 2018 14:44:48 +0300 Message-ID: <4341947.2iR8IN8nZS@avalon> References: <32c7ac51c290efd12b16172839547ba204921143.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 [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id C5C706E010 for ; Thu, 24 May 2018 11:44:52 +0000 (UTC) In-Reply-To: <32c7ac51c290efd12b16172839547ba204921143.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 MjAxOCAxNjozNjoxOSBFRVNUIEtpZXJhbiBCaW5naGFtIHdyb3RlOgo+IEV4dGVuZGVkIGRpc3Bs YXkgbGlzdCBoZWFkZXJzIGFsbG93IHByZSBhbmQgcG9zdCBjb21tYW5kIGxpc3RzIHRvIGJlCj4g ZXhlY3V0ZWQgYnkgdGhlIFZTUCBwaXBlbGluZS4gVGhpcyBwcm92aWRlcyB0aGUgYmFzZSBzdXBw b3J0IGZvcgo+IGZlYXR1cmVzIHN1Y2ggYXMgQVVUT19GTEQgKGZvciBpbnRlcmxhY2VkIHN1cHBv cnQpIGFuZCBBVVRPX0RJU1AgKGZvcgo+IHN1cHBvcnRpbmcgY29udGludW91cyBjYW1lcmEgcHJl dmlldyBwaXBlbGluZXMuCj4gCj4gU2lnbmVkLW9mZi1ieTogS2llcmFuIEJpbmdoYW0gPGtpZXJh bi5iaW5naGFtK3JlbmVzYXNAaWRlYXNvbmJvYXJkLmNvbT4KPiAKPiAtLS0KPiAKPiB2MjoKPiAg LSByZW1vdmUgX19wYWNrZWQgYXR0cmlidXRlcwo+IC0tLQo+ICBkcml2ZXJzL21lZGlhL3BsYXRm b3JtL3ZzcDEvdnNwMS5oICAgICAgfCAgMSArLQo+ICBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Zz cDEvdnNwMV9kbC5jICAgfCA4MyArKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICBkcml2ZXJz L21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9kbC5oICAgfCAyOSArKysrKysrKy0KPiAgZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZHJ2LmMgIHwgIDcgKy0KPiAgZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS92c3AxL3ZzcDFfcmVncy5oIHwgIDUgKy0KPiAgNSBmaWxlcyBjaGFuZ2VkLCAx MTYgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDEuaAo+IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92 c3AxL3ZzcDEuaCBpbmRleCBmMGQyMWNjOGU5YWIuLjU2YzYyMTIyYTgxYQo+IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxLmgKPiArKysgYi9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMS5oCj4gQEAgLTUzLDYgKzUzLDcgQEAgc3RydWN0IHZzcDFf dWlmOwo+ICAjZGVmaW5lIFZTUDFfSEFTX0hHTwkJKDEgPDwgNykKPiAgI2RlZmluZSBWU1AxX0hB U19IR1QJCSgxIDw8IDgpCj4gICNkZWZpbmUgVlNQMV9IQVNfQlJTCQkoMSA8PCA5KQo+ICsjZGVm aW5lIFZTUDFfSEFTX0VYVF9ETAkJKDEgPDwgMTApCj4gCj4gIHN0cnVjdCB2c3AxX2RldmljZV9p bmZvIHsKPiAgCXUzMiB2ZXJzaW9uOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL3ZzcDEvdnNwMV9kbC5jCj4gYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9k bC5jIGluZGV4IDU2NTE0Y2Q1MWM1MS4uYjY0ZDMyNTM1ZWRjCj4gMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZGwuYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vdnNwMS92c3AxX2RsLmMKPiBAQCAtMjIsNiArMjIsOSBAQAo+ICAjZGVmaW5lIFZT UDFfRExIX0lOVF9FTkFCTEUJCSgxIDw8IDEpCj4gICNkZWZpbmUgVlNQMV9ETEhfQVVUT19TVEFS VAkJKDEgPDwgMCkKPiAKPiArI2RlZmluZSBWU1AxX0RMSF9FWFRfUFJFX0NNRF9FWEVDCSgxIDw8 IDkpCj4gKyNkZWZpbmUgVlNQMV9ETEhfRVhUX1BPU1RfQ01EX0VYRUMJKDEgPDwgOCkKPiArCj4g IHN0cnVjdCB2c3AxX2RsX2hlYWRlcl9saXN0IHsKPiAgCXUzMiBudW1fYnl0ZXM7Cj4gIAl1MzIg YWRkcjsKPiBAQCAtMzQsMTEgKzM3LDM0IEBAIHN0cnVjdCB2c3AxX2RsX2hlYWRlciB7Cj4gIAl1 MzIgZmxhZ3M7Cj4gIH07Cj4gCj4gK3N0cnVjdCB2c3AxX2RsX2V4dF9oZWFkZXIgewo+ICsJdTMy IHJlc2VydmVkMDsJCS8qIGFsaWdubWVudCBwYWRkaW5nICovCj4gKwo+ICsJdTE2IHByZV9leHRf Y21kX3F0eTsKClNob3VsZCB0aGlzIGJlIGNhbGxlZCBwcmVfZXh0X2RsX251bV9jbWQgdG8gbWF0 Y2ggdGhlIGRhdGFzaGVldCA/Cgo+ICsJdTE2IGZsYWdzOwoKQXJlbid0IHRoZSBmbGFncyBzdXBw b3NlZCB0byBjb21lIGJlZm9yZSB0aGUgcHJlX2V4dF9kbF9udW1fY21kIGZpZWxkID8KCj4gKwl1 MzIgcHJlX2V4dF9jbWRfcGxpc3Q7CgpBbmQgcHJlX2V4dF9kbF9wbGlzdCA/Cgo+ICsKPiArCXUz MiBwb3N0X2V4dF9jbWRfcXR5Owo+ICsJdTMyIHBvc3RfZXh0X2NtZF9wbGlzdDsKClNpbWlsYXIg Y29tbWVudHMgZm9yIHRoZXNlIHZhcmlhYmxlcy4KCj4gK307Cj4gKwo+ICtzdHJ1Y3QgdnNwMV9k bF9oZWFkZXJfZXh0ZW5kZWQgewo+ICsJc3RydWN0IHZzcDFfZGxfaGVhZGVyIGhlYWRlcjsKPiAr CXN0cnVjdCB2c3AxX2RsX2V4dF9oZWFkZXIgZXh0Owo+ICt9Owo+ICsKPiAgc3RydWN0IHZzcDFf ZGxfZW50cnkgewo+ICAJdTMyIGFkZHI7Cj4gIAl1MzIgZGF0YTsKPiAgfTsKPiAKPiArc3RydWN0 IHZzcDFfZGxfZXh0X2NtZF9oZWFkZXIgewoKSXNuJ3QgdGhpcyByZWZlcnJlZCB0byBpbiB0aGUg ZGF0YXNoZWV0IGFzIGEgYm9keSBlbnRyeSwgbm90IGEgaGVhZGVyID8gSG93IAphYm91dCBuYW1p bmcgaXQgdnNwMV9kbF9leHRfY21kX2VudHJ5ID8gT3IganVzdCB2c3AxX2RsX2V4dF9jbWQgKGlu IHdoaWNoIGNhc2UgCnRoZSBvdGhlciBzdHJ1Y3R1cmUgdGhhdCBnb2VzIGJ5IHRoZSBzYW1lIG5h bWUgd291bGQgbmVlZCB0byBiZSByZW5hbWVkKSA/Cgo+ICsJdTMyIGNtZDsKPiArCXUzMiBmbGFn czsKPiArCXUzMiBkYXRhOwo+ICsJdTMyIHJlc2VydmVkOwoKVGhlIGRhdGFzaGVldCBkb2N1bWVu dHMgdGhpcyBhcyB0d28gNjQtYml0IGZpZWxkcywgc2hvdWxkbid0IHdlIGhhbmRsZSB0aGUgCnN0 cnVjdHVyZSB0aGUgc2FtZSB3YXkgPwoKPiArfTsKPiArCj4gIC8qKgo+ICAgKiBzdHJ1Y3QgdnNw MV9kbF9ib2R5IC0gRGlzcGxheSBsaXN0IGJvZHkKPiAgICogQGxpc3Q6IGVudHJ5IGluIHRoZSBk aXNwbGF5IGxpc3QgbGlzdCBvZiBib2RpZXMKPiBAQCAtOTUsOSArMTIxLDEyIEBAIHN0cnVjdCB2 c3AxX2RsX2JvZHlfcG9vbCB7Cj4gICAqIEBsaXN0OiBlbnRyeSBpbiB0aGUgZGlzcGxheSBsaXN0 IG1hbmFnZXIgbGlzdHMKPiAgICogQGRsbTogdGhlIGRpc3BsYXkgbGlzdCBtYW5hZ2VyCj4gICAq IEBoZWFkZXI6IGRpc3BsYXkgbGlzdCBoZWFkZXIKPiArICogQGV4dGVuZGVkOiBleHRlbmRlZCBk aXNwbGF5IGxpc3QgaGVhZGVyLiBOVUxMIGZvciBub3JtYWwgbGlzdHMKClNob3VsZCB3ZSBuYW1l IHRoaXMgZXh0ZW5zaW9uIGluc3RlYWQgb2YgZXh0ZW5kZWQgPwoKPiAgICogQGRtYTogRE1BIGFk ZHJlc3MgZm9yIHRoZSBoZWFkZXIKPiAgICogQGJvZHkwOiBmaXJzdCBkaXNwbGF5IGxpc3QgYm9k eQo+ICAgKiBAYm9kaWVzOiBsaXN0IG9mIGV4dHJhIGRpc3BsYXkgbGlzdCBib2RpZXMKPiArICog QHByZV9jbWQ6IHByZSBjbWQgdG8gYmUgaXNzdWVkIHRocm91Z2ggZXh0ZW5kZWQgZGwgaGVhZGVy Cj4gKyAqIEBwb3N0X2NtZDogcG9zdCBjbWQgdG8gYmUgaXNzdWVkIHRocm91Z2ggZXh0ZW5kZWQg ZGwgaGVhZGVyCgpJIHRoaW5rIHlvdSBjYW4gc3BlbGwgY29tbWFuZCBpbiBmdWxsLgoKPiAgICog QGhhc19jaGFpbjogaWYgdHJ1ZSwgaW5kaWNhdGVzIHRoYXQgdGhlcmUncyBhIHBhcnRpdGlvbiBj aGFpbgo+ICAgKiBAY2hhaW46IGVudHJ5IGluIHRoZSBkaXNwbGF5IGxpc3QgcGFydGl0aW9uIGNo YWluCj4gICAqIEBpbnRlcm5hbDogd2hldGhlciB0aGUgZGlzcGxheSBsaXN0IGlzIHVzZWQgZm9y IGludGVybmFsIHB1cnBvc2UKPiBAQCAtMTA3LDExICsxMzYsMTUgQEAgc3RydWN0IHZzcDFfZGxf bGlzdCB7Cj4gIAlzdHJ1Y3QgdnNwMV9kbF9tYW5hZ2VyICpkbG07Cj4gCj4gIAlzdHJ1Y3QgdnNw MV9kbF9oZWFkZXIgKmhlYWRlcjsKPiArCXN0cnVjdCB2c3AxX2RsX2V4dF9oZWFkZXIgKmV4dGVu ZGVkOwo+ICAJZG1hX2FkZHJfdCBkbWE7Cj4gCj4gIAlzdHJ1Y3QgdnNwMV9kbF9ib2R5ICpib2R5 MDsKPiAgCXN0cnVjdCBsaXN0X2hlYWQgYm9kaWVzOwo+IAo+ICsJc3RydWN0IHZzcDFfZGxfZXh0 X2NtZCAqcHJlX2NtZDsKPiArCXN0cnVjdCB2c3AxX2RsX2V4dF9jbWQgKnBvc3RfY21kOwo+ICsK PiAgCWJvb2wgaGFzX2NoYWluOwo+ICAJc3RydWN0IGxpc3RfaGVhZCBjaGFpbjsKPiAKPiBAQCAt NDk2LDYgKzUyOSwxNCBAQCBpbnQgdnNwMV9kbF9saXN0X2FkZF9jaGFpbihzdHJ1Y3QgdnNwMV9k bF9saXN0ICpoZWFkLAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAKPiArc3RhdGljIHZvaWQgdnNwMV9k bF9leHRfY21kX2ZpbGxfaGVhZGVyKHN0cnVjdCB2c3AxX2RsX2V4dF9jbWQgKmNtZCkKCj4gK3sK PiArCWNtZC0+Y21kc1swXS5jbWQgPSBjbWQtPmNtZF9vcGNvZGU7Cj4gKwljbWQtPmNtZHNbMF0u ZmxhZ3MgPSBjbWQtPmZsYWdzOwo+ICsJY21kLT5jbWRzWzBdLmRhdGEgPSBjbWQtPmRhdGFfZG1h Owo+ICsJY21kLT5jbWRzWzBdLnJlc2VydmVkID0gMDsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQg dnNwMV9kbF9saXN0X2ZpbGxfaGVhZGVyKHN0cnVjdCB2c3AxX2RsX2xpc3QgKmRsLCBib29sIGlz X2xhc3QpCj4gewo+ICAJc3RydWN0IHZzcDFfZGxfbWFuYWdlciAqZGxtID0gZGwtPmRsbTsKPiBA QCAtNTQ4LDYgKzU4OSwyNyBAQCBzdGF0aWMgdm9pZCB2c3AxX2RsX2xpc3RfZmlsbF9oZWFkZXIo c3RydWN0Cj4gdnNwMV9kbF9saXN0ICpkbCwgYm9vbCBpc19sYXN0KSAqLwo+ICAJCWRsLT5oZWFk ZXItPmZsYWdzID0gVlNQMV9ETEhfSU5UX0VOQUJMRTsKPiAgCX0KPiArCj4gKwlpZiAoIWRsLT5l eHRlbmRlZCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJZGwtPmV4dGVuZGVkLT5mbGFncyA9IDA7Cj4g Kwo+ICsJaWYgKGRsLT5wcmVfY21kKSB7Cj4gKwkJZGwtPmV4dGVuZGVkLT5wcmVfZXh0X2NtZF9w bGlzdCA9IGRsLT5wcmVfY21kLT5jbWRfZG1hOwo+ICsJCWRsLT5leHRlbmRlZC0+cHJlX2V4dF9j bWRfcXR5ID0gZGwtPnByZV9jbWQtPm51bV9jbWRzOwo+ICsJCWRsLT5leHRlbmRlZC0+ZmxhZ3Mg fD0gVlNQMV9ETEhfRVhUX1BSRV9DTURfRVhFQzsKPiArCj4gKwkJdnNwMV9kbF9leHRfY21kX2Zp bGxfaGVhZGVyKGRsLT5wcmVfY21kKTsKPiArCX0KPiArCj4gKwlpZiAoZGwtPnBvc3RfY21kKSB7 Cj4gKwkJZGwtPmV4dGVuZGVkLT5wcmVfZXh0X2NtZF9wbGlzdCA9IGRsLT5wb3N0X2NtZC0+Y21k X2RtYTsKPiArCQlkbC0+ZXh0ZW5kZWQtPnByZV9leHRfY21kX3F0eSA9IGRsLT5wb3N0X2NtZC0+ bnVtX2NtZHM7Cj4gKwkJZGwtPmV4dGVuZGVkLT5mbGFncyB8PSBWU1AxX0RMSF9FWFRfUE9TVF9D TURfRVhFQzsKPiArCj4gKwkJdnNwMV9kbF9leHRfY21kX2ZpbGxfaGVhZGVyKGRsLT5wcmVfY21k KTsKPiArCX0KPiAgfQo+IAo+ICBzdGF0aWMgYm9vbCB2c3AxX2RsX2xpc3RfaHdfdXBkYXRlX3Bl bmRpbmcoc3RydWN0IHZzcDFfZGxfbWFuYWdlciAqZGxtKQo+IEBAIC03MzUsMTQgKzc5NywyMCBA QCB1bnNpZ25lZCBpbnQgdnNwMV9kbG1faXJxX2ZyYW1lX2VuZChzdHJ1Y3QKPiB2c3AxX2RsX21h bmFnZXIgKmRsbSkgfQo+IAo+ICAvKiBIYXJkd2FyZSBTZXR1cCAqLwo+IC12b2lkIHZzcDFfZGxt X3NldHVwKHN0cnVjdCB2c3AxX2RldmljZSAqdnNwMSkKPiArdm9pZCB2c3AxX2RsbV9zZXR1cChz dHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEsIHVuc2lnbmVkIGludCBpbmRleCkKPiAgewo+ICAJdTMy IGN0cmwgPSAoMjU2IDw8IFZJNl9ETF9DVFJMX0FSX1dBSVRfU0hJRlQpCj4gCj4gIAkJIHwgVkk2 X0RMX0NUUkxfREMyIHwgVkk2X0RMX0NUUkxfREMxIHwgVkk2X0RMX0NUUkxfREMwCj4gIAkJIHwg Vkk2X0RMX0NUUkxfRExFOwo+IAo+ICsJaWYgKHZzcDFfZmVhdHVyZSh2c3AxLCBWU1AxX0hBU19F WFRfREwpKQo+ICsJCXZzcDFfd3JpdGUodnNwMSwgVkk2X0RMX0VYVF9DVFJMKGluZGV4KSwKPiAr CQkJICAgKDB4MDIgPDwgVkk2X0RMX0VYVF9DVFJMX1BPTElOVF9TSElGVCkgfAo+ICsJCQkgICBW STZfRExfRVhUX0NUUkxfRExQUkkgfCBWSTZfRExfRVhUX0NUUkxfRVhUKTsKPiArCj4gIAl2c3Ax X3dyaXRlKHZzcDEsIFZJNl9ETF9DVFJMLCBjdHJsKTsKPiAtCXZzcDFfd3JpdGUodnNwMSwgVkk2 X0RMX1NXQVAsIFZJNl9ETF9TV0FQX0xXUyk7Cj4gKwl2c3AxX3dyaXRlKHZzcDEsIFZJNl9ETF9T V0FQKGluZGV4KSwgVkk2X0RMX1NXQVBfTFdTIHwKPiArCQkJICgoaW5kZXggPT0gMSkgPyBWSTZf RExfU1dBUF9JTkQgOiAwKSk7CgpJcyB0aGlzIGNoYW5nZSBuZWVkZWQgPyBJZiBWSTZfRExfU1dB UF9JTkQgaXMgbm90IHNldCBpbiBWSTZfRExfU1dBUCgxKSwgCmRpc3BsYXkgbGlzdCBzd2FwIGZv ciBXUEYxIGlzIHN1cHBvc2VkIHRvIGJlIGNvbnRyb2xsZWQgYnkgVkk2X0RMX1NXQVAoMCkgCmFj Y29yZGluZyB0byB0aGUgZGF0YXNoZWV0LgoKSWYgdGhhdCdzIG5vdCB0aGUgY2FzZSBhbmQgdGhp cyBjaGFuZ2UgaXMgbmVlZGVkLCBJIHdvdWxkIHNwbGl0IHN1cHBvcnQgZm9yIApWSTZfRExfU1dB UChuKSB0byBhIHNlcGFyYXRlIHBhdGNoLCBhbmQgbW92ZWQgaXQgYmVmb3JlIDA3LzExLgoKPiAg fQo+IAo+ICB2b2lkIHZzcDFfZGxtX3Jlc2V0KHN0cnVjdCB2c3AxX2RsX21hbmFnZXIgKmRsbSkK PiBAQCAtNzg3LDcgKzg1NSwxMSBAQCBzdHJ1Y3QgdnNwMV9kbF9tYW5hZ2VyICp2c3AxX2RsbV9j cmVhdGUoc3RydWN0Cj4gdnNwMV9kZXZpY2UgKnZzcDEsCj4gIAkgKiBmcmFnbWVudGF0aW9uLCB3 aXRoIHRoZSBoZWFkZXIgbG9jYXRlZCByaWdodCBhZnRlciB0aGUgYm9keSBpbgo+ICAJICogbWVt b3J5Lgo+ICAJICovCj4gLQloZWFkZXJfc2l6ZSA9IEFMSUdOKHNpemVvZihzdHJ1Y3QgdnNwMV9k bF9oZWFkZXIpLCA4KTsKPiArCWhlYWRlcl9zaXplID0gdnNwMV9mZWF0dXJlKHZzcDEsIFZTUDFf SEFTX0VYVF9ETCkgPwo+ICsJCQlzaXplb2Yoc3RydWN0IHZzcDFfZGxfaGVhZGVyX2V4dGVuZGVk KSA6Cj4gKwkJCXNpemVvZihzdHJ1Y3QgdnNwMV9kbF9oZWFkZXIpOwo+ICsKPiArCWhlYWRlcl9z aXplID0gQUxJR04oaGVhZGVyX3NpemUsIDgpOwoKV2Ugd2lsbCBoYXZlIHRvIGltcHJvdmUgaGVh ZGVyIGhhbmRsaW5nIGF0IHNvbWUgcG9pbnQuIE5vdCBhbGwgaGVhZGVycyByZXF1aXJlIApleHRl bnNpb25zLgoKPiAgCWRsbS0+cG9vbCA9IHZzcDFfZGxfYm9keV9wb29sX2NyZWF0ZSh2c3AxLCBw cmVhbGxvYywKPiAgCQkJCQkgICAgIFZTUDFfRExfTlVNX0VOVFJJRVMsIGhlYWRlcl9zaXplKTsK PiBAQCAtODAzLDYgKzg3NSwxMSBAQCBzdHJ1Y3QgdnNwMV9kbF9tYW5hZ2VyICp2c3AxX2RsbV9j cmVhdGUoc3RydWN0Cj4gdnNwMV9kZXZpY2UgKnZzcDEsIHJldHVybiBOVUxMOwo+ICAJCX0KPiAK PiArCQkvKiBUaGUgZXh0ZW5kZWQgaGVhZGVyIGltbWVkaWF0ZWx5IGZvbGxvd3MgdGhlIGhlYWRl ciAqLwoKcy8gXCovLiAqLwoKPiArCQlpZiAodnNwMV9mZWF0dXJlKHZzcDEsIFZTUDFfSEFTX0VY VF9ETCkpCj4gKwkJCWRsLT5leHRlbmRlZCA9ICh2b2lkICopZGwtPmhlYWRlcgo+ICsJCQkJICAg ICArIHNpemVvZigqZGwtPmhlYWRlcik7Cj4gKwo+ICAJCWxpc3RfYWRkX3RhaWwoJmRsLT5saXN0 LCAmZGxtLT5mcmVlKTsKPiAgCX0KPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0 Zm9ybS92c3AxL3ZzcDFfZGwuaAo+IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFf ZGwuaCBpbmRleCAyMTZiZDIzMDI5ZGQuLmFhNWY0YWRjNjYxNwo+IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX2RsLmgKPiArKysgYi9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL3ZzcDEvdnNwMV9kbC5oCj4gQEAgLTIwLDcgKzIwLDM0IEBAIHN0cnVjdCB2c3Ax X2RsX21hbmFnZXI7Cj4gICNkZWZpbmUgVlNQMV9ETF9GUkFNRV9FTkRfQ09NUExFVEVECQlCSVQo MCkKPiAgI2RlZmluZSBWU1AxX0RMX0ZSQU1FX0VORF9JTlRFUk5BTAkJQklUKDEpCj4gCj4gLXZv aWQgdnNwMV9kbG1fc2V0dXAoc3RydWN0IHZzcDFfZGV2aWNlICp2c3AxKTsKPiArLyoqCj4gKyAq IHN0cnVjdCB2c3AxX2RsX2V4dF9jbWQgLSBFeHRlbmRlZCBEaXNwbGF5IGNvbW1hbmQKPiArICog QGZyZWU6IGVudHJ5IGluIHRoZSBwb29sIG9mIGZyZWUgY29tbWFuZHMgbGlzdAo+ICsgKiBAY21k X29wY29kZTogY29tbWFuZCB0eXBlIG9wY29kZQoKTWF5YmUganVzdCBvcGNvZGUgPwoKPiArICog QGZsYWdzOiBmbGFncyB1c2VkIGJ5IHRoZSBjb21tYW5kCj4gKyAqIEBjbWRzOiBhcnJheSBvZiBj b21tYW5kIGJvZGllcyBmb3IgdGhpcyBleHRlbmRlZCBjbWQKPiArICogQG51bV9jbWRzOiBxdWFu dGl0eSBvZiBjb21tYW5kcyBpbiBAY21kcyBhcnJheQo+ICsgKiBAY21kX2RtYTogRE1BIGFkZHJl c3Mgb2YgdGhlIGNvbW1hbmQgYm9kaWVzCgpzL2NvbW1hbmQgYm9kaWVzL2NvbW1hbmRzIGJvZHkv ID8KCj4gKyAqIEBkYXRhOiBtZW1vcnkgYWxsb2NhdGlvbiBmb3IgY29tbWFuZCBzcGVjaWZpYyBk YXRhCj4gKyAqIEBkYXRhX2RtYTogRE1BIGFkZHJlc3MgZm9yIGNvbW1hbmQgc3BlY2lmaWMgZGF0 YQoKcy9jb21tYW5kIHNwZWNpZmljL2NvbW1hbmQtc3BlY2lmaWMvCgo+ICsgKiBAZGF0YV9zaXpl OiBzaXplIG9mIHRoZSBAZGF0YV9kbWEgbWVtb3J5IGluIGJ5dGVzCgpkYXRhX3NpemUgaXMgc2V0 IGJ1dCBvdGhlcndpc2UgbmV2ZXIgdXNlZC4gU2hvdWxkIHdlIGRyb3AgdGhlIGZpZWxkLCBvciBt YWtlIAp1c2Ugb2YgaXQgPwoKPiArICovCj4gK3N0cnVjdCB2c3AxX2RsX2V4dF9jbWQgewo+ICsJ c3RydWN0IGxpc3RfaGVhZCBmcmVlOwo+ICsKPiArCXU4IGNtZF9vcGNvZGU7Cj4gKwl1MzIgZmxh Z3M7Cj4gKwo+ICsJc3RydWN0IHZzcDFfZGxfZXh0X2NtZF9oZWFkZXIgKmNtZHM7Cj4gKwl1bnNp Z25lZCBpbnQgbnVtX2NtZHM7Cj4gKwlkbWFfYWRkcl90IGNtZF9kbWE7Cj4gKwo+ICsJdm9pZCAq ZGF0YTsKPiArCWRtYV9hZGRyX3QgZGF0YV9kbWE7Cj4gKwlzaXplX3QgZGF0YV9zaXplOwo+ICt9 Owo+ICsKPiArdm9pZCB2c3AxX2RsbV9zZXR1cChzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEsIHVu c2lnbmVkIGludCBpbmRleCk7Cj4gCj4gIHN0cnVjdCB2c3AxX2RsX21hbmFnZXIgKnZzcDFfZGxt X2NyZWF0ZShzdHJ1Y3QgdnNwMV9kZXZpY2UgKnZzcDEsCj4gIAkJCQkJdW5zaWduZWQgaW50IGlu ZGV4LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9kcnYu Ywo+IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZHJ2LmMgaW5kZXggMGZjMzg4 YmY1YTMzLi4yNmE3YjRkMzJlNmMKPiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL3ZzcDEvdnNwMV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92 c3AxX2Rydi5jCj4gQEAgLTU0NSw3ICs1NDUsOCBAQCBzdGF0aWMgaW50IHZzcDFfZGV2aWNlX2lu aXQoc3RydWN0IHZzcDFfZGV2aWNlICp2c3AxKQo+ICAJdnNwMV93cml0ZSh2c3AxLCBWSTZfRFBS X0hHVF9TTVBQVCwgKDcgPDwgVkk2X0RQUl9TTVBQVF9UR1dfU0hJRlQpIHwKPiAgCQkgICAoVkk2 X0RQUl9OT0RFX1VOVVNFRCA8PCBWSTZfRFBSX1NNUFBUX1BUX1NISUZUKSk7Cj4gCj4gLQl2c3Ax X2RsbV9zZXR1cCh2c3AxKTsKPiArCWZvciAoaSA9IDA7IGkgPCB2c3AxLT5pbmZvLT53cGZfY291 bnQ7ICsraSkKPiArCQl2c3AxX2RsbV9zZXR1cCh2c3AxLCBpKTsKPiAKPiAgCXJldHVybiAwOwo+ ICB9Cj4gQEAgLTc1NCw3ICs3NTUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZzcDFfZGV2aWNl X2luZm8gdnNwMV9kZXZpY2VfaW5mb3NbXQo+ID0geyAudmVyc2lvbiA9IFZJNl9JUF9WRVJTSU9O X01PREVMX1ZTUERfR0VOMywKPiAgCQkubW9kZWwgPSAiVlNQMi1EIiwKPiAgCQkuZ2VuID0gMywK PiAtCQkuZmVhdHVyZXMgPSBWU1AxX0hBU19CUlUgfCBWU1AxX0hBU19XUEZfVkZMSVAsCj4gKwkJ LmZlYXR1cmVzID0gVlNQMV9IQVNfQlJVIHwgVlNQMV9IQVNfV1BGX1ZGTElQIHwgVlNQMV9IQVNf RVhUX0RMLAo+ICAJCS5saWZfY291bnQgPSAxLAo+ICAJCS5ycGZfY291bnQgPSA1LAo+ICAJCS51 aWZfY291bnQgPSAxLAo+IEBAIC03NzQsNyArNzc1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2 c3AxX2RldmljZV9pbmZvIHZzcDFfZGV2aWNlX2luZm9zW10KPiA9IHsgLnZlcnNpb24gPSBWSTZf SVBfVkVSU0lPTl9NT0RFTF9WU1BETF9HRU4zLAo+ICAJCS5tb2RlbCA9ICJWU1AyLURMIiwKPiAg CQkuZ2VuID0gMywKPiAtCQkuZmVhdHVyZXMgPSBWU1AxX0hBU19CUlMgfCBWU1AxX0hBU19CUlUs Cj4gKwkJLmZlYXR1cmVzID0gVlNQMV9IQVNfQlJTIHwgVlNQMV9IQVNfQlJVIHwgVlNQMV9IQVNf RVhUX0RMLAo+ICAJCS5saWZfY291bnQgPSAyLAo+ICAJCS5ycGZfY291bnQgPSA1LAo+ICAJCS51 aWZfY291bnQgPSAyLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEv dnNwMV9yZWdzLmgKPiBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX3JlZ3MuaCBp bmRleCAwZDI0OWZmOWY1NjQuLmQwNTQ3Njc1NzBjMQo+IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv bWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX3JlZ3MuaAo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxh dGZvcm0vdnNwMS92c3AxX3JlZ3MuaAo+IEBAIC02NywxMiArNjcsMTMgQEAKPiAKPiAgI2RlZmlu ZSBWSTZfRExfSERSX0FERFIobikJCSgweDAxMDQgKyAobikgKiA0KQo+IAo+IC0jZGVmaW5lIFZJ Nl9ETF9TV0FQCQkJMHgwMTE0Cj4gKyNkZWZpbmUgVkk2X0RMX1NXQVAobikJCQkoMHgwMTE0ICsg KG4pICogNTYpCj4gKyNkZWZpbmUgVkk2X0RMX1NXQVBfSU5ECQkJKDEgPDwgMzEpCj4gICNkZWZp bmUgVkk2X0RMX1NXQVBfTFdTCQkJKDEgPDwgMikKPiAgI2RlZmluZSBWSTZfRExfU1dBUF9XRFMJ CQkoMSA8PCAxKQo+ICAjZGVmaW5lIFZJNl9ETF9TV0FQX0JUUwkJCSgxIDw8IDApCj4gCj4gLSNk ZWZpbmUgVkk2X0RMX0VYVF9DVFJMCQkJMHgwMTFjCj4gKyNkZWZpbmUgVkk2X0RMX0VYVF9DVFJM KG4pCQkoMHgwMTFjICsgKG4pICogMzYpCj4gICNkZWZpbmUgVkk2X0RMX0VYVF9DVFJMX05XRQkJ KDEgPDwgMTYpCj4gICNkZWZpbmUgVkk2X0RMX0VYVF9DVFJMX1BPTElOVF9NQVNLCSgweDNmIDw8 IDgpCj4gICNkZWZpbmUgVkk2X0RMX0VYVF9DVFJMX1BPTElOVF9TSElGVAk4CgotLSAKUmVnYXJk cywKCkxhdXJlbnQgUGluY2hhcnQKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==