From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [igt-dev] [PATCH] drm/i915: Add plane alpha blending support based on RFC Date: Mon, 4 Jun 2018 18:27:20 +0200 Message-ID: <164ce4fb-f203-4ada-a9ae-a578436dc5c5@linux.intel.com> References: <1527856871-3007-2-git-send-email-lowry.li@arm.com> <20180604135013.14234-1-maarten.lankhorst@linux.intel.com> <20180604142956.GD23723@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180604142956.GD23723@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: igt-dev@lists.freedesktop.org, Lowry Li , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T3AgMDQtMDYtMTggb20gMTY6Mjkgc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6Cj4gT24gTW9uLCBK dW4gMDQsIDIwMTggYXQgMDM6NTA6MTNQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6 Cj4+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBs aW51eC5pbnRlbC5jb20+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCAgICAgIHwgIDIgKwo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwg NjcgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggICAgIHwgIDIgKwo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJj LmMgICAgIHwgIDQgKysKPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8 IDI0ICsrKysrKysrKy0KPj4gIDUgZmlsZXMgY2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKSwgMjAg ZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBpbmRleCAzMjc4Mjlj YzYxZjguLjIzZjBjYjBmYWQwZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IEBA IC02NDI1LDggKzY0MjUsMTAgQEAgZW51bSB7Cj4+ICAjZGVmaW5lIF9QTEFORV9LRVlWQUxfMl9B CQkJMHg3MDI5NAo+PiAgI2RlZmluZSBfUExBTkVfS0VZTVNLXzFfQQkJCTB4NzAxOTgKPj4gICNk ZWZpbmUgX1BMQU5FX0tFWU1TS18yX0EJCQkweDcwMjk4Cj4+ICsjZGVmaW5lICBQTEFORV9LRVlN U0tfQUxQSEFfRU5BQkxFCQkoMSA8PCAzMSkKPj4gICNkZWZpbmUgX1BMQU5FX0tFWU1BWF8xX0EJ CQkweDcwMWEwCj4+ICAjZGVmaW5lIF9QTEFORV9LRVlNQVhfMl9BCQkJMHg3MDJhMAo+PiArI2Rl ZmluZSAgUExBTkVfS0VZTUFYX0FMUEhBX1NISUZUCQkyNAo+IFBMQU5FX0tFWU1BWF9BTFBIQSh4 KQo+Cj4+ICAjZGVmaW5lIF9QTEFORV9BVVhfRElTVF8xX0EJCQkweDcwMWMwCj4+ICAjZGVmaW5l IF9QTEFORV9BVVhfRElTVF8yX0EJCQkweDcwMmMwCj4+ICAjZGVmaW5lIF9QTEFORV9BVVhfT0ZG U0VUXzFfQQkJCTB4NzAxYzQKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBp bmRleCBkNDgyNTZmODlhNTAuLjhkZGZmMDljMzExMCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+PiBAQCAtMzE3MCw2ICszMTcwLDIxIEBAIGludCBza2xfY2hlY2tf cGxhbmVfc3VyZmFjZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK Pj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4+ICAJfQo+PiAgCj4+ICsJLyogSFcgb25seSBoYXMgOCBi aXRzIHBpeGVsIHByZWNpc2lvbiwgZGlzYWJsZSBwbGFuZSBpZiBpbnZpc2libGUgKi8KPj4gKwlp ZiAoIShwbGFuZV9zdGF0ZS0+YmFzZS5hbHBoYSA+PiA4KSkgewo+PiArCQlwbGFuZV9zdGF0ZS0+ YmFzZS52aXNpYmxlID0gZmFsc2U7Cj4+ICsJCXJldHVybiAwOwo+PiArCX0KPj4gKwo+PiArCWlm IChwbGFuZV9zdGF0ZS0+YmFzZS5hbHBoYSA8IDB4ZmYwMCkgewo+PiArCQlwbGFuZV9zdGF0ZS0+ ZmxhZ3MgfD0gUExBTkVfQUxQSEFfRU5BQkxFRDsKPj4gKwo+PiArCQkvKiBGQkMgY2Fubm90IGJl IGVuYWJsZWQgd2l0aCBwZXIgcGl4ZWwgYWxwaGEgKi8KPj4gKwkJaWYgKHBsYW5lX3N0YXRlLT5i YXNlLnBpeGVsX2JsZW5kX21vZGUgIT0gRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORSAmJgo+PiAr CQkgICAgZmItPmZvcm1hdC0+aGFzX2FscGhhKQo+PiArCQkJcGxhbmVfc3RhdGUtPmZsYWdzIHw9 IFBMQU5FX0FMUEhBX05PX0ZCQzsKPiBXaHkgaXMgdGhpcyBmYmMgcGVyLXBpeGVsIGFscGhhIGNo ZWNrIGluc2lkZSB0aGUgY29uc3RhbnQgYWxwaGEgaWYgYmxvY2s/Cj4KPiBBbHNvIEknbSBub3Qg Y29udmluY2VkIGJ5IHRoZXNlIHBsYW5lIHN0YXRlIGZsYWdzLiBUaGV5J3JlIG5vdAo+IGNvbnNp c3RlbnQgd2l0aCBob3cgd2UgZG8gZXZlcnl0aGluZyBlbHNlLCBzbyBJIHdvdWxkIGRyb3AgdGhl bS4KClRoZSBvbmx5IHJlYXNvbiBJJ20gdXNpbmcgaXQgaXMgYmVjYXVzZSB3ZSBhbHJlYWR5IGhh dmUgUExBTkVfSEFTX0ZFTkNFIHRoZXJlLiBCZWNhdXNlIHRoZSBGQkMKY29kZSBhbHJlYWR5IGNv cGllcyBmbGFncywgaXQgbWFrZXMgc2Vuc2UgdG8gcmUtdXNlIGl0IHJhdGhlciB0aGFuIGFkZGlu ZyBhbm90aGVyIGZpZWxkLgoKPj4gKwl9Cj4+ICsKPj4gIAlpZiAoIXBsYW5lX3N0YXRlLT5iYXNl LnZpc2libGUpCj4+ICAJCXJldHVybiAwOwo+PiAgCj4+IEBAIC0zNDk2LDMwICszNTExLDM5IEBA IHN0YXRpYyB1MzIgc2tsX3BsYW5lX2N0bF9mb3JtYXQodWludDMyX3QgcGl4ZWxfZm9ybWF0KQo+ PiAgCXJldHVybiAwOwo+PiAgfQo+PiAgCj4+IC0vKgo+PiAtICogWFhYOiBGb3IgQVJCRy9BQkdS IGZvcm1hdHMgd2UgZGVmYXVsdCB0byBleHBlY3Rpbmcgc2Nhbm91dCBidWZmZXJzCj4+IC0gKiB0 byBiZSBhbHJlYWR5IHByZS1tdWx0aXBsaWVkLiBXZSBuZWVkIHRvIGFkZCBhIGtub2IgKG9yIGEg ZGlmZmVyZW50Cj4+IC0gKiBEUk1fRk9STUFUKSBmb3IgdXNlci1zcGFjZSB0byBjb25maWd1cmUg dGhhdC4KPj4gLSAqLwo+PiAtc3RhdGljIHUzMiBza2xfcGxhbmVfY3RsX2FscGhhKHVpbnQzMl90 IHBpeGVsX2Zvcm1hdCkKPj4gK3N0YXRpYyB1MzIgc2tsX3BsYW5lX2N0bF9hbHBoYShjb25zdCBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+PiAgewo+PiAtCXN3aXRjaCAo cGl4ZWxfZm9ybWF0KSB7Cj4+IC0JY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4Ogo+PiAtCWNhc2Ug RFJNX0ZPUk1BVF9BUkdCODg4ODoKPj4gKwlpZiAoIXBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3Jt YXQtPmhhc19hbHBoYSkKPj4gKwkJcmV0dXJuIFBMQU5FX0NUTF9BTFBIQV9ESVNBQkxFOwo+PiAr Cj4+ICsJc3dpdGNoIChwbGFuZV9zdGF0ZS0+YmFzZS5waXhlbF9ibGVuZF9tb2RlKSB7Cj4+ICsJ Y2FzZSBEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FOgo+PiArCQlyZXR1cm4gUExBTkVfQ1RMX0FM UEhBX0RJU0FCTEU7Cj4+ICsJY2FzZSBEUk1fTU9ERV9CTEVORF9QUkVNVUxUSToKPj4gIAkJcmV0 dXJuIFBMQU5FX0NUTF9BTFBIQV9TV19QUkVNVUxUSVBMWTsKPj4gKwljYXNlIERSTV9NT0RFX0JM RU5EX0NPVkVSQUdFOgo+PiArCQlyZXR1cm4gUExBTkVfQ1RMX0FMUEhBX0hXX1BSRU1VTFRJUExZ Owo+PiAgCWRlZmF1bHQ6Cj4+IC0JCXJldHVybiBQTEFORV9DVExfQUxQSEFfRElTQUJMRTsKPj4g KwkJTUlTU0lOR19DQVNFKHBsYW5lX3N0YXRlLT5iYXNlLnBpeGVsX2JsZW5kX21vZGUpOwo+PiAr CQlyZXR1cm4gMDsKPj4gIAl9Cj4+ICB9Cj4+ICAKPj4gLXN0YXRpYyB1MzIgZ2xrX3BsYW5lX2Nv bG9yX2N0bF9hbHBoYSh1aW50MzJfdCBwaXhlbF9mb3JtYXQpCj4+ICtzdGF0aWMgdTMyIGdsa19w bGFuZV9jb2xvcl9jdGxfYWxwaGEoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKPj4gIHsKPj4gLQlzd2l0Y2ggKHBpeGVsX2Zvcm1hdCkgewo+PiAtCWNhc2UgRFJN X0ZPUk1BVF9BQkdSODg4ODoKPj4gLQljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4+ICsJaWYg KCFwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5oYXNfYWxwaGEpCj4+ICsJCXJldHVybiBQ TEFORV9DT0xPUl9BTFBIQV9ESVNBQkxFOwo+PiArCj4+ICsJc3dpdGNoIChwbGFuZV9zdGF0ZS0+ YmFzZS5waXhlbF9ibGVuZF9tb2RlKSB7Cj4+ICsJY2FzZSBEUk1fTU9ERV9CTEVORF9QSVhFTF9O T05FOgo+PiArCQlyZXR1cm4gUExBTkVfQ09MT1JfQUxQSEFfRElTQUJMRTsKPj4gKwljYXNlIERS TV9NT0RFX0JMRU5EX1BSRU1VTFRJOgo+PiAgCQlyZXR1cm4gUExBTkVfQ09MT1JfQUxQSEFfU1df UFJFTVVMVElQTFk7Cj4+ICsJY2FzZSBEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRToKPj4gKwkJcmV0 dXJuIFBMQU5FX0NPTE9SX0FMUEhBX0hXX1BSRU1VTFRJUExZOwo+PiAgCWRlZmF1bHQ6Cj4+IC0J CXJldHVybiBQTEFORV9DT0xPUl9BTFBIQV9ESVNBQkxFOwo+PiArCQlNSVNTSU5HX0NBU0UocGxh bmVfc3RhdGUtPmJhc2UucGl4ZWxfYmxlbmRfbW9kZSk7Cj4+ICsJCXJldHVybiAwOwo+PiAgCX0K Pj4gIH0KPj4gIAo+PiBAQCAtMzU5NSw3ICszNjE5LDcgQEAgdTMyIHNrbF9wbGFuZV9jdGwoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICAJcGxhbmVfY3RsID0g UExBTkVfQ1RMX0VOQUJMRTsKPj4gIAo+PiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTAg JiYgIUlTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4+IC0JCXBsYW5lX2N0bCB8PSBza2xfcGxh bmVfY3RsX2FscGhhKGZiLT5mb3JtYXQtPmZvcm1hdCk7Cj4+ICsJCXBsYW5lX2N0bCB8PSBza2xf cGxhbmVfY3RsX2FscGhhKHBsYW5lX3N0YXRlKTsKPj4gIAkJcGxhbmVfY3RsIHw9Cj4+ICAJCQlQ TEFORV9DVExfUElQRV9HQU1NQV9FTkFCTEUgfAo+PiAgCQkJUExBTkVfQ1RMX1BJUEVfQ1NDX0VO QUJMRSB8Cj4+IEBAIC0zNjM3LDcgKzM2NjEsNyBAQCB1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPj4gIAkJcGxhbmVfY29s b3JfY3RsIHw9IFBMQU5FX0NPTE9SX1BJUEVfQ1NDX0VOQUJMRTsKPj4gIAl9Cj4+ICAJcGxhbmVf Y29sb3JfY3RsIHw9IFBMQU5FX0NPTE9SX1BMQU5FX0dBTU1BX0RJU0FCTEU7Cj4+IC0JcGxhbmVf Y29sb3JfY3RsIHw9IGdsa19wbGFuZV9jb2xvcl9jdGxfYWxwaGEoZmItPmZvcm1hdC0+Zm9ybWF0 KTsKPj4gKwlwbGFuZV9jb2xvcl9jdGwgfD0gZ2xrX3BsYW5lX2NvbG9yX2N0bF9hbHBoYShwbGFu ZV9zdGF0ZSk7Cj4+ICAKPj4gIAlpZiAoaW50ZWxfZm9ybWF0X2lzX3l1dihmYi0+Zm9ybWF0LT5m b3JtYXQpKSB7Cj4+ICAJCWlmIChmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEy KSB7Cj4+IEBAIC0xMzYyMyw3ICsxMzY0Nyw3IEBAIGludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4+ICAJ CQkJCQkgICBEUk1fTU9ERV9ST1RBVEVfMCwKPj4gIAkJCQkJCSAgIHN1cHBvcnRlZF9yb3RhdGlv bnMpOwo+PiAgCj4+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPj4gKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSA5KSB7Cj4+ICAJCWRybV9wbGFuZV9jcmVhdGVfY29sb3JfcHJv cGVydGllcygmcHJpbWFyeS0+YmFzZSwKPj4gIAkJCQkJCSAgQklUKERSTV9DT0xPUl9ZQ0JDUl9C VDYwMSkgfAo+PiAgCQkJCQkJICBCSVQoRFJNX0NPTE9SX1lDQkNSX0JUNzA5KSwKPj4gQEAgLTEz NjMyLDYgKzEzNjU2LDEzIEBAIGludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4+ICAJCQkJCQkgIERSTV9D T0xPUl9ZQ0JDUl9CVDcwOSwKPj4gIAkJCQkJCSAgRFJNX0NPTE9SX1lDQkNSX0xJTUlURURfUkFO R0UpOwo+PiAgCj4+ICsJCWRybV9wbGFuZV9jcmVhdGVfYWxwaGFfcHJvcGVydHkoJnByaW1hcnkt PmJhc2UpOwo+PiArCQlkcm1fcGxhbmVfY3JlYXRlX2JsZW5kX21vZGVfcHJvcGVydHkoJnByaW1h cnktPmJhc2UsCj4+ICsJCQkJCQkgICAgIEJJVChEUk1fTU9ERV9CTEVORF9QSVhFTF9OT05FKSB8 Cj4+ICsJCQkJCQkgICAgIEJJVChEUk1fTU9ERV9CTEVORF9QUkVNVUxUSSkgfAo+PiArCQkJCQkJ ICAgICBCSVQoRFJNX01PREVfQkxFTkRfQ09WRVJBR0UpKTsKPj4gKwl9Cj4+ICsKPj4gIAlkcm1f cGxhbmVfaGVscGVyX2FkZCgmcHJpbWFyeS0+YmFzZSwgJmludGVsX3BsYW5lX2hlbHBlcl9mdW5j cyk7Cj4+ICAKPj4gIAlyZXR1cm4gcHJpbWFyeTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK Pj4gaW5kZXggMmRjMDFiZTBjN2NjLi42NzVkYmU5MjdhMDYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4+IEBAIC01MDAsNiArNTAwLDggQEAgc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlIHsKPj4gIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPj4gIAl1bnNpZ25lZCBsb25nIGZsYWdz Owo+PiAgI2RlZmluZSBQTEFORV9IQVNfRkVOQ0UgQklUKDApCj4+ICsjZGVmaW5lIFBMQU5FX0FM UEhBX0VOQUJMRUQgQklUKDEpCj4+ICsjZGVmaW5lIFBMQU5FX0FMUEhBX05PX0ZCQyBCSVQoMikK Pj4gIAo+PiAgCXN0cnVjdCB7Cj4+ICAJCXUzMiBvZmZzZXQ7Cj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZiYy5jCj4+IGluZGV4IDFmMmY0MWU2N2RjZC4uMjBhMmRiYTc4Y2FkIDEwMDY0NAo+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9mYmMuYwo+PiBAQCAtNzMyLDYgKzczMiwxMCBAQCBzdGF0aWMgYm9vbCBp bnRlbF9mYmNfY2FuX2FjdGl2YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+PiAgCQlmYmMt Pm5vX2ZiY19yZWFzb24gPSAiZnJhbWVidWZmZXIgbm90IHRpbGVkIG9yIGZlbmNlZCI7Cj4+ICAJ CXJldHVybiBmYWxzZTsKPj4gIAl9Cj4+ICsJaWYgKGNhY2hlLT5mbGFncyAmIFBMQU5FX0FMUEhB X05PX0ZCQykgewo+PiArCQlmYmMtPm5vX2ZiY19yZWFzb24gPSAicGVyIHBpeGVsIGFscGhhIGJs ZW5kaW5nIGVuYWJsZWQiOwo+PiArCQlyZXR1cm4gZmFsc2U7Cj4+ICsJfQo+PiAgCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpIDw9IDQgJiYgIUlTX0c0WChkZXZfcHJpdikgJiYKPj4gIAkgICAgY2Fj aGUtPnBsYW5lLnJvdGF0aW9uICE9IERSTV9NT0RFX1JPVEFURV8wKSB7Cj4+ICAJCWZiYy0+bm9f ZmJjX3JlYXNvbiA9ICJyb3RhdGlvbiB1bnN1cHBvcnRlZCI7Cj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jCj4+IGluZGV4IDBiMWJkNWRlNTE5Mi4uNGZjYzdjZTA5YTljIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+PiBAQCAtMjU0LDYgKzI1NCw3IEBAIHNr bF91cGRhdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPj4gIAl1aW50MzJfdCB5 ID0gcGxhbmVfc3RhdGUtPm1haW4ueTsKPj4gIAl1aW50MzJfdCBzcmNfdyA9IGRybV9yZWN0X3dp ZHRoKCZwbGFuZV9zdGF0ZS0+YmFzZS5zcmMpID4+IDE2Owo+PiAgCXVpbnQzMl90IHNyY19oID0g ZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+YmFzZS5zcmMpID4+IDE2Owo+PiArCXUzMiBr ZXltc2sgPSAwLCBrZXltYXggPSAwOwo+PiAgCj4+ICAJLyogU2l6ZXMgYXJlIDAgYmFzZWQgKi8K Pj4gIAlzcmNfdy0tOwo+PiBAQCAtMjY3LDEwICsyNjgsMjAgQEAgc2tsX3VwZGF0ZV9wbGFuZShz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+PiAgCj4+ICAJaWYgKGtleS0+ZmxhZ3MpIHsKPj4g IAkJSTkxNV9XUklURV9GVyhQTEFORV9LRVlWQUwocGlwZSwgcGxhbmVfaWQpLCBrZXktPm1pbl92 YWx1ZSk7Cj4+IC0JCUk5MTVfV1JJVEVfRlcoUExBTkVfS0VZTUFYKHBpcGUsIHBsYW5lX2lkKSwg a2V5LT5tYXhfdmFsdWUpOwo+PiAtCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0tFWU1TSyhwaXBlLCBw bGFuZV9pZCksIGtleS0+Y2hhbm5lbF9tYXNrKTsKPj4gKwo+PiArCQlrZXltYXggPSBrZXktPm1h eF92YWx1ZSAmIDB4ZmZmZmZmOwo+PiArCQlrZXltc2sgfD0ga2V5LT5jaGFubmVsX21hc2sgJiAw eDNmZmZmZmY7Cj4gV2hhdCdzIHVwIHdpdGggfD0gdnMuID0gaGVyZT8KV2VsbCBJIGd1ZXNzIGl0 IGNhbiBiZSBqdXN0IHw9IGZvciBib3RoLgo+Cj4+ICAJfQo+PiAgCj4+ICsJa2V5bWF4IHw9IChw bGFuZV9zdGF0ZS0+YmFzZS5hbHBoYSA+PiA4KSA8PCBQTEFORV9LRVlNQVhfQUxQSEFfU0hJRlQ7 Cj4+ICsKPj4gKwlpZiAocGxhbmVfc3RhdGUtPmZsYWdzICYgUExBTkVfQUxQSEFfRU5BQkxFRCB8 fAo+PiArCSAgICBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5oYXNfYWxwaGEpCj4+ICsJ CWtleW1zayB8PSBQTEFORV9LRVlNU0tfQUxQSEFfRU5BQkxFOwo+IFdoeSBhcmUgd2UgY2hlY2tp bmcgdGhlIGZvcm1hdCBoYXNfYWxwaGEgaGVyZT8gSXNuJ3QgdGhpcyBhYm91dCB0aGUKPiBjb25z dGFudCBhbHBoYT8KSG0gbG9va3Mgd3JvbmcsIG11c3QgYmUganVzdCB0aGUgaW5pdGlhbCBjaGVj ay4KPgo+PiArCj4+ICsJSTkxNV9XUklURV9GVyhQTEFORV9LRVlNQVgocGlwZSwgcGxhbmVfaWQp LCBrZXltYXgpOwo+PiArCUk5MTVfV1JJVEVfRlcoUExBTkVfS0VZTVNLKHBpcGUsIHBsYW5lX2lk KSwga2V5bXNrKTsKPj4gKwo+PiAgCUk5MTVfV1JJVEVfRlcoUExBTkVfT0ZGU0VUKHBpcGUsIHBs YW5lX2lkKSwgKHkgPDwgMTYpIHwgeCk7Cj4+ICAJSTkxNV9XUklURV9GVyhQTEFORV9TVFJJREUo cGlwZSwgcGxhbmVfaWQpLCBzdHJpZGUpOwo+PiAgCUk5MTVfV1JJVEVfRlcoUExBTkVfU0laRShw aXBlLCBwbGFuZV9pZCksIChzcmNfaCA8PCAxNikgfCBzcmNfdyk7Cj4+IEBAIC0xNTI1LDYgKzE1 MzYsMTUgQEAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4+ICAJCQkJCSAgRFJNX0NPTE9SX1lDQkNSX0JUNzA5LAo+PiAgCQkJCQkg IERSTV9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdFKTsKPj4gIAo+PiArCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDkpIHsKPj4gKwkJZHJtX3BsYW5lX2NyZWF0ZV9hbHBoYV9wcm9wZXJ0eSgm aW50ZWxfcGxhbmUtPmJhc2UpOwo+PiArCj4+ICsJCWRybV9wbGFuZV9jcmVhdGVfYmxlbmRfbW9k ZV9wcm9wZXJ0eSgmaW50ZWxfcGxhbmUtPmJhc2UsCj4+ICsJCQkJCQkgICAgIEJJVChEUk1fTU9E RV9CTEVORF9QSVhFTF9OT05FKSB8Cj4+ICsJCQkJCQkgICAgIEJJVChEUk1fTU9ERV9CTEVORF9Q UkVNVUxUSSkgfAo+PiArCQkJCQkJICAgICBCSVQoRFJNX01PREVfQkxFTkRfQ09WRVJBR0UpKTsK Pj4gKwl9Cj4+ICsKPj4gIAlkcm1fcGxhbmVfaGVscGVyX2FkZCgmaW50ZWxfcGxhbmUtPmJhc2Us ICZpbnRlbF9wbGFuZV9oZWxwZXJfZnVuY3MpOwo+PiAgCj4+ICAJcmV0dXJuIGludGVsX3BsYW5l Owo+PiAtLSAKPj4gMi4xNy4xCj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4+IGlndC1kZXYgbWFpbGluZyBsaXN0Cj4+IGlndC1kZXZAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=