From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH 5/7] drm/i915: sseu: convert subslice count fields to subslice mask Date: Thu, 19 Nov 2015 16:07:04 -0800 Message-ID: <20151120000704.GD13508@intel.com> References: <1445442037-1186-1-git-send-email-imre.deak@intel.com> <1445442037-1186-6-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 4CC796E561 for ; Thu, 19 Nov 2015 16:07:25 -0800 (PST) Content-Disposition: inline In-Reply-To: <1445442037-1186-6-git-send-email-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMjEsIDIwMTUgYXQgMDY6NDA6MzVQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IEluIGFuIHVwY29taW5nIHBhdGNoIHdlJ2xsIG5lZWQgdGhlIGFjdHVhbCBtYXNrIG9mIHN1 YnNsaWNlcyBpbiBhZGRpdGlvbgo+IHRvIHRoZWlyIGNvdW50LCBzbyBjb252ZXJ0IHRoZSBzdWJz bGljZV9wZXJfc2xpY2UgZmllbGQgdG8gYSBtYXNrLgo+IEFsc28gd2UgY2FuIGVhc2lseSBjYWxj dWxhdGUgc3Vic2xpY2VfdG90YWwgZnJvbSB0aGUgb3RoZXIgZmllbGRzLCBzbwo+IGluc3RlYWQg b2Ygc3RvcmluZyBhIGNhY2hlZCB2ZXJzaW9uIG9mIHRoaXMsIGFkZCBhIGhlbHBlciB0byBjYWxj dWxhdGUKPiBpdC4KCk9oIGdvb2QsIEkgdGhpbmsgSSBhc2tlZCBmb3IgdGhpcyBpbiBwYXRjaCAx Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgfCAzNyArKysrKysrKy0t LS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyAgICAgfCA2NCAr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgIHwgIDggKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgICAgfCAgMiArLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyks IDYwIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5k ZXggMzkwZGM1OS4uM2ZiODNlYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j Cj4gQEAgLTQ5NjYsNyArNDk2Niw3IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9kZXZp Y2Vfc3RhdHVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAg CQlzdGF0LT5zbGljZV9tYXNrID0gQklUKDApOwo+IC0JCXN0YXQtPnN1YnNsaWNlX3Blcl9zbGlj ZSsrOwo+ICsJCXN0YXQtPnN1YnNsaWNlX21hc2sgfD0gQklUKHNzKTsKPiAgCQlldV9jbnQgPSAo KHNpZzFbc3NdICYgQ0hWX0VVMDhfUEdfRU5BQkxFKSA/IDAgOiAyKSArCj4gIAkJCSAoKHNpZzFb c3NdICYgQ0hWX0VVMTlfUEdfRU5BQkxFKSA/IDAgOiAyKSArCj4gIAkJCSAoKHNpZzFbc3NdICYg Q0hWX0VVMjEwX1BHX0VOQUJMRSkgPyAwIDogMikgKwo+IEBAIC00OTc1LDcgKzQ5NzUsNiBAQCBz dGF0aWMgdm9pZCBjaGVycnl2aWV3X3NzZXVfZGV2aWNlX3N0YXR1cyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ICAJCXN0YXQtPmV1X3Blcl9zdWJzbGljZSA9IG1heF90KHVuc2lnbmVkIGludCwK PiAgCQkJCQkgICAgICBzdGF0LT5ldV9wZXJfc3Vic2xpY2UsIGV1X2NudCk7Cj4gIAl9Cj4gLQlz dGF0LT5zdWJzbGljZV90b3RhbCA9IHN0YXQtPnN1YnNsaWNlX3Blcl9zbGljZTsKPiAgfQo+ICAK PiAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1X2RldmljZV9zdGF0dXMoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiBAQCAtNTAwOCw4ICs1MDA3LDYgQEAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1X2Rldmlj ZV9zdGF0dXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkgICAgIEdFTjlfUEdDVExfU1NC X0VVMzExX0FDSzsKPiAgCj4gIAlmb3IgKHMgPSAwOyBzIDwgc19tYXg7IHMrKykgewo+IC0JCXVu c2lnbmVkIGludCBzc19jbnQgPSAwOwo+IC0KPiAgCQlpZiAoKHNfcmVnW3NdICYgR0VOOV9QR0NU TF9TTElDRV9BQ0spID09IDApCj4gIAkJCS8qIHNraXAgZGlzYWJsZWQgc2xpY2UgKi8KPiAgCQkJ Y29udGludWU7Cj4gQEAgLTUwMTcsMTggKzUwMTQsMTkgQEAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1 X2RldmljZV9zdGF0dXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQlzdGF0LT5zbGljZV9t YXNrIHw9IEJJVChzKTsKPiAgCj4gIAkJaWYgKElTX1NLWUxBS0UoZGV2KSkKPiAtCQkJc3NfY250 ID0gSU5URUxfSU5GTyhkZXYpLT5zc2V1LnN1YnNsaWNlX3Blcl9zbGljZTsKPiArCQkJc3RhdC0+ c3Vic2xpY2VfbWFzayA9Cj4gKwkJCQlJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5zdWJzbGlj ZV9tYXNrOwo+ICAKPiAgCQlmb3IgKHNzID0gMDsgc3MgPCBzc19tYXg7IHNzKyspIHsKPiAgCQkJ dW5zaWduZWQgaW50IGV1X2NudDsKPiAgCj4gLQkJCWlmIChJU19CUk9YVE9OKGRldikgJiYKPiAt CQkJICAgICEoc19yZWdbc10gJiAoR0VOOV9QR0NUTF9TU19BQ0soc3MpKSkpCj4gLQkJCQkvKiBz a2lwIGRpc2FibGVkIHN1YnNsaWNlICovCj4gLQkJCQljb250aW51ZTsKPiArCQkJaWYgKElTX0JS T1hUT04oZGV2KSkgewo+ICsJCQkJaWYgKCEoc19yZWdbc10gJiAoR0VOOV9QR0NUTF9TU19BQ0so c3MpKSkpCj4gKwkJCQkJLyogc2tpcCBkaXNhYmxlZCBzdWJzbGljZSAqLwo+ICsJCQkJCWNvbnRp bnVlOwo+ICAKPiAtCQkJaWYgKElTX0JST1hUT04oZGV2KSkKPiAtCQkJCXNzX2NudCsrOwo+ICsJ CQkJc3RhdC0+c3Vic2xpY2VfbWFzayB8PSBCSVQoc3MpOwo+ICsJCQl9Cj4gIAo+ICAJCQlldV9j bnQgPSAyICogaHdlaWdodDMyKGV1X3JlZ1syKnMgKyBzcy8yXSAmCj4gIAkJCQkJICAgICAgIGV1 X21hc2tbc3MlMl0pOwo+IEBAIC01MDM3LDExICs1MDM1LDYgQEAgc3RhdGljIHZvaWQgZ2VuOV9z c2V1X2RldmljZV9zdGF0dXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCQkJICAgICAg c3RhdC0+ZXVfcGVyX3N1YnNsaWNlLAo+ICAJCQkJCQkgICAgICBldV9jbnQpOwo+ICAJCX0KPiAt Cj4gLQkJc3RhdC0+c3Vic2xpY2VfdG90YWwgKz0gc3NfY250Owo+IC0JCXN0YXQtPnN1YnNsaWNl X3Blcl9zbGljZSA9IG1heF90KHVuc2lnbmVkIGludCwKPiAtCQkJCQkJIHN0YXQtPnN1YnNsaWNl X3Blcl9zbGljZSwKPiAtCQkJCQkJIHNzX2NudCk7Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTUwNTUs MTIgKzUwNDgsMTAgQEAgc3RhdGljIHZvaWQgYnJvYWR3ZWxsX3NzZXVfZGV2aWNlX3N0YXR1cyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJc3RhdC0+c2xpY2VfbWFzayA9IHNsaWNlX2luZm8g JiBHRU44X0xTTElDRVNUQVRfTUFTSzsKPiAgCj4gIAlpZiAoc3RhdC0+c2xpY2VfbWFzaykgewo+ IC0JCXN0YXQtPnN1YnNsaWNlX3Blcl9zbGljZSA9Cj4gLQkJCQlJTlRFTF9JTkZPKGRldiktPnNz ZXUuc3Vic2xpY2VfcGVyX3NsaWNlOwo+IC0JCXN0YXQtPnN1YnNsaWNlX3RvdGFsID0gaHdlaWdo dDMyKHN0YXQtPnNsaWNlX21hc2spICoKPiAtCQkJCSAgICAgICBzdGF0LT5zdWJzbGljZV9wZXJf c2xpY2U7Cj4gKwkJc3RhdC0+c3Vic2xpY2VfbWFzayA9IElOVEVMX0lORk8oZGV2KS0+c3NldS5z dWJzbGljZV9tYXNrOwo+ICAJCXN0YXQtPmV1X3Blcl9zdWJzbGljZSA9IElOVEVMX0lORk8oZGV2 KS0+c3NldS5ldV9wZXJfc3Vic2xpY2U7Cj4gLQkJc3RhdC0+ZXVfdG90YWwgPSBzdGF0LT5ldV9w ZXJfc3Vic2xpY2UgKiBzdGF0LT5zdWJzbGljZV90b3RhbDsKPiArCQlzdGF0LT5ldV90b3RhbCA9 IHN0YXQtPmV1X3Blcl9zdWJzbGljZSAqCj4gKwkJCQkgc3NldV9zdWJzbGljZV90b3RhbChzdGF0 KTsKPiAgCj4gIAkJLyogc3VidHJhY3QgZnVzZWQgb2ZmIEVVKHMpIGZyb20gZW5hYmxlZCBzbGlj ZShzKSAqLwo+ICAJCWZvciAocyA9IDA7IHMgPCBod2VpZ2h0MzIoc3RhdC0+c2xpY2VfbWFzayk7 IHMrKykgewo+IEBAIC01MDc5LDkgKzUwNzAsOSBAQCBzdGF0aWMgdm9pZCBpOTE1X3ByaW50X3Nz ZXVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGJvb2wgaXNfYXZhaWxhYmxlX2luZm8sCj4gIAlz ZXFfcHJpbnRmKG0sICIgICVzIFNsaWNlIFRvdGFsOiAldVxuIiwgdHlwZSwKPiAgCQkgICBod2Vp Z2h0MzIoc3NldS0+c2xpY2VfbWFzaykpOwo+ICAJc2VxX3ByaW50ZihtLCAiICAlcyBTdWJzbGlj ZSBUb3RhbDogJXVcbiIsIHR5cGUsCj4gLQkJICAgc3NldS0+c3Vic2xpY2VfdG90YWwpOwo+ICsJ CSAgIHNzZXVfc3Vic2xpY2VfdG90YWwoc3NldSkpOwo+ICAJc2VxX3ByaW50ZihtLCAiICAlcyBT dWJzbGljZSBQZXIgU2xpY2U6ICV1XG4iLCB0eXBlLAo+IC0JCSAgIHNzZXUtPnN1YnNsaWNlX3Bl cl9zbGljZSk7Cj4gKwkJICAgaHdlaWdodDMyKHNzZXUtPnN1YnNsaWNlX21hc2spKTsKPiAgCXNl cV9wcmludGYobSwgIiAgJXMgRVUgVG90YWw6ICV1XG4iLCB0eXBlLAo+ICAJCSAgIHNzZXUtPmV1 X3RvdGFsKTsKPiAgCXNlcV9wcmludGYobSwgIiAgJXMgRVUgUGVyIFN1YnNsaWNlOiAldVxuIiwg dHlwZSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPiBpbmRleCAxZjVmM2E3ZC4uNjlhODFhZTkg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPiBAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRp YyBpbnQgaTkxNV9nZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ ICAJCXZhbHVlID0gMTsKPiAgCQlicmVhazsKPiAgCWNhc2UgSTkxNV9QQVJBTV9TVUJTTElDRV9U T1RBTDoKPiAtCQl2YWx1ZSA9IElOVEVMX0lORk8oZGV2KS0+c3NldS5zdWJzbGljZV90b3RhbDsK PiArCQl2YWx1ZSA9IHNzZXVfc3Vic2xpY2VfdG90YWwoJklOVEVMX0lORk8oZGV2KS0+c3NldSk7 Cj4gIAkJaWYgKCF2YWx1ZSkKPiAgCQkJcmV0dXJuIC1FTk9ERVY7Cj4gIAkJYnJlYWs7Cj4gQEAg LTU2MiwyNiArNTYyLDI1IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9pbmZvX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWluZm8tPnNsaWNlX21hc2sgPSBCSVQoMCk7Cj4g IAo+ICAJaWYgKCEoZnVzZSAmIENIVl9GR1RfRElTQUJMRV9TUzApKSB7Cj4gLQkJaW5mby0+c3Vi c2xpY2VfcGVyX3NsaWNlKys7Cj4gKwkJaW5mby0+c3Vic2xpY2VfbWFzayB8PSBCSVQoMCk7Cj4g IAkJZXVfZGlzID0gZnVzZSAmIChDSFZfRkdUX0VVX0RJU19TUzBfUjBfTUFTSyB8Cj4gIAkJCQkg Q0hWX0ZHVF9FVV9ESVNfU1MwX1IxX01BU0spOwo+ICAJCWluZm8tPmV1X3RvdGFsICs9IDggLSBo d2VpZ2h0MzIoZXVfZGlzKTsKPiAgCX0KPiAgCj4gIAlpZiAoIShmdXNlICYgQ0hWX0ZHVF9ESVNB QkxFX1NTMSkpIHsKPiAtCQlpbmZvLT5zdWJzbGljZV9wZXJfc2xpY2UrKzsKPiArCQlpbmZvLT5z dWJzbGljZV9tYXNrIHw9IEJJVCgxKTsKPiAgCQlldV9kaXMgPSBmdXNlICYgKENIVl9GR1RfRVVf RElTX1NTMV9SMF9NQVNLIHwKPiAgCQkJCSBDSFZfRkdUX0VVX0RJU19TUzFfUjFfTUFTSyk7Cj4g IAkJaW5mby0+ZXVfdG90YWwgKz0gOCAtIGh3ZWlnaHQzMihldV9kaXMpOwo+ICAJfQo+ICAKPiAt CWluZm8tPnN1YnNsaWNlX3RvdGFsID0gaW5mby0+c3Vic2xpY2VfcGVyX3NsaWNlOwo+ICAJLyoK PiAgCSAqIENIViBleHBlY3RlZCB0byBhbHdheXMgaGF2ZSBhIHVuaWZvcm0gZGlzdHJpYnV0aW9u IG9mIEVVCj4gIAkgKiBhY3Jvc3Mgc3Vic2xpY2VzLgo+ICAJKi8KPiAtCWluZm8tPmV1X3Blcl9z dWJzbGljZSA9IGluZm8tPnN1YnNsaWNlX3RvdGFsID8KPiAtCQkJCWluZm8tPmV1X3RvdGFsIC8g aW5mby0+c3Vic2xpY2VfdG90YWwgOgo+ICsJaW5mby0+ZXVfcGVyX3N1YnNsaWNlID0gc3NldV9z dWJzbGljZV90b3RhbChpbmZvKSA/Cj4gKwkJCQlpbmZvLT5ldV90b3RhbCAvIHNzZXVfc3Vic2xp Y2VfdG90YWwoaW5mbykgOgo+ICAJCQkJMDsKPiAgCS8qCj4gIAkgKiBDSFYgc3VwcG9ydHMgc3Vi c2xpY2UgcG93ZXIgZ2F0aW5nIG9uIGRldmljZXMgd2l0aCBtb3JlIHRoYW4KPiBAQCAtNTg5LDcg KzU4OCw3IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9pbmZvX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgCSAqIG1vcmUgdGhhbiBvbmUgRVUgcGFpciBwZXIgc3Vic2xpY2Uu Cj4gIAkqLwo+ICAJaW5mby0+aGFzX3NsaWNlX3BnID0gMDsKPiAtCWluZm8tPmhhc19zdWJzbGlj ZV9wZyA9IChpbmZvLT5zdWJzbGljZV90b3RhbCA+IDEpOwo+ICsJaW5mby0+aGFzX3N1YnNsaWNl X3BnID0gc3NldV9zdWJzbGljZV90b3RhbChpbmZvKSA+IDE7Cj4gIAlpbmZvLT5oYXNfZXVfcGcg PSAoaW5mby0+ZXVfcGVyX3N1YnNsaWNlID4gMik7Cj4gIH0KPiAgCj4gQEAgLTU5OSwyMiArNTk4 LDE5IEBAIHN0YXRpYyB2b2lkIGdlbjlfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgCXN0cnVjdCBzc2V1X2Rldl9pbmZvICppbmZvOwo+ICAJaW50IHNfbWF4ID0gMywg c3NfbWF4ID0gNCwgZXVfbWF4ID0gODsKPiAgCWludCBzLCBzczsKPiAtCXUzMiBmdXNlMiwgc3Nf ZGlzYWJsZSwgZXVfZGlzYWJsZTsKPiArCXUzMiBmdXNlMiwgZXVfZGlzYWJsZTsKPiAgCXU4IGV1 X21hc2sgPSAweGZmOwo+ICAKPiAgCWluZm8gPSAoc3RydWN0IHNzZXVfZGV2X2luZm8gKikmSU5U RUxfSU5GTyhkZXZfcHJpdiktPnNzZXU7Cj4gIAlmdXNlMiA9IEk5MTVfUkVBRChHRU44X0ZVU0Uy KTsKPiAgCWluZm8tPnNsaWNlX21hc2sgPSAoZnVzZTIgJiBHRU44X0YyX1NfRU5BX01BU0spID4+ IEdFTjhfRjJfU19FTkFfU0hJRlQ7Cj4gLQlzc19kaXNhYmxlID0gKGZ1c2UyICYgR0VOOV9GMl9T U19ESVNfTUFTSykgPj4KPiAtCQkgICAgIEdFTjlfRjJfU1NfRElTX1NISUZUOwo+IC0KPiAgCS8q Cj4gIAkgKiBUaGUgc3Vic2xpY2UgZGlzYWJsZSBmaWVsZCBpcyBnbG9iYWwsIGkuZS4gaXQgYXBw bGllcwo+ICAJICogdG8gZWFjaCBvZiB0aGUgZW5hYmxlZCBzbGljZXMuCj4gIAkqLwo+IC0JaW5m by0+c3Vic2xpY2VfcGVyX3NsaWNlID0gc3NfbWF4IC0gaHdlaWdodDMyKHNzX2Rpc2FibGUpOwo+ IC0JaW5mby0+c3Vic2xpY2VfdG90YWwgPSBod2VpZ2h0MzIoaW5mby0+c2xpY2VfbWFzaykgKgo+ IC0JCQkgICAgICAgaW5mby0+c3Vic2xpY2VfcGVyX3NsaWNlOwo+ICsJaW5mby0+c3Vic2xpY2Vf bWFzayA9ICgxIDw8IHNzX21heCkgLSAxOwo+ICsJaW5mby0+c3Vic2xpY2VfbWFzayAmPSB+KChm dXNlMiAmIEdFTjlfRjJfU1NfRElTX01BU0spID4+Cj4gKwkJCQlHRU45X0YyX1NTX0RJU19TSElG VCk7Cj4gIAo+ICAJLyoKPiAgCSAqIEl0ZXJhdGUgdGhyb3VnaCBlbmFibGVkIHNsaWNlcyBhbmQg c3Vic2xpY2VzIHRvCj4gQEAgLTYyOSw3ICs2MjUsNyBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVf aW5mb19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJZm9yIChzcyA9IDA7IHNzIDwg c3NfbWF4OyBzcysrKSB7Cj4gIAkJCWludCBldV9wZXJfc3M7Cj4gIAo+IC0JCQlpZiAoc3NfZGlz YWJsZSAmICgweDEgPDwgc3MpKQo+ICsJCQlpZiAoIShpbmZvLT5zdWJzbGljZV9tYXNrICYgQklU KHNzKSkpCj4gIAkJCQkvKiBza2lwIGRpc2FibGVkIHN1YnNsaWNlICovCj4gIAkJCQljb250aW51 ZTsKPiAgCj4gQEAgLTY1NSw5ICs2NTEsOSBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfaW5mb19p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkgKiByZWNvdmVyeS4gQlhUIGlzIGV4cGVj dGVkIHRvIGJlIHBlcmZlY3RseSB1bmlmb3JtIGluIEVVCj4gIAkgKiBkaXN0cmlidXRpb24uCj4g IAkqLwo+IC0JaW5mby0+ZXVfcGVyX3N1YnNsaWNlID0gaW5mby0+c3Vic2xpY2VfdG90YWwgPwo+ ICsJaW5mby0+ZXVfcGVyX3N1YnNsaWNlID0gc3NldV9zdWJzbGljZV90b3RhbChpbmZvKSA/Cj4g IAkJCQlESVZfUk9VTkRfVVAoaW5mby0+ZXVfdG90YWwsCj4gLQkJCQkJICAgICBpbmZvLT5zdWJz bGljZV90b3RhbCkgOiAwOwo+ICsJCQkJCSAgICAgc3NldV9zdWJzbGljZV90b3RhbChpbmZvKSkg OiAwOwo+ICAJLyoKPiAgCSAqIFNLTCBzdXBwb3J0cyBzbGljZSBwb3dlciBnYXRpbmcgb24gZGV2 aWNlcyB3aXRoIG1vcmUgdGhhbgo+ICAJICogb25lIHNsaWNlLCBhbmQgc3VwcG9ydHMgRVUgcG93 ZXIgZ2F0aW5nIG9uIGRldmljZXMgd2l0aAo+IEBAIC02NjgsNyArNjY0LDggQEAgc3RhdGljIHZv aWQgZ2VuOV9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJKi8KPiAg CWluZm8tPmhhc19zbGljZV9wZyA9IElTX1NLWUxBS0UoZGV2KSAmJgo+ICAJCQkgICAgIGh3ZWln aHQzMihpbmZvLT5zbGljZV9tYXNrKSA+IDE7Cj4gLQlpbmZvLT5oYXNfc3Vic2xpY2VfcGcgPSAo SVNfQlJPWFRPTihkZXYpICYmIChpbmZvLT5zdWJzbGljZV90b3RhbCA+IDEpKTsKPiArCWluZm8t Pmhhc19zdWJzbGljZV9wZyA9IElTX0JST1hUT04oZGV2KSAmJgo+ICsJCQkJc3NldV9zdWJzbGlj ZV90b3RhbChpbmZvKSA+IDE7Cj4gIAlpbmZvLT5oYXNfZXVfcGcgPSAoaW5mby0+ZXVfcGVyX3N1 YnNsaWNlID4gMik7Cj4gIH0KPiAgCj4gQEAgLTY3OCw3ICs2NzUsNyBAQCBzdGF0aWMgdm9pZCBi cm9hZHdlbGxfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCXN0cnVj dCBzc2V1X2Rldl9pbmZvICppbmZvOwo+ICAJY29uc3QgaW50IHNfbWF4ID0gMywgc3NfbWF4ID0g MywgZXVfbWF4ID0gODsKPiAgCWludCBzLCBzczsKPiAtCXUzMiBmdXNlMiwgZXVfZGlzYWJsZVtz X21heF0sIHNzX2Rpc2FibGU7Cj4gKwl1MzIgZnVzZTIsIGV1X2Rpc2FibGVbc19tYXhdOwo+ICAK PiAgCWluZm8gPSAoc3RydWN0IHNzZXVfZGV2X2luZm8gKikmZGV2X3ByaXYtPmluZm8uc3NldTsK PiAgCj4gQEAgLTY4Niw3ICs2ODMsMTMgQEAgc3RhdGljIHZvaWQgYnJvYWR3ZWxsX3NzZXVfaW5m b19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAo+ICAJaW5mby0+c2xpY2VfbWFzayA9 IChmdXNlMiAmIEdFTjhfRjJfU19FTkFfTUFTSykgPj4KPiAgCQkJCUdFTjhfRjJfU19FTkFfU0hJ RlQ7Cj4gLQlzc19kaXNhYmxlID0gKGZ1c2UyICYgR0VOOF9GMl9TU19ESVNfTUFTSykgPj4gR0VO OF9GMl9TU19ESVNfU0hJRlQ7Cj4gKwkvKgo+ICsJICogVGhlIHN1YnNsaWNlIGRpc2FibGUgZmll bGQgaXMgZ2xvYmFsLCBpLmUuIGl0IGFwcGxpZXMKPiArCSAqIHRvIGVhY2ggb2YgdGhlIGVuYWJs ZWQgc2xpY2VzLgo+ICsJICovCj4gKwlpbmZvLT5zdWJzbGljZV9tYXNrID0gKDEgPDwgc3NfbWF4 KSAtIDE7Cj4gKwlpbmZvLT5zdWJzbGljZV9tYXNrICY9IH4oKGZ1c2UyICYgR0VOOF9GMl9TU19E SVNfTUFTSykgPj4KPiArCQkJCSBHRU44X0YyX1NTX0RJU19TSElGVCk7Cj4gIAo+ICAJZXVfZGlz YWJsZVswXSA9IEk5MTVfUkVBRChHRU44X0VVX0RJU0FCTEUwKSAmIEdFTjhfRVVfRElTMF9TMF9N QVNLOwo+ICAJZXVfZGlzYWJsZVsxXSA9IChJOTE1X1JFQUQoR0VOOF9FVV9ESVNBQkxFMCkgPj4g R0VOOF9FVV9ESVMwX1MxX1NISUZUKSB8Cj4gQEAgLTY5NiwxNSArNjk5LDYgQEAgc3RhdGljIHZv aWQgYnJvYWR3ZWxsX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJ CSgoSTkxNV9SRUFEKEdFTjhfRVVfRElTQUJMRTIpICYgR0VOOF9FVV9ESVMyX1MyX01BU0spIDw8 Cj4gIAkJCSAoMzIgLSBHRU44X0VVX0RJUzFfUzJfU0hJRlQpKTsKPiAgCj4gLQo+IC0JLyoKPiAt CSAqIFRoZSBzdWJzbGljZSBkaXNhYmxlIGZpZWxkIGlzIGdsb2JhbCwgaS5lLiBpdCBhcHBsaWVz Cj4gLQkgKiB0byBlYWNoIG9mIHRoZSBlbmFibGVkIHNsaWNlcy4KPiAtCSAqLwo+IC0JaW5mby0+ c3Vic2xpY2VfcGVyX3NsaWNlID0gc3NfbWF4IC0gaHdlaWdodDMyKHNzX2Rpc2FibGUpOwo+IC0J aW5mby0+c3Vic2xpY2VfdG90YWwgPSBod2VpZ2h0MzIoaW5mby0+c2xpY2VfbWFzaykgKgo+IC0J CQkgICAgICAgaW5mby0+c3Vic2xpY2VfcGVyX3NsaWNlOwo+IC0KPiAgCS8qCj4gIAkgKiBJdGVy YXRlIHRocm91Z2ggZW5hYmxlZCBzbGljZXMgYW5kIHN1YnNsaWNlcyB0bwo+ICAJICogY291bnQg dGhlIHRvdGFsIGVuYWJsZWQgRVUuCj4gQEAgLTcxNyw3ICs3MTEsNyBAQCBzdGF0aWMgdm9pZCBi cm9hZHdlbGxfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlmb3Ig KHNzID0gMDsgc3MgPCBzc19tYXg7IHNzKyspIHsKPiAgCQkJdTMyIG5fZGlzYWJsZWQ7Cj4gIAo+ IC0JCQlpZiAoc3NfZGlzYWJsZSAmICgweDEgPDwgc3MpKQo+ICsJCQlpZiAoIShpbmZvLT5zdWJz bGljZV9tYXNrICYgQklUKHNzKSkpCj4gIAkJCQkvKiBza2lwIGRpc2FibGVkIHN1YnNsaWNlICov Cj4gIAkJCQljb250aW51ZTsKPiAgCj4gQEAgLTczOCw4ICs3MzIsOSBAQCBzdGF0aWMgdm9pZCBi cm9hZHdlbGxfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCSAqIHN1 YnNsaWNlcyB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCBhbnkgb25lIEVVIGluIGFueSBvbmUgc3Vi c2xpY2UgbWF5Cj4gIAkgKiBiZSBmdXNlZCBvZmYgZm9yIGRpZSByZWNvdmVyeS4KPiAgCSAqLwo+ IC0JaW5mby0+ZXVfcGVyX3N1YnNsaWNlID0gaW5mby0+c3Vic2xpY2VfdG90YWwgPwo+IC0JCURJ Vl9ST1VORF9VUChpbmZvLT5ldV90b3RhbCwgaW5mby0+c3Vic2xpY2VfdG90YWwpIDogMDsKPiAr CWluZm8tPmV1X3Blcl9zdWJzbGljZSA9IHNzZXVfc3Vic2xpY2VfdG90YWwoaW5mbykgPwo+ICsJ CQkJRElWX1JPVU5EX1VQKGluZm8tPmV1X3RvdGFsLAo+ICsJCQkJCSAgICAgc3NldV9zdWJzbGlj ZV90b3RhbChpbmZvKSkgOiAwOwo+ICAKPiAgCS8qCj4gIAkgKiBCRFcgc3VwcG9ydHMgc2xpY2Ug cG93ZXIgZ2F0aW5nIG9uIGRldmljZXMgd2l0aCBtb3JlIHRoYW4KPiBAQCAtODI3LDkgKzgyMiwx MCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgCj4gIAlEUk1fREVCVUdfRFJJVkVSKCJzbGljZSB0b3RhbDogJXVc biIsCj4gIAkJCSBod2VpZ2h0MzIoaW5mby0+c3NldS5zbGljZV9tYXNrKSk7Cj4gLQlEUk1fREVC VUdfRFJJVkVSKCJzdWJzbGljZSB0b3RhbDogJXVcbiIsIGluZm8tPnNzZXUuc3Vic2xpY2VfdG90 YWwpOwo+ICsJRFJNX0RFQlVHX0RSSVZFUigic3Vic2xpY2UgdG90YWw6ICV1XG4iLAo+ICsJCQkg c3NldV9zdWJzbGljZV90b3RhbCgmaW5mby0+c3NldSkpOwo+ICAJRFJNX0RFQlVHX0RSSVZFUigi c3Vic2xpY2UgcGVyIHNsaWNlOiAldVxuIiwKPiAtCQkJCQkJaW5mby0+c3NldS5zdWJzbGljZV9w ZXJfc2xpY2UpOwo+ICsJCQkgaHdlaWdodDMyKGluZm8tPnNzZXUuc3Vic2xpY2VfbWFzaykpOwo+ ICAJRFJNX0RFQlVHX0RSSVZFUigiRVUgdG90YWw6ICV1XG4iLCBpbmZvLT5zc2V1LmV1X3RvdGFs KTsKPiAgCURSTV9ERUJVR19EUklWRVIoIkVVIHBlciBzdWJzbGljZTogJXVcbiIsIGluZm8tPnNz ZXUuZXVfcGVyX3N1YnNsaWNlKTsKPiAgCURSTV9ERUJVR19EUklWRVIoImhhcyBzbGljZSBwb3dl ciBnYXRpbmc6ICVzXG4iLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDdjYzllYzgu LmQ0N2U1NDQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtNzg0LDggKzc4NCw3 IEBAIHN0cnVjdCBpbnRlbF9jc3Igewo+ICAKPiAgc3RydWN0IHNzZXVfZGV2X2luZm8gewo+ICAJ dTggc2xpY2VfbWFzazsKPiAtCXU4IHN1YnNsaWNlX3RvdGFsOwo+IC0JdTggc3Vic2xpY2VfcGVy X3NsaWNlOwo+ICsJdTggc3Vic2xpY2VfbWFzazsKCkkga25vdyB3ZSBoYXZlIHNpdHVhdGlvbnMg Zm9yIEdUMSBwYXJ0cyB3aGVyZSB0aGUgbnVtYmVyIG9mIHN1YnNsaWNlcyBwZXIgc2xpY2UKaXMg bGVzcyB0aGFuIHRoYXQgb2YgdGhlIHNhbWUgR0VOIG9mIGEgZGlmZmVyZW50IFNLVS4gQUZBSUss IHRoaXMgbmV2ZXIgY2FycmllcwpvdmVyIGludG8gaGlnaGVyIEdUIChpZS4gR1QyIHdvdWxkIGFs d2F5cyBoYXZlIDMgc3Vic2xpY2VzIHBlciBzbGljZSwgYnV0IEdUMQptYXkgaGF2ZSAyIHN1YnNs aWNlcyBwZXIgc2xpY2UpLiBIb3dldmVyLiBJIGFtIG5vdCBjZXJ0YWluIHRoaXMgaXMgdGhlIGNh c2UgLSBJCmhvcGUgeW91J3ZlIGRvdWJsZSBjaGVja2VkIHRoYXQuCgo+ICAJdTggZXVfdG90YWw7 Cj4gIAl1OCBldV9wZXJfc3Vic2xpY2U7Cj4gIAkvKiBGb3IgZWFjaCBzbGljZSwgd2hpY2ggc3Vi c2xpY2UocykgaGFzKGhhdmUpIDcgRVVzIChiaXRmaWVsZCk/ICovCj4gQEAgLTc5NSw2ICs3OTQs MTEgQEAgc3RydWN0IHNzZXVfZGV2X2luZm8gewo+ICAJdTggaGFzX2V1X3BnOjE7Cj4gIH07Cj4g IAo+ICtzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBzc2V1X3N1YnNsaWNlX3RvdGFsKGNvbnN0 IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1KQo+ICt7Cj4gKwlyZXR1cm4gaHdlaWdodDMyKChz c2V1KS0+c2xpY2VfbWFzaykgKiBod2VpZ2h0MzIoKHNzZXUpLT5zdWJzbGljZV9tYXNrKTsKCmh3 ZWlnaHQ4CgpiYXNpY2FsbHkgcy9od2VpZ2h0MzIvaHdlaWdodDggb24gdGhlIHdob2xlIGZpbGUK Cj4gK30KPiArCj4gIHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyB7Cj4gIAl1MzIgZGlzcGxheV9t bWlvX29mZnNldDsKPiAgCXUxNiBkZXZpY2VfaWQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK PiBpbmRleCA0MTMwZmYxLi4xNThmMDA4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK PiBAQCAtMjIwOSw3ICsyMjA5LDcgQEAgbWFrZV9ycGNzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gIAo+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+c3NldS5oYXNfc3Vic2xpY2VfcGcpIHsKPiAg CQlycGNzIHw9IEdFTjhfUlBDU19TU19DTlRfRU5BQkxFOwo+IC0JCXJwY3MgfD0gSU5URUxfSU5G TyhkZXYpLT5zc2V1LnN1YnNsaWNlX3Blcl9zbGljZSA8PAo+ICsJCXJwY3MgfD0gaHdlaWdodDMy KElOVEVMX0lORk8oZGV2KS0+c3NldS5zdWJzbGljZV9tYXNrKSA8PAoKCj4gIAkJCUdFTjhfUlBD U19TU19DTlRfU0hJRlQ7Cj4gIAkJcnBjcyB8PSBHRU44X1JQQ1NfRU5BQkxFOwo+ICAJfQoKUmV2 aWV3ZWQtYnk6IEJlbiBXaWRhd3NreSA8YmVuamFtaW4ud2lkYXdza3lAaW50ZWwuY29tPgoKLS0g CkJlbiBXaWRhd3NreSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK