From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v7 03/19] drm/i915/gen8: Abstract PDP usage Date: Wed, 5 Aug 2015 17:33:41 +0200 Message-ID: <20150805153341.GA17734@phenom.ffwll.local> References: <1438187043-34267-4-git-send-email-michel.thierry@intel.com> <1438250523-22533-1-git-send-email-michel.thierry@intel.com> <55BAF55F.7050209@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f181.google.com (mail-wi0-f181.google.com [209.85.212.181]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2E3736E964 for ; Wed, 5 Aug 2015 08:33:45 -0700 (PDT) Received: by wijp15 with SMTP id p15so53534053wij.0 for ; Wed, 05 Aug 2015 08:33:43 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55BAF55F.7050209@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Goel, Akash" Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKdWwgMzEsIDIwMTUgYXQgMDk6NDE6MTFBTSArMDUzMCwgR29lbCwgQWthc2ggd3Jv dGU6Cj4gUmV2aWV3ZWQgdGhlIHBhdGNoICYgaXQgbG9va3MgZmluZS4KPiBSZXZpZXdlZC1ieTog IkFrYXNoIEdvZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPiIKCkp1c3QgYW4gYXNpZGUgIiIgaXMg bm90IHJlcXVpcmVkIGluIHlvdXIgdGFnIGhlcmUgYW5kIGFjdHVhbGx5IGJyZWFrcyBpdAphcyBh IHByb3BlciBtYWlsIGFkZHJlc3MgLSAiIiBpZiBuZWVkZWQgc2hvdWxkIG9ubHkgd3JhcCB0aGUg bmFtZSwgYnV0Cm11c3Qgbm90IGluY2x1ZGUgdGhlIG1haWwgYWRkcmVzcyBpdHNlbGYuCi1EYW5p ZWwKCj4gCj4gCj4gT24gNy8zMC8yMDE1IDM6MzIgUE0sIE1pY2hlbCBUaGllcnJ5IHdyb3RlOgo+ ID5VcCB1bnRpbCBub3csIHBwZ3R0LT5wZHAgaGFzIGFsd2F5cyBiZWVuIHRoZSByb290IG9mIG91 ciBwYWdlIHRhYmxlcy4KPiA+TGVnYWN5IDMyYiBhZGRyZXNzZXMgYWN0ZWQgbGlrZSBpdCBoYWQg MSBQRFAgd2l0aCA0IFBEUEVzLgo+ID4KPiA+SW4gcHJlcGFyYXRpb24gZm9yIDQgbGV2ZWwgcGFn ZSB0YWJsZXMsIHdlIG5lZWQgdG8gc3RvcCB1c2luZyBwcGd0dC0+cGRwCj4gPmRpcmVjdGx5IHVu bGVzcyB3ZSBrbm93IGl0J3Mgd2hhdCB3ZSB3YW50LiBUaGUgZnV0dXJlIHN0cnVjdHVyZSB3aWxs IHVzZQo+ID5wcGd0dC0+cG1sNCBmb3IgdGhlIHRvcCBsZXZlbCwgYW5kIHRoZSBwZHAgaXMganVz dCBvbmUgb2YgdGhlIGVudHJpZXMKPiA+YmVpbmcgcG9pbnRlZCB0byBieSBhIHBtbDRlLiBUaGUg dGVtcG9yYWwgcGRwIGxvY2FsIHZhcmlhYmxlIHdpbGwgYmUKPiA+cmVtb3ZlZCBvbmNlIHRoZSBy ZXN0IG9mIHRoZSA0LWxldmVsIGNvZGUgbGFuZHMuCj4gPgo+ID5BbHNvLCBzdGFydCBwYXNzaW5n IHRoZSB2bSBwb2ludGVyIHRvIHRoZSBhbGxvYyBmdW5jdGlvbnMsIGluc3RlYWQgb2YKPiA+cHBn dHQuCj4gPgo+ID52MjogVXBkYXRlZCBhZnRlciBkeW5hbWljIHBhZ2UgYWxsb2NhdGlvbiBjaGFu Z2VzLgo+ID52MzogUmViYXNlIGFmdGVyIHMvcGFnZV90YWJsZXMvcGFnZV90YWJsZS8uCj4gPnY0 OiBSZWJhc2UgYWZ0ZXIgY2hhbmdlcyBpbiAiRHluYW1pYyBwYWdlIHRhYmxlIGFsbG9jYXRpb25z IiBwYXRjaC4KPiA+djU6IFJlYmFzZSBhZnRlciBNaWthJ3MgcHBndHQgY2xlYW51cCAvIHNjcmF0 Y2ggbWVyZ2UgcGF0Y2ggc2VyaWVzLgo+ID52NjogUmViYXNlIGFmdGVyIGZpbmFsIG1lcmdlZCB2 ZXJzaW9uIG9mIE1pa2EncyBwcGd0dC9zY3JhdGNoIHBhdGNoZXMuCj4gPnY3OiBLZWVwIHBhZ2V0 YWJsZSBtYXAgaW4tbGluZSAoYW5kIGF2b2lkIHVubmVjZXNzYXJ5IGZvcl9lYWNoX3BkZQo+ID5s b29wcyksIHJlbW92ZSByZWR1bmRhbnQgcHBndHQgcG9pbnRlciBpbiBfYWxsb2NfcGFnZXRhYnMg KEFrYXNoKQo+ID52ODogRml4IHRleHQgaW5kZW50YXRpb24gaW4gX2FsbG9jX3BhZ2V0YWJzL3Bh Z2VfZGlyZWN0b3JpZXMgKENocmlzKQo+ID52OTogRGVmZXIgZ2VuOF9hbGxvY192YV9yYW5nZV80 bHZsIGRlZmluaXRpb24gdW50aWwgNGx2bCBpcyBpbXBsZW1lbnRlZCwKPiA+Y2xlYW4tdXAgZ2Vu OF9wcGd0dF9jbGVhbnVwIFtwdW4gaW50ZW5kZWRdIChBa2FzaCkuCj4gPnYxMDogQ2xlYW4tdXAg Y29tbWl0IG1lc3NhZ2UgKEFrYXNoKS4KPiA+Cj4gPkNjOiBBa2FzaCBHb2VsIDxha2FzaC5nb2Vs QGludGVsLmNvbT4KPiA+U2lnbmVkLW9mZi1ieTogQmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2su bmV0Pgo+ID5TaWduZWQtb2ZmLWJ5OiBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50 ZWwuY29tPiAodjIrKQo+ID4tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuYyB8IDg0ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KPiA+ICAxIGZp bGUgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCj4gPgo+ID5kaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ID5pbmRleCAyOGYzMjI3Li5iZDU2OTc5IDEwMDY0 NAo+ID4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ID4rKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ID5AQCAtNjA3LDYgKzYwNyw3IEBA IHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0sCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPQo+ID4g IAkJY29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9od19wcGd0dCwgYmFzZSk7Cj4gPisJc3Ry dWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqcGRwID0gJnBwZ3R0LT5wZHA7IC8qIEZJ WE1FOiA0OGIgKi8KPiA+ICAJZ2VuOF9wdGVfdCAqcHRfdmFkZHIsIHNjcmF0Y2hfcHRlOwo+ID4g IAl1bnNpZ25lZCBwZHBlID0gc3RhcnQgPj4gR0VOOF9QRFBFX1NISUZUICYgR0VOOF9QRFBFX01B U0s7Cj4gPiAgCXVuc2lnbmVkIHBkZSA9IHN0YXJ0ID4+IEdFTjhfUERFX1NISUZUICYgR0VOOF9Q REVfTUFTSzsKPiA+QEAgLTYyMSwxMCArNjIyLDEwIEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRf Y2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gPiAgCQlzdHJ1Y3Qg aTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQ7Cj4gPiAgCQlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpw dDsKPiA+Cj4gPi0JCWlmIChXQVJOX09OKCFwcGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W3BkcGVd KSkKPiA+KwkJaWYgKFdBUk5fT04oIXBkcC0+cGFnZV9kaXJlY3RvcnlbcGRwZV0pKQo+ID4gIAkJ CWJyZWFrOwo+ID4KPiA+LQkJcGQgPSBwcGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W3BkcGVdOwo+ ID4rCQlwZCA9IHBkcC0+cGFnZV9kaXJlY3RvcnlbcGRwZV07Cj4gPgo+ID4gIAkJaWYgKFdBUk5f T04oIXBkLT5wYWdlX3RhYmxlW3BkZV0pKQo+ID4gIAkJCWJyZWFrOwo+ID5AQCAtNjYyLDYgKzY2 Myw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBn dHQgPQo+ID4gIAkJY29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9od19wcGd0dCwgYmFzZSk7 Cj4gPisJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfcG9pbnRlciAqcGRwID0gJnBwZ3R0LT5w ZHA7IC8qIEZJWE1FOiA0OGIgKi8KPiA+ICAJZ2VuOF9wdGVfdCAqcHRfdmFkZHI7Cj4gPiAgCXVu c2lnbmVkIHBkcGUgPSBzdGFydCA+PiBHRU44X1BEUEVfU0hJRlQgJiBHRU44X1BEUEVfTUFTSzsK PiA+ICAJdW5zaWduZWQgcGRlID0gc3RhcnQgPj4gR0VOOF9QREVfU0hJRlQgJiBHRU44X1BERV9N QVNLOwo+ID5AQCAtNjc1LDcgKzY3Nyw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5zZXJ0 X2VudHJpZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gPiAgCQkJYnJlYWs7Cj4g Pgo+ID4gIAkJaWYgKHB0X3ZhZGRyID09IE5VTEwpIHsKPiA+LQkJCXN0cnVjdCBpOTE1X3BhZ2Vf ZGlyZWN0b3J5ICpwZCA9IHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV07Cj4gPisJCQlz dHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQgPSBwZHAtPnBhZ2VfZGlyZWN0b3J5W3BkcGVd Owo+ID4gIAkJCXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0ID0gcGQtPnBhZ2VfdGFibGVbcGRl XTsKPiA+ICAJCQlwdF92YWRkciA9IGttYXBfcHgocHQpOwo+ID4gIAkJfQo+ID5AQCAtNzU1LDI4 ICs3NTcsMjkgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhbnVwKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtKQo+ID4gIHsKPiA+ICAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0 ID0KPiA+ICAJCWNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVfaHdfcHBndHQsIGJhc2UpOwo+ ID4rCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIgKnBkcCA9ICZwcGd0dC0+cGRw OyAvKiBGSVhNRTogNDhiICovCj4gPisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBwZ3R0LT5i YXNlLmRldjsKPiA+ICAJaW50IGk7Cj4gPgo+ID4tCWZvcl9lYWNoX3NldF9iaXQoaSwgcHBndHQt PnBkcC51c2VkX3BkcGVzLAo+ID4tCQkJIEk5MTVfUERQRVNfUEVSX1BEUChwcGd0dC0+YmFzZS5k ZXYpKSB7Cj4gPi0JCWlmIChXQVJOX09OKCFwcGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W2ldKSkK PiA+Kwlmb3JfZWFjaF9zZXRfYml0KGksIHBkcC0+dXNlZF9wZHBlcywgSTkxNV9QRFBFU19QRVJf UERQKGRldikpIHsKPiA+KwkJaWYgKFdBUk5fT04oIXBkcC0+cGFnZV9kaXJlY3RvcnlbaV0pKQo+ ID4gIAkJCWNvbnRpbnVlOwo+ID4KPiA+LQkJZ2VuOF9mcmVlX3BhZ2VfdGFibGVzKHBwZ3R0LT5i YXNlLmRldiwKPiA+LQkJCQkgICAgICBwcGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W2ldKTsKPiA+ LQkJZnJlZV9wZChwcGd0dC0+YmFzZS5kZXYsIHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbaV0p Owo+ID4rCQlnZW44X2ZyZWVfcGFnZV90YWJsZXMoZGV2LCBwZHAtPnBhZ2VfZGlyZWN0b3J5W2ld KTsKPiA+KwkJZnJlZV9wZChkZXYsIHBkcC0+cGFnZV9kaXJlY3RvcnlbaV0pOwo+ID4gIAl9Cj4g Pgo+ID4tCWZyZWVfcGRwKHBwZ3R0LT5iYXNlLmRldiwgJnBwZ3R0LT5wZHApOwo+ID4rCWZyZWVf cGRwKGRldiwgcGRwKTsKPiA+Kwo+ID4gIAlnZW44X2ZyZWVfc2NyYXRjaCh2bSk7Cj4gPiAgfQo+ ID4KPiA+ICAvKioKPiA+ICAgKiBnZW44X3BwZ3R0X2FsbG9jX3BhZ2V0YWJzKCkgLSBBbGxvY2F0 ZSBwYWdlIHRhYmxlcyBmb3IgVkEgcmFuZ2UuCj4gPi0gKiBAcHBndHQ6CU1hc3RlciBwcGd0dCBz dHJ1Y3R1cmUuCj4gPi0gKiBAcGQ6CQlQYWdlIGRpcmVjdG9yeSBmb3IgdGhpcyBhZGRyZXNzIHJh bmdlLgo+ID4rICogQHZtOglNYXN0ZXIgdm0gc3RydWN0dXJlLgo+ID4rICogQHBkOglQYWdlIGRp cmVjdG9yeSBmb3IgdGhpcyBhZGRyZXNzIHJhbmdlLgo+ID4gICAqIEBzdGFydDoJU3RhcnRpbmcg dmlydHVhbCBhZGRyZXNzIHRvIGJlZ2luIGFsbG9jYXRpb25zLgo+ID4tICogQGxlbmd0aAlTaXpl IG9mIHRoZSBhbGxvY2F0aW9ucy4KPiA+KyAqIEBsZW5ndGg6CVNpemUgb2YgdGhlIGFsbG9jYXRp b25zLgo+ID4gICAqIEBuZXdfcHRzOglCaXRtYXAgc2V0IGJ5IGZ1bmN0aW9uIHdpdGggbmV3IGFs bG9jYXRpb25zLiBMaWtlbHkgdXNlZCBieSB0aGUKPiA+ICAgKgkJY2FsbGVyIHRvIGZyZWUgb24g ZXJyb3IuCj4gPiAgICoKPiA+QEAgLTc4OSwxMyArNzkyLDEzIEBAIHN0YXRpYyB2b2lkIGdlbjhf cHBndHRfY2xlYW51cChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKPiA+ICAgKgo+ID4g ICAqIFJldHVybjogMCBpZiBzdWNjZXNzOyBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4K PiA+ICAgKi8KPiA+LXN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19wYWdldGFicyhzdHJ1Y3Qg aTkxNV9od19wcGd0dCAqcHBndHQsCj4gPitzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGFn ZXRhYnMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gPiAgCQkJCSAgICAgc3RydWN0 IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkLAo+ID4gIAkJCQkgICAgIHVpbnQ2NF90IHN0YXJ0LAo+ ID4gIAkJCQkgICAgIHVpbnQ2NF90IGxlbmd0aCwKPiA+ICAJCQkJICAgICB1bnNpZ25lZCBsb25n ICpuZXdfcHRzKQo+ID4gIHsKPiA+LQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcHBndHQtPmJh c2UuZGV2Owo+ID4rCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSB2bS0+ZGV2Owo+ID4gIAlzdHJ1 Y3QgaTkxNV9wYWdlX3RhYmxlICpwdDsKPiA+ICAJdWludDY0X3QgdGVtcDsKPiA+ICAJdWludDMy X3QgcGRlOwo+ID5AQCAtODA0LDcgKzgwNyw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxv Y19wYWdldGFicyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gPiAgCQkvKiBEb24ndCBy ZWFsbG9jYXRlIHBhZ2UgdGFibGVzICovCj4gPiAgCQlpZiAodGVzdF9iaXQocGRlLCBwZC0+dXNl ZF9wZGVzKSkgewo+ID4gIAkJCS8qIFNjcmF0Y2ggaXMgbmV2ZXIgYWxsb2NhdGVkIHRoaXMgd2F5 ICovCj4gPi0JCQlXQVJOX09OKHB0ID09IHBwZ3R0LT5iYXNlLnNjcmF0Y2hfcHQpOwo+ID4rCQkJ V0FSTl9PTihwdCA9PSB2bS0+c2NyYXRjaF9wdCk7Cj4gPiAgCQkJY29udGludWU7Cj4gPiAgCQl9 Cj4gPgo+ID5AQCAtODEyLDcgKzgxNSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19w YWdldGFicyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gPiAgCQlpZiAoSVNfRVJSKHB0 KSkKPiA+ICAJCQlnb3RvIHVud2luZF9vdXQ7Cj4gPgo+ID4tCQlnZW44X2luaXRpYWxpemVfcHQo JnBwZ3R0LT5iYXNlLCBwdCk7Cj4gPisJCWdlbjhfaW5pdGlhbGl6ZV9wdCh2bSwgcHQpOwo+ID4g IAkJcGQtPnBhZ2VfdGFibGVbcGRlXSA9IHB0Owo+ID4gIAkJX19zZXRfYml0KHBkZSwgbmV3X3B0 cyk7Cj4gPiAgCX0KPiA+QEAgLTgyOCwxMSArODMxLDExIEBAIHVud2luZF9vdXQ6Cj4gPgo+ID4g IC8qKgo+ID4gICAqIGdlbjhfcHBndHRfYWxsb2NfcGFnZV9kaXJlY3RvcmllcygpIC0gQWxsb2Nh dGUgcGFnZSBkaXJlY3RvcmllcyBmb3IgVkEgcmFuZ2UuCj4gPi0gKiBAcHBndHQ6CU1hc3RlciBw cGd0dCBzdHJ1Y3R1cmUuCj4gPisgKiBAdm06CU1hc3RlciB2bSBzdHJ1Y3R1cmUuCj4gPiAgICog QHBkcDoJUGFnZSBkaXJlY3RvcnkgcG9pbnRlciBmb3IgdGhpcyBhZGRyZXNzIHJhbmdlLgo+ID4g ICAqIEBzdGFydDoJU3RhcnRpbmcgdmlydHVhbCBhZGRyZXNzIHRvIGJlZ2luIGFsbG9jYXRpb25z Lgo+ID4tICogQGxlbmd0aAlTaXplIG9mIHRoZSBhbGxvY2F0aW9ucy4KPiA+LSAqIEBuZXdfcGRz CUJpdG1hcCBzZXQgYnkgZnVuY3Rpb24gd2l0aCBuZXcgYWxsb2NhdGlvbnMuIExpa2VseSB1c2Vk IGJ5IHRoZQo+ID4rICogQGxlbmd0aDoJU2l6ZSBvZiB0aGUgYWxsb2NhdGlvbnMuCj4gPisgKiBA bmV3X3BkczoJQml0bWFwIHNldCBieSBmdW5jdGlvbiB3aXRoIG5ldyBhbGxvY2F0aW9ucy4gTGlr ZWx5IHVzZWQgYnkgdGhlCj4gPiAgICoJCWNhbGxlciB0byBmcmVlIG9uIGVycm9yLgo+ID4gICAq Cj4gPiAgICogQWxsb2NhdGUgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBwYWdlIGRpcmVjdG9yaWVz IHN0YXJ0aW5nIGF0IHRoZSBwZGUgaW5kZXggb2YKPiA+QEAgLTg0OSwxMyArODUyLDE0IEBAIHVu d2luZF9vdXQ6Cj4gPiAgICoKPiA+ICAgKiBSZXR1cm46IDAgaWYgc3VjY2VzczsgbmVnYXRpdmUg ZXJyb3IgY29kZSBvdGhlcndpc2UuCj4gPiAgICovCj4gPi1zdGF0aWMgaW50IGdlbjhfcHBndHRf YWxsb2NfcGFnZV9kaXJlY3RvcmllcyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gPi0J CQkJICAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9wb2ludGVyICpwZHAsCj4gPi0JCQkJ ICAgICB1aW50NjRfdCBzdGFydCwKPiA+LQkJCQkgICAgIHVpbnQ2NF90IGxlbmd0aCwKPiA+LQkJ CQkgICAgIHVuc2lnbmVkIGxvbmcgKm5ld19wZHMpCj4gPitzdGF0aWMgaW50Cj4gPitnZW44X3Bw Z3R0X2FsbG9jX3BhZ2VfZGlyZWN0b3JpZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s Cj4gPisJCQkJICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9wb2ludGVyICpwZHAsCj4gPisJ CQkJICB1aW50NjRfdCBzdGFydCwKPiA+KwkJCQkgIHVpbnQ2NF90IGxlbmd0aCwKPiA+KwkJCQkg IHVuc2lnbmVkIGxvbmcgKm5ld19wZHMpCj4gPiAgewo+ID4tCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBwcGd0dC0+YmFzZS5kZXY7Cj4gPisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHZtLT5k ZXY7Cj4gPiAgCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZDsKPiA+ICAJdWludDY0X3Qg dGVtcDsKPiA+ICAJdWludDMyX3QgcGRwZTsKPiA+QEAgLTg3MSw3ICs4NzUsNyBAQCBzdGF0aWMg aW50IGdlbjhfcHBndHRfYWxsb2NfcGFnZV9kaXJlY3RvcmllcyhzdHJ1Y3QgaTkxNV9od19wcGd0 dCAqcHBndHQsCj4gPiAgCQlpZiAoSVNfRVJSKHBkKSkKPiA+ICAJCQlnb3RvIHVud2luZF9vdXQ7 Cj4gPgo+ID4tCQlnZW44X2luaXRpYWxpemVfcGQoJnBwZ3R0LT5iYXNlLCBwZCk7Cj4gPisJCWdl bjhfaW5pdGlhbGl6ZV9wZCh2bSwgcGQpOwo+ID4gIAkJcGRwLT5wYWdlX2RpcmVjdG9yeVtwZHBl XSA9IHBkOwo+ID4gIAkJX19zZXRfYml0KHBkcGUsIG5ld19wZHMpOwo+ID4gIAl9Cj4gPkBAIC05 NDcsMTggKzk1MSwxOSBAQCBzdGF0aWMgdm9pZCBtYXJrX3RsYnNfZGlydHkoc3RydWN0IGk5MTVf aHdfcHBndHQgKnBwZ3R0KQo+ID4gIH0KPiA+Cj4gPiAgc3RhdGljIGludCBnZW44X2FsbG9jX3Zh X3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ID4tCQkJICAgICAgIHVpbnQ2 NF90IHN0YXJ0LAo+ID4tCQkJICAgICAgIHVpbnQ2NF90IGxlbmd0aCkKPiA+KwkJCSAgICAgICB1 aW50NjRfdCBzdGFydCwgdWludDY0X3QgbGVuZ3RoKQo+ID4gIHsKPiA+ICAJc3RydWN0IGk5MTVf aHdfcHBndHQgKnBwZ3R0ID0KPiA+ICAJCWNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVfaHdf cHBndHQsIGJhc2UpOwo+ID4gIAl1bnNpZ25lZCBsb25nICpuZXdfcGFnZV9kaXJzLCAqKm5ld19w YWdlX3RhYmxlczsKPiA+KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gdm0tPmRldjsKPiA+Kwlz dHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9wb2ludGVyICpwZHAgPSAmcHBndHQtPnBkcDsgLyog RklYTUU6IDQ4YiAqLwo+ID4gIAlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQ7Cj4gPiAg CWNvbnN0IHVpbnQ2NF90IG9yaWdfc3RhcnQgPSBzdGFydDsKPiA+ICAJY29uc3QgdWludDY0X3Qg b3JpZ19sZW5ndGggPSBsZW5ndGg7Cj4gPiAgCXVpbnQ2NF90IHRlbXA7Cj4gPiAgCXVpbnQzMl90 IHBkcGU7Cj4gPi0JdWludDMyX3QgcGRwZXMgPSBJOTE1X1BEUEVTX1BFUl9QRFAocHBndHQtPmJh c2UuZGV2KTsKPiA+Kwl1aW50MzJfdCBwZHBlcyA9IEk5MTVfUERQRVNfUEVSX1BEUChkZXYpOwo+ ID4gIAlpbnQgcmV0Owo+ID4KPiA+ICAJLyogV3JhcCBpcyBuZXZlciBva2F5IHNpbmNlIHdlIGNh biBvbmx5IHJlcHJlc2VudCA0OGIsIGFuZCB3ZSBkb24ndAo+ID5AQCAtOTY3LDcgKzk3Miw3IEBA IHN0YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKPiA+ICAJaWYgKFdBUk5fT04oc3RhcnQgKyBsZW5ndGggPCBzdGFydCkpCj4gPiAgCQly ZXR1cm4gLUVOT0RFVjsKPiA+Cj4gPi0JaWYgKFdBUk5fT04oc3RhcnQgKyBsZW5ndGggPiBwcGd0 dC0+YmFzZS50b3RhbCkpCj4gPisJaWYgKFdBUk5fT04oc3RhcnQgKyBsZW5ndGggPiB2bS0+dG90 YWwpKQo+ID4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gPgo+ID4gIAlyZXQgPSBhbGxvY19nZW44X3Rl bXBfYml0bWFwcygmbmV3X3BhZ2VfZGlycywgJm5ld19wYWdlX3RhYmxlcywgcGRwZXMpOwo+ID5A QCAtOTc1LDE2ICs5ODAsMTYgQEAgc3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3JhbmdlKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ID4gIAkJcmV0dXJuIHJldDsKPiA+Cj4gPiAgCS8q IERvIHRoZSBhbGxvY2F0aW9ucyBmaXJzdCBzbyB3ZSBjYW4gZWFzaWx5IGJhaWwgb3V0ICovCj4g Pi0JcmV0ID0gZ2VuOF9wcGd0dF9hbGxvY19wYWdlX2RpcmVjdG9yaWVzKHBwZ3R0LCAmcHBndHQt PnBkcCwgc3RhcnQsIGxlbmd0aCwKPiA+LQkJCQkJbmV3X3BhZ2VfZGlycyk7Cj4gPisJcmV0ID0g Z2VuOF9wcGd0dF9hbGxvY19wYWdlX2RpcmVjdG9yaWVzKHZtLCBwZHAsIHN0YXJ0LCBsZW5ndGgs Cj4gPisJCQkJCQluZXdfcGFnZV9kaXJzKTsKPiA+ICAJaWYgKHJldCkgewo+ID4gIAkJZnJlZV9n ZW44X3RlbXBfYml0bWFwcyhuZXdfcGFnZV9kaXJzLCBuZXdfcGFnZV90YWJsZXMsIHBkcGVzKTsK PiA+ICAJCXJldHVybiByZXQ7Cj4gPiAgCX0KPiA+Cj4gPiAgCS8qIEZvciBldmVyeSBwYWdlIGRp cmVjdG9yeSByZWZlcmVuY2VkLCBhbGxvY2F0ZSBwYWdlIHRhYmxlcyAqLwo+ID4tCWdlbjhfZm9y X2VhY2hfcGRwZShwZCwgJnBwZ3R0LT5wZHAsIHN0YXJ0LCBsZW5ndGgsIHRlbXAsIHBkcGUpIHsK PiA+LQkJcmV0ID0gZ2VuOF9wcGd0dF9hbGxvY19wYWdldGFicyhwcGd0dCwgcGQsIHN0YXJ0LCBs ZW5ndGgsCj4gPisJZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCBwZHAsIHN0YXJ0LCBsZW5ndGgsIHRl bXAsIHBkcGUpIHsKPiA+KwkJcmV0ID0gZ2VuOF9wcGd0dF9hbGxvY19wYWdldGFicyh2bSwgcGQs IHN0YXJ0LCBsZW5ndGgsCj4gPiAgCQkJCQkJbmV3X3BhZ2VfdGFibGVzW3BkcGVdKTsKPiA+ICAJ CWlmIChyZXQpCj4gPiAgCQkJZ290byBlcnJfb3V0Owo+ID5AQCAtOTk1LDcgKzEwMDAsNyBAQCBz dGF0aWMgaW50IGdlbjhfYWxsb2NfdmFfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0sCj4gPgo+ID4gIAkvKiBBbGxvY2F0aW9ucyBoYXZlIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHks IHNvIHNldCB0aGUgYml0bWFwcywgYW5kIGRvCj4gPiAgCSAqIHRoZSBtYXBwaW5ncy4gKi8KPiA+ LQlnZW44X2Zvcl9lYWNoX3BkcGUocGQsICZwcGd0dC0+cGRwLCBzdGFydCwgbGVuZ3RoLCB0ZW1w LCBwZHBlKSB7Cj4gPisJZ2VuOF9mb3JfZWFjaF9wZHBlKHBkLCBwZHAsIHN0YXJ0LCBsZW5ndGgs IHRlbXAsIHBkcGUpIHsKPiA+ICAJCWdlbjhfcGRlX3QgKmNvbnN0IHBhZ2VfZGlyZWN0b3J5ID0g a21hcF9weChwZCk7Cj4gPiAgCQlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpwdDsKPiA+ICAJCXVp bnQ2NF90IHBkX2xlbiA9IGxlbmd0aDsKPiA+QEAgLTEwMjgsOCArMTAzMyw3IEBAIHN0YXRpYyBp bnQgZ2VuOF9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiA+ ICAJCX0KPiA+Cj4gPiAgCQlrdW5tYXBfcHgocHBndHQsIHBhZ2VfZGlyZWN0b3J5KTsKPiA+LQo+ ID4tCQlfX3NldF9iaXQocGRwZSwgcHBndHQtPnBkcC51c2VkX3BkcGVzKTsKPiA+KwkJX19zZXRf Yml0KHBkcGUsIHBkcC0+dXNlZF9wZHBlcyk7Cj4gPiAgCX0KPiA+Cj4gPiAgCWZyZWVfZ2VuOF90 ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVzLCBwZHBlcyk7Cj4gPkBA IC0xMDM5LDExICsxMDQzLDExIEBAIHN0YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9yYW5nZShzdHJ1 Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiA+ICBlcnJfb3V0Ogo+ID4gIAl3aGlsZSAocGRw ZS0tKSB7Cj4gPiAgCQlmb3JfZWFjaF9zZXRfYml0KHRlbXAsIG5ld19wYWdlX3RhYmxlc1twZHBl XSwgSTkxNV9QREVTKQo+ID4tCQkJZnJlZV9wdCh2bS0+ZGV2LCBwcGd0dC0+cGRwLnBhZ2VfZGly ZWN0b3J5W3BkcGVdLT5wYWdlX3RhYmxlW3RlbXBdKTsKPiA+KwkJCWZyZWVfcHQoZGV2LCBwZHAt PnBhZ2VfZGlyZWN0b3J5W3BkcGVdLT5wYWdlX3RhYmxlW3RlbXBdKTsKPiA+ICAJfQo+ID4KPiA+ ICAJZm9yX2VhY2hfc2V0X2JpdChwZHBlLCBuZXdfcGFnZV9kaXJzLCBwZHBlcykKPiA+LQkJZnJl ZV9wZCh2bS0+ZGV2LCBwcGd0dC0+cGRwLnBhZ2VfZGlyZWN0b3J5W3BkcGVdKTsKPiA+KwkJZnJl ZV9wZChkZXYsIHBkcC0+cGFnZV9kaXJlY3RvcnlbcGRwZV0pOwo+ID4KPiA+ICAJZnJlZV9nZW44 X3RlbXBfYml0bWFwcyhuZXdfcGFnZV9kaXJzLCBuZXdfcGFnZV90YWJsZXMsIHBkcGVzKTsKPiA+ ICAJbWFya190bGJzX2RpcnR5KHBwZ3R0KTsKPiA+Cj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVu Z2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=