From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liviu Dudau Subject: Re: [RFC PATCH 3/4] drm/arm/malidp: Set the AFBC register bits if the framebuffer has AFBC modifier Date: Thu, 5 Jul 2018 18:38:21 +0100 Message-ID: <20180705173821.GI15340@e110455-lin.cambridge.arm.com> References: <1529070694-21088-1-git-send-email-ayan.halder@arm.com> <1529070694-21088-4-git-send-email-ayan.halder@arm.com> <20180626131716.GA14974@e110455-lin.cambridge.arm.com> <20180705133147.GA31243@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (usa-sjc-mx-foss1.foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id 466976E1CA for ; Thu, 5 Jul 2018 17:38:24 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180705133147.GA31243@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ayan Halder Cc: Liviu Dudau , airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, malidp@foss.arm.com, nd@arm.com List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBKdWwgMDUsIDIwMTggYXQgMDI6MzE6NDdQTSArMDEwMCwgQXlhbiBIYWxkZXIgd3Jv dGU6Cj4gT24gVHVlLCBKdW4gMjYsIDIwMTggYXQgMDI6MTc6MTdQTSArMDEwMCwgTGl2aXUgRHVk YXUgd3JvdGU6Cj4gPiBIaSBBeWFuLAo+ID4gCj4gPiBUaGFua3MgZm9yIHRoZSBwYXRjaCEgSSBo YXZlIHNvbWUgc21hbGwgY29tbWVudHMgdG8gbWFrZToKPiA+IAo+ID4gT24gRnJpLCBKdW4gMTUs IDIwMTggYXQgMDI6NTE6MzNQTSArMDEwMCwgQXlhbiBLdW1hciBIYWxkZXIgd3JvdGU6Cj4gPiA+ IEFkZGVkIHRoZSBBRkJDIGRlY29kZXIgcmVnaXN0ZXJzIGZvciBEUDUwMCAsIERQNTUwIGFuZCBE UDY1MC4KPiA+ID4gVGhlc2UgcmVnaXN0ZXJzIGNvbnRyb2wgdGhlIHByb2Nlc3Npbmcgb2YgQUZC QyBidWZmZXJzLiBJdCBjb250cm9scyB2YXJpb3VzCj4gPiA+IGZlYXR1cmVzIGxpa2UgQUZCQyBk ZWNvZGVyIGVuYWJsZSwgbG9zc2xlc3MgdHJhbnNmb3JtYXRpb24gYW5kIGJsb2NrIHNwbGl0Cj4g PiA+IGFzIHdlbGwgYXMgc2V0dGluZyBvZiB0aGUgbGVmdCwgcmlnaHQsIHRvcCBhbmQgYm90dG9t IGNyb3BwaW5nIG9mIEFGQkMgYnVmZmVycwo+ID4gPiAoaW4gbnVtYmVyIG9mIHBpeGVscykuCj4g PiA+IEFsbCB0aGUgbGF5ZXJzIChleGNlcHQgREVfU01BUlQpIHN1cHBvcnQgZnJhbWVidWZmZXJz IHdpdGggQUZCQyBtb2RpZmllcnMuCj4gPiA+IE9uZSBuZWVkcyB0byBzZXQgdGhlIHBpeGVsIHZh bHVlcyBvZiB0aGUgdG9wLCBsZWZ0LCBib3R0b20gYW5kIHJpZ2h0IGNyb3BwaW5nCj4gPiA+IGZv ciB0aGUgQUZCQyBmcmFtZWJ1ZmZlci4KPiA+ID4gQWRkZWQgdGhlIGZ1bmN0aW9uYWxpdHkgaW4g bWFsaWRwX2RlX3BsYW5lX3VwZGF0ZSgpIHRvIHNldCB0aGUgdmFyaW91cwo+ID4gPiByZWdpc3Rl cnMgZm9yIEFGQkMgZGVjb2RlciwgZGVwZW5kaW5nIG9uIHRoZSBtb2RpZmllcnMuCj4gPiA+IAo+ ID4gPiBTaWduZWQtb2ZmLWJ5OiBBeWFuIEt1bWFyIGhhbGRlciA8YXlhbi5oYWxkZXJAYXJtLmNv bT4KPiA+ID4gUmV2aWV3ZWQtYnk6IEJyaWFuIFN0YXJrZXkgPGJyaWFuLnN0YXJrZXlAYXJtLmNv bT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5jICAgICB8 IDI3ICsrKysrKysrLS0tLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3Lmgg ICAgIHwgIDIgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMgfCA4 MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCj4gPiA+ICBkcml2ZXJzL2dw dS9kcm0vYXJtL21hbGlkcF9yZWdzLmggICB8IDIwICsrKysrKysrKwo+ID4gPiAgNCBmaWxlcyBj aGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfaHcuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hcm0vbWFsaWRwX2h3LmMKPiA+ID4gaW5kZXggNGRiZjM5Zi4uZmQ2YjUxMCAxMDA2NDQK PiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfaHcuYwo+ID4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5jCj4gPiA+IEBAIC03NiwzMyArNzYsMzggQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBtYWxpZHBfZm9ybWF0X2lkIG1hbGlkcDU1MF9kZV9mb3JtYXRz W10gPSB7Cj4gPiA+ICAKPiA+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWFsaWRwX2xheWVyIG1h bGlkcDUwMF9sYXllcnNbXSA9IHsKPiA+ID4gIAl7IERFX1ZJREVPMSwgTUFMSURQNTAwX0RFX0xW X0JBU0UsIE1BTElEUDUwMF9ERV9MVl9QVFJfQkFTRSwKPiA+ID4gLQkJTUFMSURQX0RFX0xWX1NU UklERTAsIE1BTElEUDUwMF9MVl9ZVVYyUkdCLCBST1RBVEVfQU5ZIH0sCj4gPiA+ICsJCU1BTElE UF9ERV9MVl9TVFJJREUwLCBNQUxJRFA1MDBfTFZfWVVWMlJHQiwgUk9UQVRFX0FOWSwKPiA+ID4g KwkJTUFMSURQNTAwX0RFX0xWX0FEX0NUUkwgfSwKPiA+ID4gIAl7IERFX0dSQVBISUNTMSwgTUFM SURQNTAwX0RFX0xHMV9CQVNFLCBNQUxJRFA1MDBfREVfTEcxX1BUUl9CQVNFLAo+ID4gPiAtCQlN QUxJRFBfREVfTEdfU1RSSURFLCAwLCBST1RBVEVfQU5ZIH0sCj4gPiA+ICsJCU1BTElEUF9ERV9M R19TVFJJREUsIDAsIFJPVEFURV9BTlksIE1BTElEUDUwMF9ERV9MRzFfQURfQ1RSTCB9LAo+ID4g PiAgCXsgREVfR1JBUEhJQ1MyLCBNQUxJRFA1MDBfREVfTEcyX0JBU0UsIE1BTElEUDUwMF9ERV9M RzJfUFRSX0JBU0UsCj4gPiA+IC0JCU1BTElEUF9ERV9MR19TVFJJREUsIDAsIFJPVEFURV9BTlkg fSwKPiA+ID4gKwkJTUFMSURQX0RFX0xHX1NUUklERSwgMCwgUk9UQVRFX0FOWSwgTUFMSURQNTAw X0RFX0xHMl9BRF9DVFJMIH0sCj4gPiA+ICB9Owo+ID4gPiAgCj4gPiA+ICBzdGF0aWMgY29uc3Qg c3RydWN0IG1hbGlkcF9sYXllciBtYWxpZHA1NTBfbGF5ZXJzW10gPSB7Cj4gPiA+ICAJeyBERV9W SURFTzEsIE1BTElEUDU1MF9ERV9MVjFfQkFTRSwgTUFMSURQNTUwX0RFX0xWMV9QVFJfQkFTRSwK PiA+ID4gLQkJTUFMSURQX0RFX0xWX1NUUklERTAsIE1BTElEUDU1MF9MVl9ZVVYyUkdCLCBST1RB VEVfQU5ZIH0sCj4gPiA+ICsJCU1BTElEUF9ERV9MVl9TVFJJREUwLCBNQUxJRFA1NTBfTFZfWVVW MlJHQiwgUk9UQVRFX0FOWSwKPiA+ID4gKwkJTUFMSURQNTUwX0RFX0xWMV9BRF9DVFJMIH0sCj4g PiA+ICAJeyBERV9HUkFQSElDUzEsIE1BTElEUDU1MF9ERV9MR19CQVNFLCBNQUxJRFA1NTBfREVf TEdfUFRSX0JBU0UsCj4gPiA+IC0JCU1BTElEUF9ERV9MR19TVFJJREUsIDAsIFJPVEFURV9BTlkg fSwKPiA+ID4gKwkJTUFMSURQX0RFX0xHX1NUUklERSwgMCwgUk9UQVRFX0FOWSwgTUFMSURQNTUw X0RFX0xHX0FEX0NUUkwgfSwKPiA+ID4gIAl7IERFX1ZJREVPMiwgTUFMSURQNTUwX0RFX0xWMl9C QVNFLCBNQUxJRFA1NTBfREVfTFYyX1BUUl9CQVNFLAo+ID4gPiAtCQlNQUxJRFBfREVfTFZfU1RS SURFMCwgTUFMSURQNTUwX0xWX1lVVjJSR0IsIFJPVEFURV9BTlkgfSwKPiA+ID4gKwkJTUFMSURQ X0RFX0xWX1NUUklERTAsIE1BTElEUDU1MF9MVl9ZVVYyUkdCLCBST1RBVEVfQU5ZLAo+ID4gPiAr CQlNQUxJRFA1NTBfREVfTFYyX0FEX0NUUkwgfSwKPiA+ID4gIAl7IERFX1NNQVJULCBNQUxJRFA1 NTBfREVfTFNfQkFTRSwgTUFMSURQNTUwX0RFX0xTX1BUUl9CQVNFLAo+ID4gPiAtCQlNQUxJRFA1 NTBfREVfTFNfUjFfU1RSSURFLCAwLCBST1RBVEVfTk9ORSB9LAo+ID4gPiArCQlNQUxJRFA1NTBf REVfTFNfUjFfU1RSSURFLCAwLCBST1RBVEVfTk9ORSwgMCB9LAo+ID4gPiAgfTsKPiA+ID4gIAo+ ID4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBtYWxpZHBfbGF5ZXIgbWFsaWRwNjUwX2xheWVyc1td ID0gewo+ID4gPiAgCXsgREVfVklERU8xLCBNQUxJRFA1NTBfREVfTFYxX0JBU0UsIE1BTElEUDU1 MF9ERV9MVjFfUFRSX0JBU0UsCj4gPiA+IC0JCU1BTElEUF9ERV9MVl9TVFJJREUwLCBNQUxJRFA1 NTBfTFZfWVVWMlJHQiwgUk9UQVRFX0FOWSB9LAo+ID4gPiArCQlNQUxJRFBfREVfTFZfU1RSSURF MCwgTUFMSURQNTUwX0xWX1lVVjJSR0IsIFJPVEFURV9BTlksCj4gPiA+ICsJCU1BTElEUDU1MF9E RV9MVjFfQURfQ1RSTCB9LAo+ID4gPiAgCXsgREVfR1JBUEhJQ1MxLCBNQUxJRFA1NTBfREVfTEdf QkFTRSwgTUFMSURQNTUwX0RFX0xHX1BUUl9CQVNFLAo+ID4gPiAtCQlNQUxJRFBfREVfTEdfU1RS SURFLCAwLCBST1RBVEVfQ09NUFJFU1NFRCB9LAo+ID4gPiArCQlNQUxJRFBfREVfTEdfU1RSSURF LCAwLCBST1RBVEVfQ09NUFJFU1NFRCwgTUFMSURQNTUwX0RFX0xHX0FEX0NUUkwgfSwKPiA+ID4g IAl7IERFX1ZJREVPMiwgTUFMSURQNTUwX0RFX0xWMl9CQVNFLCBNQUxJRFA1NTBfREVfTFYyX1BU Ul9CQVNFLAo+ID4gPiAtCQlNQUxJRFBfREVfTFZfU1RSSURFMCwgTUFMSURQNTUwX0xWX1lVVjJS R0IsIFJPVEFURV9BTlkgfSwKPiA+ID4gKwkJTUFMSURQX0RFX0xWX1NUUklERTAsIE1BTElEUDU1 MF9MVl9ZVVYyUkdCLCBST1RBVEVfQU5ZLAo+ID4gPiArCQlNQUxJRFA1NTBfREVfTFYyX0FEX0NU UkwgfSwKPiA+ID4gIAl7IERFX1NNQVJULCBNQUxJRFA1NTBfREVfTFNfQkFTRSwgTUFMSURQNTUw X0RFX0xTX1BUUl9CQVNFLAo+ID4gPiAtCQlNQUxJRFA1NTBfREVfTFNfUjFfU1RSSURFLCAwLCBS T1RBVEVfTk9ORSB9LAo+ID4gPiArCQlNQUxJRFA1NTBfREVfTFNfUjFfU1RSSURFLCAwLCBST1RB VEVfTk9ORSwgMCB9LAo+ID4gPiAgfTsKPiA+ID4gIAo+ID4gPiAgI2RlZmluZSBTRV9OX1NDQUxJ TkdfQ09FRkZTCTk2Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlk cF9ody5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfaHcuaAo+ID4gPiBpbmRleCA0Mzkw MjQzLi5iYmU2ODgzIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlk cF9ody5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmgKPiA+ID4g QEAgLTY3LDYgKzY3LDggQEAgc3RydWN0IG1hbGlkcF9sYXllciB7Cj4gPiA+ICAJdTE2IHN0cmlk ZV9vZmZzZXQ7CS8qIG9mZnNldCB0byB0aGUgZmlyc3Qgc3RyaWRlIHJlZ2lzdGVyLiAqLwo+ID4g PiAgCXMxNiB5dXYycmdiX29mZnNldDsJLyogb2Zmc2V0IHRvIHRoZSBZVVYtPlJHQiBtYXRyaXgg ZW50cmllcyAqLwo+ID4gPiAgCWVudW0gcm90YXRpb25fZmVhdHVyZXMgcm90OyAgICAvKiB0eXBl IG9mIHJvdGF0aW9uIHN1cHBvcnRlZCAqLwo+ID4gPiArCS8qIGFkZHJlc3Mgb2Zmc2V0IGZvciB0 aGUgQUZCQyBkZWNvZGVyIHJlZ2lzdGVycyAqLwo+ID4gPiArCXUxNiBhZmJjX2RlY29kZXJfb2Zm c2V0Owo+ID4gPiAgfTsKPiA+ID4gIAo+ID4gPiAgZW51bSBtYWxpZHBfc2NhbGluZ19jb2VmZl9z ZXQgewo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVz LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYwo+ID4gPiBpbmRleCA1MzNj ZGRlLi4zOTUwNTA0IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlk cF9wbGFuZXMuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMu Ywo+ID4gPiBAQCAtMzMwLDYgKzMzMCw3MSBAQCBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfc2V0X2Nv bG9yX2VuY29kaW5nKHN0cnVjdCBtYWxpZHBfcGxhbmUgKnBsYW5lLAo+ID4gPiAgCX0KPiA+ID4g IH0KPiA+ID4gIAo+ID4gPiArc3RhdGljIHZvaWQgbWFsaWRwX3NldF9wbGFuZV9iYXNlX2FkZHIo c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gPiA+ICsJCQkJICAgICAgIHN0cnVjdCBtYWxp ZHBfcGxhbmUgKm1wLAo+ID4gPiArCQkJCSAgICAgICBpbnQgcGxhbmVfaW5kZXgpCj4gPiA+ICt7 Cj4gPiA+ICsJZG1hX2FkZHJfdCBwYWRkcjsKPiA+ID4gKwl1MTYgcHRyOwo+ID4gPiArCXN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lID0gJm1wLT5iYXNlOwo+ID4gPiArCWJvb2wgYWZiYyA9IGZiLT5t b2RpZmllciA/IHRydWUgOiBmYWxzZTsKPiA+IAo+ID4gVGhlIGRlY2lzaW9uIHRvIHNldCBhZmJj IGJhc2VkIG9uIHdldGhlciB0aGUgZmIgaGFzIGEgbW9kaWZpZXIgb3Igbm90Cj4gPiBzZWVtcyBh IGJpdCB3ZWFrLiBTaG91bGQgd2UgYWxzbyAoYXQgbGVhc3QpIGNoZWNrIHRoYXQgdGhlIG1vZGlm aWVyIGlzCj4gPiBhbiBBUk0gb25lPwo+IAo+IEluIG15IG5leHQgcGF0Y2ggKG9mIHRoaXMgc2Vy aWVzKSBpZQo+IGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcGF0Y2gvMTA0NjY1MzcvLCB3 ZSBoYXZlIGNoZWNrZWQgZm9yIHRoZQo+IHZhbGlkaXR5IG9mIG1vZGlmaWVyIGFuZCBmb3JtYXQg aW4gbWFsaWRwX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKCkuIFdoZW4KPiBkcm1fYXRvbWljX2NvbW1p dCgpIGlzIGludm9rZWQsIGl0IGZpcnN0IGNhbGxzIChpbmRpcmVjdGx5IHZpYSBzb21lCj4gaW50 ZXJtZWRpYXRlIGZ1bmN0aW9ucykKPiBtYWxpZHBfZm9ybWF0X21vZF9zdXBwb3J0ZWQoKSBhbmQg dGhlbiBpbnZva2VzCj4gbWFsaWRwX3NldF9wbGFuZV9iYXNlX2FkZHIoKS4gU28gdGhlcmUgaXMg bm8gd2F5IHRoYXQgYW4gaW52YWxpZAo+IG1vZGlmaWVyIGNvdWxkIGJlIHBhc3NlZCB0byBtYWxp ZHBfc2V0X3BsYW5lX2Jhc2VfYWRkcigpLiBJZgo+IG1hbGlkcF9mb3JtYXRfbW9kX3N1cHBvcnRl ZCgpIHJldHVybnMgZXJyb3IgdGhlbiBkcm1fYXRvbWljX2NvbW1pdCgpCj4gd291bGQgcmV0dXJu IGVycm9yIHRvby4KPiA+IAo+ID4gPiArCj4gPiA+ICsJcHRyID0gbXAtPmxheWVyLT5wdHIgKyAo cGxhbmVfaW5kZXggPDwgNCk7Cj4gPiA+ICsKPiA+ID4gKwkvKgo+ID4gPiArCSAqIEZvciBBRkJD IGJ1ZmZlcnMsIGNyb3BwaW5nIGlzIGhhbmRsZWQgYnkgQUZCQyBkZWNvZGVyIHJhdGhlciB0aGFu Cj4gPiA+ICsJICogcG9pbnRlciBtYW5pcHVsYXRpb24uCj4gPiA+ICsJICovCj4gPiA+ICsJaWYg KCFhZmJjKSB7Cj4gPiA+ICsJCXBhZGRyID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX2FkZHIoZmIsIHBs YW5lLT5zdGF0ZSwKPiA+ID4gKwkJCQkJCXBsYW5lX2luZGV4KTsKPiA+ID4gKwl9IGVsc2Ugewo+ ID4gPiArCQlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpvYmo7Cj4gPiA+ICsKPiA+ID4gKwkJ b2JqID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX29iaihmYiwgcGxhbmVfaW5kZXgpOwo+ID4gPiArCj4g PiA+ICsJCWlmIChXQVJOX09OKCFvYmopKQo+ID4gPiArCQkJcmV0dXJuOwo+ID4gPiArCQlwYWRk ciA9IG9iai0+cGFkZHI7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJbWFsaWRwX2h3X3dyaXRl KG1wLT5od2RldiwgbG93ZXJfMzJfYml0cyhwYWRkciksIHB0cik7Cj4gPiA+ICsJbWFsaWRwX2h3 X3dyaXRlKG1wLT5od2RldiwgdXBwZXJfMzJfYml0cyhwYWRkciksIHB0ciArIDQpOwo+ID4gPiAr fQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCBtYWxpZHBfZGVfc2V0X3BsYW5lX2FmYmMoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IG1hbGlkcF9wbGFu ZSAqbXA7Cj4gPiA+ICsJdTMyIHNyY193LCBzcmNfaCwgdmFsID0gMCwgc3JjX3gsIHNyY195Owo+ ID4gPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmUtPnN0YXRlLT5mYjsKPiA+ ID4gKwo+ID4gPiArCW1wID0gdG9fbWFsaWRwX3BsYW5lKHBsYW5lKTsKPiA+ID4gKwo+ID4gPiAr CS8qIGNvbnZlcnQgc3JjIHZhbHVlcyBmcm9tIFExNiBmaXhlZCBwb2ludCB0byBpbnRlZ2VyICov Cj4gPiA+ICsJc3JjX3cgPSBwbGFuZS0+c3RhdGUtPnNyY193ID4+IDE2Owo+ID4gPiArCXNyY19o ID0gcGxhbmUtPnN0YXRlLT5zcmNfaCA+PiAxNjsKPiA+ID4gKwlzcmNfeCA9IHBsYW5lLT5zdGF0 ZS0+c3JjX3ggPj4gMTY7Cj4gPiA+ICsJc3JjX3kgPSBwbGFuZS0+c3RhdGUtPnNyY195ID4+IDE2 Owo+ID4gPiArCj4gPiA+ICsJdmFsID0gKChmYi0+d2lkdGggLSAoc3JjX3ggKyBzcmNfdykpIDw8 IE1BTElEUF9BRF9DUk9QX1JJR0hUX09GRlNFVCkgfAo+ID4gPiArCQkgICBzcmNfeDsKPiA+ID4g KwltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCB2YWwsCj4gPiA+ICsJCQltcC0+bGF5ZXItPmFm YmNfZGVjb2Rlcl9vZmZzZXQgKyBNQUxJRFBfQURfQ1JPUF9IKTsKPiA+ID4gKwo+ID4gPiArCXZh bCA9ICgoZmItPmhlaWdodCAtIChzcmNfeSArIHNyY19oKSkgPDwgTUFMSURQX0FEX0NST1BfQk9U VE9NX09GRlNFVCkgfAo+ID4gPiArCQkgICBzcmNfeTsKPiA+ID4gKwltYWxpZHBfaHdfd3JpdGUo bXAtPmh3ZGV2LCB2YWwsCj4gPiA+ICsJCQltcC0+bGF5ZXItPmFmYmNfZGVjb2Rlcl9vZmZzZXQg KyBNQUxJRFBfQURfQ1JPUF9WKTsKPiA+ID4gKwo+ID4gPiArCXZhbCA9IE1BTElEUF9BRF9FTjsK PiA+ID4gKwlpZiAoZmItPm1vZGlmaWVyICYgQUZCQ19GT1JNQVRfTU9EX1NQTElUKQo+ID4gPiAr CQl2YWwgfD0gTUFMSURQX0FEX0JTOwo+ID4gPiArCWlmIChmYi0+bW9kaWZpZXIgJiBBRkJDX0ZP Uk1BVF9NT0RfWVRSKQo+ID4gPiArCQl2YWwgfD0gTUFMSURQX0FEX1lUUjsKPiA+ID4gKwo+ID4g PiArCW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYsIHZhbCwgbXAtPmxheWVyLT5hZmJjX2RlY29k ZXJfb2Zmc2V0KTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgc3RhdGljIHZvaWQgbWFsaWRwX2Rl X3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ID4gIAkJCQkgICBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCj4gPiA+ICB7Cj4gPiA+IEBAIC0zMzgsNiAr NDAzLDcgQEAgc3RhdGljIHZvaWQgbWFsaWRwX2RlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKPiA+ID4gIAl1MzIgc3JjX3csIHNyY19oLCBkZXN0X3csIGRlc3RfaCwgdmFs Owo+ID4gPiAgCWludCBpOwo+ID4gPiAgCWJvb2wgZm9ybWF0X2hhc19hbHBoYSA9IHBsYW5lLT5z dGF0ZS0+ZmItPmZvcm1hdC0+aGFzX2FscGhhOwo+ID4gPiArCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gcGxhbmUtPnN0YXRlLT5mYjsKPiA+ID4gIAo+ID4gPiAgCW1wID0gdG9fbWFsaWRw X3BsYW5lKHBsYW5lKTsKPiA+ID4gIAo+ID4gPiBAQCAtMzQ5LDE1ICs0MTUsOSBAQCBzdGF0aWMg dm9pZCBtYWxpZHBfZGVfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4g PiAgCj4gPiA+ICAJbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgbXMtPmZvcm1hdCwgbXAtPmxh eWVyLT5iYXNlKTsKPiA+ID4gIAo+ID4gPiAtCWZvciAoaSA9IDA7IGkgPCBtcy0+bl9wbGFuZXM7 IGkrKykgewo+ID4gPiAtCQkvKiBjYWxjdWxhdGUgdGhlIG9mZnNldCBmb3IgdGhlIGxheWVyJ3Mg cGxhbmUgcmVnaXN0ZXJzICovCj4gPiA+IC0JCXUxNiBwdHIgPSBtcC0+bGF5ZXItPnB0ciArIChp IDw8IDQpOwo+ID4gPiAtCQlkbWFfYWRkcl90IGZiX2FkZHIgPSBkcm1fZmJfY21hX2dldF9nZW1f YWRkcihwbGFuZS0+c3RhdGUtPmZiLAo+ID4gPiAtCQkJCQkJCSAgICAgcGxhbmUtPnN0YXRlLCBp KTsKPiA+ID4gKwlmb3IgKGkgPSAwOyBpIDwgbXMtPm5fcGxhbmVzOyBpKyspCj4gPiA+ICsJCW1h bGlkcF9zZXRfcGxhbmVfYmFzZV9hZGRyKGZiLCBtcCwgaSk7Cj4gPiA+ICAKPiA+ID4gLQkJbWFs aWRwX2h3X3dyaXRlKG1wLT5od2RldiwgbG93ZXJfMzJfYml0cyhmYl9hZGRyKSwgcHRyKTsKPiA+ ID4gLQkJbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgdXBwZXJfMzJfYml0cyhmYl9hZGRyKSwg cHRyICsgNCk7Cj4gPiA+IC0JfQo+ID4gPiAgCW1hbGlkcF9kZV9zZXRfcGxhbmVfcGl0Y2hlcyht cCwgbXMtPm5fcGxhbmVzLAo+ID4gPiAgCQkJCSAgICBwbGFuZS0+c3RhdGUtPmZiLT5waXRjaGVz KTsKPiA+ID4gIAo+ID4gPiBAQCAtMzgxLDYgKzQ0MSwxMSBAQCBzdGF0aWMgdm9pZCBtYWxpZHBf ZGVfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiAgCQkJCUxBWUVS X0hfVkFMKHNyY193KSB8IExBWUVSX1ZfVkFMKHNyY19oKSwKPiA+ID4gIAkJCQltcC0+bGF5ZXIt PmJhc2UgKyBNQUxJRFA1NTBfTFNfUjFfSU5fU0laRSk7Cj4gPiA+ICAKPiA+ID4gKwlpZiAoZmIt Pm1vZGlmaWVyKQo+ID4gPiArCQltYWxpZHBfZGVfc2V0X3BsYW5lX2FmYmMocGxhbmUpOwo+ID4g PiArCWVsc2UKPiA+ID4gKwkJbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgMCwgbXAtPmxheWVy LT5hZmJjX2RlY29kZXJfb2Zmc2V0KTsKPiA+IAo+ID4gR2l2ZW4gdGhhdCB5b3UgYXJlIHRlc3Rp bmcgZm9yIHRoZSBub24temVybyB2YWx1ZSBvZiBmYi0+bW9kaWZpZXIgaW5zaWRlCj4gPiBtYWxp ZHBfZGVfc2V0X3BsYW5lX2FmYmMoKSBmdW5jdGlvbiBiZWZvcmUgc2V0dGluZyB0aGUgYWZiY19k ZWNvZGVyCj4gPiByZWdpc3RlciB2YWx1ZSwgSSBmZWVsIHRoYXQgeW91IGNvdWxkIHRha2UgdGhl ICdlbHNlJyBicmFuY2ggZnJvbSBoZXJlCj4gPiBhbmQgbWVyZ2UgaXQgaW50byBtYWxpZHBfZGVf c2V0X3BsYW5lX2FmYmMoKSBmdW5jdGlvbiAocG9zc2libHkgYWxzbwo+ID4gcmVuYW1lIGl0IHRv IG1hbGlkcF9kZV9zZXRfcGxhbmUpLgo+IAo+IEkgYW0gbm90IGV4YWN0bHkgc3VyZSB3aGF0IHlv dSBtZWFudCBoZXJlLiBXZSBhcmUgdGVzdGluZyBmb3IgdGhlIG5vbgo+IHplcm8gdmFsdWUgb2Yg ZmItPm1vZGlmaWVyIGluIG1hbGlkcF9kZV9wbGFuZV91cGRhdGUoKS4gSWYKPiBmYi0+bW9kaWZp ZXIgaXMgbm90IHplcm8sIHdlIHNldCB0aGUgYWZiYyBzcGVjaWZpYyByZWdpc3RlcnMgaW4KPiBt YWxpZHBfZGVfc2V0X3BsYW5lX2FmYmMoKS4gVGh1cywgbWFsaWRwX2RlX3BsYW5lX3VwZGF0ZSgp ICB3aWxsCj4gaW52b2tlIG1hbGlkcF9kZV9zZXRfcGxhbmVfYWZiYygpIGZvciBzZXR0aW5nIGFm YmMgc3R1ZmYgYW5kIHdpbGwKPiBjb250aW51ZSB3aXRoIHRoZSBvdGhlciByZWdpc3RlciBzZXR0 aW5ncy4gSSBkbyBub3Qgc2VlIGEgY2xlYXIgcmVhc29uCj4gdG8gcmVmYWN0b3IgdGhpcyBjb2Rl LgoKV2hhdCBJJ20gc3VnZ2VzdGluZyBpczoKCiAtIHJlbmFtZSBtYWxpZHBfZGVfc2V0X3BsYW5l X2FmYmMgdG8gbWFsaWRwX2RlX3NldF9wbGFuZSgpCiAtIHJlbW92ZSB0aGUgaWYgLi4gZWxzZSBt YWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCAwLCBtcC0+bGF5ZXItPmFmYmNfZGVjb2Rlcl9vZmZz ZXQpOwogICBhbmQga2VlcCBqdXN0IHRoZSBjYWxsIHRvIG1hbGlkcF9kZV9zZXRfcGxhbmUoKSB3 aXRob3V0IGFueSBvdGhlcgogICBjb25kaXRpb24KIC0gaW5zaWRlIG1hbGlkcF9kZV9zZXRfcGxh bmUoKSwgY2hhbmdlIGZyb206Cgl2YWwgPSBNQUxJRFBfQURfRU47CiAgIHRvCgl2YWwgPSBmYi0+ bW9kaWZpZXIgPyBNQUxJRFBfQURfRU4gOiAwOwoKICAgYW5kIHRoZW4gdGhlIDAgdmFsdWUgd2ls bCBiZSB3cml0dGVuIGNvcnJlY3RseSBpbnRvIHRoZQogICBhZmJjX2RlY29kZXJfb2Zmc2V0IGlm IGZiLT5tb2RpZmllciBpcyB6ZXJvLgoKQmVzdCByZWdhcmRzLApMaXZpdQoKPiAKPiA+IFdpdGgg dGhvc2Ugc21hbGwgY2hhbmdlczoKPiA+IAo+ID4gUmV2aWV3ZWQtYnk6IExpdml1IER1ZGF1IDxs aXZpdS5kdWRhdUBhcm0uY29tPgo+ID4gCj4gPiBCZXN0IHJlZ2FyZHMsCj4gPiBMaXZpdQo+ID4g Cj4gPiAKPiA+ID4gKwo+ID4gPiAgCS8qIGZpcnN0IGNsZWFyIHRoZSByb3RhdGlvbiBiaXRzICov Cj4gPiA+ICAJdmFsID0gbWFsaWRwX2h3X3JlYWQobXAtPmh3ZGV2LCBtcC0+bGF5ZXItPmJhc2Ug KyBNQUxJRFBfTEFZRVJfQ09OVFJPTCk7Cj4gPiA+ICAJdmFsICY9IH5MQVlFUl9ST1RfTUFTSzsK PiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3JlZ3MuaCBiL2Ry aXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3JlZ3MuaAo+ID4gPiBpbmRleCAxNDkwMjRmLi41NGY0 ZWM1IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9yZWdzLmgK PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcmVncy5oCj4gPiA+IEBAIC0x ODAsMTAgKzE4MCwxMyBAQAo+ID4gPiAgI2RlZmluZSBNQUxJRFA1MDBfTFZfWVVWMlJHQgkJKChz MTYpKC0weEI4KSkKPiA+ID4gICNkZWZpbmUgTUFMSURQNTAwX0RFX0xWX0JBU0UJCTB4MDAxMDAK PiA+ID4gICNkZWZpbmUgTUFMSURQNTAwX0RFX0xWX1BUUl9CQVNFCTB4MDAxMjQKPiA+ID4gKyNk ZWZpbmUgTUFMSURQNTAwX0RFX0xWX0FEX0NUUkwJCTB4MDA0MDAKPiA+ID4gICNkZWZpbmUgTUFM SURQNTAwX0RFX0xHMV9CQVNFCQkweDAwMjAwCj4gPiA+ICAjZGVmaW5lIE1BTElEUDUwMF9ERV9M RzFfUFRSX0JBU0UJMHgwMDIxYwo+ID4gPiArI2RlZmluZSBNQUxJRFA1MDBfREVfTEcxX0FEX0NU UkwJMHgwMDQwYwo+ID4gPiAgI2RlZmluZSBNQUxJRFA1MDBfREVfTEcyX0JBU0UJCTB4MDAzMDAK PiA+ID4gICNkZWZpbmUgTUFMSURQNTAwX0RFX0xHMl9QVFJfQkFTRQkweDAwMzFjCj4gPiA+ICsj ZGVmaW5lIE1BTElEUDUwMF9ERV9MRzJfQURfQ1RSTAkweDAwNDE4Cj4gPiA+ICAjZGVmaW5lIE1B TElEUDUwMF9TRV9CQVNFCQkweDAwYzAwCj4gPiA+ICAjZGVmaW5lIE1BTElEUDUwMF9TRV9DT05U Uk9MCQkweDAwYzBjCj4gPiA+ICAjZGVmaW5lIE1BTElEUDUwMF9TRV9QVFJfQkFTRQkJMHgwMGUw Ywo+ID4gPiBAQCAtMjA4LDEwICsyMTEsMTMgQEAKPiA+ID4gICNkZWZpbmUgTUFMSURQNTUwX0xW X1lVVjJSR0IJCTB4MDAwODQKPiA+ID4gICNkZWZpbmUgTUFMSURQNTUwX0RFX0xWMV9CQVNFCQkw eDAwMTAwCj4gPiA+ICAjZGVmaW5lIE1BTElEUDU1MF9ERV9MVjFfUFRSX0JBU0UJMHgwMDEyNAo+ ID4gPiArI2RlZmluZSBNQUxJRFA1NTBfREVfTFYxX0FEX0NUUkwJMHgwMDFCOAo+ID4gPiAgI2Rl ZmluZSBNQUxJRFA1NTBfREVfTFYyX0JBU0UJCTB4MDAyMDAKPiA+ID4gICNkZWZpbmUgTUFMSURQ NTUwX0RFX0xWMl9QVFJfQkFTRQkweDAwMjI0Cj4gPiA+ICsjZGVmaW5lIE1BTElEUDU1MF9ERV9M VjJfQURfQ1RSTAkweDAwMkI4Cj4gPiA+ICAjZGVmaW5lIE1BTElEUDU1MF9ERV9MR19CQVNFCQkw eDAwMzAwCj4gPiA+ICAjZGVmaW5lIE1BTElEUDU1MF9ERV9MR19QVFJfQkFTRQkweDAwMzFjCj4g PiA+ICsjZGVmaW5lIE1BTElEUDU1MF9ERV9MR19BRF9DVFJMCQkweDAwMzMwCj4gPiA+ICAjZGVm aW5lIE1BTElEUDU1MF9ERV9MU19CQVNFCQkweDAwNDAwCj4gPiA+ICAjZGVmaW5lIE1BTElEUDU1 MF9ERV9MU19QVFJfQkFTRQkweDAwNDJjCj4gPiA+ICAjZGVmaW5lIE1BTElEUDU1MF9ERV9QRVJG X0JBU0UJCTB4MDA1MDAKPiA+ID4gQEAgLTIyMyw2ICsyMjksMjAgQEAKPiA+ID4gICNkZWZpbmUg TUFMSURQNTUwX0NPTkZJR19WQUxJRAkJMHgwYzAxNAo+ID4gPiAgI2RlZmluZSBNQUxJRFA1NTBf Q09ORklHX0lECQkweDBmZmQ0Cj4gPiA+ICAKPiA+ID4gKy8qIEFGQkMgcmVnaXN0ZXIgb2Zmc2V0 cyByZWxhdGl2ZSB0byBNQUxJRFBYWFhfREVfTFhfQURfQ1RSTCAqLwo+ID4gPiArLyogVGhlIGZv bGxvd2luZyByZWdpc3RlciBvZmZzZXRzIGFyZSBjb21tb24gZm9yIERQNTAwLCBEUDU1MCBhbmQg RFA2NTAgKi8KPiA+ID4gKyNkZWZpbmUgTUFMSURQX0FEX0NST1BfSCAgICAgICAgICAgICAgICAw eDQKPiA+ID4gKyNkZWZpbmUgTUFMSURQX0FEX0NST1BfViAgICAgICAgICAgICAgICAweDgKPiA+ ID4gKyNkZWZpbmUgTUFMSURQX0FEX0VORF9QVFJfTE9XICAgICAgICAgICAweGMKPiA+ID4gKyNk ZWZpbmUgTUFMSURQX0FEX0VORF9QVFJfSElHSCAgICAgICAgICAweDEwCj4gPiA+ICsKPiA+ID4g Ky8qIEFGQkMgZGVjb2RlciBSZWdpc3RlcnMgKi8KPiA+ID4gKyNkZWZpbmUgTUFMSURQX0FEX0VO ICAgICAgICAgICAgICAgICAgICBCSVQoMCkKPiA+ID4gKyNkZWZpbmUgTUFMSURQX0FEX1lUUiAg ICAgICAgICAgICAgICAgICBCSVQoNCkKPiA+ID4gKyNkZWZpbmUgTUFMSURQX0FEX0JTICAgICAg ICAgICAgICAgICAgICBCSVQoOCkKPiA+ID4gKyNkZWZpbmUgTUFMSURQX0FEX0NST1BfUklHSFRf T0ZGU0VUICAgICAxNgo+ID4gPiArI2RlZmluZSBNQUxJRFBfQURfQ1JPUF9CT1RUT01fT0ZGU0VU ICAgIDE2Cj4gPiA+ICsKPiA+ID4gIC8qCj4gPiA+ICAgKiBTdGFydGluZyB3aXRoIERQNTUwIHRo ZSByZWdpc3RlciBtYXAgYmxvY2tzIGhhcyBiZWVuIHN0YW5kYXJkaXNlZCB0byB0aGUKPiA+ID4g ICAqIGZvbGxvd2luZyBsYXlvdXQ6Cj4gPiA+IC0tIAo+ID4gPiAyLjcuNAo+ID4gPiAKPiA+IAo+ ID4gLS0gCj4gPiA9PT09PT09PT09PT09PT09PT09PQo+ID4gfCBJIHdvdWxkIGxpa2UgdG8gfAo+ ID4gfCBmaXggdGhlIHdvcmxkLCAgfAo+ID4gfCBidXQgdGhleSdyZSBub3QgfAo+ID4gfCBnaXZp bmcgbWUgdGhlICAgfAo+ID4gIFwgc291cmNlIGNvZGUhICAvCj4gPiAgIC0tLS0tLS0tLS0tLS0t LQo+ID4gICAgID8/XF8oPz8/KV8vPz8KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiBkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCj09PT09PT09PT09PT09PT09PT09Cnwg SSB3b3VsZCBsaWtlIHRvIHwKfCBmaXggdGhlIHdvcmxkLCAgfAp8IGJ1dCB0aGV5J3JlIG5vdCB8 CnwgZ2l2aW5nIG1lIHRoZSAgIHwKIFwgc291cmNlIGNvZGUhICAvCiAgLS0tLS0tLS0tLS0tLS0t CiAgICDCr1xfKOODhClfL8KvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=