From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ayan Halder 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 14:31:47 +0100 Message-ID: <20180705133147.GA31243@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0063.outbound.protection.outlook.com [104.47.2.63]) by gabe.freedesktop.org (Postfix) with ESMTPS id 593EE6ED3E for ; Thu, 5 Jul 2018 13:31:53 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180626131716.GA14974@e110455-lin.cambridge.arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau Cc: airlied@linux.ie, liviu.dudau@arm.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, malidp@foss.arm.com, nd@arm.com List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBKdW4gMjYsIDIwMTggYXQgMDI6MTc6MTdQTSArMDEwMCwgTGl2aXUgRHVkYXUgd3Jv dGU6Cj4gSGkgQXlhbiwKPiAKPiBUaGFua3MgZm9yIHRoZSBwYXRjaCEgSSBoYXZlIHNvbWUgc21h bGwgY29tbWVudHMgdG8gbWFrZToKPiAKPiBPbiBGcmksIEp1biAxNSwgMjAxOCBhdCAwMjo1MToz M1BNICswMTAwLCBBeWFuIEt1bWFyIEhhbGRlciB3cm90ZToKPiA+IEFkZGVkIHRoZSBBRkJDIGRl Y29kZXIgcmVnaXN0ZXJzIGZvciBEUDUwMCAsIERQNTUwIGFuZCBEUDY1MC4KPiA+IFRoZXNlIHJl Z2lzdGVycyBjb250cm9sIHRoZSBwcm9jZXNzaW5nIG9mIEFGQkMgYnVmZmVycy4gSXQgY29udHJv bHMgdmFyaW91cwo+ID4gZmVhdHVyZXMgbGlrZSBBRkJDIGRlY29kZXIgZW5hYmxlLCBsb3NzbGVz cyB0cmFuc2Zvcm1hdGlvbiBhbmQgYmxvY2sgc3BsaXQKPiA+IGFzIHdlbGwgYXMgc2V0dGluZyBv ZiB0aGUgbGVmdCwgcmlnaHQsIHRvcCBhbmQgYm90dG9tIGNyb3BwaW5nIG9mIEFGQkMgYnVmZmVy cwo+ID4gKGluIG51bWJlciBvZiBwaXhlbHMpLgo+ID4gQWxsIHRoZSBsYXllcnMgKGV4Y2VwdCBE RV9TTUFSVCkgc3VwcG9ydCBmcmFtZWJ1ZmZlcnMgd2l0aCBBRkJDIG1vZGlmaWVycy4KPiA+IE9u ZSBuZWVkcyB0byBzZXQgdGhlIHBpeGVsIHZhbHVlcyBvZiB0aGUgdG9wLCBsZWZ0LCBib3R0b20g YW5kIHJpZ2h0IGNyb3BwaW5nCj4gPiBmb3IgdGhlIEFGQkMgZnJhbWVidWZmZXIuCj4gPiBBZGRl ZCB0aGUgZnVuY3Rpb25hbGl0eSBpbiBtYWxpZHBfZGVfcGxhbmVfdXBkYXRlKCkgdG8gc2V0IHRo ZSB2YXJpb3VzCj4gPiByZWdpc3RlcnMgZm9yIEFGQkMgZGVjb2RlciwgZGVwZW5kaW5nIG9uIHRo ZSBtb2RpZmllcnMuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEF5YW4gS3VtYXIgaGFsZGVyIDxh eWFuLmhhbGRlckBhcm0uY29tPgo+ID4gUmV2aWV3ZWQtYnk6IEJyaWFuIFN0YXJrZXkgPGJyaWFu LnN0YXJrZXlAYXJtLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRw X2h3LmMgICAgIHwgMjcgKysrKysrKystLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9hcm0vbWFs aWRwX2h3LmggICAgIHwgIDIgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5l cy5jIHwgODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9hcm0vbWFsaWRwX3JlZ3MuaCAgIHwgMjAgKysrKysrKysrCj4gPiAgNCBmaWxl cyBjaGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5jIGIvZHJpdmVycy9ncHUv ZHJtL2FybS9tYWxpZHBfaHcuYwo+ID4gaW5kZXggNGRiZjM5Zi4uZmQ2YjUxMCAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hcm0vbWFsaWRwX2h3LmMKPiA+IEBAIC03NiwzMyArNzYsMzggQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBtYWxpZHBfZm9ybWF0X2lkIG1hbGlkcDU1MF9kZV9mb3JtYXRzW10gPSB7Cj4g PiAgCj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBtYWxpZHBfbGF5ZXIgbWFsaWRwNTAwX2xheWVy c1tdID0gewo+ID4gIAl7IERFX1ZJREVPMSwgTUFMSURQNTAwX0RFX0xWX0JBU0UsIE1BTElEUDUw MF9ERV9MVl9QVFJfQkFTRSwKPiA+IC0JCU1BTElEUF9ERV9MVl9TVFJJREUwLCBNQUxJRFA1MDBf TFZfWVVWMlJHQiwgUk9UQVRFX0FOWSB9LAo+ID4gKwkJTUFMSURQX0RFX0xWX1NUUklERTAsIE1B TElEUDUwMF9MVl9ZVVYyUkdCLCBST1RBVEVfQU5ZLAo+ID4gKwkJTUFMSURQNTAwX0RFX0xWX0FE X0NUUkwgfSwKPiA+ICAJeyBERV9HUkFQSElDUzEsIE1BTElEUDUwMF9ERV9MRzFfQkFTRSwgTUFM SURQNTAwX0RFX0xHMV9QVFJfQkFTRSwKPiA+IC0JCU1BTElEUF9ERV9MR19TVFJJREUsIDAsIFJP VEFURV9BTlkgfSwKPiA+ICsJCU1BTElEUF9ERV9MR19TVFJJREUsIDAsIFJPVEFURV9BTlksIE1B TElEUDUwMF9ERV9MRzFfQURfQ1RSTCB9LAo+ID4gIAl7IERFX0dSQVBISUNTMiwgTUFMSURQNTAw X0RFX0xHMl9CQVNFLCBNQUxJRFA1MDBfREVfTEcyX1BUUl9CQVNFLAo+ID4gLQkJTUFMSURQX0RF X0xHX1NUUklERSwgMCwgUk9UQVRFX0FOWSB9LAo+ID4gKwkJTUFMSURQX0RFX0xHX1NUUklERSwg MCwgUk9UQVRFX0FOWSwgTUFMSURQNTAwX0RFX0xHMl9BRF9DVFJMIH0sCj4gPiAgfTsKPiA+ICAK PiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG1hbGlkcF9sYXllciBtYWxpZHA1NTBfbGF5ZXJzW10g PSB7Cj4gPiAgCXsgREVfVklERU8xLCBNQUxJRFA1NTBfREVfTFYxX0JBU0UsIE1BTElEUDU1MF9E RV9MVjFfUFRSX0JBU0UsCj4gPiAtCQlNQUxJRFBfREVfTFZfU1RSSURFMCwgTUFMSURQNTUwX0xW X1lVVjJSR0IsIFJPVEFURV9BTlkgfSwKPiA+ICsJCU1BTElEUF9ERV9MVl9TVFJJREUwLCBNQUxJ RFA1NTBfTFZfWVVWMlJHQiwgUk9UQVRFX0FOWSwKPiA+ICsJCU1BTElEUDU1MF9ERV9MVjFfQURf Q1RSTCB9LAo+ID4gIAl7IERFX0dSQVBISUNTMSwgTUFMSURQNTUwX0RFX0xHX0JBU0UsIE1BTElE UDU1MF9ERV9MR19QVFJfQkFTRSwKPiA+IC0JCU1BTElEUF9ERV9MR19TVFJJREUsIDAsIFJPVEFU RV9BTlkgfSwKPiA+ICsJCU1BTElEUF9ERV9MR19TVFJJREUsIDAsIFJPVEFURV9BTlksIE1BTElE UDU1MF9ERV9MR19BRF9DVFJMIH0sCj4gPiAgCXsgREVfVklERU8yLCBNQUxJRFA1NTBfREVfTFYy X0JBU0UsIE1BTElEUDU1MF9ERV9MVjJfUFRSX0JBU0UsCj4gPiAtCQlNQUxJRFBfREVfTFZfU1RS SURFMCwgTUFMSURQNTUwX0xWX1lVVjJSR0IsIFJPVEFURV9BTlkgfSwKPiA+ICsJCU1BTElEUF9E RV9MVl9TVFJJREUwLCBNQUxJRFA1NTBfTFZfWVVWMlJHQiwgUk9UQVRFX0FOWSwKPiA+ICsJCU1B TElEUDU1MF9ERV9MVjJfQURfQ1RSTCB9LAo+ID4gIAl7IERFX1NNQVJULCBNQUxJRFA1NTBfREVf TFNfQkFTRSwgTUFMSURQNTUwX0RFX0xTX1BUUl9CQVNFLAo+ID4gLQkJTUFMSURQNTUwX0RFX0xT X1IxX1NUUklERSwgMCwgUk9UQVRFX05PTkUgfSwKPiA+ICsJCU1BTElEUDU1MF9ERV9MU19SMV9T VFJJREUsIDAsIFJPVEFURV9OT05FLCAwIH0sCj4gPiAgfTsKPiA+ICAKPiA+ICBzdGF0aWMgY29u c3Qgc3RydWN0IG1hbGlkcF9sYXllciBtYWxpZHA2NTBfbGF5ZXJzW10gPSB7Cj4gPiAgCXsgREVf VklERU8xLCBNQUxJRFA1NTBfREVfTFYxX0JBU0UsIE1BTElEUDU1MF9ERV9MVjFfUFRSX0JBU0Us Cj4gPiAtCQlNQUxJRFBfREVfTFZfU1RSSURFMCwgTUFMSURQNTUwX0xWX1lVVjJSR0IsIFJPVEFU RV9BTlkgfSwKPiA+ICsJCU1BTElEUF9ERV9MVl9TVFJJREUwLCBNQUxJRFA1NTBfTFZfWVVWMlJH QiwgUk9UQVRFX0FOWSwKPiA+ICsJCU1BTElEUDU1MF9ERV9MVjFfQURfQ1RSTCB9LAo+ID4gIAl7 IERFX0dSQVBISUNTMSwgTUFMSURQNTUwX0RFX0xHX0JBU0UsIE1BTElEUDU1MF9ERV9MR19QVFJf QkFTRSwKPiA+IC0JCU1BTElEUF9ERV9MR19TVFJJREUsIDAsIFJPVEFURV9DT01QUkVTU0VEIH0s Cj4gPiArCQlNQUxJRFBfREVfTEdfU1RSSURFLCAwLCBST1RBVEVfQ09NUFJFU1NFRCwgTUFMSURQ NTUwX0RFX0xHX0FEX0NUUkwgfSwKPiA+ICAJeyBERV9WSURFTzIsIE1BTElEUDU1MF9ERV9MVjJf QkFTRSwgTUFMSURQNTUwX0RFX0xWMl9QVFJfQkFTRSwKPiA+IC0JCU1BTElEUF9ERV9MVl9TVFJJ REUwLCBNQUxJRFA1NTBfTFZfWVVWMlJHQiwgUk9UQVRFX0FOWSB9LAo+ID4gKwkJTUFMSURQX0RF X0xWX1NUUklERTAsIE1BTElEUDU1MF9MVl9ZVVYyUkdCLCBST1RBVEVfQU5ZLAo+ID4gKwkJTUFM SURQNTUwX0RFX0xWMl9BRF9DVFJMIH0sCj4gPiAgCXsgREVfU01BUlQsIE1BTElEUDU1MF9ERV9M U19CQVNFLCBNQUxJRFA1NTBfREVfTFNfUFRSX0JBU0UsCj4gPiAtCQlNQUxJRFA1NTBfREVfTFNf UjFfU1RSSURFLCAwLCBST1RBVEVfTk9ORSB9LAo+ID4gKwkJTUFMSURQNTUwX0RFX0xTX1IxX1NU UklERSwgMCwgUk9UQVRFX05PTkUsIDAgfSwKPiA+ICB9Owo+ID4gIAo+ID4gICNkZWZpbmUgU0Vf Tl9TQ0FMSU5HX0NPRUZGUwk5Ngo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0v bWFsaWRwX2h3LmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9ody5oCj4gPiBpbmRleCA0 MzkwMjQzLi5iYmU2ODgzIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxp ZHBfaHcuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfaHcuaAo+ID4gQEAg LTY3LDYgKzY3LDggQEAgc3RydWN0IG1hbGlkcF9sYXllciB7Cj4gPiAgCXUxNiBzdHJpZGVfb2Zm c2V0OwkvKiBvZmZzZXQgdG8gdGhlIGZpcnN0IHN0cmlkZSByZWdpc3Rlci4gKi8KPiA+ICAJczE2 IHl1djJyZ2Jfb2Zmc2V0OwkvKiBvZmZzZXQgdG8gdGhlIFlVVi0+UkdCIG1hdHJpeCBlbnRyaWVz ICovCj4gPiAgCWVudW0gcm90YXRpb25fZmVhdHVyZXMgcm90OyAgICAvKiB0eXBlIG9mIHJvdGF0 aW9uIHN1cHBvcnRlZCAqLwo+ID4gKwkvKiBhZGRyZXNzIG9mZnNldCBmb3IgdGhlIEFGQkMgZGVj b2RlciByZWdpc3RlcnMgKi8KPiA+ICsJdTE2IGFmYmNfZGVjb2Rlcl9vZmZzZXQ7Cj4gPiAgfTsK PiA+ICAKPiA+ICBlbnVtIG1hbGlkcF9zY2FsaW5nX2NvZWZmX3NldCB7Cj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcGxhbmVzLmMgYi9kcml2ZXJzL2dwdS9kcm0v YXJtL21hbGlkcF9wbGFuZXMuYwo+ID4gaW5kZXggNTMzY2RkZS4uMzk1MDUwNCAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYwo+ID4gQEAgLTMzMCw2ICszMzAsNzEgQEAg c3RhdGljIHZvaWQgbWFsaWRwX2RlX3NldF9jb2xvcl9lbmNvZGluZyhzdHJ1Y3QgbWFsaWRwX3Bs YW5lICpwbGFuZSwKPiA+ICAJfQo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgdm9pZCBtYWxpZHBf c2V0X3BsYW5lX2Jhc2VfYWRkcihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICsJCQkJ ICAgICAgIHN0cnVjdCBtYWxpZHBfcGxhbmUgKm1wLAo+ID4gKwkJCQkgICAgICAgaW50IHBsYW5l X2luZGV4KQo+ID4gK3sKPiA+ICsJZG1hX2FkZHJfdCBwYWRkcjsKPiA+ICsJdTE2IHB0cjsKPiA+ ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSAmbXAtPmJhc2U7Cj4gPiArCWJvb2wgYWZiYyA9 IGZiLT5tb2RpZmllciA/IHRydWUgOiBmYWxzZTsKPiAKPiBUaGUgZGVjaXNpb24gdG8gc2V0IGFm YmMgYmFzZWQgb24gd2V0aGVyIHRoZSBmYiBoYXMgYSBtb2RpZmllciBvciBub3QKPiBzZWVtcyBh IGJpdCB3ZWFrLiBTaG91bGQgd2UgYWxzbyAoYXQgbGVhc3QpIGNoZWNrIHRoYXQgdGhlIG1vZGlm aWVyIGlzCj4gYW4gQVJNIG9uZT8KCkluIG15IG5leHQgcGF0Y2ggKG9mIHRoaXMgc2VyaWVzKSBp ZQpodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL3BhdGNoLzEwNDY2NTM3Lywgd2UgaGF2ZSBj aGVja2VkIGZvciB0aGUKdmFsaWRpdHkgb2YgbW9kaWZpZXIgYW5kIGZvcm1hdCBpbiBtYWxpZHBf Zm9ybWF0X21vZF9zdXBwb3J0ZWQoKS4gV2hlbgpkcm1fYXRvbWljX2NvbW1pdCgpIGlzIGludm9r ZWQsIGl0IGZpcnN0IGNhbGxzIChpbmRpcmVjdGx5IHZpYSBzb21lCmludGVybWVkaWF0ZSBmdW5j dGlvbnMpCm1hbGlkcF9mb3JtYXRfbW9kX3N1cHBvcnRlZCgpIGFuZCB0aGVuIGludm9rZXMKbWFs aWRwX3NldF9wbGFuZV9iYXNlX2FkZHIoKS4gU28gdGhlcmUgaXMgbm8gd2F5IHRoYXQgYW4gaW52 YWxpZAptb2RpZmllciBjb3VsZCBiZSBwYXNzZWQgdG8gbWFsaWRwX3NldF9wbGFuZV9iYXNlX2Fk ZHIoKS4gSWYKbWFsaWRwX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKCkgcmV0dXJucyBlcnJvciB0aGVu IGRybV9hdG9taWNfY29tbWl0KCkKd291bGQgcmV0dXJuIGVycm9yIHRvby4KPiAKPiA+ICsKPiA+ ICsJcHRyID0gbXAtPmxheWVyLT5wdHIgKyAocGxhbmVfaW5kZXggPDwgNCk7Cj4gPiArCj4gPiAr CS8qCj4gPiArCSAqIEZvciBBRkJDIGJ1ZmZlcnMsIGNyb3BwaW5nIGlzIGhhbmRsZWQgYnkgQUZC QyBkZWNvZGVyIHJhdGhlciB0aGFuCj4gPiArCSAqIHBvaW50ZXIgbWFuaXB1bGF0aW9uLgo+ID4g KwkgKi8KPiA+ICsJaWYgKCFhZmJjKSB7Cj4gPiArCQlwYWRkciA9IGRybV9mYl9jbWFfZ2V0X2dl bV9hZGRyKGZiLCBwbGFuZS0+c3RhdGUsCj4gPiArCQkJCQkJcGxhbmVfaW5kZXgpOwo+ID4gKwl9 IGVsc2Ugewo+ID4gKwkJc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqb2JqOwo+ID4gKwo+ID4g KwkJb2JqID0gZHJtX2ZiX2NtYV9nZXRfZ2VtX29iaihmYiwgcGxhbmVfaW5kZXgpOwo+ID4gKwo+ ID4gKwkJaWYgKFdBUk5fT04oIW9iaikpCj4gPiArCQkJcmV0dXJuOwo+ID4gKwkJcGFkZHIgPSBv YmotPnBhZGRyOwo+ID4gKwl9Cj4gPiArCj4gPiArCW1hbGlkcF9od193cml0ZShtcC0+aHdkZXYs IGxvd2VyXzMyX2JpdHMocGFkZHIpLCBwdHIpOwo+ID4gKwltYWxpZHBfaHdfd3JpdGUobXAtPmh3 ZGV2LCB1cHBlcl8zMl9iaXRzKHBhZGRyKSwgcHRyICsgNCk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0 YXRpYyB2b2lkIG1hbGlkcF9kZV9zZXRfcGxhbmVfYWZiYyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSkKPiA+ICt7Cj4gPiArCXN0cnVjdCBtYWxpZHBfcGxhbmUgKm1wOwo+ID4gKwl1MzIgc3JjX3cs IHNyY19oLCB2YWwgPSAwLCBzcmNfeCwgc3JjX3k7Cj4gPiArCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gcGxhbmUtPnN0YXRlLT5mYjsKPiA+ICsKPiA+ICsJbXAgPSB0b19tYWxpZHBfcGxh bmUocGxhbmUpOwo+ID4gKwo+ID4gKwkvKiBjb252ZXJ0IHNyYyB2YWx1ZXMgZnJvbSBRMTYgZml4 ZWQgcG9pbnQgdG8gaW50ZWdlciAqLwo+ID4gKwlzcmNfdyA9IHBsYW5lLT5zdGF0ZS0+c3JjX3cg Pj4gMTY7Cj4gPiArCXNyY19oID0gcGxhbmUtPnN0YXRlLT5zcmNfaCA+PiAxNjsKPiA+ICsJc3Jj X3ggPSBwbGFuZS0+c3RhdGUtPnNyY194ID4+IDE2Owo+ID4gKwlzcmNfeSA9IHBsYW5lLT5zdGF0 ZS0+c3JjX3kgPj4gMTY7Cj4gPiArCj4gPiArCXZhbCA9ICgoZmItPndpZHRoIC0gKHNyY194ICsg c3JjX3cpKSA8PCBNQUxJRFBfQURfQ1JPUF9SSUdIVF9PRkZTRVQpIHwKPiA+ICsJCSAgIHNyY194 Owo+ID4gKwltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2LCB2YWwsCj4gPiArCQkJbXAtPmxheWVy LT5hZmJjX2RlY29kZXJfb2Zmc2V0ICsgTUFMSURQX0FEX0NST1BfSCk7Cj4gPiArCj4gPiArCXZh bCA9ICgoZmItPmhlaWdodCAtIChzcmNfeSArIHNyY19oKSkgPDwgTUFMSURQX0FEX0NST1BfQk9U VE9NX09GRlNFVCkgfAo+ID4gKwkJICAgc3JjX3k7Cj4gPiArCW1hbGlkcF9od193cml0ZShtcC0+ aHdkZXYsIHZhbCwKPiA+ICsJCQltcC0+bGF5ZXItPmFmYmNfZGVjb2Rlcl9vZmZzZXQgKyBNQUxJ RFBfQURfQ1JPUF9WKTsKPiA+ICsKPiA+ICsJdmFsID0gTUFMSURQX0FEX0VOOwo+ID4gKwlpZiAo ZmItPm1vZGlmaWVyICYgQUZCQ19GT1JNQVRfTU9EX1NQTElUKQo+ID4gKwkJdmFsIHw9IE1BTElE UF9BRF9CUzsKPiA+ICsJaWYgKGZiLT5tb2RpZmllciAmIEFGQkNfRk9STUFUX01PRF9ZVFIpCj4g PiArCQl2YWwgfD0gTUFMSURQX0FEX1lUUjsKPiA+ICsKPiA+ICsJbWFsaWRwX2h3X3dyaXRlKG1w LT5od2RldiwgdmFsLCBtcC0+bGF5ZXItPmFmYmNfZGVjb2Rlcl9vZmZzZXQpOwo+ID4gK30KPiA+ ICsKPiA+ICBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ID4gIAkJCQkgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUp Cj4gPiAgewo+ID4gQEAgLTMzOCw2ICs0MDMsNyBAQCBzdGF0aWMgdm9pZCBtYWxpZHBfZGVfcGxh bmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gIAl1MzIgc3JjX3csIHNyY19o LCBkZXN0X3csIGRlc3RfaCwgdmFsOwo+ID4gIAlpbnQgaTsKPiA+ICAJYm9vbCBmb3JtYXRfaGFz X2FscGhhID0gcGxhbmUtPnN0YXRlLT5mYi0+Zm9ybWF0LT5oYXNfYWxwaGE7Cj4gPiArCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmUtPnN0YXRlLT5mYjsKPiA+ICAKPiA+ICAJbXAg PSB0b19tYWxpZHBfcGxhbmUocGxhbmUpOwo+ID4gIAo+ID4gQEAgLTM0OSwxNSArNDE1LDkgQEAg c3RhdGljIHZvaWQgbWFsaWRwX2RlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKPiA+ICAKPiA+ICAJbWFsaWRwX2h3X3dyaXRlKG1wLT5od2RldiwgbXMtPmZvcm1hdCwgbXAt PmxheWVyLT5iYXNlKTsKPiA+ICAKPiA+IC0JZm9yIChpID0gMDsgaSA8IG1zLT5uX3BsYW5lczsg aSsrKSB7Cj4gPiAtCQkvKiBjYWxjdWxhdGUgdGhlIG9mZnNldCBmb3IgdGhlIGxheWVyJ3MgcGxh bmUgcmVnaXN0ZXJzICovCj4gPiAtCQl1MTYgcHRyID0gbXAtPmxheWVyLT5wdHIgKyAoaSA8PCA0 KTsKPiA+IC0JCWRtYV9hZGRyX3QgZmJfYWRkciA9IGRybV9mYl9jbWFfZ2V0X2dlbV9hZGRyKHBs YW5lLT5zdGF0ZS0+ZmIsCj4gPiAtCQkJCQkJCSAgICAgcGxhbmUtPnN0YXRlLCBpKTsKPiA+ICsJ Zm9yIChpID0gMDsgaSA8IG1zLT5uX3BsYW5lczsgaSsrKQo+ID4gKwkJbWFsaWRwX3NldF9wbGFu ZV9iYXNlX2FkZHIoZmIsIG1wLCBpKTsKPiA+ICAKPiA+IC0JCW1hbGlkcF9od193cml0ZShtcC0+ aHdkZXYsIGxvd2VyXzMyX2JpdHMoZmJfYWRkciksIHB0cik7Cj4gPiAtCQltYWxpZHBfaHdfd3Jp dGUobXAtPmh3ZGV2LCB1cHBlcl8zMl9iaXRzKGZiX2FkZHIpLCBwdHIgKyA0KTsKPiA+IC0JfQo+ ID4gIAltYWxpZHBfZGVfc2V0X3BsYW5lX3BpdGNoZXMobXAsIG1zLT5uX3BsYW5lcywKPiA+ICAJ CQkJICAgIHBsYW5lLT5zdGF0ZS0+ZmItPnBpdGNoZXMpOwo+ID4gIAo+ID4gQEAgLTM4MSw2ICs0 NDEsMTEgQEAgc3RhdGljIHZvaWQgbWFsaWRwX2RlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKPiA+ICAJCQkJTEFZRVJfSF9WQUwoc3JjX3cpIHwgTEFZRVJfVl9WQUwoc3Jj X2gpLAo+ID4gIAkJCQltcC0+bGF5ZXItPmJhc2UgKyBNQUxJRFA1NTBfTFNfUjFfSU5fU0laRSk7 Cj4gPiAgCj4gPiArCWlmIChmYi0+bW9kaWZpZXIpCj4gPiArCQltYWxpZHBfZGVfc2V0X3BsYW5l X2FmYmMocGxhbmUpOwo+ID4gKwllbHNlCj4gPiArCQltYWxpZHBfaHdfd3JpdGUobXAtPmh3ZGV2 LCAwLCBtcC0+bGF5ZXItPmFmYmNfZGVjb2Rlcl9vZmZzZXQpOwo+IAo+IEdpdmVuIHRoYXQgeW91 IGFyZSB0ZXN0aW5nIGZvciB0aGUgbm9uLXplcm8gdmFsdWUgb2YgZmItPm1vZGlmaWVyIGluc2lk ZQo+IG1hbGlkcF9kZV9zZXRfcGxhbmVfYWZiYygpIGZ1bmN0aW9uIGJlZm9yZSBzZXR0aW5nIHRo ZSBhZmJjX2RlY29kZXIKPiByZWdpc3RlciB2YWx1ZSwgSSBmZWVsIHRoYXQgeW91IGNvdWxkIHRh a2UgdGhlICdlbHNlJyBicmFuY2ggZnJvbSBoZXJlCj4gYW5kIG1lcmdlIGl0IGludG8gbWFsaWRw X2RlX3NldF9wbGFuZV9hZmJjKCkgZnVuY3Rpb24gKHBvc3NpYmx5IGFsc28KPiByZW5hbWUgaXQg dG8gbWFsaWRwX2RlX3NldF9wbGFuZSkuCgpJIGFtIG5vdCBleGFjdGx5IHN1cmUgd2hhdCB5b3Ug bWVhbnQgaGVyZS4gV2UgYXJlIHRlc3RpbmcgZm9yIHRoZSBub24KemVybyB2YWx1ZSBvZiBmYi0+ bW9kaWZpZXIgaW4gbWFsaWRwX2RlX3BsYW5lX3VwZGF0ZSgpLiBJZgpmYi0+bW9kaWZpZXIgaXMg bm90IHplcm8sIHdlIHNldCB0aGUgYWZiYyBzcGVjaWZpYyByZWdpc3RlcnMgaW4KbWFsaWRwX2Rl X3NldF9wbGFuZV9hZmJjKCkuIFRodXMsIG1hbGlkcF9kZV9wbGFuZV91cGRhdGUoKSAgd2lsbApp bnZva2UgbWFsaWRwX2RlX3NldF9wbGFuZV9hZmJjKCkgZm9yIHNldHRpbmcgYWZiYyBzdHVmZiBh bmQgd2lsbApjb250aW51ZSB3aXRoIHRoZSBvdGhlciByZWdpc3RlciBzZXR0aW5ncy4gSSBkbyBu b3Qgc2VlIGEgY2xlYXIgcmVhc29uCnRvIHJlZmFjdG9yIHRoaXMgY29kZS4KCj4gV2l0aCB0aG9z ZSBzbWFsbCBjaGFuZ2VzOgo+IAo+IFJldmlld2VkLWJ5OiBMaXZpdSBEdWRhdSA8bGl2aXUuZHVk YXVAYXJtLmNvbT4KPiAKPiBCZXN0IHJlZ2FyZHMsCj4gTGl2aXUKPiAKPiAKPiA+ICsKPiA+ICAJ LyogZmlyc3QgY2xlYXIgdGhlIHJvdGF0aW9uIGJpdHMgKi8KPiA+ICAJdmFsID0gbWFsaWRwX2h3 X3JlYWQobXAtPmh3ZGV2LCBtcC0+bGF5ZXItPmJhc2UgKyBNQUxJRFBfTEFZRVJfQ09OVFJPTCk7 Cj4gPiAgCXZhbCAmPSB+TEFZRVJfUk9UX01BU0s7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FybS9tYWxpZHBfcmVncy5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfcmVn cy5oCj4gPiBpbmRleCAxNDkwMjRmLi41NGY0ZWM1IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FybS9tYWxpZHBfcmVncy5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21h bGlkcF9yZWdzLmgKPiA+IEBAIC0xODAsMTAgKzE4MCwxMyBAQAo+ID4gICNkZWZpbmUgTUFMSURQ NTAwX0xWX1lVVjJSR0IJCSgoczE2KSgtMHhCOCkpCj4gPiAgI2RlZmluZSBNQUxJRFA1MDBfREVf TFZfQkFTRQkJMHgwMDEwMAo+ID4gICNkZWZpbmUgTUFMSURQNTAwX0RFX0xWX1BUUl9CQVNFCTB4 MDAxMjQKPiA+ICsjZGVmaW5lIE1BTElEUDUwMF9ERV9MVl9BRF9DVFJMCQkweDAwNDAwCj4gPiAg I2RlZmluZSBNQUxJRFA1MDBfREVfTEcxX0JBU0UJCTB4MDAyMDAKPiA+ICAjZGVmaW5lIE1BTElE UDUwMF9ERV9MRzFfUFRSX0JBU0UJMHgwMDIxYwo+ID4gKyNkZWZpbmUgTUFMSURQNTAwX0RFX0xH MV9BRF9DVFJMCTB4MDA0MGMKPiA+ICAjZGVmaW5lIE1BTElEUDUwMF9ERV9MRzJfQkFTRQkJMHgw MDMwMAo+ID4gICNkZWZpbmUgTUFMSURQNTAwX0RFX0xHMl9QVFJfQkFTRQkweDAwMzFjCj4gPiAr I2RlZmluZSBNQUxJRFA1MDBfREVfTEcyX0FEX0NUUkwJMHgwMDQxOAo+ID4gICNkZWZpbmUgTUFM SURQNTAwX1NFX0JBU0UJCTB4MDBjMDAKPiA+ICAjZGVmaW5lIE1BTElEUDUwMF9TRV9DT05UUk9M CQkweDAwYzBjCj4gPiAgI2RlZmluZSBNQUxJRFA1MDBfU0VfUFRSX0JBU0UJCTB4MDBlMGMKPiA+ IEBAIC0yMDgsMTAgKzIxMSwxMyBAQAo+ID4gICNkZWZpbmUgTUFMSURQNTUwX0xWX1lVVjJSR0IJ CTB4MDAwODQKPiA+ICAjZGVmaW5lIE1BTElEUDU1MF9ERV9MVjFfQkFTRQkJMHgwMDEwMAo+ID4g ICNkZWZpbmUgTUFMSURQNTUwX0RFX0xWMV9QVFJfQkFTRQkweDAwMTI0Cj4gPiArI2RlZmluZSBN QUxJRFA1NTBfREVfTFYxX0FEX0NUUkwJMHgwMDFCOAo+ID4gICNkZWZpbmUgTUFMSURQNTUwX0RF X0xWMl9CQVNFCQkweDAwMjAwCj4gPiAgI2RlZmluZSBNQUxJRFA1NTBfREVfTFYyX1BUUl9CQVNF CTB4MDAyMjQKPiA+ICsjZGVmaW5lIE1BTElEUDU1MF9ERV9MVjJfQURfQ1RSTAkweDAwMkI4Cj4g PiAgI2RlZmluZSBNQUxJRFA1NTBfREVfTEdfQkFTRQkJMHgwMDMwMAo+ID4gICNkZWZpbmUgTUFM SURQNTUwX0RFX0xHX1BUUl9CQVNFCTB4MDAzMWMKPiA+ICsjZGVmaW5lIE1BTElEUDU1MF9ERV9M R19BRF9DVFJMCQkweDAwMzMwCj4gPiAgI2RlZmluZSBNQUxJRFA1NTBfREVfTFNfQkFTRQkJMHgw MDQwMAo+ID4gICNkZWZpbmUgTUFMSURQNTUwX0RFX0xTX1BUUl9CQVNFCTB4MDA0MmMKPiA+ICAj ZGVmaW5lIE1BTElEUDU1MF9ERV9QRVJGX0JBU0UJCTB4MDA1MDAKPiA+IEBAIC0yMjMsNiArMjI5 LDIwIEBACj4gPiAgI2RlZmluZSBNQUxJRFA1NTBfQ09ORklHX1ZBTElECQkweDBjMDE0Cj4gPiAg I2RlZmluZSBNQUxJRFA1NTBfQ09ORklHX0lECQkweDBmZmQ0Cj4gPiAgCj4gPiArLyogQUZCQyBy ZWdpc3RlciBvZmZzZXRzIHJlbGF0aXZlIHRvIE1BTElEUFhYWF9ERV9MWF9BRF9DVFJMICovCj4g PiArLyogVGhlIGZvbGxvd2luZyByZWdpc3RlciBvZmZzZXRzIGFyZSBjb21tb24gZm9yIERQNTAw LCBEUDU1MCBhbmQgRFA2NTAgKi8KPiA+ICsjZGVmaW5lIE1BTElEUF9BRF9DUk9QX0ggICAgICAg ICAgICAgICAgMHg0Cj4gPiArI2RlZmluZSBNQUxJRFBfQURfQ1JPUF9WICAgICAgICAgICAgICAg IDB4OAo+ID4gKyNkZWZpbmUgTUFMSURQX0FEX0VORF9QVFJfTE9XICAgICAgICAgICAweGMKPiA+ ICsjZGVmaW5lIE1BTElEUF9BRF9FTkRfUFRSX0hJR0ggICAgICAgICAgMHgxMAo+ID4gKwo+ID4g Ky8qIEFGQkMgZGVjb2RlciBSZWdpc3RlcnMgKi8KPiA+ICsjZGVmaW5lIE1BTElEUF9BRF9FTiAg ICAgICAgICAgICAgICAgICAgQklUKDApCj4gPiArI2RlZmluZSBNQUxJRFBfQURfWVRSICAgICAg ICAgICAgICAgICAgIEJJVCg0KQo+ID4gKyNkZWZpbmUgTUFMSURQX0FEX0JTICAgICAgICAgICAg ICAgICAgICBCSVQoOCkKPiA+ICsjZGVmaW5lIE1BTElEUF9BRF9DUk9QX1JJR0hUX09GRlNFVCAg ICAgMTYKPiA+ICsjZGVmaW5lIE1BTElEUF9BRF9DUk9QX0JPVFRPTV9PRkZTRVQgICAgMTYKPiA+ ICsKPiA+ICAvKgo+ID4gICAqIFN0YXJ0aW5nIHdpdGggRFA1NTAgdGhlIHJlZ2lzdGVyIG1hcCBi bG9ja3MgaGFzIGJlZW4gc3RhbmRhcmRpc2VkIHRvIHRoZQo+ID4gICAqIGZvbGxvd2luZyBsYXlv dXQ6Cj4gPiAtLSAKPiA+IDIuNy40Cj4gPiAKPiAKPiAtLSAKPiA9PT09PT09PT09PT09PT09PT09 PQo+IHwgSSB3b3VsZCBsaWtlIHRvIHwKPiB8IGZpeCB0aGUgd29ybGQsICB8Cj4gfCBidXQgdGhl eSdyZSBub3QgfAo+IHwgZ2l2aW5nIG1lIHRoZSAgIHwKPiAgXCBzb3VyY2UgY29kZSEgIC8KPiAg IC0tLS0tLS0tLS0tLS0tLQo+ICAgICA/P1xfKD8/PylfLz8/Cj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4g ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=