From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ayan Halder Subject: Re: [PATCH 1/2] drm/arm: Factor out generic afbc helpers Date: Mon, 21 Oct 2019 13:50:14 +0000 Message-ID: <20191021135013.GA16072@arm.com> References: <20191011111813.20851-1-andrzej.p@collabora.com> <20191011111813.20851-2-andrzej.p@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191011111813.20851-2-andrzej.p@collabora.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Pietrasiewicz Cc: nd , "kernel@collabora.com" , David Airlie , Liviu Dudau , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linux-rockchip@lists.infradead.org" , "james qian wang (Arm Technology China)" , Mihail Atanassov , Sean Paul , "linux-arm-kernel@lists.infradead.org" List-Id: linux-rockchip.vger.kernel.org T24gRnJpLCBPY3QgMTEsIDIwMTkgYXQgMDE6MTg6MTBQTSArMDIwMCwgQW5kcnplaiBQaWV0cmFz aWV3aWN6IHdyb3RlOgo+IFRoZXNlIGFyZSB1c2VmdWwgZm9yIG90aGVyIHVzZXJzIG9mIGFmYmMs IGUuZy4gcm9ja2NoaXAuCj4gCj4gU2lnbmVkLW9mZi1ieTogQW5kcnplaiBQaWV0cmFzaWV3aWN6 IDxhbmRyemVqLnBAY29sbGFib3JhLmNvbT4KCkhpIEFuZHJ6ZWosCgpUaGFua3MgYSBsb3QgZm9y IGRvaW5nIHRoaXMuIE11Y2ggYXBwcmVjaWF0ZWQuIDopCkl0IHdhcyBvbiBvdXIgVE9ETyBsaXN0 IGZvciBhIGxvbmcgdGltZS4KCkkgaGF2ZSBjYy1lZCBqYW1lcy5xaWFuLndhbmdAYXJtLmNvbSwg TWloYWlsLkF0YW5hc3NvdkBhcm0uY29tIGZvcgp0aGVpciBjb21tZW50cyBhcyB3ZWxsLgoKPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL0tjb25maWcgICAgICAgICAgfCAgIDQgKysKPiAgZHJpdmVy cy9ncHUvZHJtL01ha2VmaWxlICAgICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vYXJt L0tjb25maWcgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Rydi5j IHwgIDU4ICsrLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hZmJjLmMgICAg ICAgfCAxMTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9k cm1fYWZiYy5oICAgICAgICAgICB8ICAyNSArKysrKysrCj4gIDYgZmlsZXMgY2hhbmdlZCwgMTQ5 IGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL2RybV9hZmJjLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJt L2RybV9hZmJjLmgKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcgYi9k cml2ZXJzL2dwdS9kcm0vS2NvbmZpZwo+IGluZGV4IDNjODg0MjBlMzQ5Ny4uMDBlM2Y5MDU1N2Y0 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL0tjb25maWcKPiBAQCAtMTk1LDYgKzE5NSwxMCBAQCBjb25maWcgRFJNX1NDSEVECj4g IAl0cmlzdGF0ZQo+ICAJZGVwZW5kcyBvbiBEUk0KPiAgCj4gK2NvbmZpZyBEUk1fQUZCQwo+ICsJ dHJpc3RhdGUKPiArCWRlcGVuZHMgb24gRFJNCkFkZGluZyBhICdoZWxwJyB3b3VsZCBiZSBncmVh dCBoZXJlLiBTdGVhbGluZyB0aGUgZmlyc3QgbGluZSBmcm9tCmh0dHBzOi8vd3d3Lmtlcm5lbC5v cmcvZG9jL2h0bWwvbGF0ZXN0L2dwdS9hZmJjLmh0bWwKCiJBRkJDIGlzIGEgcHJvcHJpZXRhcnkg bG9zc2xlc3MgaW1hZ2UgY29tcHJlc3Npb24gcHJvdG9jb2wgYW5kIGZvcm1hdC4KSXQgcHJvdmlk ZXMgZmluZS1ncmFpbmVkIHJhbmRvbSBhY2Nlc3MgYW5kIG1pbmltaXplcyB0aGUgYW1vdW50IG9m CmRhdGEgdHJhbnNmZXJyZWQgYmV0d2VlbiBJUCBibG9ja3MuIgoKPiArCj4gIHNvdXJjZSAiZHJp dmVycy9ncHUvZHJtL2kyYy9LY29uZmlnIgo+ICAKPiAgc291cmNlICJkcml2ZXJzL2dwdS9kcm0v YXJtL0tjb25maWciCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+IGluZGV4IDlmMGQyZWUzNTc5NC4uNTUzNjhiNjY4MzU1 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9NYWtlZmlsZQo+IEBAIC0zMSw2ICszMSw3IEBAIGRybS0kKENPTkZJR19PRikgKz0g ZHJtX29mLm8KPiAgZHJtLSQoQ09ORklHX0FHUCkgKz0gZHJtX2FncHN1cHBvcnQubwo+ICBkcm0t JChDT05GSUdfREVCVUdfRlMpICs9IGRybV9kZWJ1Z2ZzLm8gZHJtX2RlYnVnZnNfY3JjLm8KPiAg ZHJtLSQoQ09ORklHX0RSTV9MT0FEX0VESURfRklSTVdBUkUpICs9IGRybV9lZGlkX2xvYWQubwo+ ICtkcm0tJChDT05GSUdfRFJNX0FGQkMpICs9IGRybV9hZmJjLm8KPiAgCj4gIGRybV92cmFtX2hl bHBlci15IDo9IGRybV9nZW1fdnJhbV9oZWxwZXIubyBcCj4gIAkJICAgICBkcm1fdnJhbV9oZWxw ZXJfY29tbW9uLm8gXAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL0tjb25maWcg Yi9kcml2ZXJzL2dwdS9kcm0vYXJtL0tjb25maWcKPiBpbmRleCBhMjA0MTAzYjNlZmIuLjI1YzNk YzQwOGNkYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL0tjb25maWcKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYXJtL0tjb25maWcKPiBAQCAtMjksNiArMjksNyBAQCBjb25maWcg RFJNX01BTElfRElTUExBWQo+ICAJc2VsZWN0IERSTV9LTVNfSEVMUEVSCj4gIAlzZWxlY3QgRFJN X0tNU19DTUFfSEVMUEVSCj4gIAlzZWxlY3QgRFJNX0dFTV9DTUFfSEVMUEVSCj4gKwlzZWxlY3Qg RFJNX0FGQkMKPiAgCXNlbGVjdCBWSURFT01PREVfSEVMUEVSUwo+ICAJaGVscAo+ICAJICBDaG9v c2UgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG8gY29tcGlsZSB0aGUgQVJNIE1hbGkgRGlzcGxh eQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9kcnYuYyBiL2RyaXZl cnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Rydi5jCj4gaW5kZXggZjI1ZWM0MzgyMjc3Li5hNjdiNjll MDhmNjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfZHJ2LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9kcnYuYwo+IEBAIC0xNiw2ICsxNiw3IEBA Cj4gICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+Cj4gIAo+ICAjaW5jbHVkZSA8ZHJtL2RybVAu aD4KPiArI2luY2x1ZGUgPGRybS9kcm1fYWZiYy5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9hdG9t aWMuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8 ZHJtL2RybV9jcnRjLmg+Cj4gQEAgLTMzLDggKzM0LDYgQEAKPiAgI2luY2x1ZGUgIm1hbGlkcF9o dy5oIgo+ICAKPiAgI2RlZmluZSBNQUxJRFBfQ09ORl9WQUxJRF9USU1FT1VUCTI1MAo+IC0jZGVm aW5lIEFGQkNfSEVBREVSX1NJWkUJCTE2Cj4gLSNkZWZpbmUgQUZCQ19TVVBFUkJMS19BTElHTk1F TlQJCTEyOAo+ICAKPiAgc3RhdGljIHZvaWQgbWFsaWRwX3dyaXRlX2dhbW1hX3RhYmxlKHN0cnVj dCBtYWxpZHBfaHdfZGV2aWNlICpod2RldiwKPiAgCQkJCSAgICAgdTMyIGRhdGFbTUFMSURQX0NP RUZGVEFCX05VTV9DT0VGRlNdKQo+IEBAIC0yNzUsMjQgKzI3NCw4IEBAIG1hbGlkcF92ZXJpZnlf YWZiY19mcmFtZWJ1ZmZlcl9jYXBzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkJbW9k ZV9jbWQtPm1vZGlmaWVyWzBdKSA9PSBmYWxzZSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+IC0J aWYgKG1vZGVfY21kLT5vZmZzZXRzWzBdICE9IDApIHsKPiAtCQlEUk1fREVCVUdfS01TKCJBRkJD IGJ1ZmZlcnMnIHBsYW5lIG9mZnNldCBzaG91bGQgYmUgMFxuIik7Cj4gLQkJcmV0dXJuIGZhbHNl Owo+IC0JfQo+IC0KPiAtCXN3aXRjaCAobW9kZV9jbWQtPm1vZGlmaWVyWzBdICYgQUZCQ19TSVpF X01BU0spIHsKPiAtCWNhc2UgQUZCQ19TSVpFXzE2WDE2Ogo+IC0JCWlmICgobW9kZV9jbWQtPndp ZHRoICUgMTYpIHx8IChtb2RlX2NtZC0+aGVpZ2h0ICUgMTYpKSB7Cj4gLQkJCURSTV9ERUJVR19L TVMoIkFGQkMgYnVmZmVycyBtdXN0IGJlIGFsaWduZWQgdG8gMTYgcGl4ZWxzXG4iKTsKPiAtCQkJ cmV0dXJuIGZhbHNlOwo+IC0JCX0KPiAtCQlicmVhazsKPiAtCWRlZmF1bHQ6Cj4gLQkJRFJNX0RF QlVHX0tNUygiVW5zdXBwb3J0ZWQgQUZCQyBibG9jayBzaXplXG4iKTsKPiAtCQlyZXR1cm4gZmFs c2U7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJuIHRydWU7Cj4gKwlyZXR1cm4gZHJtX2FmYmNfY2hlY2tf b2Zmc2V0KGRldiwgbW9kZV9jbWQpICYmCj4gKwkgICAgICAgZHJtX2FmYmNfY2hlY2tfc2l6ZV9h bGlnbihkZXYsIG1vZGVfY21kKTsKPiAgfQo+ICAKPiAgc3RhdGljIGJvb2wKPiBAQCAtMzAwLDUz ICsyODMsMjAgQEAgbWFsaWRwX3ZlcmlmeV9hZmJjX2ZyYW1lYnVmZmVyX3NpemUoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiAgCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCj4gIAkJCQkg ICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kKQo+ICB7Cj4gLQlpbnQg bl9zdXBlcmJsb2NrcyA9IDA7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICppbmZv Owo+ICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmpzID0gTlVMTDsKPiAtCXUzMiBhZmJjX3N1 cGVyYmxvY2tfc2l6ZSA9IDAsIGFmYmNfc3VwZXJibG9ja19oZWlnaHQgPSAwOwo+IC0JdTMyIGFm YmNfc3VwZXJibG9ja193aWR0aCA9IDAsIGFmYmNfc2l6ZSA9IDA7Cj4gIAlpbnQgYnBwID0gMDsK PiAgCj4gLQlzd2l0Y2ggKG1vZGVfY21kLT5tb2RpZmllclswXSAmIEFGQkNfU0laRV9NQVNLKSB7 Cj4gLQljYXNlIEFGQkNfU0laRV8xNlgxNjoKPiAtCQlhZmJjX3N1cGVyYmxvY2tfaGVpZ2h0ID0g MTY7Cj4gLQkJYWZiY19zdXBlcmJsb2NrX3dpZHRoID0gMTY7Cj4gLQkJYnJlYWs7Cj4gLQlkZWZh dWx0Ogo+IC0JCURSTV9ERUJVR19LTVMoIkFGQkMgc3VwZXJibG9jayBzaXplIGlzIG5vdCBzdXBw b3J0ZWRcbiIpOwo+IC0JCXJldHVybiBmYWxzZTsKPiAtCX0KPiAtCj4gIAlpbmZvID0gZHJtX2dl dF9mb3JtYXRfaW5mbyhkZXYsIG1vZGVfY21kKTsKPiAtCj4gLQluX3N1cGVyYmxvY2tzID0gKG1v ZGVfY21kLT53aWR0aCAvIGFmYmNfc3VwZXJibG9ja193aWR0aCkgKgo+IC0JCShtb2RlX2NtZC0+ aGVpZ2h0IC8gYWZiY19zdXBlcmJsb2NrX2hlaWdodCk7Cj4gLQo+ICAJYnBwID0gbWFsaWRwX2Zv cm1hdF9nZXRfYnBwKGluZm8tPmZvcm1hdCk7Cj4gIAo+IC0JYWZiY19zdXBlcmJsb2NrX3NpemUg PSAoYnBwICogYWZiY19zdXBlcmJsb2NrX3dpZHRoICogYWZiY19zdXBlcmJsb2NrX2hlaWdodCkK PiAtCQkJCS8gQklUU19QRVJfQllURTsKPiAtCj4gLQlhZmJjX3NpemUgPSBBTElHTihuX3N1cGVy YmxvY2tzICogQUZCQ19IRUFERVJfU0laRSwgQUZCQ19TVVBFUkJMS19BTElHTk1FTlQpOwo+IC0J YWZiY19zaXplICs9IG5fc3VwZXJibG9ja3MgKiBBTElHTihhZmJjX3N1cGVyYmxvY2tfc2l6ZSwg QUZCQ19TVVBFUkJMS19BTElHTk1FTlQpOwo+IC0KPiAtCWlmICgobW9kZV9jbWQtPndpZHRoICog YnBwKSAhPSAobW9kZV9jbWQtPnBpdGNoZXNbMF0gKiBCSVRTX1BFUl9CWVRFKSkgewo+IC0JCURS TV9ERUJVR19LTVMoIkludmFsaWQgdmFsdWUgb2YgKHBpdGNoICogQklUU19QRVJfQllURSkgKD0l dSkgIgo+IC0JCQkgICAgICAic2hvdWxkIGJlIHNhbWUgYXMgd2lkdGggKD0ldSkgKiBicHAgKD0l dSlcbiIsCj4gLQkJCSAgICAgIChtb2RlX2NtZC0+cGl0Y2hlc1swXSAqIEJJVFNfUEVSX0JZVEUp LAo+IC0JCQkgICAgICBtb2RlX2NtZC0+d2lkdGgsIGJwcCk7Cj4gLQkJcmV0dXJuIGZhbHNlOwo+ IC0JfQo+IC0KPiAgCW9ianMgPSBkcm1fZ2VtX29iamVjdF9sb29rdXAoZmlsZSwgbW9kZV9jbWQt PmhhbmRsZXNbMF0pOwo+ICAJaWYgKCFvYmpzKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiRmFpbGVk IHRvIGxvb2t1cCBHRU0gb2JqZWN0XG4iKTsKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+ IC0JaWYgKG9ianMtPnNpemUgPCBhZmJjX3NpemUpIHsKPiAtCQlEUk1fREVCVUdfS01TKCJidWZm ZXIgc2l6ZSAoJXp1KSB0b28gc21hbGwgZm9yIEFGQkMgYnVmZmVyIHNpemUgPSAldVxuIiwKPiAt CQkJICAgICAgb2Jqcy0+c2l6ZSwgYWZiY19zaXplKTsKPiArCWlmICghZHJtX2FmYmNfY2hlY2tf ZmJfc2l6ZShkZXYsIG1vZGVfY21kLCBvYmpzLCBicHApKSB7Cj4gIAkJZHJtX2dlbV9vYmplY3Rf cHV0X3VubG9ja2VkKG9ianMpOwo+ICAJCXJldHVybiBmYWxzZTsKPiAgCX0KQWxzbyBjYW4geW91 IGRvIHRoZSBjb2RlIHJlZmFjdG9yaW5nIGZvciBrb21lZGEgZHJpdmVyIGFzIHdlbGwuCnNwZWNp ZmljYWxseSBrb21lZGFfZmJfYWZiY19zaXplX2NoZWNrKCkuIEkgd2lsbCBsZXQKamFtZXMucWlh bi53YW5nQGFybS5jb20gYW5kIE1paGFpbC5BdGFuYXNzb3ZAYXJtLmNvbSBoYXZlIHRoZWlyCm9w aW5pb24gb24gdGhpcy4KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYWZiYy5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9hZmJjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uM2U4YTkyMjVmZDJlCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYWZiYy5jCj4gQEAgLTAsMCArMSwxMTQgQEAKPiArLy8gU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCj4gKy8qCj4gKyAqIChDKSAyMDE5IENvbGxhYm9y YSBMdGQuCj4gKyAqCj4gKyAqIGF1dGhvcjogQW5kcnplaiBQaWV0cmFzaWV3aWN6IDxhbmRyemVq LnBAY29sbGFib3JhLmNvbT4KPiArICoKPiArICovCj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUu aD4KPiArCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2FmYmMuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1f ZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgo+ICsjaW5jbHVkZSA8ZHJt L2RybV9nZW0uaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fbW9kZS5oPgo+ICsjaW5jbHVkZSA8ZHJt L2RybV9wcmludC5oPgo+ICsKPiArI2RlZmluZSBBRkJDX0hFQURFUl9TSVpFCQkxNgo+ICsjZGVm aW5lIEFGQkNfU1VQRVJCTEtfQUxJR05NRU5UCQkxMjgKPiArCj4gK2Jvb2wgZHJtX2FmYmNfY2hl Y2tfb2Zmc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCSAgIGNvbnN0IHN0cnVjdCBk cm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCkKPiArewo+ICsJaWYgKG1vZGVfY21kLT5vZmZzZXRz WzBdICE9IDApIHsKPiArCQlEUk1fREVCVUdfS01TKCJBRkJDIGJ1ZmZlcnMnIHBsYW5lIG9mZnNl dCBzaG91bGQgYmUgMFxuIik7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiArCXJldHVy biB0cnVlOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKGRybV9hZmJjX2NoZWNrX29mZnNldCk7 Cj4gKwo+ICtib29sIGRybV9hZmJjX2NoZWNrX3NpemVfYWxpZ24oc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiArCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2Nt ZCkKPiArewo+ICsKPiArCXN3aXRjaCAobW9kZV9jbWQtPm1vZGlmaWVyWzBdICYgQUZCQ19GT1JN QVRfTU9EX0JMT0NLX1NJWkVfTUFTSykgewo+ICsJY2FzZSBBRkJDX0ZPUk1BVF9NT0RfQkxPQ0tf U0laRV8xNngxNjoKPiArCQlpZiAoKG1vZGVfY21kLT53aWR0aCAlIDE2KSB8fCAobW9kZV9jbWQt PmhlaWdodCAlIDE2KSkgewo+ICsJCQlEUk1fREVCVUdfS01TKAo+ICsJCQkJIkFGQkMgYnVmZmVy IG11c3QgYmUgYWxpZ25lZCB0byAxNiBwaXhlbHNcbiIKPiArCQkJKTsKPiArCQkJcmV0dXJuIGZh bHNlOwo+ICsJCX0KPiArCQlicmVhazsKPiArCWNhc2UgQUZCQ19GT1JNQVRfTU9EX0JMT0NLX1NJ WkVfMzJ4ODoKPiArCQkvKiBmYWxsIHRocm91Z2ggKi8KPiArCWNhc2UgQUZCQ19GT1JNQVRfTU9E X0JMT0NLX1NJWkVfNjR4NDoKPiArCQkvKiBmYWxsIHRocm91Z2ggKi8KPiArCWNhc2UgQUZCQ19G T1JNQVRfTU9EX0JMT0NLX1NJWkVfMzJ4OF82NHg0Ogo+ICsJCS8qIGZhbGwgdGhyb3VnaCAqLwo+ ICsJZGVmYXVsdDoKPiArCQlEUk1fREVCVUdfS01TKCJVbnN1cHBvcnRlZCBBRkJDIGJsb2NrIHNp emVcbiIpOwo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiAr fQo+ICtFWFBPUlRfU1lNQk9MX0dQTChkcm1fYWZiY19jaGVja19zaXplX2FsaWduKTsKPiArCj4g K2Jvb2wgZHJtX2FmYmNfY2hlY2tfZmJfc2l6ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJ CQkgICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kLAo+ICsJCQkgICAg c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmpzLCBpbnQgYnBwKQo+ICt7Cj4gKwlpbnQgbl9zdXBl cmJsb2NrcyA9IDA7Cj4gKwl1MzIgYWZiY19zdXBlcmJsb2NrX3NpemUgPSAwLCBhZmJjX3N1cGVy YmxvY2tfaGVpZ2h0ID0gMDsKPiArCXUzMiBhZmJjX3N1cGVyYmxvY2tfd2lkdGggPSAwLCBhZmJj X3NpemUgPSAwOwo+ICsKPiArCXN3aXRjaCAobW9kZV9jbWQtPm1vZGlmaWVyWzBdICYgQUZCQ19G T1JNQVRfTU9EX0JMT0NLX1NJWkVfTUFTSykgewo+ICsJY2FzZSBBRkJDX0ZPUk1BVF9NT0RfQkxP Q0tfU0laRV8xNngxNjoKPiArCQlhZmJjX3N1cGVyYmxvY2tfaGVpZ2h0ID0gMTY7Cj4gKwkJYWZi Y19zdXBlcmJsb2NrX3dpZHRoID0gMTY7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIEFGQkNfRk9STUFU X01PRF9CTE9DS19TSVpFXzMyeDg6CkNvcHlpbmcgZnJvbQpodHRwczovL2NnaXQuZnJlZWRlc2t0 b3Aub3JnL2RybS9kcm0tdGlwL3RyZWUvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVk YS9rb21lZGFfZnJhbWVidWZmZXIuYyNuNjAKICAgICAgICAgICAgICAgIGFmYmNfc3VwZXJibG9j a193aWR0aCA9IDMyOwogICAgICAgICAgICAgICAgYWZiY19zdXBlcmJsb2NrX2hlaWdodCA9IDg7 Cj4gKwkJLyogZmFsbCB0aHJvdWdoICovCj4gKwljYXNlIEFGQkNfRk9STUFUX01PRF9CTE9DS19T SVpFXzY0eDQ6Cj4gKwkJLyogZmFsbCB0aHJvdWdoICovCj4gKwljYXNlIEFGQkNfRk9STUFUX01P RF9CTE9DS19TSVpFXzMyeDhfNjR4NDoKPiArCQkvKiBmYWxsIHRocm91Z2ggKi8KPiArCWRlZmF1 bHQ6Cj4gKwkJRFJNX0RFQlVHX0tNUygiQUZCQyBzdXBlcmJsb2NrIHNpemUgaXMgbm90IHN1cHBv cnRlZFxuIik7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQpDYW4geW91IGNvbWJpbmUgdGhlIHR3 byBzd2l0Y2ggLSBjYXNlIGNvbmZpdGlvbnMgKGZyb20gdGhpcyBmdW5jdGlvbgphbmQgdGhlIG9u ZSBpbiBkcm1fYWZiY19jaGVja19zaXplX2FsaWduKCkpIGFuZCBwdXQgaXQgaW4gYSBzZXBhcmF0 ZQpmdW5jdGlvbiAoc2F5IGRybV9hZmJjX2dldF9zdXBlcmJsb2NrX2RpbWVuc2lvbnMoKSkgb2Yg aXRzIG93biA/ClRoaXMgd2lsbCBoZWxwIHRvIGF2b2lkIGNvZGUgcmVwZXRpdGlvbi4KCj4gKwo+ ICsJbl9zdXBlcmJsb2NrcyA9IChtb2RlX2NtZC0+d2lkdGggLyBhZmJjX3N1cGVyYmxvY2tfd2lk dGgpICoKPiArCQkobW9kZV9jbWQtPmhlaWdodCAvIGFmYmNfc3VwZXJibG9ja19oZWlnaHQpOwo+ ICsKPiArCWFmYmNfc3VwZXJibG9ja19zaXplID0KPiArCQkoYnBwICogYWZiY19zdXBlcmJsb2Nr X3dpZHRoICogYWZiY19zdXBlcmJsb2NrX2hlaWdodCkKPiArCQkJLyBCSVRTX1BFUl9CWVRFOwo+ ICsKPiArCWFmYmNfc2l6ZSA9IEFMSUdOKG5fc3VwZXJibG9ja3MgKiBBRkJDX0hFQURFUl9TSVpF LAo+ICsJCQkgIEFGQkNfU1VQRVJCTEtfQUxJR05NRU5UKTsKPiArCWFmYmNfc2l6ZSArPSBuX3N1 cGVyYmxvY2tzICoKPiArCQlBTElHTihhZmJjX3N1cGVyYmxvY2tfc2l6ZSwgQUZCQ19TVVBFUkJM S19BTElHTk1FTlQpOwo+ICsKPiArCWlmICgobW9kZV9jbWQtPndpZHRoICogYnBwKSAhPSAobW9k ZV9jbWQtPnBpdGNoZXNbMF0gKiBCSVRTX1BFUl9CWVRFKSkgewo+ICsJCURSTV9ERUJVR19LTVMo IkludmFsaWQgdmFsdWUgb2YgKHBpdGNoICogQklUU19QRVJfQllURSkgKD0ldSkgc2hvdWxkIGJl IHNhbWUgYXMgd2lkdGggKD0ldSkgKiBicHAgKD0ldSlcbiIsCj4gKwkJCW1vZGVfY21kLT5waXRj aGVzWzBdICogQklUU19QRVJfQllURSwKPiArCQkJbW9kZV9jbWQtPndpZHRoLCBicHAKPiArCQkp Owo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArCj4gKwlpZiAob2Jqcy0+c2l6ZSA8IGFmYmNf c2l6ZSkgewo+ICsJCURSTV9ERUJVR19LTVMoImJ1ZmZlciBzaXplICglenUpIHRvbyBzbWFsbCBm b3IgQUZCQyBidWZmZXIgc2l6ZSA9ICV1XG4iLAo+ICsJCQlvYmpzLT5zaXplLCBhZmJjX3NpemUK PiArCQkpOwo+ICsKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHRydWU7 Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fYWZiY19jaGVja19mYl9zaXplKTsKPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX2FmYmMuaCBiL2luY2x1ZGUvZHJtL2RybV9hZmJjLmgKPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uY2UzOWM4NTAyMTdiCj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9hZmJjLmgKPiBAQCAtMCwwICsx LDI1IEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKyAqLwo+ICsvKgo+ ICsgKiAoQykgMjAxOSBDb2xsYWJvcmEgTHRkLgo+ICsgKgo+ICsgKiBhdXRob3I6IEFuZHJ6ZWog UGlldHJhc2lld2ljeiA8YW5kcnplai5wQGNvbGxhYm9yYS5jb20+Cj4gKyAqCj4gKyAqLwo+ICsj aWZuZGVmIF9fRFJNX0FGQkNfSF9fCj4gKyNkZWZpbmUgX19EUk1fQUZCQ19IX18KPiArCj4gK3N0 cnVjdCBkcm1fZGV2aWNlOwo+ICtzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMjsKPiArc3RydWN0IGRy bV9nZW1fb2JqZWN0Owo+ICsKPiArYm9vbCBkcm1fYWZiY19jaGVja19vZmZzZXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiArCQkJICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1v ZGVfY21kKTsKPiArCj4gK2Jvb2wgZHJtX2FmYmNfY2hlY2tfc2l6ZV9hbGlnbihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICsJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIg Km1vZGVfY21kKTsKPiArCj4gK2Jvb2wgZHJtX2FmYmNfY2hlY2tfZmJfc2l6ZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICsJCQkgICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1v ZGVfY21kLAo+ICsJCQkgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmpzLCBpbnQgYnBwKTsK PiArCj4gKyNlbmRpZiAvKiBfX0RSTV9BRkJDX0hfXyAqLwo+IC0tCj4gMi4xNy4xCj4gCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwg bWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==