From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Goel, Akash" Subject: Re: [PATCH v7 03/19] drm/i915/gen8: Abstract PDP usage Date: Fri, 31 Jul 2015 09:41:11 +0530 Message-ID: <55BAF55F.7050209@intel.com> References: <1438187043-34267-4-git-send-email-michel.thierry@intel.com> <1438250523-22533-1-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 962E16E677 for ; Thu, 30 Jul 2015 21:11:13 -0700 (PDT) In-Reply-To: <1438250523-22533-1-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 UmV2aWV3ZWQgdGhlIHBhdGNoICYgaXQgbG9va3MgZmluZS4KUmV2aWV3ZWQtYnk6ICJBa2FzaCBH b2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4iCgoKT24gNy8zMC8yMDE1IDM6MzIgUE0sIE1pY2hl bCBUaGllcnJ5IHdyb3RlOgo+IFVwIHVudGlsIG5vdywgcHBndHQtPnBkcCBoYXMgYWx3YXlzIGJl ZW4gdGhlIHJvb3Qgb2Ygb3VyIHBhZ2UgdGFibGVzLgo+IExlZ2FjeSAzMmIgYWRkcmVzc2VzIGFj dGVkIGxpa2UgaXQgaGFkIDEgUERQIHdpdGggNCBQRFBFcy4KPgo+IEluIHByZXBhcmF0aW9uIGZv ciA0IGxldmVsIHBhZ2UgdGFibGVzLCB3ZSBuZWVkIHRvIHN0b3AgdXNpbmcgcHBndHQtPnBkcAo+ IGRpcmVjdGx5IHVubGVzcyB3ZSBrbm93IGl0J3Mgd2hhdCB3ZSB3YW50LiBUaGUgZnV0dXJlIHN0 cnVjdHVyZSB3aWxsIHVzZQo+IHBwZ3R0LT5wbWw0IGZvciB0aGUgdG9wIGxldmVsLCBhbmQgdGhl IHBkcCBpcyBqdXN0IG9uZSBvZiB0aGUgZW50cmllcwo+IGJlaW5nIHBvaW50ZWQgdG8gYnkgYSBw bWw0ZS4gVGhlIHRlbXBvcmFsIHBkcCBsb2NhbCB2YXJpYWJsZSB3aWxsIGJlCj4gcmVtb3ZlZCBv bmNlIHRoZSByZXN0IG9mIHRoZSA0LWxldmVsIGNvZGUgbGFuZHMuCj4KPiBBbHNvLCBzdGFydCBw YXNzaW5nIHRoZSB2bSBwb2ludGVyIHRvIHRoZSBhbGxvYyBmdW5jdGlvbnMsIGluc3RlYWQgb2YK PiBwcGd0dC4KPgo+IHYyOiBVcGRhdGVkIGFmdGVyIGR5bmFtaWMgcGFnZSBhbGxvY2F0aW9uIGNo YW5nZXMuCj4gdjM6IFJlYmFzZSBhZnRlciBzL3BhZ2VfdGFibGVzL3BhZ2VfdGFibGUvLgo+IHY0 OiBSZWJhc2UgYWZ0ZXIgY2hhbmdlcyBpbiAiRHluYW1pYyBwYWdlIHRhYmxlIGFsbG9jYXRpb25z IiBwYXRjaC4KPiB2NTogUmViYXNlIGFmdGVyIE1pa2EncyBwcGd0dCBjbGVhbnVwIC8gc2NyYXRj aCBtZXJnZSBwYXRjaCBzZXJpZXMuCj4gdjY6IFJlYmFzZSBhZnRlciBmaW5hbCBtZXJnZWQgdmVy c2lvbiBvZiBNaWthJ3MgcHBndHQvc2NyYXRjaCBwYXRjaGVzLgo+IHY3OiBLZWVwIHBhZ2V0YWJs ZSBtYXAgaW4tbGluZSAoYW5kIGF2b2lkIHVubmVjZXNzYXJ5IGZvcl9lYWNoX3BkZQo+IGxvb3Bz KSwgcmVtb3ZlIHJlZHVuZGFudCBwcGd0dCBwb2ludGVyIGluIF9hbGxvY19wYWdldGFicyAoQWth c2gpCj4gdjg6IEZpeCB0ZXh0IGluZGVudGF0aW9uIGluIF9hbGxvY19wYWdldGFicy9wYWdlX2Rp cmVjdG9yaWVzIChDaHJpcykKPiB2OTogRGVmZXIgZ2VuOF9hbGxvY192YV9yYW5nZV80bHZsIGRl ZmluaXRpb24gdW50aWwgNGx2bCBpcyBpbXBsZW1lbnRlZCwKPiBjbGVhbi11cCBnZW44X3BwZ3R0 X2NsZWFudXAgW3B1biBpbnRlbmRlZF0gKEFrYXNoKS4KPiB2MTA6IENsZWFuLXVwIGNvbW1pdCBt ZXNzYWdlIChBa2FzaCkuCj4KPiBDYzogQWthc2ggR29lbCA8YWthc2guZ29lbEBpbnRlbC5jb20+ Cj4gU2lnbmVkLW9mZi1ieTogQmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0Pgo+IFNpZ25l ZC1vZmYtYnk6IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+ICh2Misp Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyB8IDg0ICsrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KPiAgIDEgZmlsZSBjaGFuZ2VkLCA0NCBp bnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jCj4gaW5kZXggMjhmMzIyNy4uYmQ1Njk3OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jCj4gQEAgLTYwNyw2ICs2MDcsNyBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0 X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAgewo+ICAgCXN0 cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCA9Cj4gICAJCWNvbnRhaW5lcl9vZih2bSwgc3RydWN0 IGk5MTVfaHdfcHBndHQsIGJhc2UpOwo+ICsJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9p bnRlciAqcGRwID0gJnBwZ3R0LT5wZHA7IC8qIEZJWE1FOiA0OGIgKi8KPiAgIAlnZW44X3B0ZV90 ICpwdF92YWRkciwgc2NyYXRjaF9wdGU7Cj4gICAJdW5zaWduZWQgcGRwZSA9IHN0YXJ0ID4+IEdF TjhfUERQRV9TSElGVCAmIEdFTjhfUERQRV9NQVNLOwo+ICAgCXVuc2lnbmVkIHBkZSA9IHN0YXJ0 ID4+IEdFTjhfUERFX1NISUZUICYgR0VOOF9QREVfTUFTSzsKPiBAQCAtNjIxLDEwICs2MjIsMTAg QEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhcl9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlICp2bSwKPiAgIAkJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkOwo+ICAgCQlz dHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdDsKPgo+IC0JCWlmIChXQVJOX09OKCFwcGd0dC0+cGRw LnBhZ2VfZGlyZWN0b3J5W3BkcGVdKSkKPiArCQlpZiAoV0FSTl9PTighcGRwLT5wYWdlX2RpcmVj dG9yeVtwZHBlXSkpCj4gICAJCQlicmVhazsKPgo+IC0JCXBkID0gcHBndHQtPnBkcC5wYWdlX2Rp cmVjdG9yeVtwZHBlXTsKPiArCQlwZCA9IHBkcC0+cGFnZV9kaXJlY3RvcnlbcGRwZV07Cj4KPiAg IAkJaWYgKFdBUk5fT04oIXBkLT5wYWdlX3RhYmxlW3BkZV0pKQo+ICAgCQkJYnJlYWs7Cj4gQEAg LTY2Miw2ICs2NjMsNyBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2luc2VydF9lbnRyaWVzKHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAgewo+ICAgCXN0cnVjdCBpOTE1X2h3X3Bw Z3R0ICpwcGd0dCA9Cj4gICAJCWNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVfaHdfcHBndHQs IGJhc2UpOwo+ICsJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqcGRwID0gJnBw Z3R0LT5wZHA7IC8qIEZJWE1FOiA0OGIgKi8KPiAgIAlnZW44X3B0ZV90ICpwdF92YWRkcjsKPiAg IAl1bnNpZ25lZCBwZHBlID0gc3RhcnQgPj4gR0VOOF9QRFBFX1NISUZUICYgR0VOOF9QRFBFX01B U0s7Cj4gICAJdW5zaWduZWQgcGRlID0gc3RhcnQgPj4gR0VOOF9QREVfU0hJRlQgJiBHRU44X1BE RV9NQVNLOwo+IEBAIC02NzUsNyArNjc3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9pbnNl cnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIAkJCWJyZWFrOwo+ Cj4gICAJCWlmIChwdF92YWRkciA9PSBOVUxMKSB7Cj4gLQkJCXN0cnVjdCBpOTE1X3BhZ2VfZGly ZWN0b3J5ICpwZCA9IHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV07Cj4gKwkJCXN0cnVj dCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZCA9IHBkcC0+cGFnZV9kaXJlY3RvcnlbcGRwZV07Cj4g ICAJCQlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdCA9IHBkLT5wYWdlX3RhYmxlW3BkZV07Cj4g ICAJCQlwdF92YWRkciA9IGttYXBfcHgocHQpOwo+ICAgCQl9Cj4gQEAgLTc1NSwyOCArNzU3LDI5 IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYW51cChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3Nw YWNlICp2bSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPQo+ICAgCQlj b250YWluZXJfb2Yodm0sIHN0cnVjdCBpOTE1X2h3X3BwZ3R0LCBiYXNlKTsKPiArCXN0cnVjdCBp OTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBkcCA9ICZwcGd0dC0+cGRwOyAvKiBGSVhNRTog NDhiICovCj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcHBndHQtPmJhc2UuZGV2Owo+ICAg CWludCBpOwo+Cj4gLQlmb3JfZWFjaF9zZXRfYml0KGksIHBwZ3R0LT5wZHAudXNlZF9wZHBlcywK PiAtCQkJIEk5MTVfUERQRVNfUEVSX1BEUChwcGd0dC0+YmFzZS5kZXYpKSB7Cj4gLQkJaWYgKFdB Uk5fT04oIXBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbaV0pKQo+ICsJZm9yX2VhY2hfc2V0X2Jp dChpLCBwZHAtPnVzZWRfcGRwZXMsIEk5MTVfUERQRVNfUEVSX1BEUChkZXYpKSB7Cj4gKwkJaWYg KFdBUk5fT04oIXBkcC0+cGFnZV9kaXJlY3RvcnlbaV0pKQo+ICAgCQkJY29udGludWU7Cj4KPiAt CQlnZW44X2ZyZWVfcGFnZV90YWJsZXMocHBndHQtPmJhc2UuZGV2LAo+IC0JCQkJICAgICAgcHBn dHQtPnBkcC5wYWdlX2RpcmVjdG9yeVtpXSk7Cj4gLQkJZnJlZV9wZChwcGd0dC0+YmFzZS5kZXYs IHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbaV0pOwo+ICsJCWdlbjhfZnJlZV9wYWdlX3RhYmxl cyhkZXYsIHBkcC0+cGFnZV9kaXJlY3RvcnlbaV0pOwo+ICsJCWZyZWVfcGQoZGV2LCBwZHAtPnBh Z2VfZGlyZWN0b3J5W2ldKTsKPiAgIAl9Cj4KPiAtCWZyZWVfcGRwKHBwZ3R0LT5iYXNlLmRldiwg JnBwZ3R0LT5wZHApOwo+ICsJZnJlZV9wZHAoZGV2LCBwZHApOwo+ICsKPiAgIAlnZW44X2ZyZWVf c2NyYXRjaCh2bSk7Cj4gICB9Cj4KPiAgIC8qKgo+ICAgICogZ2VuOF9wcGd0dF9hbGxvY19wYWdl dGFicygpIC0gQWxsb2NhdGUgcGFnZSB0YWJsZXMgZm9yIFZBIHJhbmdlLgo+IC0gKiBAcHBndHQ6 CU1hc3RlciBwcGd0dCBzdHJ1Y3R1cmUuCj4gLSAqIEBwZDoJCVBhZ2UgZGlyZWN0b3J5IGZvciB0 aGlzIGFkZHJlc3MgcmFuZ2UuCj4gKyAqIEB2bToJTWFzdGVyIHZtIHN0cnVjdHVyZS4KPiArICog QHBkOglQYWdlIGRpcmVjdG9yeSBmb3IgdGhpcyBhZGRyZXNzIHJhbmdlLgo+ICAgICogQHN0YXJ0 OglTdGFydGluZyB2aXJ0dWFsIGFkZHJlc3MgdG8gYmVnaW4gYWxsb2NhdGlvbnMuCj4gLSAqIEBs ZW5ndGgJU2l6ZSBvZiB0aGUgYWxsb2NhdGlvbnMuCj4gKyAqIEBsZW5ndGg6CVNpemUgb2YgdGhl IGFsbG9jYXRpb25zLgo+ICAgICogQG5ld19wdHM6CUJpdG1hcCBzZXQgYnkgZnVuY3Rpb24gd2l0 aCBuZXcgYWxsb2NhdGlvbnMuIExpa2VseSB1c2VkIGJ5IHRoZQo+ICAgICoJCWNhbGxlciB0byBm cmVlIG9uIGVycm9yLgo+ICAgICoKPiBAQCAtNzg5LDEzICs3OTIsMTMgQEAgc3RhdGljIHZvaWQg Z2VuOF9wcGd0dF9jbGVhbnVwKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQo+ICAgICoK PiAgICAqIFJldHVybjogMCBpZiBzdWNjZXNzOyBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lz ZS4KPiAgICAqLwo+IC1zdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGFnZXRhYnMoc3RydWN0 IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAo+ICtzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGFn ZXRhYnMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAJCQkJICAgICBzdHJ1Y3Qg aTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQsCj4gICAJCQkJICAgICB1aW50NjRfdCBzdGFydCwKPiAg IAkJCQkgICAgIHVpbnQ2NF90IGxlbmd0aCwKPiAgIAkJCQkgICAgIHVuc2lnbmVkIGxvbmcgKm5l d19wdHMpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcHBndHQtPmJhc2UuZGV2 Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHZtLT5kZXY7Cj4gICAJc3RydWN0IGk5MTVf cGFnZV90YWJsZSAqcHQ7Cj4gICAJdWludDY0X3QgdGVtcDsKPiAgIAl1aW50MzJfdCBwZGU7Cj4g QEAgLTgwNCw3ICs4MDcsNyBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGFnZXRhYnMo c3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAo+ICAgCQkvKiBEb24ndCByZWFsbG9jYXRlIHBh Z2UgdGFibGVzICovCj4gICAJCWlmICh0ZXN0X2JpdChwZGUsIHBkLT51c2VkX3BkZXMpKSB7Cj4g ICAJCQkvKiBTY3JhdGNoIGlzIG5ldmVyIGFsbG9jYXRlZCB0aGlzIHdheSAqLwo+IC0JCQlXQVJO X09OKHB0ID09IHBwZ3R0LT5iYXNlLnNjcmF0Y2hfcHQpOwo+ICsJCQlXQVJOX09OKHB0ID09IHZt LT5zY3JhdGNoX3B0KTsKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCQl9Cj4KPiBAQCAtODEyLDcgKzgx NSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19wYWdldGFicyhzdHJ1Y3QgaTkxNV9o d19wcGd0dCAqcHBndHQsCj4gICAJCWlmIChJU19FUlIocHQpKQo+ICAgCQkJZ290byB1bndpbmRf b3V0Owo+Cj4gLQkJZ2VuOF9pbml0aWFsaXplX3B0KCZwcGd0dC0+YmFzZSwgcHQpOwo+ICsJCWdl bjhfaW5pdGlhbGl6ZV9wdCh2bSwgcHQpOwo+ICAgCQlwZC0+cGFnZV90YWJsZVtwZGVdID0gcHQ7 Cj4gICAJCV9fc2V0X2JpdChwZGUsIG5ld19wdHMpOwo+ICAgCX0KPiBAQCAtODI4LDExICs4MzEs MTEgQEAgdW53aW5kX291dDoKPgo+ICAgLyoqCj4gICAgKiBnZW44X3BwZ3R0X2FsbG9jX3BhZ2Vf ZGlyZWN0b3JpZXMoKSAtIEFsbG9jYXRlIHBhZ2UgZGlyZWN0b3JpZXMgZm9yIFZBIHJhbmdlLgo+ IC0gKiBAcHBndHQ6CU1hc3RlciBwcGd0dCBzdHJ1Y3R1cmUuCj4gKyAqIEB2bToJTWFzdGVyIHZt IHN0cnVjdHVyZS4KPiAgICAqIEBwZHA6CVBhZ2UgZGlyZWN0b3J5IHBvaW50ZXIgZm9yIHRoaXMg YWRkcmVzcyByYW5nZS4KPiAgICAqIEBzdGFydDoJU3RhcnRpbmcgdmlydHVhbCBhZGRyZXNzIHRv IGJlZ2luIGFsbG9jYXRpb25zLgo+IC0gKiBAbGVuZ3RoCVNpemUgb2YgdGhlIGFsbG9jYXRpb25z Lgo+IC0gKiBAbmV3X3BkcwlCaXRtYXAgc2V0IGJ5IGZ1bmN0aW9uIHdpdGggbmV3IGFsbG9jYXRp b25zLiBMaWtlbHkgdXNlZCBieSB0aGUKPiArICogQGxlbmd0aDoJU2l6ZSBvZiB0aGUgYWxsb2Nh dGlvbnMuCj4gKyAqIEBuZXdfcGRzOglCaXRtYXAgc2V0IGJ5IGZ1bmN0aW9uIHdpdGggbmV3IGFs bG9jYXRpb25zLiBMaWtlbHkgdXNlZCBieSB0aGUKPiAgICAqCQljYWxsZXIgdG8gZnJlZSBvbiBl cnJvci4KPiAgICAqCj4gICAgKiBBbGxvY2F0ZSB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIHBhZ2Ug ZGlyZWN0b3JpZXMgc3RhcnRpbmcgYXQgdGhlIHBkZSBpbmRleCBvZgo+IEBAIC04NDksMTMgKzg1 MiwxNCBAQCB1bndpbmRfb3V0Ogo+ICAgICoKPiAgICAqIFJldHVybjogMCBpZiBzdWNjZXNzOyBu ZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4KPiAgICAqLwo+IC1zdGF0aWMgaW50IGdlbjhf cHBndHRfYWxsb2NfcGFnZV9kaXJlY3RvcmllcyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQs Cj4gLQkJCQkgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBkcCwKPiAt CQkJCSAgICAgdWludDY0X3Qgc3RhcnQsCj4gLQkJCQkgICAgIHVpbnQ2NF90IGxlbmd0aCwKPiAt CQkJCSAgICAgdW5zaWduZWQgbG9uZyAqbmV3X3BkcykKPiArc3RhdGljIGludAo+ICtnZW44X3Bw Z3R0X2FsbG9jX3BhZ2VfZGlyZWN0b3JpZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s Cj4gKwkJCQkgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBkcCwKPiArCQkJ CSAgdWludDY0X3Qgc3RhcnQsCj4gKwkJCQkgIHVpbnQ2NF90IGxlbmd0aCwKPiArCQkJCSAgdW5z aWduZWQgbG9uZyAqbmV3X3BkcykKPiAgIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBw cGd0dC0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gdm0tPmRldjsKPiAg IAlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQ7Cj4gICAJdWludDY0X3QgdGVtcDsKPiAg IAl1aW50MzJfdCBwZHBlOwo+IEBAIC04NzEsNyArODc1LDcgQEAgc3RhdGljIGludCBnZW44X3Bw Z3R0X2FsbG9jX3BhZ2VfZGlyZWN0b3JpZXMoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAo+ ICAgCQlpZiAoSVNfRVJSKHBkKSkKPiAgIAkJCWdvdG8gdW53aW5kX291dDsKPgo+IC0JCWdlbjhf aW5pdGlhbGl6ZV9wZCgmcHBndHQtPmJhc2UsIHBkKTsKPiArCQlnZW44X2luaXRpYWxpemVfcGQo dm0sIHBkKTsKPiAgIAkJcGRwLT5wYWdlX2RpcmVjdG9yeVtwZHBlXSA9IHBkOwo+ICAgCQlfX3Nl dF9iaXQocGRwZSwgbmV3X3Bkcyk7Cj4gICAJfQo+IEBAIC05NDcsMTggKzk1MSwxOSBAQCBzdGF0 aWMgdm9pZCBtYXJrX3RsYnNfZGlydHkoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQo+ICAg fQo+Cj4gICBzdGF0aWMgaW50IGdlbjhfYWxsb2NfdmFfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVz c19zcGFjZSAqdm0sCj4gLQkJCSAgICAgICB1aW50NjRfdCBzdGFydCwKPiAtCQkJICAgICAgIHVp bnQ2NF90IGxlbmd0aCkKPiArCQkJICAgICAgIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBsZW5n dGgpCj4gICB7Cj4gICAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0KPiAgIAkJY29udGFp bmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9od19wcGd0dCwgYmFzZSk7Cj4gICAJdW5zaWduZWQgbG9u ZyAqbmV3X3BhZ2VfZGlycywgKipuZXdfcGFnZV90YWJsZXM7Cj4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gdm0tPmRldjsKPiArCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIg KnBkcCA9ICZwcGd0dC0+cGRwOyAvKiBGSVhNRTogNDhiICovCj4gICAJc3RydWN0IGk5MTVfcGFn ZV9kaXJlY3RvcnkgKnBkOwo+ICAgCWNvbnN0IHVpbnQ2NF90IG9yaWdfc3RhcnQgPSBzdGFydDsK PiAgIAljb25zdCB1aW50NjRfdCBvcmlnX2xlbmd0aCA9IGxlbmd0aDsKPiAgIAl1aW50NjRfdCB0 ZW1wOwo+ICAgCXVpbnQzMl90IHBkcGU7Cj4gLQl1aW50MzJfdCBwZHBlcyA9IEk5MTVfUERQRVNf UEVSX1BEUChwcGd0dC0+YmFzZS5kZXYpOwo+ICsJdWludDMyX3QgcGRwZXMgPSBJOTE1X1BEUEVT X1BFUl9QRFAoZGV2KTsKPiAgIAlpbnQgcmV0Owo+Cj4gICAJLyogV3JhcCBpcyBuZXZlciBva2F5 IHNpbmNlIHdlIGNhbiBvbmx5IHJlcHJlc2VudCA0OGIsIGFuZCB3ZSBkb24ndAo+IEBAIC05Njcs NyArOTcyLDcgQEAgc3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3JhbmdlKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtLAo+ICAgCWlmIChXQVJOX09OKHN0YXJ0ICsgbGVuZ3RoIDwgc3RhcnQp KQo+ICAgCQlyZXR1cm4gLUVOT0RFVjsKPgo+IC0JaWYgKFdBUk5fT04oc3RhcnQgKyBsZW5ndGgg PiBwcGd0dC0+YmFzZS50b3RhbCkpCj4gKwlpZiAoV0FSTl9PTihzdGFydCArIGxlbmd0aCA+IHZt LT50b3RhbCkpCj4gICAJCXJldHVybiAtRU5PREVWOwo+Cj4gICAJcmV0ID0gYWxsb2NfZ2VuOF90 ZW1wX2JpdG1hcHMoJm5ld19wYWdlX2RpcnMsICZuZXdfcGFnZV90YWJsZXMsIHBkcGVzKTsKPiBA QCAtOTc1LDE2ICs5ODAsMTYgQEAgc3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3JhbmdlKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAgCQlyZXR1cm4gcmV0Owo+Cj4gICAJLyogRG8g dGhlIGFsbG9jYXRpb25zIGZpcnN0IHNvIHdlIGNhbiBlYXNpbHkgYmFpbCBvdXQgKi8KPiAtCXJl dCA9IGdlbjhfcHBndHRfYWxsb2NfcGFnZV9kaXJlY3RvcmllcyhwcGd0dCwgJnBwZ3R0LT5wZHAs IHN0YXJ0LCBsZW5ndGgsCj4gLQkJCQkJbmV3X3BhZ2VfZGlycyk7Cj4gKwlyZXQgPSBnZW44X3Bw Z3R0X2FsbG9jX3BhZ2VfZGlyZWN0b3JpZXModm0sIHBkcCwgc3RhcnQsIGxlbmd0aCwKPiArCQkJ CQkJbmV3X3BhZ2VfZGlycyk7Cj4gICAJaWYgKHJldCkgewo+ICAgCQlmcmVlX2dlbjhfdGVtcF9i aXRtYXBzKG5ld19wYWdlX2RpcnMsIG5ld19wYWdlX3RhYmxlcywgcGRwZXMpOwo+ICAgCQlyZXR1 cm4gcmV0Owo+ICAgCX0KPgo+ICAgCS8qIEZvciBldmVyeSBwYWdlIGRpcmVjdG9yeSByZWZlcmVu Y2VkLCBhbGxvY2F0ZSBwYWdlIHRhYmxlcyAqLwo+IC0JZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCAm cHBndHQtPnBkcCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRwZSkgewo+IC0JCXJldCA9IGdlbjhf cHBndHRfYWxsb2NfcGFnZXRhYnMocHBndHQsIHBkLCBzdGFydCwgbGVuZ3RoLAo+ICsJZ2VuOF9m b3JfZWFjaF9wZHBlKHBkLCBwZHAsIHN0YXJ0LCBsZW5ndGgsIHRlbXAsIHBkcGUpIHsKPiArCQly ZXQgPSBnZW44X3BwZ3R0X2FsbG9jX3BhZ2V0YWJzKHZtLCBwZCwgc3RhcnQsIGxlbmd0aCwKPiAg IAkJCQkJCW5ld19wYWdlX3RhYmxlc1twZHBlXSk7Cj4gICAJCWlmIChyZXQpCj4gICAJCQlnb3Rv IGVycl9vdXQ7Cj4gQEAgLTk5NSw3ICsxMDAwLDcgQEAgc3RhdGljIGludCBnZW44X2FsbG9jX3Zh X3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+Cj4gICAJLyogQWxsb2NhdGlv bnMgaGF2ZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBzbyBzZXQgdGhlIGJpdG1hcHMsIGFuZCBk bwo+ICAgCSAqIHRoZSBtYXBwaW5ncy4gKi8KPiAtCWdlbjhfZm9yX2VhY2hfcGRwZShwZCwgJnBw Z3R0LT5wZHAsIHN0YXJ0LCBsZW5ndGgsIHRlbXAsIHBkcGUpIHsKPiArCWdlbjhfZm9yX2VhY2hf cGRwZShwZCwgcGRwLCBzdGFydCwgbGVuZ3RoLCB0ZW1wLCBwZHBlKSB7Cj4gICAJCWdlbjhfcGRl X3QgKmNvbnN0IHBhZ2VfZGlyZWN0b3J5ID0ga21hcF9weChwZCk7Cj4gICAJCXN0cnVjdCBpOTE1 X3BhZ2VfdGFibGUgKnB0Owo+ICAgCQl1aW50NjRfdCBwZF9sZW4gPSBsZW5ndGg7Cj4gQEAgLTEw MjgsOCArMTAzMyw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIAkJfQo+Cj4gICAJCWt1bm1hcF9weChwcGd0dCwgcGFn ZV9kaXJlY3RvcnkpOwo+IC0KPiAtCQlfX3NldF9iaXQocGRwZSwgcHBndHQtPnBkcC51c2VkX3Bk cGVzKTsKPiArCQlfX3NldF9iaXQocGRwZSwgcGRwLT51c2VkX3BkcGVzKTsKPiAgIAl9Cj4KPiAg IAlmcmVlX2dlbjhfdGVtcF9iaXRtYXBzKG5ld19wYWdlX2RpcnMsIG5ld19wYWdlX3RhYmxlcywg cGRwZXMpOwo+IEBAIC0xMDM5LDExICsxMDQzLDExIEBAIHN0YXRpYyBpbnQgZ2VuOF9hbGxvY192 YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIGVycl9vdXQ6Cj4gICAJ d2hpbGUgKHBkcGUtLSkgewo+ICAgCQlmb3JfZWFjaF9zZXRfYml0KHRlbXAsIG5ld19wYWdlX3Rh Ymxlc1twZHBlXSwgSTkxNV9QREVTKQo+IC0JCQlmcmVlX3B0KHZtLT5kZXYsIHBwZ3R0LT5wZHAu cGFnZV9kaXJlY3RvcnlbcGRwZV0tPnBhZ2VfdGFibGVbdGVtcF0pOwo+ICsJCQlmcmVlX3B0KGRl diwgcGRwLT5wYWdlX2RpcmVjdG9yeVtwZHBlXS0+cGFnZV90YWJsZVt0ZW1wXSk7Cj4gICAJfQo+ Cj4gICAJZm9yX2VhY2hfc2V0X2JpdChwZHBlLCBuZXdfcGFnZV9kaXJzLCBwZHBlcykKPiAtCQlm cmVlX3BkKHZtLT5kZXYsIHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV0pOwo+ICsJCWZy ZWVfcGQoZGV2LCBwZHAtPnBhZ2VfZGlyZWN0b3J5W3BkcGVdKTsKPgo+ICAgCWZyZWVfZ2VuOF90 ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVzLCBwZHBlcyk7Cj4gICAJ bWFya190bGJzX2RpcnR5KHBwZ3R0KTsKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=