From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Goel, Akash" Subject: Re: [PATCH v3 03/17] drm/i915/gen8: Abstract PDP usage Date: Tue, 7 Jul 2015 18:13:08 +0530 Message-ID: <559BC95C.1010801@intel.com> References: <1433954816-13787-1-git-send-email-michel.thierry@intel.com> <1435764453-11954-1-git-send-email-michel.thierry@intel.com> <1435764453-11954-4-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 3AFA36E095 for ; Tue, 7 Jul 2015 05:43:11 -0700 (PDT) In-Reply-To: <1435764453-11954-4-git-send-email-michel.thierry@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michel Thierry , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA3LzEvMjAxNSA4OjU3IFBNLCBNaWNoZWwgVGhpZXJyeSB3cm90ZToKPiBVcCB1bnRpbCBu b3csIHBwZ3R0LT5wZHAgaGFzIGFsd2F5cyBiZWVuIHRoZSByb290IG9mIG91ciBwYWdlIHRhYmxl cy4KPiBMZWdhY3kgMzJiIGFkZHJlc3NlcyBhY3RlZCBsaWtlIGl0IGhhZCAxIFBEUCB3aXRoIDQg UERQRXMuCj4KPiBJbiBwcmVwYXJhdGlvbiBmb3IgNCBsZXZlbCBwYWdlIHRhYmxlcywgd2UgbmVl ZCB0byBzdG9wIHVzZSBwcGd0dC0+cGRwCj4gZGlyZWN0bHkgdW5sZXNzIHdlIGtub3cgaXQncyB3 aGF0IHdlIHdhbnQuIFRoZSBmdXR1cmUgc3RydWN0dXJlIHdpbGwgdXNlCj4gcHBndHQtPnBtbDQg Zm9yIHRoZSB0b3AgbGV2ZWwsIGFuZCB0aGUgcGRwIGlzIGp1c3Qgb25lIG9mIHRoZSBlbnRyaWVz Cj4gYmVpbmcgcG9pbnRlZCB0byBieSBhIHBtbDRlLgo+Cj4gdjI6IFVwZGF0ZWQgYWZ0ZXIgZHlu YW1pYyBwYWdlIGFsbG9jYXRpb24gY2hhbmdlcy4KPiB2MzogUmViYXNlIGFmdGVyIHMvcGFnZV90 YWJsZXMvcGFnZV90YWJsZS8uCj4gdjQ6IFJlYmFzZSBhZnRlciBjaGFuZ2VzIGluICJEeW5hbWlj IHBhZ2UgdGFibGUgYWxsb2NhdGlvbnMiIHBhdGNoLgo+IHY1OiBSZWJhc2UgYWZ0ZXIgTWlrYSdz IHBwZ3R0IGNsZWFudXAgLyBzY3JhdGNoIG1lcmdlIHBhdGNoIHNlcmllcy4KPiB2NjogUmViYXNl IGFmdGVyIGZpbmFsIG1lcmdlZCB2ZXJzaW9uIG9mIE1pa2EncyBwcGd0dC9zY3JhdGNoIHBhdGNo ZXMuCj4KPiBTaWduZWQtb2ZmLWJ5OiBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+Cj4g U2lnbmVkLW9mZi1ieTogTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNvbT4g KHYyKykKPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIHwgMTM2 ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQs IDg4IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmMKPiBpbmRleCBjZGNjNzc4Li40MWExOGZmIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMKPiBAQCAtNTI5LDYgKzUyOSwyNSBAQCBzdGF0aWMgdm9pZCBnZW44 X2luaXRpYWxpemVfcGQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAJZmlsbF9w eCh2bS0+ZGV2LCBwZCwgc2NyYXRjaF9wZGUpOwo+ICAgfQo+Cj4gKy8qIEl0J3MgbGlrZWx5IHdl J2xsIG1hcCBtb3JlIHRoYW4gb25lIHBhZ2UgdGFibGUgYXQgYSB0aW1lLiBUaGlzIGZ1bmN0aW9u IHdpbGwKPiArICogc2F2ZSB1cyB1bm5lY2Vzc2FyeSBrbWFwIGNhbGxzLCBidXQgZG8gbm8gbW9y ZSBmdW5jdGlvbmFsbHkgdGhhbiBtdWx0aXBsZQo+ICsgKiBjYWxscyB0byBwZGVfZW5jb2RlLiBU aGUgcHBndHQgaXMgb25seSBuZWVkZWQgdG8gcmV1c2UgdGhlIGt1bm1hcCBtYWNyby4gKi8KPiAr c3RhdGljIHZvaWQgZ2VuOF9tYXBfcGFnZXRhYmxlX3JhbmdlKHN0cnVjdCBpOTE1X2h3X3BwZ3R0 ICpwcGd0dCwKPiArCQkJCSAgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkLAo+ICsJ CQkJICAgICB1aW50NjRfdCBzdGFydCwKPiArCQkJCSAgICAgdWludDY0X3QgbGVuZ3RoKQo+ICt7 Cj4gKwlnZW44X3BkZV90ICogY29uc3QgcGFnZV9kaXJlY3RvcnkgPSBrbWFwX3B4KHBkKTsKPiAr CXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0Owo+ICsJdWludDY0X3QgdGVtcCwgcGRlOwo+ICsK PiArCWdlbjhfZm9yX2VhY2hfcGRlKHB0LCBwZCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRlKQo+ ICsJCXBhZ2VfZGlyZWN0b3J5W3BkZV0gPSBnZW44X3BkZV9lbmNvZGUocHhfZG1hKHB0KSwKPiAr CQkJCQkJICAgICAgSTkxNV9DQUNIRV9MTEMpOwo+ICsKPiArCWt1bm1hcF9weChwcGd0dCwgcGFn ZV9kaXJlY3RvcnkpOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGludCBfX3BkcF9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gICAJCSAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3Bv aW50ZXIgKnBkcCkKPiAgIHsKPiBAQCAtNjE2LDYgKzYzNSw3IEBAIHN0YXRpYyB2b2lkIGdlbjhf cHBndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICB7Cj4g ICAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0KPiAgIAkJY29udGFpbmVyX29mKHZtLCBz dHJ1Y3QgaTkxNV9od19wcGd0dCwgYmFzZSk7Cj4gKwlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9y eV9wb2ludGVyICpwZHAgPSAmcHBndHQtPnBkcDsgLyogRklYTUU6IDQ4YiAqLwo+ICAgCWdlbjhf cHRlX3QgKnB0X3ZhZGRyLCBzY3JhdGNoX3B0ZTsKPiAgIAl1bnNpZ25lZCBwZHBlID0gc3RhcnQg Pj4gR0VOOF9QRFBFX1NISUZUICYgR0VOOF9QRFBFX01BU0s7Cj4gICAJdW5zaWduZWQgcGRlID0g c3RhcnQgPj4gR0VOOF9QREVfU0hJRlQgJiBHRU44X1BERV9NQVNLOwo+IEBAIC02MzAsMTAgKzY1 MCwxMCBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtLAo+ICAgCQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQ7Cj4g ICAJCXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0Owo+Cj4gLQkJaWYgKFdBUk5fT04oIXBwZ3R0 LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV0pKQo+ICsJCWlmIChXQVJOX09OKCFwZHAtPnBhZ2Vf ZGlyZWN0b3J5W3BkcGVdKSkKPiAgIAkJCWJyZWFrOwo+Cj4gLQkJcGQgPSBwcGd0dC0+cGRwLnBh Z2VfZGlyZWN0b3J5W3BkcGVdOwo+ICsJCXBkID0gcGRwLT5wYWdlX2RpcmVjdG9yeVtwZHBlXTsK Pgo+ICAgCQlpZiAoV0FSTl9PTighcGQtPnBhZ2VfdGFibGVbcGRlXSkpCj4gICAJCQlicmVhazsK PiBAQCAtNjcxLDYgKzY5MSw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5zZXJ0X2VudHJp ZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICB7Cj4gICAJc3RydWN0IGk5MTVf aHdfcHBndHQgKnBwZ3R0ID0KPiAgIAkJY29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9od19w cGd0dCwgYmFzZSk7Cj4gKwlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9wb2ludGVyICpwZHAg PSAmcHBndHQtPnBkcDsgLyogRklYTUU6IDQ4YiAqLwo+ICAgCWdlbjhfcHRlX3QgKnB0X3ZhZGRy Owo+ICAgCXVuc2lnbmVkIHBkcGUgPSBzdGFydCA+PiBHRU44X1BEUEVfU0hJRlQgJiBHRU44X1BE UEVfTUFTSzsKPiAgIAl1bnNpZ25lZCBwZGUgPSBzdGFydCA+PiBHRU44X1BERV9TSElGVCAmIEdF TjhfUERFX01BU0s7Cj4gQEAgLTY4MSw3ICs3MDIsNyBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0 X2luc2VydF9lbnRyaWVzKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+Cj4gICAJZm9y X2VhY2hfc2dfcGFnZShwYWdlcy0+c2dsLCAmc2dfaXRlciwgcGFnZXMtPm5lbnRzLCAwKSB7Cj4g ICAJCWlmIChwdF92YWRkciA9PSBOVUxMKSB7Cj4gLQkJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0 b3J5ICpwZCA9IHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV07Cj4gKwkJCXN0cnVjdCBp OTE1X3BhZ2VfZGlyZWN0b3J5ICpwZCA9IHBkcC0+cGFnZV9kaXJlY3RvcnlbcGRwZV07Cj4gICAJ CQlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdCA9IHBkLT5wYWdlX3RhYmxlW3BkZV07Cj4gICAJ CQlwdF92YWRkciA9IGttYXBfcHgocHQpOwo+ICAgCQl9Cj4gQEAgLTc2MywyMyArNzg0LDI4IEBA IHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYW51cChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSkKPiAgIAkJY29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9od19wcGd0dCwgYmFzZSk7 Cj4gICAJaW50IGk7Cj4KPiAtCWZvcl9lYWNoX3NldF9iaXQoaSwgcHBndHQtPnBkcC51c2VkX3Bk cGVzLAo+IC0JCQkJSTkxNV9QRFBFU19QRVJfUERQKHBwZ3R0LT5iYXNlLmRldikpIHsKPiAtCQlp ZiAoV0FSTl9PTighcHBndHQtPnBkcC5wYWdlX2RpcmVjdG9yeVtpXSkpCj4gLQkJCWNvbnRpbnVl Owo+ICsJaWYgKCFVU0VTX0ZVTExfNDhCSVRfUFBHVFQocHBndHQtPmJhc2UuZGV2KSkgewo+ICsJ CWZvcl9lYWNoX3NldF9iaXQoaSwgcHBndHQtPnBkcC51c2VkX3BkcGVzLAo+ICsJCQkJIEk5MTVf UERQRVNfUEVSX1BEUChwcGd0dC0+YmFzZS5kZXYpKSB7Cj4gKwkJCWlmIChXQVJOX09OKCFwcGd0 dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W2ldKSkKPiArCQkJCWNvbnRpbnVlOwo+Cj4gLQkJZ2VuOF9m cmVlX3BhZ2VfdGFibGVzKHBwZ3R0LT5iYXNlLmRldiwKPiAtCQkJCSAgICAgIHBwZ3R0LT5wZHAu cGFnZV9kaXJlY3RvcnlbaV0pOwo+IC0JCWZyZWVfcGQocHBndHQtPmJhc2UuZGV2LCBwcGd0dC0+ cGRwLnBhZ2VfZGlyZWN0b3J5W2ldKTsKPiArCQkJZ2VuOF9mcmVlX3BhZ2VfdGFibGVzKHBwZ3R0 LT5iYXNlLmRldiwKPiArCQkJCQkgICAgICBwcGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W2ldKTsK PiArCQkJZnJlZV9wZChwcGd0dC0+YmFzZS5kZXYsCj4gKwkJCQlwcGd0dC0+cGRwLnBhZ2VfZGly ZWN0b3J5W2ldKTsKPiArCQl9Cj4gKwkJZnJlZV9wZHAocHBndHQtPmJhc2UuZGV2LCAmcHBndHQt PnBkcCk7Cj4gKwl9IGVsc2Ugewo+ICsJCVdBUk5fT04oMSk7IC8qIHRvIGJlIGltcGxlbWVudGVk IGxhdGVyICovCj4gICAJfQo+Cj4gLQlmcmVlX3BkcChwcGd0dC0+YmFzZS5kZXYsICZwcGd0dC0+ cGRwKTsKPiAgIAlnZW44X2ZyZWVfc2NyYXRjaCh2bSk7Cj4gICB9Cj4KPiAgIC8qKgo+ICAgICog Z2VuOF9wcGd0dF9hbGxvY19wYWdldGFicygpIC0gQWxsb2NhdGUgcGFnZSB0YWJsZXMgZm9yIFZB IHJhbmdlLgo+IC0gKiBAcHBndHQ6CU1hc3RlciBwcGd0dCBzdHJ1Y3R1cmUuCj4gKyAqIEB2bToJ CU1hc3RlciB2bSBzdHJ1Y3R1cmUuCj4gICAgKiBAcGQ6CQlQYWdlIGRpcmVjdG9yeSBmb3IgdGhp cyBhZGRyZXNzIHJhbmdlLgo+ICAgICogQHN0YXJ0OglTdGFydGluZyB2aXJ0dWFsIGFkZHJlc3Mg dG8gYmVnaW4gYWxsb2NhdGlvbnMuCj4gICAgKiBAbGVuZ3RoCVNpemUgb2YgdGhlIGFsbG9jYXRp b25zLgo+IEBAIC03OTUsMTMgKzgyMSwxNSBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFu dXAoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCj4gICAgKgo+ICAgICogUmV0dXJuOiAw IGlmIHN1Y2Nlc3M7IG5lZ2F0aXZlIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgo+ICAgICovCj4gLXN0 YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19wYWdldGFicyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAq cHBndHQsCj4gK3N0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19wYWdldGFicyhzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIAkJCQkgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0 b3J5ICpwZCwKPiAgIAkJCQkgICAgIHVpbnQ2NF90IHN0YXJ0LAo+ICAgCQkJCSAgICAgdWludDY0 X3QgbGVuZ3RoLAo+ICAgCQkJCSAgICAgdW5zaWduZWQgbG9uZyAqbmV3X3B0cykKPiAgIHsKPiAt CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwcGd0dC0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgaTkx NV9od19wcGd0dCAqcHBndHQgPQo+ICsJICAgIGNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVf aHdfcHBndHQsIGJhc2UpOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHZtLT5kZXY7CgpU aGUgJ3BwZ3R0JyBwb2ludGVyIGNhbiBiZSBjb21wbGV0ZWx5IGRpc3BlbnNlZCB3aXRoLCBieSB0 aGUgdXNlIG9mICd2bScgCnBvaW50ZXIuCgo+ICAgCXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0 Owo+ICAgCXVpbnQ2NF90IHRlbXA7Cj4gICAJdWludDMyX3QgcGRlOwo+IEBAIC04MTgsNyArODQ2 LDcgQEAgc3RhdGljIGludCBnZW44X3BwZ3R0X2FsbG9jX3BhZ2V0YWJzKHN0cnVjdCBpOTE1X2h3 X3BwZ3R0ICpwcGd0dCwKPiAgIAkJaWYgKElTX0VSUihwdCkpCj4gICAJCQlnb3RvIHVud2luZF9v dXQ7Cj4KPiAtCQlnZW44X2luaXRpYWxpemVfcHQoJnBwZ3R0LT5iYXNlLCBwdCk7Cj4gKwkJZ2Vu OF9pbml0aWFsaXplX3B0KHZtLCBwdCk7Cj4gICAJCXBkLT5wYWdlX3RhYmxlW3BkZV0gPSBwdDsK PiAgIAkJX19zZXRfYml0KHBkZSwgbmV3X3B0cyk7Cj4gICAJfQo+IEBAIC04MzQsNyArODYyLDcg QEAgdW53aW5kX291dDoKPgo+ICAgLyoqCj4gICAgKiBnZW44X3BwZ3R0X2FsbG9jX3BhZ2VfZGly ZWN0b3JpZXMoKSAtIEFsbG9jYXRlIHBhZ2UgZGlyZWN0b3JpZXMgZm9yIFZBIHJhbmdlLgo+IC0g KiBAcHBndHQ6CU1hc3RlciBwcGd0dCBzdHJ1Y3R1cmUuCj4gKyAqIEB2bToJCU1hc3RlciB2bSBz dHJ1Y3R1cmUuCj4gICAgKiBAcGRwOglQYWdlIGRpcmVjdG9yeSBwb2ludGVyIGZvciB0aGlzIGFk ZHJlc3MgcmFuZ2UuCj4gICAgKiBAc3RhcnQ6CVN0YXJ0aW5nIHZpcnR1YWwgYWRkcmVzcyB0byBi ZWdpbiBhbGxvY2F0aW9ucy4KPiAgICAqIEBsZW5ndGgJU2l6ZSBvZiB0aGUgYWxsb2NhdGlvbnMu Cj4gQEAgLTg1NSwxNyArODgzLDE4IEBAIHVud2luZF9vdXQ6Cj4gICAgKgo+ICAgICogUmV0dXJu OiAwIGlmIHN1Y2Nlc3M7IG5lZ2F0aXZlIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgo+ICAgICovCj4g LXN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19wYWdlX2RpcmVjdG9yaWVzKHN0cnVjdCBpOTE1 X2h3X3BwZ3R0ICpwcGd0dCwKPiAtCQkJCSAgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3Rvcnlf cG9pbnRlciAqcGRwLAo+IC0JCQkJICAgICB1aW50NjRfdCBzdGFydCwKPiAtCQkJCSAgICAgdWlu dDY0X3QgbGVuZ3RoLAo+IC0JCQkJICAgICB1bnNpZ25lZCBsb25nICpuZXdfcGRzKQo+ICtzdGF0 aWMgaW50Cj4gK2dlbjhfcHBndHRfYWxsb2NfcGFnZV9kaXJlY3RvcmllcyhzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bSwKPiArCQkJCSAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9p bnRlciAqcGRwLAo+ICsJCQkJICB1aW50NjRfdCBzdGFydCwKPiArCQkJCSAgdWludDY0X3QgbGVu Z3RoLAo+ICsJCQkJICB1bnNpZ25lZCBsb25nICpuZXdfcGRzKQo+ICAgewo+IC0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IHBwZ3R0LT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSB2bS0+ZGV2Owo+ICAgCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsKPiAgIAl1 aW50NjRfdCB0ZW1wOwo+ICAgCXVpbnQzMl90IHBkcGU7Cj4gLQl1aW50MzJfdCBwZHBlcyA9ICBJ OTE1X1BEUEVTX1BFUl9QRFAocHBndHQtPmJhc2UuZGV2KTsKPiArCXVpbnQzMl90IHBkcGVzID0g IEk5MTVfUERQRVNfUEVSX1BEUCh2bS0+ZGV2KTsKPgo+ICAgCVdBUk5fT04oIWJpdG1hcF9lbXB0 eShuZXdfcGRzLCBwZHBlcykpOwo+Cj4gQEAgLTg3Nyw3ICs5MDYsNyBAQCBzdGF0aWMgaW50IGdl bjhfcHBndHRfYWxsb2NfcGFnZV9kaXJlY3RvcmllcyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBn dHQsCj4gICAJCWlmIChJU19FUlIocGQpKQo+ICAgCQkJZ290byB1bndpbmRfb3V0Owo+Cj4gLQkJ Z2VuOF9pbml0aWFsaXplX3BkKCZwcGd0dC0+YmFzZSwgcGQpOwo+ICsJCWdlbjhfaW5pdGlhbGl6 ZV9wZCh2bSwgcGQpOwo+ICAgCQlwZHAtPnBhZ2VfZGlyZWN0b3J5W3BkcGVdID0gcGQ7Cj4gICAJ CV9fc2V0X2JpdChwZHBlLCBuZXdfcGRzKTsKPiAgIAl9Cj4gQEAgLTk1MiwxMyArOTgxLDE1IEBA IHN0YXRpYyB2b2lkIG1hcmtfdGxic19kaXJ0eShzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQp Cj4gICAJcHBndHQtPnBkX2RpcnR5X3JpbmdzID0gSU5URUxfSU5GTyhwcGd0dC0+YmFzZS5kZXYp LT5yaW5nX21hc2s7Cj4gICB9Cj4KPiAtc3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3JhbmdlKHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+IC0JCQkgICAgICAgdWludDY0X3Qgc3RhcnQs Cj4gLQkJCSAgICAgICB1aW50NjRfdCBsZW5ndGgpCj4gK3N0YXRpYyBpbnQgZ2VuOF9hbGxvY192 YV9yYW5nZV8zbHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICsJCQkJICAgIHN0 cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBkcCwKPiArCQkJCSAgICB1aW50NjRf dCBzdGFydCwKPiArCQkJCSAgICB1aW50NjRfdCBsZW5ndGgpCj4gICB7Cj4gICAJc3RydWN0IGk5 MTVfaHdfcHBndHQgKnBwZ3R0ID0KPiAgIAkJY29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9o d19wcGd0dCwgYmFzZSk7Cj4gICAJdW5zaWduZWQgbG9uZyAqbmV3X3BhZ2VfZGlycywgKipuZXdf cGFnZV90YWJsZXM7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gdm0tPmRldjsKPiAgIAlz dHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQ7Cj4gICAJY29uc3QgdWludDY0X3Qgb3JpZ19z dGFydCA9IHN0YXJ0Owo+ICAgCWNvbnN0IHVpbnQ2NF90IG9yaWdfbGVuZ3RoID0gbGVuZ3RoOwo+ IEBAIC05ODEsMTYgKzEwMTIsMTUgQEAgc3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3JhbmdlKHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gICAJLyog RG8gdGhlIGFsbG9jYXRpb25zIGZpcnN0IHNvIHdlIGNhbiBlYXNpbHkgYmFpbCBvdXQgKi8KPiAt CXJldCA9IGdlbjhfcHBndHRfYWxsb2NfcGFnZV9kaXJlY3RvcmllcyhwcGd0dCwgJnBwZ3R0LT5w ZHAsIHN0YXJ0LCBsZW5ndGgsCj4gLQkJCQkJbmV3X3BhZ2VfZGlycyk7Cj4gKwlyZXQgPSBnZW44 X3BwZ3R0X2FsbG9jX3BhZ2VfZGlyZWN0b3JpZXModm0sIHBkcCwgc3RhcnQsIGxlbmd0aCwKPiAr CQkJCQkJbmV3X3BhZ2VfZGlycyk7Cj4gICAJaWYgKHJldCkgewo+ICAgCQlmcmVlX2dlbjhfdGVt cF9iaXRtYXBzKG5ld19wYWdlX2RpcnMsIG5ld19wYWdlX3RhYmxlcywgcGRwZXMpOwo+ICAgCQly ZXR1cm4gcmV0Owo+ICAgCX0KPgo+IC0JLyogRm9yIGV2ZXJ5IHBhZ2UgZGlyZWN0b3J5IHJlZmVy ZW5jZWQsIGFsbG9jYXRlIHBhZ2UgdGFibGVzICovCj4gLQlnZW44X2Zvcl9lYWNoX3BkcGUocGQs ICZwcGd0dC0+cGRwLCBzdGFydCwgbGVuZ3RoLCB0ZW1wLCBwZHBlKSB7Cj4gLQkJcmV0ID0gZ2Vu OF9wcGd0dF9hbGxvY19wYWdldGFicyhwcGd0dCwgcGQsIHN0YXJ0LCBsZW5ndGgsCj4gKwlnZW44 X2Zvcl9lYWNoX3BkcGUocGQsIHBkcCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRwZSkgewo+ICsJ CXJldCA9IGdlbjhfcHBndHRfYWxsb2NfcGFnZXRhYnModm0sIHBkLCBzdGFydCwgbGVuZ3RoLAo+ ICAgCQkJCQkJbmV3X3BhZ2VfdGFibGVzW3BkcGVdKTsKPiAgIAkJaWYgKHJldCkKPiAgIAkJCWdv dG8gZXJyX291dDsKPiBAQCAtOTk5LDEwICsxMDI5LDcgQEAgc3RhdGljIGludCBnZW44X2FsbG9j X3ZhX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAgCXN0YXJ0ID0gb3Jp Z19zdGFydDsKPiAgIAlsZW5ndGggPSBvcmlnX2xlbmd0aDsKPgo+IC0JLyogQWxsb2NhdGlvbnMg aGF2ZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBzbyBzZXQgdGhlIGJpdG1hcHMsIGFuZCBkbwo+ IC0JICogdGhlIG1hcHBpbmdzLiAqLwo+IC0JZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCAmcHBndHQt PnBkcCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRwZSkgewo+IC0JCWdlbjhfcGRlX3QgKmNvbnN0 IHBhZ2VfZGlyZWN0b3J5ID0ga21hcF9weChwZCk7Cj4gKwlnZW44X2Zvcl9lYWNoX3BkcGUocGQs IHBkcCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRwZSkgewo+ICAgCQlzdHJ1Y3QgaTkxNV9wYWdl X3RhYmxlICpwdDsKPiAgIAkJdWludDY0X3QgcGRfbGVuID0gbGVuZ3RoOwo+ICAgCQl1aW50NjRf dCBwZF9zdGFydCA9IHN0YXJ0Owo+IEBAIC0xMDI0LDE4ICsxMDUxLDEwIEBAIHN0YXRpYyBpbnQg Z2VuOF9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPgo+ICAg CQkJLyogT3VyIHBkZSBpcyBub3cgcG9pbnRpbmcgdG8gdGhlIHBhZ2V0YWJsZSwgcHQgKi8KPiAg IAkJCV9fc2V0X2JpdChwZGUsIHBkLT51c2VkX3BkZXMpOwo+IC0KPiAtCQkJLyogTWFwIHRoZSBQ REUgdG8gdGhlIHBhZ2UgdGFibGUgKi8KPiAtCQkJcGFnZV9kaXJlY3RvcnlbcGRlXSA9IGdlbjhf cGRlX2VuY29kZShweF9kbWEocHQpLAo+IC0JCQkJCQkJICAgICAgSTkxNV9DQUNIRV9MTEMpOwo+ IC0KPiAtCQkJLyogTkI6IFdlIGhhdmVuJ3QgeWV0IG1hcHBlZCBwdGVzIHRvIHBhZ2VzLiBBdCB0 aGlzCj4gLQkJCSAqIHBvaW50IHdlJ3JlIHN0aWxsIHJlbHlpbmcgb24gaW5zZXJ0X2VudHJpZXMo KSAqLwo+ICAgCQl9Cj4KPiAtCQlrdW5tYXBfcHgocHBndHQsIHBhZ2VfZGlyZWN0b3J5KTsKPiAt Cj4gLQkJX19zZXRfYml0KHBkcGUsIHBwZ3R0LT5wZHAudXNlZF9wZHBlcyk7Cj4gKwkJX19zZXRf Yml0KHBkcGUsIHBkcC0+dXNlZF9wZHBlcyk7Cj4gKwkJZ2VuOF9tYXBfcGFnZXRhYmxlX3Jhbmdl KHBwZ3R0LCBwZCwgc3RhcnQsIGxlbmd0aCk7CgpObyBhcHBhcmVudCBiZW5lZml0IGluIHVzZSBv ZiAiZ2VuOF9tYXBfcGFnZXRhYmxlX3JhbmdlIiwgY29uc2lkZXJpbmcgCnRoYXQgdGhlIFBhZ2Ug RGlyZWN0b3J5IHBhZ2UgaXMgbWFwcGVkIGF0IHRoZSBzdGFydCBvZiBvdXRlciBsb29wIAooUERQ RXMpIG9ubHkgYW5kIHRoZSBpbm5lciBsb29wIChQREVzKSBtYXBzIHRoZSBQREVzIHRvIHRoZSBw YWdlIHRhYmxlcywgCmluIGFuIGlubGluZSBtYW5uZXIuClRoZSAnZ2VuOF9tYXBfcGFnZXRhYmxl X3JhbmdlJywgd2lsbCByZXBlYXQgdGhlIHNhbWUgaW5uZXIgbG9vcCBvZiBQREVzLgoKPiAgIAl9 Cj4KPiAgIAlmcmVlX2dlbjhfdGVtcF9iaXRtYXBzKG5ld19wYWdlX2RpcnMsIG5ld19wYWdlX3Rh YmxlcywgcGRwZXMpOwo+IEBAIC0xMDQ1LDE3ICsxMDY0LDM4IEBAIHN0YXRpYyBpbnQgZ2VuOF9h bGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIGVycl9vdXQ6 Cj4gICAJd2hpbGUgKHBkcGUtLSkgewo+ICAgCQlmb3JfZWFjaF9zZXRfYml0KHRlbXAsIG5ld19w YWdlX3RhYmxlc1twZHBlXSwgSTkxNV9QREVTKQo+IC0JCQlmcmVlX3B0KHZtLT5kZXYsIHBwZ3R0 LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV0tPnBhZ2VfdGFibGVbdGVtcF0pOwo+ICsJCQlmcmVl X3B0KGRldiwgcGRwLT5wYWdlX2RpcmVjdG9yeVtwZHBlXS0+cGFnZV90YWJsZVt0ZW1wXSk7Cj4g ICAJfQo+Cj4gICAJZm9yX2VhY2hfc2V0X2JpdChwZHBlLCBuZXdfcGFnZV9kaXJzLCBwZHBlcykK PiAtCQlmcmVlX3BkKHZtLT5kZXYsIHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV0pOwo+ ICsJCWZyZWVfcGQoZGV2LCBwZHAtPnBhZ2VfZGlyZWN0b3J5W3BkcGVdKTsKPgo+ICAgCWZyZWVf Z2VuOF90ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVzLCBwZHBlcyk7 Cj4gICAJbWFya190bGJzX2RpcnR5KHBwZ3R0KTsKPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+Cj4g K3N0YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9yYW5nZV80bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtLAo+ICsJCQkJICAgIHN0cnVjdCBpOTE1X3BtbDQgKnBtbDQsCj4gKwkJCQkgICAg dWludDY0X3Qgc3RhcnQsCj4gKwkJCQkgICAgdWludDY0X3QgbGVuZ3RoKQo+ICt7Cj4gKwlXQVJO X09OKDEpOyAvKiB0byBiZSBpbXBsZW1lbnRlZCBsYXRlciAqLwo+ICsJcmV0dXJuIDA7Cj4gK30K PiArCj4gK3N0YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlICp2bSwKPiArCQkJICAgICAgIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBsZW5ndGgp Cj4gK3sKPiArCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCA9Cj4gKwkJY29udGFpbmVyX29m KHZtLCBzdHJ1Y3QgaTkxNV9od19wcGd0dCwgYmFzZSk7Cj4gKwo+ICsJaWYgKCFVU0VTX0ZVTExf NDhCSVRfUFBHVFQodm0tPmRldikpCj4gKwkJcmV0dXJuIGdlbjhfYWxsb2NfdmFfcmFuZ2VfM2x2 bCh2bSwgJnBwZ3R0LT5wZHAsIHN0YXJ0LCBsZW5ndGgpOwo+ICsJZWxzZQo+ICsJCXJldHVybiBn ZW44X2FsbG9jX3ZhX3JhbmdlXzRsdmwodm0sICZwcGd0dC0+cG1sNCwgc3RhcnQsIGxlbmd0aCk7 Cj4gK30KPiArCj4gICAvKgo+ICAgICogR0VOOCBsZWdhY3kgcHBndHQgcHJvZ3JhbW1pbmcgaXMg YWNjb21wbGlzaGVkIHRocm91Z2ggYSBtYXggNCBQRFAgcmVnaXN0ZXJzCj4gICAgKiB3aXRoIGEg bmV0IGVmZmVjdCByZXNlbWJsaW5nIGEgMi1sZXZlbCBwYWdlIHRhYmxlIGluIG5vcm1hbCB4ODYg dGVybXMuIEVhY2gKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=