From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stuart Summers Subject: [PATCH 4/5] drm/i915: Refactor sseu helper functions Date: Fri, 3 May 2019 14:30:19 -0700 Message-ID: <20190503213020.25628-5-stuart.summers@intel.com> References: <20190503213020.25628-1-stuart.summers@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 455C189830 for ; Fri, 3 May 2019 21:30:22 +0000 (UTC) In-Reply-To: <20190503213020.25628-1-stuart.summers@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org TW92ZSBmdW5jdGlvbnMgdG8gaW50ZWxfc3NldS5oIGFuZCByZW1vdmUgaW5saW5lIHF1YWxpZmll ci4KQWRkaXRpb25hbGx5LCBlbnN1cmUgdGhlc2UgYXJlIGFsbCBwcmVmaXhlZCB3aXRoIGludGVs X3NzZXVfKgp0byBtYXRjaCB0aGUgY29udmVudGlvbiBvZiBvdGhlciBmdW5jdGlvbnMgaW4gaTkx NS4KCnYyOiBmaXggc3BhY2luZyBmcm9tIGNoZWNrcGF0Y2ggd2FybmluZwp2Mzogc3F1YXNoIGhl bHBlciBmdW5jdGlvbiBjaGFuZ2VzIGludG8gYSBzaW5nbGUgcGF0Y2gKICAgIGJyZWFrIDgwIGNo YXJhY3RlciBsaW5lIHRvIGZpeCBjaGVja3BhdGNoIHdhcm5pbmcKICAgIG1vdmUgZ2V0L3NldF9l dXMgaGVscGVycyB0byBpbnRlbF9kZXZpY2VfaW5mby5jCgpBY2tlZC1ieTogSmFuaSBOaWt1bGEg PGphbmkubmlrdWxhQGludGVsLmNvbT4KQ2M6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmll bGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFN0dWFydCBTdW1tZXJz IDxzdHVhcnQuc3VtbWVyc0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfc3NldS5jICAgICB8ICAxNyArKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9zc2V1LmggICAgIHwgIDEwICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAg ICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYyB8IDEw MyArKysrKysrKysrKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2 aWNlX2luZm8uaCB8ICA0NCAtLS0tLS0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlv bnMoKyksIDgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX3NzZXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuYwpp bmRleCA3ZjQ0OGYzYmVhMGIuLmEwNzU2ZjAwNmY1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfc3NldS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX3NzZXUuYwpAQCAtOCw2ICs4LDIzIEBACiAjaW5jbHVkZSAiaW50ZWxfbHJjX3JlZy5oIgog I2luY2x1ZGUgImludGVsX3NzZXUuaCIKIAordW5zaWduZWQgaW50CitpbnRlbF9zc2V1X3N1YnNs aWNlX3RvdGFsKGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1KQoreworCXVuc2lnbmVk IGludCBpLCB0b3RhbCA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzc2V1LT5z dWJzbGljZV9tYXNrKTsgaSsrKQorCQl0b3RhbCArPSBod2VpZ2h0OChzc2V1LT5zdWJzbGljZV9t YXNrW2ldKTsKKworCXJldHVybiB0b3RhbDsKK30KKwordW5zaWduZWQgaW50CitpbnRlbF9zc2V1 X3N1YnNsaWNlc19wZXJfc2xpY2UoY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsIHU4 IHNsaWNlKQoreworCXJldHVybiBod2VpZ2h0OChzc2V1LT5zdWJzbGljZV9tYXNrW3NsaWNlXSk7 Cit9CisKIHUzMiBpbnRlbF9zc2V1X21ha2VfcnBjcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKIAkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfc3NldSAqcmVxX3NzZXUpCiB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9zc2V1LmgKaW5kZXggOTYxOGRmZjQ2ZDgzLi5iNTBkMDQwMWE0ZTIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmgKQEAgLTYzLDExICs2MywxMSBAQCBp bnRlbF9zc2V1X2Zyb21fZGV2aWNlX2luZm8oY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNz ZXUpCiAJcmV0dXJuIHZhbHVlOwogfQogCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAotaW50 ZWxfc3NldV9zdWJzbGljZXNfcGVyX3NsaWNlKGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpz c2V1LCB1OCBzbGljZSkKLXsKLQlyZXR1cm4gaHdlaWdodDgoc3NldS0+c3Vic2xpY2VfbWFza1tz bGljZV0pOwotfQordW5zaWduZWQgaW50CitpbnRlbF9zc2V1X3N1YnNsaWNlX3RvdGFsKGNvbnN0 IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1KTsKKwordW5zaWduZWQgaW50CitpbnRlbF9zc2V1 X3N1YnNsaWNlc19wZXJfc2xpY2UoY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUsIHU4 IHNsaWNlKTsKIAogdTMyIGludGVsX3NzZXVfbWFrZV9ycGNzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1LAogCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9zc2V1ICpyZXFfc3NldSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IGRjZWIzMmExNmM1Yy4uZmNlM2NjZDg3Zjc2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtNDE2MCw3ICs0MTYwLDcgQEAg c3RhdGljIHZvaWQgYnJvYWR3ZWxsX3NzZXVfZGV2aWNlX3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldS5zdWJz bGljZV9tYXNrW3NdOwogCQl9CiAJCXNzZXUtPmV1X3RvdGFsID0gc3NldS0+ZXVfcGVyX3N1YnNs aWNlICoKLQkJCQkgc3NldV9zdWJzbGljZV90b3RhbChzc2V1KTsKKwkJCQkgaW50ZWxfc3NldV9z dWJzbGljZV90b3RhbChzc2V1KTsKIAogCQkvKiBzdWJ0cmFjdCBmdXNlZCBvZmYgRVUocykgZnJv bSBlbmFibGVkIHNsaWNlKHMpICovCiAJCWZvciAocyA9IDA7IHMgPCBmbHMoc3NldS0+c2xpY2Vf bWFzayk7IHMrKykgewpAQCAtNDE4NCw3ICs0MTg0LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9wcmlu dF9zc2V1X2luZm8oc3RydWN0IHNlcV9maWxlICptLCBib29sIGlzX2F2YWlsYWJsZV9pbmZvLAog CXNlcV9wcmludGYobSwgIiAgJXMgU2xpY2UgVG90YWw6ICV1XG4iLCB0eXBlLAogCQkgICBod2Vp Z2h0OChzc2V1LT5zbGljZV9tYXNrKSk7CiAJc2VxX3ByaW50ZihtLCAiICAlcyBTdWJzbGljZSBU b3RhbDogJXVcbiIsIHR5cGUsCi0JCSAgIHNzZXVfc3Vic2xpY2VfdG90YWwoc3NldSkpOworCQkg ICBpbnRlbF9zc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpKTsKIAlmb3IgKHMgPSAwOyBzIDwgZmxz KHNzZXUtPnNsaWNlX21hc2spOyBzKyspIHsKIAkJc2VxX3ByaW50ZihtLCAiICAlcyBTbGljZSVp IHN1YnNsaWNlczogJXVcbiIsIHR5cGUsCiAJCQkgICBzLCBpbnRlbF9zc2V1X3N1YnNsaWNlc19w ZXJfc2xpY2Uoc3NldSwgcykpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggZGNjODcyZjlj Njc2Li5jMmVhM2YwOTkyYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMzgyLDcgKzM4 Miw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAogCQl2YWx1ZSA9IGk5MTVfY21kX3BhcnNlcl9nZXRfdmVyc2lvbihk ZXZfcHJpdik7CiAJCWJyZWFrOwogCWNhc2UgSTkxNV9QQVJBTV9TVUJTTElDRV9UT1RBTDoKLQkJ dmFsdWUgPSBzc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpOworCQl2YWx1ZSA9IGludGVsX3NzZXVf c3Vic2xpY2VfdG90YWwoc3NldSk7CiAJCWlmICghdmFsdWUpCiAJCQlyZXR1cm4gLUVOT0RFVjsK IAkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2Vf aW5mby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwppbmRleCA5 ZDZiOWM0NWJjNWUuLjY4OTcwMmIyOGU4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGV2aWNlX2luZm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZXZpY2VfaW5mby5jCkBAIC05MCw3ICs5MCw3IEBAIHN0YXRpYyB2b2lkIHNzZXVfZHVtcChjb25z dCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwgc3RydWN0IGRybV9wcmludGVyICpwKQogCiAJ ZHJtX3ByaW50ZihwLCAic2xpY2UgdG90YWw6ICV1LCBtYXNrPSUwNHhcbiIsCiAJCSAgIGh3ZWln aHQ4KHNzZXUtPnNsaWNlX21hc2spLCBzc2V1LT5zbGljZV9tYXNrKTsKLQlkcm1fcHJpbnRmKHAs ICJzdWJzbGljZSB0b3RhbDogJXVcbiIsIHNzZXVfc3Vic2xpY2VfdG90YWwoc3NldSkpOworCWRy bV9wcmludGYocCwgInN1YnNsaWNlIHRvdGFsOiAldVxuIiwgaW50ZWxfc3NldV9zdWJzbGljZV90 b3RhbChzc2V1KSk7CiAJZm9yIChzID0gMDsgcyA8IHNzZXUtPm1heF9zbGljZXM7IHMrKykgewog CQlkcm1fcHJpbnRmKHAsICJzbGljZSVkOiAldSBzdWJzbGljZXMsIG1hc2s9JTA0eFxuIiwKIAkJ CSAgIHMsIGludGVsX3NzZXVfc3Vic2xpY2VzX3Blcl9zbGljZShzc2V1LCBzKSwKQEAgLTExNCw2 ICsxMTQsNDMgQEAgdm9pZCBpbnRlbF9kZXZpY2VfaW5mb19kdW1wX3J1bnRpbWUoY29uc3Qgc3Ry dWN0IGludGVsX3J1bnRpbWVfaW5mbyAqaW5mbywKIAkJICAgaW5mby0+Y3NfdGltZXN0YW1wX2Zy ZXF1ZW5jeV9raHopOwogfQogCitzdGF0aWMgaW50IGludGVsX3NzZXVfZXVfaWR4KGNvbnN0IHN0 cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LCBpbnQgc2xpY2UsCisJCQkgICAgIGludCBzdWJzbGlj ZSkKK3sKKwlpbnQgc3Vic2xpY2Vfc3RyaWRlID0gRElWX1JPVU5EX1VQKHNzZXUtPm1heF9ldXNf cGVyX3N1YnNsaWNlLAorCQkJCQkgICBCSVRTX1BFUl9CWVRFKTsKKwlpbnQgc2xpY2Vfc3RyaWRl ID0gc3NldS0+bWF4X3N1YnNsaWNlcyAqIHN1YnNsaWNlX3N0cmlkZTsKKworCXJldHVybiBzbGlj ZSAqIHNsaWNlX3N0cmlkZSArIHN1YnNsaWNlICogc3Vic2xpY2Vfc3RyaWRlOworfQorCitzdGF0 aWMgdTE2IGludGVsX3NzZXVfZ2V0X2V1cyhjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3Nl dSwgaW50IHNsaWNlLAorCQkJICAgICAgaW50IHN1YnNsaWNlKQoreworCWludCBpLCBvZmZzZXQg PSBpbnRlbF9zc2V1X2V1X2lkeChzc2V1LCBzbGljZSwgc3Vic2xpY2UpOworCXUxNiBldV9tYXNr ID0gMDsKKworCWZvciAoaSA9IDA7CisJICAgICBpIDwgRElWX1JPVU5EX1VQKHNzZXUtPm1heF9l dXNfcGVyX3N1YnNsaWNlLCBCSVRTX1BFUl9CWVRFKTsgaSsrKSB7CisJCWV1X21hc2sgfD0gKCh1 MTYpc3NldS0+ZXVfbWFza1tvZmZzZXQgKyBpXSkgPDwKKwkJCShpICogQklUU19QRVJfQllURSk7 CisJfQorCisJcmV0dXJuIGV1X21hc2s7Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX3NzZXVfc2V0 X2V1cyhzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwgaW50IHNsaWNlLAorCQkJICAgICAgIGlu dCBzdWJzbGljZSwgdTE2IGV1X21hc2spCit7CisJaW50IGksIG9mZnNldCA9IGludGVsX3NzZXVf ZXVfaWR4KHNzZXUsIHNsaWNlLCBzdWJzbGljZSk7CisKKwlmb3IgKGkgPSAwOworCSAgICAgaSA8 IERJVl9ST1VORF9VUChzc2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSwgQklUU19QRVJfQllURSk7 IGkrKykgeworCQlzc2V1LT5ldV9tYXNrW29mZnNldCArIGldID0KKwkJCShldV9tYXNrID4+IChC SVRTX1BFUl9CWVRFICogaSkpICYgMHhmZjsKKwl9Cit9CisKIHZvaWQgaW50ZWxfZGV2aWNlX2lu Zm9fZHVtcF90b3BvbG9neShjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwKIAkJCQkg ICAgIHN0cnVjdCBkcm1fcHJpbnRlciAqcCkKIHsKQEAgLTEzMCw3ICsxNjcsNyBAQCB2b2lkIGlu dGVsX2RldmljZV9pbmZvX2R1bXBfdG9wb2xvZ3koY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8g KnNzZXUsCiAJCQkgICBzc2V1LT5zdWJzbGljZV9tYXNrW3NdKTsKIAogCQlmb3IgKHNzID0gMDsg c3MgPCBzc2V1LT5tYXhfc3Vic2xpY2VzOyBzcysrKSB7Ci0JCQl1MTYgZW5hYmxlZF9ldXMgPSBz c2V1X2dldF9ldXMoc3NldSwgcywgc3MpOworCQkJdTE2IGVuYWJsZWRfZXVzID0gaW50ZWxfc3Nl dV9nZXRfZXVzKHNzZXUsIHMsIHNzKTsKIAogCQkJZHJtX3ByaW50ZihwLCAiXHRzdWJzbGljZSVk OiAldSBFVXMgKDB4JWh4KVxuIiwKIAkJCQkgICBzcywgaHdlaWdodDE2KGVuYWJsZWRfZXVzKSwg ZW5hYmxlZF9ldXMpOwpAQCAtMTgwLDcgKzIxNyw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX3NzZXVf aW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCXNzZXUtPnN1 YnNsaWNlX21hc2tbc10gPSAoc3NfZW4gPj4gc3NfaWR4KSAmIHNzX2VuX21hc2s7CiAJCQlmb3Ig KHNzID0gMDsgc3MgPCBzc2V1LT5tYXhfc3Vic2xpY2VzOyBzcysrKSB7CiAJCQkJaWYgKHNzZXUt PnN1YnNsaWNlX21hc2tbc10gJiBCSVQoc3MpKQotCQkJCQlzc2V1X3NldF9ldXMoc3NldSwgcywg c3MsIGV1X2VuKTsKKwkJCQkJaW50ZWxfc3NldV9zZXRfZXVzKHNzZXUsIHMsIHNzLCBldV9lbik7 CiAJCQl9CiAJCX0KIAl9CkBAIC0yMjIsMzIgKzI1OSwzMiBAQCBzdGF0aWMgdm9pZCBnZW4xMF9z c2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJLyogU2xp Y2UwICovCiAJZXVfZW4gPSB+STkxNV9SRUFEKEdFTjhfRVVfRElTQUJMRTApOwogCWZvciAoc3Mg PSAwOyBzcyA8IHNzZXUtPm1heF9zdWJzbGljZXM7IHNzKyspCi0JCXNzZXVfc2V0X2V1cyhzc2V1 LCAwLCBzcywgKGV1X2VuID4+ICg4ICogc3MpKSAmIGV1X21hc2spOworCQlpbnRlbF9zc2V1X3Nl dF9ldXMoc3NldSwgMCwgc3MsIChldV9lbiA+PiAoOCAqIHNzKSkgJiBldV9tYXNrKTsKIAkvKiBT bGljZTEgKi8KLQlzc2V1X3NldF9ldXMoc3NldSwgMSwgMCwgKGV1X2VuID4+IDI0KSAmIGV1X21h c2spOworCWludGVsX3NzZXVfc2V0X2V1cyhzc2V1LCAxLCAwLCAoZXVfZW4gPj4gMjQpICYgZXVf bWFzayk7CiAJZXVfZW4gPSB+STkxNV9SRUFEKEdFTjhfRVVfRElTQUJMRTEpOwotCXNzZXVfc2V0 X2V1cyhzc2V1LCAxLCAxLCBldV9lbiAmIGV1X21hc2spOworCWludGVsX3NzZXVfc2V0X2V1cyhz c2V1LCAxLCAxLCBldV9lbiAmIGV1X21hc2spOwogCS8qIFNsaWNlMiAqLwotCXNzZXVfc2V0X2V1 cyhzc2V1LCAyLCAwLCAoZXVfZW4gPj4gOCkgJiBldV9tYXNrKTsKLQlzc2V1X3NldF9ldXMoc3Nl dSwgMiwgMSwgKGV1X2VuID4+IDE2KSAmIGV1X21hc2spOworCWludGVsX3NzZXVfc2V0X2V1cyhz c2V1LCAyLCAwLCAoZXVfZW4gPj4gOCkgJiBldV9tYXNrKTsKKwlpbnRlbF9zc2V1X3NldF9ldXMo c3NldSwgMiwgMSwgKGV1X2VuID4+IDE2KSAmIGV1X21hc2spOwogCS8qIFNsaWNlMyAqLwotCXNz ZXVfc2V0X2V1cyhzc2V1LCAzLCAwLCAoZXVfZW4gPj4gMjQpICYgZXVfbWFzayk7CisJaW50ZWxf c3NldV9zZXRfZXVzKHNzZXUsIDMsIDAsIChldV9lbiA+PiAyNCkgJiBldV9tYXNrKTsKIAlldV9l biA9IH5JOTE1X1JFQUQoR0VOOF9FVV9ESVNBQkxFMik7Ci0Jc3NldV9zZXRfZXVzKHNzZXUsIDMs IDEsIGV1X2VuICYgZXVfbWFzayk7CisJaW50ZWxfc3NldV9zZXRfZXVzKHNzZXUsIDMsIDEsIGV1 X2VuICYgZXVfbWFzayk7CiAJLyogU2xpY2U0ICovCi0Jc3NldV9zZXRfZXVzKHNzZXUsIDQsIDAs IChldV9lbiA+PiA4KSAmIGV1X21hc2spOwotCXNzZXVfc2V0X2V1cyhzc2V1LCA0LCAxLCAoZXVf ZW4gPj4gMTYpICYgZXVfbWFzayk7CisJaW50ZWxfc3NldV9zZXRfZXVzKHNzZXUsIDQsIDAsIChl dV9lbiA+PiA4KSAmIGV1X21hc2spOworCWludGVsX3NzZXVfc2V0X2V1cyhzc2V1LCA0LCAxLCAo ZXVfZW4gPj4gMTYpICYgZXVfbWFzayk7CiAJLyogU2xpY2U1ICovCi0Jc3NldV9zZXRfZXVzKHNz ZXUsIDUsIDAsIChldV9lbiA+PiAyNCkgJiBldV9tYXNrKTsKKwlpbnRlbF9zc2V1X3NldF9ldXMo c3NldSwgNSwgMCwgKGV1X2VuID4+IDI0KSAmIGV1X21hc2spOwogCWV1X2VuID0gfkk5MTVfUkVB RChHRU4xMF9FVV9ESVNBQkxFMyk7Ci0Jc3NldV9zZXRfZXVzKHNzZXUsIDUsIDEsIGV1X2VuICYg ZXVfbWFzayk7CisJaW50ZWxfc3NldV9zZXRfZXVzKHNzZXUsIDUsIDEsIGV1X2VuICYgZXVfbWFz ayk7CiAKIAkvKiBEbyBhIHNlY29uZCBwYXNzIHdoZXJlIHdlIG1hcmsgdGhlIHN1YnNsaWNlcyBk aXNhYmxlZCBpZiBhbGwgdGhlaXIKIAkgKiBldXMgYXJlIG9mZi4KIAkgKi8KIAlmb3IgKHMgPSAw OyBzIDwgc3NldS0+bWF4X3NsaWNlczsgcysrKSB7CiAJCWZvciAoc3MgPSAwOyBzcyA8IHNzZXUt Pm1heF9zdWJzbGljZXM7IHNzKyspIHsKLQkJCWlmIChzc2V1X2dldF9ldXMoc3NldSwgcywgc3Mp ID09IDApCisJCQlpZiAoaW50ZWxfc3NldV9nZXRfZXVzKHNzZXUsIHMsIHNzKSA9PSAwKQogCQkJ CXNzZXUtPnN1YnNsaWNlX21hc2tbc10gJj0gfkJJVChzcyk7CiAJCX0KIAl9CkBAIC0yNjAsOSAr Mjk3LDEwIEBAIHN0YXRpYyB2b2lkIGdlbjEwX3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBFVSBpbiBhbnkgb25lIHN1YnNsaWNlIG1heSBiZSBm dXNlZCBvZmYgZm9yIGRpZQogCSAqIHJlY292ZXJ5LgogCSAqLwotCXNzZXUtPmV1X3Blcl9zdWJz bGljZSA9IHNzZXVfc3Vic2xpY2VfdG90YWwoc3NldSkgPworCXNzZXUtPmV1X3Blcl9zdWJzbGlj ZSA9IGludGVsX3NzZXVfc3Vic2xpY2VfdG90YWwoc3NldSkgPwogCQkJCURJVl9ST1VORF9VUChz c2V1LT5ldV90b3RhbCwKLQkJCQkJICAgICBzc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpKSA6IDA7 CisJCQkJCSAgICAgaW50ZWxfc3NldV9zdWJzbGljZV90b3RhbChzc2V1KSkgOgorCQkJCTA7CiAK IAkvKiBObyByZXN0cmljdGlvbnMgb24gUG93ZXIgR2F0aW5nICovCiAJc3NldS0+aGFzX3NsaWNl X3BnID0gMTsKQEAgLTI5MCw3ICszMjgsNyBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X3NzZXVf aW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCSAgQ0hWX0ZH VF9FVV9ESVNfU1MwX1IxX1NISUZUKSA8PCA0KTsKIAogCQlzc2V1LT5zdWJzbGljZV9tYXNrWzBd IHw9IEJJVCgwKTsKLQkJc3NldV9zZXRfZXVzKHNzZXUsIDAsIDAsIH5kaXNhYmxlZF9tYXNrKTsK KwkJaW50ZWxfc3NldV9zZXRfZXVzKHNzZXUsIDAsIDAsIH5kaXNhYmxlZF9tYXNrKTsKIAl9CiAK IAlpZiAoIShmdXNlICYgQ0hWX0ZHVF9ESVNBQkxFX1NTMSkpIHsKQEAgLTMwMSw3ICszMzksNyBA QCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAkJCSAgQ0hWX0ZHVF9FVV9ESVNfU1MxX1IxX1NISUZUKSA8PCA0 KTsKIAogCQlzc2V1LT5zdWJzbGljZV9tYXNrWzBdIHw9IEJJVCgxKTsKLQkJc3NldV9zZXRfZXVz KHNzZXUsIDAsIDEsIH5kaXNhYmxlZF9tYXNrKTsKKwkJaW50ZWxfc3NldV9zZXRfZXVzKHNzZXUs IDAsIDEsIH5kaXNhYmxlZF9tYXNrKTsKIAl9CiAKIAlzc2V1LT5ldV90b3RhbCA9IGNvbXB1dGVf ZXVfdG90YWwoc3NldSk7CkBAIC0zMTAsOCArMzQ4LDkgQEAgc3RhdGljIHZvaWQgY2hlcnJ5dmll d19zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICog Q0hWIGV4cGVjdGVkIHRvIGFsd2F5cyBoYXZlIGEgdW5pZm9ybSBkaXN0cmlidXRpb24gb2YgRVUK IAkgKiBhY3Jvc3Mgc3Vic2xpY2VzLgogCSovCi0Jc3NldS0+ZXVfcGVyX3N1YnNsaWNlID0gc3Nl dV9zdWJzbGljZV90b3RhbChzc2V1KSA/Ci0JCQkJc3NldS0+ZXVfdG90YWwgLyBzc2V1X3N1YnNs aWNlX3RvdGFsKHNzZXUpIDoKKwlzc2V1LT5ldV9wZXJfc3Vic2xpY2UgPSBpbnRlbF9zc2V1X3N1 YnNsaWNlX3RvdGFsKHNzZXUpID8KKwkJCQlzc2V1LT5ldV90b3RhbCAvCisJCQkJCWludGVsX3Nz ZXVfc3Vic2xpY2VfdG90YWwoc3NldSkgOgogCQkJCTA7CiAJLyoKIAkgKiBDSFYgc3VwcG9ydHMg c3Vic2xpY2UgcG93ZXIgZ2F0aW5nIG9uIGRldmljZXMgd2l0aCBtb3JlIHRoYW4KQEAgLTMxOSw3 ICszNTgsNyBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X3NzZXVfaW5mb19pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBtb3JlIHRoYW4gb25lIEVVIHBhaXIgcGVy IHN1YnNsaWNlLgogCSovCiAJc3NldS0+aGFzX3NsaWNlX3BnID0gMDsKLQlzc2V1LT5oYXNfc3Vi c2xpY2VfcGcgPSBzc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpID4gMTsKKwlzc2V1LT5oYXNfc3Vi c2xpY2VfcGcgPSBpbnRlbF9zc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpID4gMTsKIAlzc2V1LT5o YXNfZXVfcGcgPSAoc3NldS0+ZXVfcGVyX3N1YnNsaWNlID4gMik7CiB9CiAKQEAgLTM2OSw3ICs0 MDgsNyBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAogCQkJZXVfZGlzYWJsZWRfbWFzayA9IChldV9kaXNhYmxlID4+ IChzcyAqIDgpKSAmIGV1X21hc2s7CiAKLQkJCXNzZXVfc2V0X2V1cyhzc2V1LCBzLCBzcywgfmV1 X2Rpc2FibGVkX21hc2spOworCQkJaW50ZWxfc3NldV9zZXRfZXVzKHNzZXUsIHMsIHNzLCB+ZXVf ZGlzYWJsZWRfbWFzayk7CiAKIAkJCWV1X3Blcl9zcyA9IHNzZXUtPm1heF9ldXNfcGVyX3N1YnNs aWNlIC0KIAkJCQlod2VpZ2h0OChldV9kaXNhYmxlZF9tYXNrKTsKQEAgLTM5Myw5ICs0MzIsMTAg QEAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJICogcmVjb3ZlcnkuIEJYVCBpcyBleHBlY3RlZCB0byBiZSBwZXJmZWN0 bHkgdW5pZm9ybSBpbiBFVQogCSAqIGRpc3RyaWJ1dGlvbi4KIAkqLwotCXNzZXUtPmV1X3Blcl9z dWJzbGljZSA9IHNzZXVfc3Vic2xpY2VfdG90YWwoc3NldSkgPworCXNzZXUtPmV1X3Blcl9zdWJz bGljZSA9IGludGVsX3NzZXVfc3Vic2xpY2VfdG90YWwoc3NldSkgPwogCQkJCURJVl9ST1VORF9V UChzc2V1LT5ldV90b3RhbCwKLQkJCQkJICAgICBzc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpKSA6 IDA7CisJCQkJCSAgICAgaW50ZWxfc3NldV9zdWJzbGljZV90b3RhbChzc2V1KSkgOgorCQkJCTA7 CiAJLyoKIAkgKiBTS0wrIHN1cHBvcnRzIHNsaWNlIHBvd2VyIGdhdGluZyBvbiBkZXZpY2VzIHdp dGggbW9yZSB0aGFuCiAJICogb25lIHNsaWNlLCBhbmQgc3VwcG9ydHMgRVUgcG93ZXIgZ2F0aW5n IG9uIGRldmljZXMgd2l0aApAQCAtNDA3LDcgKzQ0Nyw3IEBAIHN0YXRpYyB2b2lkIGdlbjlfc3Nl dV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXNzZXUtPmhh c19zbGljZV9wZyA9CiAJCSFJU19HRU45X0xQKGRldl9wcml2KSAmJiBod2VpZ2h0OChzc2V1LT5z bGljZV9tYXNrKSA+IDE7CiAJc3NldS0+aGFzX3N1YnNsaWNlX3BnID0KLQkJSVNfR0VOOV9MUChk ZXZfcHJpdikgJiYgc3NldV9zdWJzbGljZV90b3RhbChzc2V1KSA+IDE7CisJCUlTX0dFTjlfTFAo ZGV2X3ByaXYpICYmIGludGVsX3NzZXVfc3Vic2xpY2VfdG90YWwoc3NldSkgPiAxOwogCXNzZXUt Pmhhc19ldV9wZyA9IHNzZXUtPmV1X3Blcl9zdWJzbGljZSA+IDI7CiAKIAlpZiAoSVNfR0VOOV9M UChkZXZfcHJpdikpIHsKQEAgLTQ3Nyw3ICs1MTcsNyBAQCBzdGF0aWMgdm9pZCBicm9hZHdlbGxf c3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkJZXVf ZGlzYWJsZWRfbWFzayA9CiAJCQkJZXVfZGlzYWJsZVtzXSA+PiAoc3MgKiBzc2V1LT5tYXhfZXVz X3Blcl9zdWJzbGljZSk7CiAKLQkJCXNzZXVfc2V0X2V1cyhzc2V1LCBzLCBzcywgfmV1X2Rpc2Fi bGVkX21hc2spOworCQkJaW50ZWxfc3NldV9zZXRfZXVzKHNzZXUsIHMsIHNzLCB+ZXVfZGlzYWJs ZWRfbWFzayk7CiAKIAkJCW5fZGlzYWJsZWQgPSBod2VpZ2h0OChldV9kaXNhYmxlZF9tYXNrKTsK IApAQCAtNDk2LDkgKzUzNiwxMCBAQCBzdGF0aWMgdm9pZCBicm9hZHdlbGxfc3NldV9pbmZvX2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIHN1YnNsaWNlcyB3aXRo IHRoZSBleGNlcHRpb24gdGhhdCBhbnkgb25lIEVVIGluIGFueSBvbmUgc3Vic2xpY2UgbWF5CiAJ ICogYmUgZnVzZWQgb2ZmIGZvciBkaWUgcmVjb3ZlcnkuCiAJICovCi0Jc3NldS0+ZXVfcGVyX3N1 YnNsaWNlID0gc3NldV9zdWJzbGljZV90b3RhbChzc2V1KSA/CisJc3NldS0+ZXVfcGVyX3N1YnNs aWNlID0gaW50ZWxfc3NldV9zdWJzbGljZV90b3RhbChzc2V1KSA/CiAJCQkJRElWX1JPVU5EX1VQ KHNzZXUtPmV1X3RvdGFsLAotCQkJCQkgICAgIHNzZXVfc3Vic2xpY2VfdG90YWwoc3NldSkpIDog MDsKKwkJCQkJICAgICBpbnRlbF9zc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpKSA6CisJCQkJMDsK IAogCS8qCiAJICogQkRXIHN1cHBvcnRzIHNsaWNlIHBvd2VyIGdhdGluZyBvbiBkZXZpY2VzIHdp dGggbW9yZSB0aGFuCkBAIC01NjEsOCArNjAyLDggQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9zc2V1 X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlmb3IgKHMg PSAwOyBzIDwgc3NldS0+bWF4X3NsaWNlczsgcysrKSB7CiAJCWZvciAoc3MgPSAwOyBzcyA8IHNz ZXUtPm1heF9zdWJzbGljZXM7IHNzKyspIHsKLQkJCXNzZXVfc2V0X2V1cyhzc2V1LCBzLCBzcywK LQkJCQkgICAgICgxVUwgPDwgc3NldS0+ZXVfcGVyX3N1YnNsaWNlKSAtIDEpOworCQkJaW50ZWxf c3NldV9zZXRfZXVzKHNzZXUsIHMsIHNzLAorCQkJCQkgICAoMVVMIDw8IHNzZXUtPmV1X3Blcl9z dWJzbGljZSkgLSAxKTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGV2aWNlX2luZm8uaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rldmlj ZV9pbmZvLmgKaW5kZXggOWQ0M2Y3ZWRmZDYzLi42NDEyYTljNzI4OTggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaApAQCAtMjE4LDUwICsyMTgsNiBAQCBzdHJ1Y3Qg aW50ZWxfZHJpdmVyX2NhcHMgewogCWJvb2wgaGFzX2xvZ2ljYWxfY29udGV4dHM6MTsKIH07CiAK LXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHNzZXVfc3Vic2xpY2VfdG90YWwoY29uc3Qgc3Ry dWN0IHNzZXVfZGV2X2luZm8gKnNzZXUpCi17Ci0JdW5zaWduZWQgaW50IGksIHRvdGFsID0gMDsK LQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNzZXUtPnN1YnNsaWNlX21hc2spOyBpKysp Ci0JCXRvdGFsICs9IGh3ZWlnaHQ4KHNzZXUtPnN1YnNsaWNlX21hc2tbaV0pOwotCi0JcmV0dXJu IHRvdGFsOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBzc2V1X2V1X2lkeChjb25zdCBzdHJ1Y3Qg c3NldV9kZXZfaW5mbyAqc3NldSwKLQkJCSAgICAgIGludCBzbGljZSwgaW50IHN1YnNsaWNlKQot ewotCWludCBzdWJzbGljZV9zdHJpZGUgPSBHRU5fU1NFVV9TVFJJREUoc3NldS0+bWF4X2V1c19w ZXJfc3Vic2xpY2UpOwotCWludCBzbGljZV9zdHJpZGUgPSBzc2V1LT5tYXhfc3Vic2xpY2VzICog c3Vic2xpY2Vfc3RyaWRlOwotCi0JcmV0dXJuIHNsaWNlICogc2xpY2Vfc3RyaWRlICsgc3Vic2xp Y2UgKiBzdWJzbGljZV9zdHJpZGU7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdTE2IHNzZXVfZ2V0X2V1 cyhjb25zdCBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyAqc3NldSwKLQkJCSAgICAgICBpbnQgc2xpY2Us IGludCBzdWJzbGljZSkKLXsKLQlpbnQgaSwgb2Zmc2V0ID0gc3NldV9ldV9pZHgoc3NldSwgc2xp Y2UsIHN1YnNsaWNlKTsKLQl1MTYgZXVfbWFzayA9IDA7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgR0VO X1NTRVVfU1RSSURFKHNzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlKTsgaSsrKSB7Ci0JCWV1X21h c2sgfD0gKCh1MTYpIHNzZXUtPmV1X21hc2tbb2Zmc2V0ICsgaV0pIDw8Ci0JCQkoaSAqIEJJVFNf UEVSX0JZVEUpOwotCX0KLQotCXJldHVybiBldV9tYXNrOwotfQotCi1zdGF0aWMgaW5saW5lIHZv aWQgc3NldV9zZXRfZXVzKHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LAotCQkJCWludCBzbGlj ZSwgaW50IHN1YnNsaWNlLCB1MTYgZXVfbWFzaykKLXsKLQlpbnQgaSwgb2Zmc2V0ID0gc3NldV9l dV9pZHgoc3NldSwgc2xpY2UsIHN1YnNsaWNlKTsKLQotCWZvciAoaSA9IDA7IGkgPCBHRU5fU1NF VV9TVFJJREUoc3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2UpOyBpKyspIHsKLQkJc3NldS0+ZXVf bWFza1tvZmZzZXQgKyBpXSA9Ci0JCQkoZXVfbWFzayA+PiAoQklUU19QRVJfQllURSAqIGkpKSAm IDB4ZmY7Ci0JfQotfQotCiBjb25zdCBjaGFyICppbnRlbF9wbGF0Zm9ybV9uYW1lKGVudW0gaW50 ZWxfcGxhdGZvcm0gcGxhdGZvcm0pOwogCiB2b2lkIGludGVsX2RldmljZV9pbmZvX3N1YnBsYXRm b3JtX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLS0gCjIuMjEuMC41 LmdhZWI1ODJhOTgzCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng=