From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: Re: [PATCH 6/9] drm/i915: Consolidate plane 'prepare' functions Date: Fri, 28 Nov 2014 15:00:11 +0200 Message-ID: <547871DB.6000107@gmail.com> References: <1416858786-25376-1-git-send-email-matthew.d.roper@intel.com> <1416858786-25376-7-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 160446ECD5 for ; Fri, 28 Nov 2014 05:00:06 -0800 (PST) In-Reply-To: <1416858786-25376-7-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMTEvMjQvMjAxNCAwOTo1MyBQTSwgTWF0dCBSb3BlciB3cm90ZToKPiBUaGUgJ3ByZXBhcmUn IHN0ZXAgZm9yIGFsbCB0eXBlcyBvZiBwbGFuZXMgYXJlIHByZXR0eSBzaW1pbGFyOwo+IGNvbnNv bGlkYXRlIHRoZSB0aHJlZSAncHJlcGFyZScgZnVuY3Rpb25zIGludG8gYSBzaW5nbGUgZnVuY3Rp b24uICBUaGlzCj4gcGF2ZXMgdGhlIHdheSBmb3IgZnV0dXJlIGludGVncmF0aW9uIHdpdGggdGhl IGF0b21pYyBwbGFuZSBoYW5kbGVycy4KPgo+IE5vdGUgdGhhdCB3ZSBwdWxsIHRoZSAnd2FpdCBm b3IgcGVuZGluZyBmbGlwcycgZnVuY3Rpb25hbGl0eSBvdXQgb2YgdGhlCj4gcHJpbWFyeSBwbGFu ZSdzIHByZXBhcmUgc3RlcCBhbmQgcGxhY2UgaXQgZGlyZWN0bHkgaW4gdGhlICdzZXRwbGFuZScK PiBjb2RlLiAgV2hlbiB3ZSBtb3ZlIHRvIHRoZSBhdG9taWMgcGxhbmUgaGFuZGxlcnMsIHRoaXMg Y29kZSB3aWxsIGJlIGluCj4gdGhlICdhdG9taWMgYmVnaW4nIHN0ZXAuCj4KPiBTaWduZWQtb2Zm LWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTY3ICsrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAg ICAgfCAgIDIgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwgIDQ0 ICsrLS0tLS0tLQo+ICAgMyBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCspLCAxMTQgZGVs ZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggMjE3 ZDFlMy4uNTBkNDI5OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBA QCAtMTE1NzQsNiArMTE1NzQsNjYgQEAgZGlzYWJsZV91bnBpbjoKPiAgIAlyZXR1cm4gMDsKPiAg IH0KPgo+ICsvKioKPiArICogaW50ZWxfcHJlcGFyZV9wbGFuZV9mYiAtIFByZXBhcmUgZmIgZm9y IHVzYWdlIG9uIHBsYW5lCj4gKyAqIEBwbGFuZTogZHJtIHBsYW5lIHRvIHByZXBhcmUgZm9yCj4g KyAqIEBmYjogZnJhbWVidWZmZXIgdG8gcHJlcGFyZSBmb3IgcHJlc2VudGF0aW9uCj4gKyAqCj4g KyAqIFByZXBhcmVzIGEgZnJhbWVidWZmZXIgZm9yIHVzYWdlIG9uIGEgZGlzcGxheSBwbGFuZS4g IEdlbmVyYWxseSB0aGlzCj4gKyAqIGludm9sdmVzIHBpbm5pbmcgdGhlIHVuZGVybHlpbmcgb2Jq ZWN0IGFuZCB1cGRhdGluZyB0aGUgZnJvbnRidWZmZXIgdHJhY2tpbmcKPiArICogYml0cy4gIFNv bWUgb2xkZXIgcGxhdGZvcm1zIG5lZWQgc3BlY2lhbCBwaHlzaWNhbCBhZGRyZXNzIGhhbmRsaW5n IGZvcgo+ICsgKiBjdXJzb3IgcGxhbmVzLgo+ICsgKgo+ICsgKiBSZXR1cm5zIDAgb24gc3VjY2Vz cywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsgKi8KPiAraW50Cj4gK2ludGVs X3ByZXBhcmVfcGxhbmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJICAgICAgIHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gcGxhbmUtPmRldjsKPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19p bnRlbF9wbGFuZShwbGFuZSk7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX3BsYW5lLT5waXBl Owo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2xkX29iaiA9IGludGVsX2ZiX29iaihw bGFuZS0+ZmIpOwo+ICsJdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cyA9IDA7Cj4gKwlpbnQgcmV0 Owo+ICsKPiArCWlmIChXQVJOX09OKGZiID09IHBsYW5lLT5mYiB8fCAhb2JqKSkKPiArCQlyZXR1 cm4gMDsKPiArCj4gKwlzd2l0Y2ggKHBsYW5lLT50eXBlKSB7Cj4gKwljYXNlIERSTV9QTEFORV9U WVBFX1BSSU1BUlk6Cj4gKwkJZnJvbnRidWZmZXJfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1BS SU1BUlkocGlwZSk7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIERSTV9QTEFORV9UWVBFX0NVUlNPUjoK PiArCQlmcm9udGJ1ZmZlcl9iaXRzID0gSU5URUxfRlJPTlRCVUZGRVJfQ1VSU09SKHBpcGUpOwo+ ICsJCWJyZWFrOwo+ICsJY2FzZSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOgo+ICsJCWZyb250YnVm ZmVyX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9TUFJJVEUocGlwZSk7Cj4gKwkJYnJlYWs7Cj4g Kwl9Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsKPiArCWlmIChw bGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IgJiYKPiArCSAgICBJTlRFTF9JTkZP KGRldiktPmN1cnNvcl9uZWVkc19waHlzaWNhbCkgewo+ICsJCWludCBhbGlnbiA9IElTX0k4MzAo ZGV2KSA/IDE2ICogMTAyNCA6IDI1NjsKPiArCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfYXR0YWNo X3BoeXMob2JqLCBhbGlnbik7Cj4gKwkJaWYgKHJldCkKPiArCQkJRFJNX0RFQlVHX0tNUygiZmFp bGVkIHRvIGF0dGFjaCBwaHlzIG9iamVjdFxuIik7Cj4gKwl9IGVsc2Ugewo+ICsJCXJldCA9IGlu dGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKHBsYW5lLCBmYiwgTlVMTCk7Cj4gKwkJaWYgKHJldCA9 PSAwKQo+ICsJCQlpOTE1X2dlbV90cmFja19mYihvbGRfb2JqLCBvYmosIGZyb250YnVmZmVyX2Jp dHMpOwo+ICsJCWVsc2UKPiArCQkJRFJNX0RFQlVHX0tNUygicGluICYgZmVuY2UgZmFpbGVkXG4i KTsKPiArCX0KCkFzIGNvbW1lbnRlZCBvbiBhIHByZXZpb3VzIHBhdGNoLCBzaG91bGRuJ3QgaTkx NV9nZW1fdHJhY2tfZmIoKSBiZSAKY2FsbGVkIG9uIHRoZSBJTlRFTF9JTkZPKGRldiktPmN1cnNv cl9uZWVkc19waHlzaWNhbCBjYXNlIHRvbz8KCkkgY2FuJ3Qgc2VlIGFueXRoaW5nIGVsc2Ugd3Jv bmcgd2l0aCB0aGUgcGF0Y2guCgpBbmRlcgoKPiArCj4gKwltdXRleF91bmxvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICAgc3RhdGljIGludAo+ ICAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAg IAkJCSAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiBAQCAtMTE1OTEsNDIgKzEx NjUxLDYgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKPiAgIAkJCQkJICAgICBmYWxzZSwgdHJ1ZSwgJnN0YXRlLT52aXNpYmxlKTsKPiAgIH0KPgo+ IC1zdGF0aWMgaW50Cj4gLWludGVsX3ByZXBhcmVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKPiAtCQkJICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4g LXsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7Cj4gLQlzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOwo+IC0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAtCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+ cGlwZTsKPiAtCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmoo ZmIpOwo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9mYl9v YmoocGxhbmUtPmZiKTsKPiAtCWludCByZXQ7Cj4gLQo+IC0JaW50ZWxfY3J0Y193YWl0X2Zvcl9w ZW5kaW5nX2ZsaXBzKGNydGMpOwo+IC0KPiAtCWlmIChpbnRlbF9jcnRjX2hhc19wZW5kaW5nX2Zs aXAoY3J0YykpIHsKPiAtCQlEUk1fRVJST1IoInBpcGUgaXMgc3RpbGwgYnVzeSB3aXRoIGFuIG9s ZCBwYWdlZmxpcFxuIik7Cj4gLQkJcmV0dXJuIC1FQlVTWTsKPiAtCX0KPiAtCj4gLQlpZiAob2xk X29iaiAhPSBvYmopIHsKPiAtCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gLQkJ cmV0ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmoocGxhbmUsIGZiLCBOVUxMKTsKPiAtCQlp ZiAocmV0ID09IDApCj4gLQkJCWk5MTVfZ2VtX3RyYWNrX2ZiKG9sZF9vYmosIG9iaiwKPiAtCQkJ CQkgIElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkocGlwZSkpOwo+IC0JCW11dGV4X3VubG9jaygm ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IC0JCWlmIChyZXQgIT0gMCkgewo+IC0JCQlEUk1fREVCVUdf S01TKCJwaW4gJiBmZW5jZSBmYWlsZWRcbiIpOwo+IC0JCQlyZXR1cm4gcmV0Owo+IC0JCX0KPiAt CX0KPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgIHN0YXRpYyB2b2lkCj4gICBpbnRlbF9j b21taXRfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAkJCSAgIHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4gQEAgLTExNzI4LDYgKzExNzUyLDcgQEAg aW50ZWxfcHJpbWFyeV9wbGFuZV9zZXRwbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ICAgCQkJICAgICB1aW50MzJfdCBzcmNfeCwgdWludDMyX3Qg c3JjX3ksCj4gICAJCQkgICAgIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCkKPiAgIHsK PiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9sZF9mYiA9IHBsYW5lLT5mYjsKPiAgIAlzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgc3RhdGU7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICAgCWludCByZXQ7Cj4gQEAgLTExNzU5LDkg KzExNzg0LDE4IEBAIGludGVsX3ByaW1hcnlfcGxhbmVfc2V0cGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1 cm4gcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9wcmVwYXJlX3ByaW1hcnlfcGxhbmUocGxhbmUsICZz dGF0ZSk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gKwlpbnRlbF9jcnRjX3dhaXRf Zm9yX3BlbmRpbmdfZmxpcHMoY3J0Yyk7Cj4gKwo+ICsJaWYgKGludGVsX2NydGNfaGFzX3BlbmRp bmdfZmxpcChjcnRjKSkgewo+ICsJCURSTV9FUlJPUigicGlwZSBpcyBzdGlsbCBidXN5IHdpdGgg YW4gb2xkIHBhZ2VmbGlwXG4iKTsKPiArCQlyZXR1cm4gLUVCVVNZOwo+ICsJfQo+ICsKPiArCWlm IChmYiAhPSBvbGRfZmIgJiYgZmIpIHsKPiArCQlyZXQgPSBpbnRlbF9wcmVwYXJlX3BsYW5lX2Zi KHBsYW5lLCBmYik7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIHJldDsKPiArCX0KPgo+ICAg CWludGVsX2NvbW1pdF9wcmltYXJ5X3BsYW5lKHBsYW5lLCAmc3RhdGUpOwo+Cj4gQEAgLTExODk4 LDQwICsxMTkzMiw2IEBAIGludGVsX2NoZWNrX2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+Cj4gLXN0YXRpYyBpbnQKPiAtaW50ZWxf cHJlcGFyZV9jdXJzb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gLQkJCSAgIHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4gLXsKPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBwbGFuZS0+ZGV2Owo+IC0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0 ZS0+YmFzZS5mYjsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhzdGF0ZS0+YmFzZS5jcnRjKTsKPiAtCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmogPSBpbnRlbF9mYl9vYmooZmIpOwo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9s ZF9vYmogPSBpbnRlbF9mYl9vYmoocGxhbmUtPmZiKTsKPiAtCWVudW0gcGlwZSBwaXBlID0gaW50 ZWxfY3J0Yy0+cGlwZTsKPiAtCWludCByZXQgPSAwOwo+IC0KPiAtCWlmIChvbGRfb2JqICE9IG9i aikgewo+IC0JCS8qIHdlIG9ubHkgbmVlZCB0byBwaW4gaW5zaWRlIEdUVCBpZiBjdXJzb3IgaXMg bm9uLXBoeSAqLwo+IC0JCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAtCQlpZiAo IUlOVEVMX0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKSB7Cj4gLQkJCWlmIChvYmop Cj4gLQkJCQlyZXQgPSBpbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihwbGFuZSwgZmIsIE5VTEwp Owo+IC0JCQlpZiAocmV0ID09IDApCj4gLQkJCQlpOTE1X2dlbV90cmFja19mYihpbnRlbF9jcnRj LT5jdXJzb3JfYm8sIG9iaiwKPiAtCQkJCQkJICBJTlRFTF9GUk9OVEJVRkZFUl9DVVJTT1IocGlw ZSkpOwo+IC0JCX0gZWxzZSB7Cj4gLQkJCWludCBhbGlnbiA9IElTX0k4MzAoZGV2KSA/IDE2ICog MTAyNCA6IDI1NjsKPiAtCQkJaWYgKG9iaikKPiAtCQkJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9h dHRhY2hfcGh5cyhvYmosIGFsaWduKTsKPiAtCQkJaWYgKHJldCkKPiAtCQkJCURSTV9ERUJVR19L TVMoImZhaWxlZCB0byBhdHRhY2ggcGh5cyBvYmplY3RcbiIpOwo+IC0JCX0KPiAtCQltdXRleF91 bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gcmV0Owo+IC19 Cj4gLQo+ICAgc3RhdGljIHZvaWQKPiAgIGludGVsX2NvbW1pdF9jdXJzb3JfcGxhbmUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJCQkgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3Rh dGUpCj4gQEAgLTExOTQxLDYgKzExOTQxLDcgQEAgaW50ZWxfY29tbWl0X2N1cnNvcl9wbGFuZShz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gICAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9w bGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKHN0YXRlLT5iYXNlLmZiKTsKPiArCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvbGRfb2JqID0gaW50ZWxfZmJfb2JqKHBsYW5lLT5mYik7Cj4gICAJ ZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAgCXVuc2lnbmVkIG9sZF93aWR0 aDsKPiAgIAl1aW50MzJfdCBhZGRyOwo+IEBAIC0xMTk2MSw2ICsxMTk2MiwxNyBAQCBpbnRlbF9j b21taXRfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCWlmIChpbnRl bF9jcnRjLT5jdXJzb3JfYm8gPT0gb2JqKQo+ICAgCQlnb3RvIHVwZGF0ZTsKPgo+ICsJLyoKPiAr CSAqICdwcmVwYXJlJyBpcyBvbmx5IGNhbGxlZCB3aGVuIGZiICE9IE5VTEw7IHdlIHN0aWxsIG5l ZWQgdG8gdXBkYXRlCj4gKwkgKiBmcm9udGJ1ZmZlciB0cmFja2luZyBmb3IgdGhlICdkaXNhYmxl JyBjYXNlIGhlcmUuCj4gKwkgKi8KPiArCWlmICghb2JqKSB7Cj4gKwkJbXV0ZXhfbG9jaygmZGV2 LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJCWk5MTVfZ2VtX3RyYWNrX2ZiKG9sZF9vYmosIE5VTEwsCj4g KwkJCQkgIElOVEVMX0ZST05UQlVGRkVSX0NVUlNPUihwaXBlKSk7Cj4gKwkJbXV0ZXhfdW5sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwl9Cj4gKwo+ICAgCWlmICghb2JqKQo+ICAgCQlhZGRy ID0gMDsKPiAgIAllbHNlIGlmICghSU5URUxfSU5GTyhkZXYpLT5jdXJzb3JfbmVlZHNfcGh5c2lj YWwpCj4gQEAgLTExOTk3LDYgKzEyMDA5LDcgQEAgaW50ZWxfY3Vyc29yX3BsYW5lX3VwZGF0ZShz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgCQkJICB1 aW50MzJfdCBzcmNfeCwgdWludDMyX3Qgc3JjX3ksCj4gICAJCQkgIHVpbnQzMl90IHNyY193LCB1 aW50MzJfdCBzcmNfaCkKPiAgIHsKPiArCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9sZF9mYiA9 IHBsYW5lLT5mYjsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Yyk7Cj4gICAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlIHN0YXRlOwo+ICAgCWlu dCByZXQ7Cj4gQEAgLTEyMDI4LDkgKzEyMDQxLDExIEBAIGludGVsX2N1cnNvcl9wbGFuZV91cGRh dGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAlp ZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gLQlyZXQgPSBpbnRlbF9wcmVwYXJlX2N1cnNv cl9wbGFuZShwbGFuZSwgJnN0YXRlKTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0dXJuIHJldDsKPiAr CWlmIChmYiAhPSBvbGRfZmIgJiYgZmIpIHsKPiArCQlyZXQgPSBpbnRlbF9wcmVwYXJlX3BsYW5l X2ZiKHBsYW5lLCBmYik7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIHJldDsKPiArCX0KPgo+ ICAgCWludGVsX2NvbW1pdF9jdXJzb3JfcGxhbmUocGxhbmUsICZzdGF0ZSk7Cj4KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGE2ZWFmYjQuLmU5ZjRkYzEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+IEBAIC05MjQsNiArOTI0LDggQEAgdm9pZCBpbnRlbF9wcmVwYXJl X3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGxhbmUpOwo+ICAgdm9pZCBp bnRlbF9maW5pc2hfcGFnZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKTsK PiAgIHZvaWQgaW50ZWxfZmluaXNoX3BhZ2VfZmxpcF9wbGFuZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgcGxhbmUpOwo+ICAgdm9pZCBpbnRlbF9jaGVja19wYWdlX2ZsaXAoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IHBpcGUpOwo+ICtpbnQgaW50ZWxfcHJlcGFyZV9wbGFuZV9mYihz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiArCQkJICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIpOwo+Cj4gICAvKiBzaGFyZWQgZHBsbCBmdW5jdGlvbnMgKi8KPiAgIHN0cnVjdCBpbnRlbF9z aGFyZWRfZHBsbCAqaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0Yyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCBmYzk2ZDEzLi41 ZDhjMmUwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAtMTI1Nyw0 MSArMTI1Nyw2IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPgo+IC1zdGF0aWMgaW50Cj4gLWludGVsX3ByZXBh cmVfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+IC0JCQkgICBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gcGxhbmUtPmRldjsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNy dGM7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Yyk7Cj4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUo cGxhbmUpOwo+IC0JZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+IC0Jc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+YmFzZS5mYjsKPiAtCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+IC0Jc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9wbGFuZS0+b2JqOwo+IC0JaW50IHJldDsKPiAt Cj4gLQlpZiAob2xkX29iaiAhPSBvYmopIHsKPiAtCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7Cj4gLQo+IC0JCS8qIE5vdGUgdGhhdCB0aGlzIHdpbGwgYXBwbHkgdGhlIFZULWQgd29y a2Fyb3VuZCBmb3Igc2Nhbm91dHMsCj4gLQkJICogd2hpY2ggaXMgbW9yZSByZXN0cmljdGl2ZSB0 aGFuIHJlcXVpcmVkIGZvciBzcHJpdGVzLiAoVGhlCj4gLQkJICogcHJpbWFyeSBwbGFuZSByZXF1 aXJlcyAyNTZLaUIgYWxpZ25tZW50IHdpdGggNjQgUFRFIHBhZGRpbmcsCj4gLQkJICogdGhlIHNw cml0ZSBwbGFuZXMgb25seSByZXF1aXJlIDEyOEtpQiBhbGlnbm1lbnQgYW5kIDMyIFBURQo+IC0J CSAqIHBhZGRpbmcuCj4gLQkJICovCj4gLQkJcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9v YmoocGxhbmUsIGZiLCBOVUxMKTsKPiAtCQlpZiAocmV0ID09IDApCj4gLQkJCWk5MTVfZ2VtX3Ry YWNrX2ZiKG9sZF9vYmosIG9iaiwKPiAtCQkJCQkgIElOVEVMX0ZST05UQlVGRkVSX1NQUklURShw aXBlKSk7Cj4gLQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gLQkJaWYgKHJl dCkKPiAtCQkJcmV0dXJuIHJldDsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAg IHN0YXRpYyB2b2lkCj4gICBpbnRlbF9jb21taXRfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ICAgCQkJICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQo+IEBA IC0xMzg3LDYgKzEzNTIsNyBAQCBpbnRlbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJICAgdWludDMyX3Qgc3JjX3gsIHVp bnQzMl90IHNyY195LAo+ICAgCQkgICB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gpCj4g ICB7Cj4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIgPSBwbGFuZS0+ZmI7Cj4gICAJ c3RydWN0IGludGVsX3BsYW5lX3N0YXRlIHN0YXRlOwo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgIAlpbnQgcmV0Owo+IEBAIC0xNDE3 LDkgKzEzODMsMTEgQEAgaW50ZWxfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsK Pgo+IC0JcmV0ID0gaW50ZWxfcHJlcGFyZV9zcHJpdGVfcGxhbmUocGxhbmUsICZzdGF0ZSk7Cj4g LQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gKwlpZiAoZmIgIT0gb2xkX2ZiICYmIGZiKSB7 Cj4gKwkJcmV0ID0gaW50ZWxfcHJlcGFyZV9wbGFuZV9mYihwbGFuZSwgZmIpOwo+ICsJCWlmIChy ZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9Cj4KPiAgIAlpbnRlbF9jb21taXRfc3ByaXRlX3Bs YW5lKHBsYW5lLCAmc3RhdGUpOwo+ICAgCXJldHVybiAwOwo+CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=