From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: Re: [PATCH 5/5] drm/i915: Expand subslice mask Date: Tue, 7 May 2019 12:00:55 -0700 Message-ID: References: <20190503213020.25628-1-stuart.summers@intel.com> <20190503213020.25628-6-stuart.summers@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 ESMTPS id 68F3B89C8D for ; Tue, 7 May 2019 19:00:41 +0000 (UTC) In-Reply-To: <20190503213020.25628-6-stuart.summers@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Stuart Summers , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA1LzMvMTkgMjozMCBQTSwgU3R1YXJ0IFN1bW1lcnMgd3JvdGU6Cj4gQ3VycmVudGx5LCB0 aGUgc3Vic2xpY2VfbWFzayBydW50aW1lIHBhcmFtZXRlciBpcyBzdG9yZWQgYXMgYW4KPiBhcnJh eSBvZiBzdWJzbGljZXMgcGVyIHNsaWNlLiBFeHBhbmQgdGhlIHN1YnNsaWNlIG1hc2sgYXJyYXkg dG8KPiBiZXR0ZXIgbWF0Y2ggd2hhdCBpcyBwcmVzZW50ZWQgdG8gdXNlcnNwYWNlIHRocm91Z2gg dGhlCj4gSTkxNV9RVUVSWV9UT1BPTE9HWV9JTkZPIGlvY3RsLiBUaGUgaW5kZXggaW50byB0aGlz IGFycmF5IGlzCj4gdGhlbiBjYWxjdWxhdGVkOgo+ICAgIHNsaWNlICogc3Vic2xpY2Ugc3RyaWRl ICsgc3Vic2xpY2UgaW5kZXggLyA4Cj4gCj4gdjI6IGZpeCBzcGFjaW5nIGluIHNldF9zc2V1X2lu Zm8gYXJncwo+ICAgICAgdXNlIHNldF9zc2V1X2luZm8gdG8gaW5pdGlhbGl6ZSBzc2V1IGRhdGEg d2hlbiBidWlsZGluZwo+ICAgICAgZGV2aWNlIHN0YXR1cyBpbiBkZWJ1Z2ZzCj4gICAgICByZW5h bWUgdmFyaWFibGVzIGluIGludGVsX2VuZ2luZV90eXBlcy5oIHRvIGF2b2lkIGNoZWNrcGF0Y2gK PiAgICAgIHdhcm5pbmdzCj4gdjM6IHVwZGF0ZSBoZWFkZXJzIGluIGludGVsX3NzZXUuaAo+IHY0 OiBhZGQgY29uc3QgdG8gc29tZSBzc2V1X2Rldl9pbmZvIHZhcmlhYmxlcwo+ICAgICAgdXNlIHNz ZXUtPmV1X3N0cmlkZSBmb3IgRVUgc3RyaWRlIGNhbGN1bGF0aW9ucwo+IHY1OiBhZGRyZXNzIHJl dmlldyBjb21tZW50cyBmcm9tIFR2cnRrbyBhbmQgRGFuaWVsZQo+IAo+IENjOiBEYW5pZWxlIENl cmFvbG8gU3B1cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+IENjOiBMaW9u ZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+Cj4gQWNrZWQtYnk6 IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KPiBTaWdu ZWQtb2ZmLWJ5OiBTdHVhcnQgU3VtbWVycyA8c3R1YXJ0LnN1bW1lcnNAaW50ZWwuY29tPgo+IC0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMgICAgfCAgMjQg KystCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMuaCB8ICAz MCArKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9oYW5nY2hlY2suYyAgICB8 ICAgMyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfc3NldS5jICAgICAgICAg fCAgNDMgKysrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuaCAgICAg ICAgIHwgIDI4ICsrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91 bmRzLmMgIHwgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAg ICAgICAgICB8ICA0MCArKy0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAg ICAgICAgICAgICAgfCAgIDYgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vy cm9yLmMgICAgICAgIHwgICA1ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5 LmMgICAgICAgICAgICB8ICAxMCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2 aWNlX2luZm8uYyAgICAgfCAxNTUgKysrKysrKysrKy0tLS0tLS0tLQo+ICAgMTEgZmlsZXMgY2hh bmdlZCwgMjI3IGluc2VydGlvbnMoKyksIDExOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwo+IGluZGV4IDU5MDdhOTYxMzY0MS4uMjkw YmRhNWNjODJiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2Vu Z2luZV9jcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2Nz LmMKPiBAQCAtOTA5LDEyICs5MDksMzAgQEAgY29uc3QgY2hhciAqaTkxNV9jYWNoZV9sZXZlbF9z dHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludCB0eXBlKQo+ICAgCX0KPiAgIH0K PiAgIAo+ICtzdGF0aWMgaW5saW5lIHUzMgo+ICtpbnRlbF9zc2V1X2Zsc19zdWJzbGljZShjb25z dCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwgdTMyIHNsaWNlKQo+ICt7Cj4gKwl1MzIgc3Vi c2xpY2U7Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSBzc2V1LT5zc19zdHJpZGUgLSAxOyBp ID49IDA7IGktLSkgewo+ICsJCXN1YnNsaWNlID0gZmxzKHNzZXUtPnN1YnNsaWNlX21hc2tbc2xp Y2UgKiBzc2V1LT5zc19zdHJpZGUgKwo+ICsJCQkJCQkgICBpXSk7Cj4gKwkJaWYgKHN1YnNsaWNl KSB7Cj4gKwkJCXN1YnNsaWNlICs9IGkgKiBCSVRTX1BFUl9CWVRFOwo+ICsJCQlicmVhazsKPiAr CQl9Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHN1YnNsaWNlOwo+ICt9Cj4gKwo+ICAgdTMyIGludGVs X2NhbGN1bGF0ZV9tY3Jfc19zc19zZWxlY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICAgewo+ICAgCWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJ TUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7Cj4gICAJdTMyIG1jcl9zX3NzX3NlbGVjdDsKPiAgIAl1 MzIgc2xpY2UgPSBmbHMoc3NldS0+c2xpY2VfbWFzayk7Cj4gLQl1MzIgc3Vic2xpY2UgPSBmbHMo c3NldS0+c3Vic2xpY2VfbWFza1tzbGljZV0pOwo+ICsJdTMyIHN1YnNsaWNlID0gaW50ZWxfc3Nl dV9mbHNfc3Vic2xpY2Uoc3NldSwgc2xpY2UpOwo+ICAgCj4gICAJaWYgKElTX0dFTihkZXZfcHJp diwgMTApKQo+ICAgCQltY3Jfc19zc19zZWxlY3QgPSBHRU44X01DUl9TTElDRShzbGljZSkgfAo+ IEBAIC05OTAsNiArMTAwOCw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX2dldF9pbnN0ZG9uZShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAJCQkgICAgICAgc3RydWN0IGludGVsX2lu c3Rkb25lICppbnN0ZG9uZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBlbmdpbmUtPmk5MTU7Cj4gKwljb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3Nl dSA9ICZSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1Owo+ICAgCXN0cnVjdCBpbnRlbF91bmNv cmUgKnVuY29yZSA9IGVuZ2luZS0+dW5jb3JlOwo+ICAgCXUzMiBtbWlvX2Jhc2UgPSBlbmdpbmUt Pm1taW9fYmFzZTsKPiAgIAlpbnQgc2xpY2U7Cj4gQEAgLTEwMDcsNyArMTAyNiw4IEBAIHZvaWQg aW50ZWxfZW5naW5lX2dldF9pbnN0ZG9uZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs Cj4gICAKPiAgIAkJaW5zdGRvbmUtPnNsaWNlX2NvbW1vbiA9Cj4gICAJCQlpbnRlbF91bmNvcmVf cmVhZCh1bmNvcmUsIEdFTjdfU0NfSU5TVERPTkUpOwo+IC0JCWZvcl9lYWNoX2luc3Rkb25lX3Ns aWNlX3N1YnNsaWNlKGRldl9wcml2LCBzbGljZSwgc3Vic2xpY2UpIHsKPiArCQlmb3JfZWFjaF9p bnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZfcHJpdiwgc3NldSwgc2xpY2UsCj4gKwkJCQkJCSBz dWJzbGljZSkgewo+ICAgCQkJaW5zdGRvbmUtPnNhbXBsZXJbc2xpY2VdW3N1YnNsaWNlXSA9Cj4g ICAJCQkJcmVhZF9zdWJzbGljZV9yZWcoZGV2X3ByaXYsIHNsaWNlLCBzdWJzbGljZSwKPiAgIAkJ CQkJCSAgR0VON19TQU1QTEVSX0lOU1RET05FKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9lbmdpbmVfdHlwZXMuaAo+IGluZGV4IGMwYWIxMWIxMmUxNC4uNTgyMzQwYjU1MTQ0 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBl cy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgK PiBAQCAtNTM1LDIwICs1MzUsMjAgQEAgaW50ZWxfZW5naW5lX25lZWRzX2JyZWFkY3J1bWJfdGFz a2xldChjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJcmV0dXJuIGVu Z2luZS0+ZmxhZ3MgJiBJOTE1X0VOR0lORV9ORUVEU19CUkVBRENSVU1CX1RBU0tMRVQ7Cj4gICB9 Cj4gICAKPiAtI2RlZmluZSBpbnN0ZG9uZV9zbGljZV9tYXNrKGRldl9wcml2X18pIFwKPiAtCShJ U19HRU4oZGV2X3ByaXZfXywgNykgPyBcCj4gLQkgMSA6IFJVTlRJTUVfSU5GTyhkZXZfcHJpdl9f KS0+c3NldS5zbGljZV9tYXNrKQo+IC0KPiAtI2RlZmluZSBpbnN0ZG9uZV9zdWJzbGljZV9tYXNr KGRldl9wcml2X18pIFwKPiAtCShJU19HRU4oZGV2X3ByaXZfXywgNykgPyBcCj4gLQkgMSA6IFJV TlRJTUVfSU5GTyhkZXZfcHJpdl9fKS0+c3NldS5zdWJzbGljZV9tYXNrWzBdKQo+IC0KPiAtI2Rl ZmluZSBmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZfcHJpdl9fLCBzbGljZV9f LCBzdWJzbGljZV9fKSBcCj4gLQlmb3IgKChzbGljZV9fKSA9IDAsIChzdWJzbGljZV9fKSA9IDA7 IFwKPiAtCSAgICAgKHNsaWNlX18pIDwgSTkxNV9NQVhfU0xJQ0VTOyBcCj4gLQkgICAgIChzdWJz bGljZV9fKSA9ICgoc3Vic2xpY2VfXykgKyAxKSA8IEk5MTVfTUFYX1NVQlNMSUNFUyA/IChzdWJz bGljZV9fKSArIDEgOiAwLCBcCj4gLQkgICAgICAgKHNsaWNlX18pICs9ICgoc3Vic2xpY2VfXykg PT0gMCkpIFwKPiAtCQlmb3JfZWFjaF9pZigoQklUKHNsaWNlX18pICYgaW5zdGRvbmVfc2xpY2Vf bWFzayhkZXZfcHJpdl9fKSkgJiYgXAo+IC0JCQkgICAgKEJJVChzdWJzbGljZV9fKSAmIGluc3Rk b25lX3N1YnNsaWNlX21hc2soZGV2X3ByaXZfXykpKQo+ICsjZGVmaW5lIGluc3Rkb25lX2hhc19z bGljZShkZXZfcHJpdl9fXywgc3NldV9fXywgc2xpY2VfX18pIFwKPiArCSgoSVNfR0VOKGRldl9w cml2X19fLCA3KSA/IDEgOiAoKHNzZXVfX18pLT5zbGljZV9tYXNrKSkgJiBcCj4gKwlCSVQoc2xp Y2VfX18pKQo+ICsKPiArI2RlZmluZSBpbnN0ZG9uZV9oYXNfc3Vic2xpY2UoZGV2X3ByaXZfXywg c3NldV9fLCBzbGljZV9fLCBzdWJzbGljZV9fKSBcCj4gKwkoSVNfR0VOKGRldl9wcml2X18sIDcp ID8gMSA6IFwKClRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBmb3IgYWxsIHNzIG9uIGdlbjcsIHdoaWxl IHRoZSBvcmlnaW5hbCBjb2RlIApyZXR1cm5lZCAxIGFzIHRoZSBzdWJzbGljZSBtYXNrIChpLmUu IG9ubHkgaGFzIHNzID09IDApLgoKPiArCSBpbnRlbF9zc2V1X2hhc19zdWJzbGljZShzc2V1X18s IHNsaWNlX18sIHN1YnNsaWNlX18pKQo+ICsKPiArI2RlZmluZSBmb3JfZWFjaF9pbnN0ZG9uZV9z bGljZV9zdWJzbGljZShkZXZfcHJpdl8sIHNzZXVfLCBzbGljZV8sIHN1YnNsaWNlXykgXAo+ICsJ Zm9yICgoc2xpY2VfKSA9IDAsIChzdWJzbGljZV8pID0gMDsgKHNsaWNlXykgPCBJOTE1X01BWF9T TElDRVM7IFwKPiArCSAgICAgKHN1YnNsaWNlXykgPSAoKHN1YnNsaWNlXykgKyAxKSAlIEk5MTVf TUFYX1NVQlNMSUNFUywgXAo+ICsJICAgICAoc2xpY2VfKSArPSAoKHN1YnNsaWNlXykgPT0gMCkp IFwKPiArCQlmb3JfZWFjaF9pZigoaW5zdGRvbmVfaGFzX3NsaWNlKGRldl9wcml2Xywgc3NldV8s IHNsaWNlXykpICYmIFwKPiArCQkJICAgIChpbnN0ZG9uZV9oYXNfc3Vic2xpY2UoZGV2X3ByaXZf LCBzc2V1Xywgc2xpY2VfLCBcCj4gKwkJCQkJCSAgICBzdWJzbGljZV8pKSkKPiAgIAo+ICAgI2Vu ZGlmIC8qIF9fSU5URUxfRU5HSU5FX1RZUEVTX0hfXyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9oYW5nY2hlY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2hhbmdjaGVjay5jCj4gaW5kZXggNzIxYWI3NGEzODJmLi4xMGUwMzJjOWFiMTAg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfaGFuZ2NoZWNrLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9oYW5nY2hlY2suYwo+IEBAIC01 MSw2ICs1MSw3IEBAIHN0YXRpYyBib29sIGluc3Rkb25lX3VuY2hhbmdlZCh1MzIgY3VycmVudF9p bnN0ZG9uZSwgdTMyICpvbGRfaW5zdGRvbmUpCj4gICBzdGF0aWMgYm9vbCBzdWJ1bml0c19zdHVj ayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICB7Cj4gICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1Owo+ICsJY29uc3Qgc3RydWN0IHNz ZXVfZGV2X2luZm8gKnNzZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldTsKPiAgIAlz dHJ1Y3QgaW50ZWxfaW5zdGRvbmUgaW5zdGRvbmU7Cj4gICAJc3RydWN0IGludGVsX2luc3Rkb25l ICphY2N1X2luc3Rkb25lID0gJmVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25lOwo+ICAgCWJvb2wg c3R1Y2s7Cj4gQEAgLTcyLDcgKzczLDcgQEAgc3RhdGljIGJvb2wgc3VidW5pdHNfc3R1Y2soc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCXN0dWNrICY9IGluc3Rkb25lX3VuY2hh bmdlZChpbnN0ZG9uZS5zbGljZV9jb21tb24sCj4gICAJCQkJICAgICZhY2N1X2luc3Rkb25lLT5z bGljZV9jb21tb24pOwo+ICAgCj4gLQlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShk ZXZfcHJpdiwgc2xpY2UsIHN1YnNsaWNlKSB7Cj4gKwlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9z dWJzbGljZShkZXZfcHJpdiwgc3NldSwgc2xpY2UsIHN1YnNsaWNlKSB7Cj4gICAJCXN0dWNrICY9 IGluc3Rkb25lX3VuY2hhbmdlZChpbnN0ZG9uZS5zYW1wbGVyW3NsaWNlXVtzdWJzbGljZV0sCj4g ICAJCQkJCSAgICAmYWNjdV9pbnN0ZG9uZS0+c2FtcGxlcltzbGljZV1bc3Vic2xpY2VdKTsKPiAg IAkJc3R1Y2sgJj0gaW5zdGRvbmVfdW5jaGFuZ2VkKGluc3Rkb25lLnJvd1tzbGljZV1bc3Vic2xp Y2VdLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmMKPiBpbmRleCBhMDc1NmYwMDZm NWYuLmE4Yjk4YjAyNjZiNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9zc2V1LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmMK PiBAQCAtOCw2ICs4LDE3IEBACj4gICAjaW5jbHVkZSAiaW50ZWxfbHJjX3JlZy5oIgo+ICAgI2lu Y2x1ZGUgImludGVsX3NzZXUuaCIKPiAgIAo+ICt2b2lkIGludGVsX3NzZXVfc2V0X2luZm8oc3Ry dWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsIHU4IG1heF9zbGljZXMsCj4gKwkJCSB1OCBtYXhfc3Vi c2xpY2VzLCB1OCBtYXhfZXVzX3Blcl9zdWJzbGljZSkKPiArewo+ICsJc3NldS0+bWF4X3NsaWNl cyA9IG1heF9zbGljZXM7Cj4gKwlzc2V1LT5tYXhfc3Vic2xpY2VzID0gbWF4X3N1YnNsaWNlczsK PiArCXNzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlID0gbWF4X2V1c19wZXJfc3Vic2xpY2U7Cj4g Kwo+ICsJc3NldS0+c3Nfc3RyaWRlID0gR0VOX1NTRVVfU1RSSURFKHNzZXUtPm1heF9zdWJzbGlj ZXMpOwo+ICsJc3NldS0+ZXVfc3RyaWRlID0gR0VOX1NTRVVfU1RSSURFKHNzZXUtPm1heF9ldXNf cGVyX3N1YnNsaWNlKTsKPiArfQo+ICsKPiAgIHVuc2lnbmVkIGludAo+ICAgaW50ZWxfc3NldV9z dWJzbGljZV90b3RhbChjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSkKPiAgIHsKPiBA QCAtMTksMTAgKzMwLDQwIEBAIGludGVsX3NzZXVfc3Vic2xpY2VfdG90YWwoY29uc3Qgc3RydWN0 IHNzZXVfZGV2X2luZm8gKnNzZXUpCj4gICAJcmV0dXJuIHRvdGFsOwo+ICAgfQo+ICAgCj4gK3Zv aWQgaW50ZWxfc3NldV9jb3B5X3N1YnNsaWNlcyhjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAq c3NldSwgaW50IHNsaWNlLAo+ICsJCQkgICAgICAgdTggKnRvX21hc2spCj4gK3sKPiArCWludCBv ZmZzZXQgPSBzbGljZSAqIHNzZXUtPnNzX3N0cmlkZTsKPiArCj4gKwltZW1jcHkoJnRvX21hc2tb b2Zmc2V0XSwgJnNzZXUtPnN1YnNsaWNlX21hc2tbb2Zmc2V0XSwgc3NldS0+c3Nfc3RyaWRlKTsK PiArfQo+ICsKPiArdTMyICBpbnRlbF9zc2V1X2dldF9zdWJzbGljZXMoY29uc3Qgc3RydWN0IHNz ZXVfZGV2X2luZm8gKnNzZXUsIHU4IHNsaWNlKQoKbml0cGljazogZXh0cmEgc3BhY2UKCj4gK3sK PiArCWludCBpLCBvZmZzZXQgPSBzbGljZSAqIHNzZXUtPnNzX3N0cmlkZTsKPiArCXUzMiBtYXNr Owo+ICsKCkdFTV9CVUdfT04oc3NldS0+c3Nfc3RyaWRlID4gc2l6ZSh1MzIpKSB0byBjYXRjaCB0 aGUgdW5saWtlbHkgY2FzZSB3ZSBnbyAKb3ZlciBhbmQgbmVlZCB0byB1cGRhdGUgdGhlIG1hc2sg c2l6ZT8KCj4gKwlmb3IgKGkgPSAwOyBpIDwgc3NldS0+c3Nfc3RyaWRlOyBpKyspCj4gKwkJbWFz ayB8PSAodTMyKXNzZXUtPnN1YnNsaWNlX21hc2tbb2Zmc2V0ICsgaV0gPDwKPiArCQkJaSAqIEJJ VFNfUEVSX0JZVEU7Cj4gKwo+ICsJcmV0dXJuIG1hc2s7Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxf c3NldV9zZXRfc3Vic2xpY2VzKHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LCBpbnQgc2xpY2Us Cj4gKwkJCSAgICAgIHUzMiBzc19tYXNrKQo+ICt7Cj4gKwlpbnQgaSwgb2Zmc2V0ID0gc2xpY2Ug KiBzc2V1LT5zc19zdHJpZGU7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IHNzZXUtPnNzX3N0cmlk ZTsgaSsrKQo+ICsJCXNzZXUtPnN1YnNsaWNlX21hc2tbb2Zmc2V0ICsgaV0gPQo+ICsJCQkoc3Nf bWFzayA+PiAoQklUU19QRVJfQllURSAqIGkpKSAmIDB4ZmY7Cj4gK30KPiArCj4gICB1bnNpZ25l ZCBpbnQKPiAgIGludGVsX3NzZXVfc3Vic2xpY2VzX3Blcl9zbGljZShjb25zdCBzdHJ1Y3Qgc3Nl dV9kZXZfaW5mbyAqc3NldSwgdTggc2xpY2UpCj4gICB7Cj4gLQlyZXR1cm4gaHdlaWdodDgoc3Nl dS0+c3Vic2xpY2VfbWFza1tzbGljZV0pOwo+ICsJcmV0dXJuIGh3ZWlnaHQzMihpbnRlbF9zc2V1 X2dldF9zdWJzbGljZXMoc3NldSwgc2xpY2UpKTsKPiAgIH0KPiAgIAo+ICAgdTMyIGludGVsX3Nz ZXVfbWFrZV9ycGNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAoKPHNuaXA+Cgo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jCj4gQEAgLTg0LDE3ICs4NCw0NiBA QCB2b2lkIGludGVsX2RldmljZV9pbmZvX2R1bXBfZmxhZ3MoY29uc3Qgc3RydWN0IGludGVsX2Rl dmljZV9pbmZvICppbmZvLAo+ICAgI3VuZGVmIFBSSU5UX0ZMQUcKPiAgIH0KPiAgIAo+ICsjZGVm aW5lIFNTX1NUUl9NQVhfU0laRSAoR0VOX01BWF9TVUJTTElDRV9TVFJJREUgKiAyICsgMSkKPiAr Cj4gK3N0YXRpYyBjaGFyICoKPiArc3Vic2xpY2VfcGVyX3NsaWNlX3N0cihjaGFyICpidWYsIHU4 IHNpemUsIGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LAo+ICsJCSAgICAgICB1OCBz bGljZSkKPiArewo+ICsJaW50IGk7Cj4gKwl1OCBzc19vZmZzZXQgPSBzbGljZSAqIHNzZXUtPnNz X3N0cmlkZTsKPiArCj4gKwlHRU1fQlVHX09OKHNsaWNlID49IHNzZXUtPm1heF9zbGljZXMpOwo+ ICsKPiArCS8qIFR3byBBU0NJSSBjaGFyYWN0ZXIgaGV4IHBsdXMgbnVsbCB0ZXJtaW5hdG9yICov Cj4gKwlHRU1fQlVHX09OKHNpemUgPCBzc2V1LT5zc19zdHJpZGUgKiAyICsgMSk7Cj4gKwo+ICsJ bWVtc2V0KGJ1ZiwgMCwgc2l6ZSk7Cj4gKwo+ICsJLyoKPiArCSAqIFByaW50IHN1YnNsaWNlIGlu Zm9ybWF0aW9uIGluIHJldmVyc2Ugb3JkZXIgdG8gbWF0Y2gKPiArCSAqIHVzZXJzcGFjZSBleHBl Y3RhdGlvbnMuCj4gKwkgKi8KPiArCWZvciAoaSA9IDA7IGkgPCBzc2V1LT5zc19zdHJpZGU7IGkr KykKPiArCQlzcHJpbnRmKCZidWZbaSAqIDJdLCAiJTAyeCIsCj4gKwkJCXNzZXUtPnN1YnNsaWNl X21hc2tbc3Nfb2Zmc2V0ICsgc3NldS0+c3Nfc3RyaWRlIC0KPiArCQkJCQkgICAgKGkgKyAxKV0p Owo+ICsKPiArCXJldHVybiBidWY7Cj4gK30KPiArCj4gICBzdGF0aWMgdm9pZCBzc2V1X2R1bXAo Y29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsIHN0cnVjdCBkcm1fcHJpbnRlciAqcCkK PiAgIHsKPiAgIAlpbnQgczsKPiArCWNoYXIgYnVmW1NTX1NUUl9NQVhfU0laRV07Cj4gICAKPiAg IAlkcm1fcHJpbnRmKHAsICJzbGljZSB0b3RhbDogJXUsIG1hc2s9JTA0eFxuIiwKPiAgIAkJICAg aHdlaWdodDgoc3NldS0+c2xpY2VfbWFzayksIHNzZXUtPnNsaWNlX21hc2spOwo+ICAgCWRybV9w cmludGYocCwgInN1YnNsaWNlIHRvdGFsOiAldVxuIiwgaW50ZWxfc3NldV9zdWJzbGljZV90b3Rh bChzc2V1KSk7Cj4gICAJZm9yIChzID0gMDsgcyA8IHNzZXUtPm1heF9zbGljZXM7IHMrKykgewo+ IC0JCWRybV9wcmludGYocCwgInNsaWNlJWQ6ICV1IHN1YnNsaWNlcywgbWFzaz0lMDR4XG4iLAo+ ICsJCWRybV9wcmludGYocCwgInNsaWNlJWQ6ICV1IHN1YnNsaWNlcywgbWFzaz0lc1xuIiwKPiAg IAkJCSAgIHMsIGludGVsX3NzZXVfc3Vic2xpY2VzX3Blcl9zbGljZShzc2V1LCBzKSwKPiAtCQkJ ICAgc3NldS0+c3Vic2xpY2VfbWFza1tzXSk7Cj4gKwkJCSAgIHN1YnNsaWNlX3Blcl9zbGljZV9z dHIoYnVmLCBBUlJBWV9TSVpFKGJ1ZiksIHNzZXUsIHMpKTsKCk5vdyB0aGF0IHdlIGhhdmUgaW50 ZWxfc3NldV9nZXRfc3Vic2xpY2VzKCkgY2FuJ3Qgd2UganVzdCBwcmludCB0aGUgCnJldHVybiBm cm9tIHRoYXQgaW5zdGVhZCBvZiB1c2luZyB0aGUgYnVmZmVyPwoKCj4gICAJfQo+ICAgCWRybV9w cmludGYocCwgIkVVIHRvdGFsOiAldVxuIiwgc3NldS0+ZXVfdG90YWwpOwo+ICAgCWRybV9wcmlu dGYocCwgIkVVIHBlciBzdWJzbGljZTogJXVcbiIsIHNzZXUtPmV1X3Blcl9zdWJzbGljZSk7Cgo8 c25pcD4KCj4gQEAgLTU1NSw2ICs1NzAsNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NzZXVfaW5m b19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlzdHJ1Y3Qgc3Nl dV9kZXZfaW5mbyAqc3NldSA9ICZSVU5USU1FX0lORk8oZGV2X3ByaXYpLT5zc2V1Owo+ICAgCXUz MiBmdXNlMTsKPiAgIAlpbnQgcywgc3M7Cj4gKwl1MzIgc3Vic2xpY2VfbWFzazsKPiAgIAo+ICAg CS8qCj4gICAJICogVGhlcmUgaXNuJ3QgYSByZWdpc3RlciB0byB0ZWxsIHVzIGhvdyBtYW55IHNs aWNlcy9zdWJzbGljZXMuIFdlCj4gQEAgLTU2NiwyMiArNTgyLDE4IEBAIHN0YXRpYyB2b2lkIGhh c3dlbGxfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ICAgCQkvKiBmYWxsIHRocm91Z2ggKi8KPiAgIAljYXNlIDE6Cj4gICAJCXNzZXUtPnNsaWNlX21h c2sgPSBCSVQoMCk7Cj4gLQkJc3NldS0+c3Vic2xpY2VfbWFza1swXSA9IEJJVCgwKTsKPiArCQlz dWJzbGljZV9tYXNrID0gQklUKDApOwo+ICAgCQlicmVhazsKPiAgIAljYXNlIDI6Cj4gICAJCXNz ZXUtPnNsaWNlX21hc2sgPSBCSVQoMCk7Cj4gLQkJc3NldS0+c3Vic2xpY2VfbWFza1swXSA9IEJJ VCgwKSB8IEJJVCgxKTsKPiArCQlzdWJzbGljZV9tYXNrID0gQklUKDApIHwgQklUKDEpOwo+ICAg CQlicmVhazsKPiAgIAljYXNlIDM6Cj4gICAJCXNzZXUtPnNsaWNlX21hc2sgPSBCSVQoMCkgfCBC SVQoMSk7Cj4gLQkJc3NldS0+c3Vic2xpY2VfbWFza1swXSA9IEJJVCgwKSB8IEJJVCgxKTsKPiAt CQlzc2V1LT5zdWJzbGljZV9tYXNrWzFdID0gQklUKDApIHwgQklUKDEpOwo+ICsJCXN1YnNsaWNl X21hc2sgPSBCSVQoMCkgfCBCSVQoMSk7Cj4gICAJCWJyZWFrOwo+ICAgCX0KPiAgIAo+IC0Jc3Nl dS0+bWF4X3NsaWNlcyA9IGh3ZWlnaHQ4KHNzZXUtPnNsaWNlX21hc2spOwo+IC0Jc3NldS0+bWF4 X3N1YnNsaWNlcyA9IGh3ZWlnaHQ4KHNzZXUtPnN1YnNsaWNlX21hc2tbMF0pOwo+IC0KPiAgIAlm dXNlMSA9IEk5MTVfUkVBRChIU1dfUEFWUF9GVVNFMSk7Cj4gICAJc3dpdGNoICgoZnVzZTEgJiBI U1dfRjFfRVVfRElTX01BU0spID4+IEhTV19GMV9FVV9ESVNfU0hJRlQpIHsKPiAgIAlkZWZhdWx0 Ogo+IEBAIC01OTgsOSArNjEwLDE0IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc3NldV9pbmZvX2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCQlzc2V1LT5ldV9wZXJf c3Vic2xpY2UgPSA2Owo+ICAgCQlicmVhazsKPiAgIAl9Cj4gLQlzc2V1LT5tYXhfZXVzX3Blcl9z dWJzbGljZSA9IHNzZXUtPmV1X3Blcl9zdWJzbGljZTsKPiArCj4gKwlpbnRlbF9zc2V1X3NldF9p bmZvKHNzZXUsIGh3ZWlnaHQ4KHNzZXUtPnNsaWNlX21hc2spLAo+ICsJCQkgICAgaHdlaWdodDgo c3Vic2xpY2VfbWFzayksCj4gKwkJCSAgICBzc2V1LT5ldV9wZXJfc3Vic2xpY2UpOwoKSSdkIHN0 aWxsIHByZWZlciB0aGlzIHRvIHVzZSBhIGxvY2FsIHZhcmlhYmxlIHNvIHRoYXQgd2UgYWx3YXlz IG9ubHkgc2V0IApzc2V1LT5ldV9wZXJfc3Vic2xpY2UgZnJvbSB3aXRoaW4gaW50ZWxfc3NldV9z ZXRfaW5mby4KCkRhbmllbGUKCj4gICAKPiAgIAlmb3IgKHMgPSAwOyBzIDwgc3NldS0+bWF4X3Ns aWNlczsgcysrKSB7Cj4gKwkJaW50ZWxfc3NldV9zZXRfc3Vic2xpY2VzKHNzZXUsIHMsIHN1YnNs aWNlX21hc2spOwo+ICsKPiAgIAkJZm9yIChzcyA9IDA7IHNzIDwgc3NldS0+bWF4X3N1YnNsaWNl czsgc3MrKykgewo+ICAgCQkJaW50ZWxfc3NldV9zZXRfZXVzKHNzZXUsIHMsIHNzLAo+ICAgCQkJ CQkgICAoMVVMIDw8IHNzZXUtPmV1X3Blcl9zdWJzbGljZSkgLSAxKTsKPiAKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4