From mboxrd@z Thu Jan  1 00:00:00 1970
From: yu.dai@intel.com
Subject: [PATCH v2 1/6] drm/i915/guc: Make the GuC fw loading
	helper functions general
Date: Mon,  8 Feb 2016 15:02:48 -0800
Message-ID: <1454972573-16290-2-git-send-email-yu.dai@intel.com>
References: <1454972573-16290-1-git-send-email-yu.dai@intel.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <intel-gfx-bounces@lists.freedesktop.org>
Received: from mga14.intel.com (mga14.intel.com [192.55.52.115])
 by gabe.freedesktop.org (Postfix) with ESMTP id 3D1286E4A5
 for <intel-gfx@lists.freedesktop.org>; Mon,  8 Feb 2016 15:07:33 -0800 (PST)
In-Reply-To: <1454972573-16290-1-git-send-email-yu.dai@intel.com>
List-Unsubscribe: <https://lists.freedesktop.org/mailman/options/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <https://lists.freedesktop.org/archives/intel-gfx>
List-Post: <mailto:intel-gfx@lists.freedesktop.org>
List-Help: <mailto:intel-gfx-request@lists.freedesktop.org?subject=help>
List-Subscribe: <https://lists.freedesktop.org/mailman/listinfo/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=subscribe>
Errors-To: intel-gfx-bounces@lists.freedesktop.org
Sender: "Intel-gfx" <intel-gfx-bounces@lists.freedesktop.org>
To: intel-gfx@lists.freedesktop.org
List-Id: intel-gfx@lists.freedesktop.org

RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpSZW5hbWUgc29tZSBvZiB0aGUgR3VD
IGZ3IGxvYWRpbmcgY29kZSB0byBtYWtlIHRoZW0gbW9yZSBnZW5lcmFsLiBXZQp3aWxsIHV0aWxp
emUgdGhlbSBmb3IgSHVDIGxvYWRpbmcgYXMgd2VsbC4KICAgIHMvaW50ZWxfZ3VjX2Z3L2ludGVs
X3VjX2Z3L2cKICAgIHMvR1VDX0ZJUk1XQVJFL1VDX0ZJUk1XQVJFL2cKClN0cnVjdCBpbnRlbF9n
dWNfZncgaXMgcmVuYW1lZCB0byBpbnRlbF91Y19mdy4gUHJlZml4IG9mIHR0cyBtZW1iZXJzLApz
dWNoIGFzICdndWMnIG9yICdndWNfZncnIGVpdGhlciBpcyByZW5hbWVkIHRvICd1Yycgb3IgcmVt
b3ZlZCBmb3IKc2FtZSBwdXJwb3NlLgoKU2lnbmVkLW9mZi1ieTogQWxleCBEYWkgPHl1LmRhaUBp
bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFBldGVyIEFudG9pbmUgPHBldGVyLmFudG9pbmVAaW50
ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICB8ICAx
MiArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oICAgICAgICB8ICAzOSArKyst
LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgfCAxNzcgKysrKysr
KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlv
bnMoKyksIDEwOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx
NS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmlu
ZGV4IGVjMGMyYTA1ZS4uODczZjFiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv
aTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK
QEAgLTI0MDIsNyArMjQwMiw3IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNfbG9hZF9zdGF0dXNfaW5m
byhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGRybV9pbmZvX25v
ZGUgKm5vZGUgPSBtLT5wcml2YXRlOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp
diA9IG5vZGUtPm1pbm9yLT5kZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9ndWNfZncg
Kmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1
Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKIAl1MzIgdG1wLCBpOwogCiAJaWYgKCFIQVNf
R1VDX1VDT0RFKGRldl9wcml2LT5kZXYpKQpAQCAtMjQxMCwxNSArMjQxMCwxNSBAQCBzdGF0aWMg
aW50IGk5MTVfZ3VjX2xvYWRfc3RhdHVzX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpk
YXRhKQogCiAJc2VxX3ByaW50ZihtLCAiR3VDIGZpcm13YXJlIHN0YXR1czpcbiIpOwogCXNlcV9w
cmludGYobSwgIlx0cGF0aDogJXNcbiIsCi0JCWd1Y19mdy0+Z3VjX2Z3X3BhdGgpOworCQlndWNf
ZnctPnVjX2Z3X3BhdGgpOwogCXNlcV9wcmludGYobSwgIlx0ZmV0Y2g6ICVzXG4iLAotCQlpbnRl
bF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSk7CisJCWlu
dGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSk7CiAJc2VxX3ByaW50
ZihtLCAiXHRsb2FkOiAlc1xuIiwKLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+
Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7CisJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+
bG9hZF9zdGF0dXMpKTsKIAlzZXFfcHJpbnRmKG0sICJcdHZlcnNpb24gd2FudGVkOiAlZC4lZFxu
IiwKLQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93
YW50ZWQpOworCQlndWNfZnctPm1ham9yX3Zlcl93YW50ZWQsIGd1Y19mdy0+bWlub3JfdmVyX3dh
bnRlZCk7CiAJc2VxX3ByaW50ZihtLCAiXHR2ZXJzaW9uIGZvdW5kOiAlZC4lZFxuIiwKLQkJZ3Vj
X2Z3LT5ndWNfZndfbWFqb3JfZm91bmQsIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kKTsKKwkJ
Z3VjX2Z3LT5tYWpvcl92ZXJfZm91bmQsIGd1Y19mdy0+bWlub3JfdmVyX2ZvdW5kKTsKIAlzZXFf
cHJpbnRmKG0sICJcdGhlYWRlcjogb2Zmc2V0IGlzICVkOyBzaXplID0gJWRcbiIsCiAJCWd1Y19m
dy0+aGVhZGVyX29mZnNldCwgZ3VjX2Z3LT5oZWFkZXJfc2l6ZSk7CiAJc2VxX3ByaW50ZihtLCAi
XHR1Q29kZTogb2Zmc2V0IGlzICVkOyBzaXplID0gJWRcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJz
L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1
Yy5oCmluZGV4IDczMDAyZTkuLjRlMjBiMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p
OTE1L2ludGVsX2d1Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCkBA
IC01MiwyOSArNTIsMjkgQEAgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCB7CiAJaW50IHJldGNvZGU7
CiB9OwogCi1lbnVtIGludGVsX2d1Y19md19zdGF0dXMgewotCUdVQ19GSVJNV0FSRV9GQUlMID0g
LTEsCi0JR1VDX0ZJUk1XQVJFX05PTkUgPSAwLAotCUdVQ19GSVJNV0FSRV9QRU5ESU5HLAotCUdV
Q19GSVJNV0FSRV9TVUNDRVNTCitlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyB7CisJVUNfRklSTVdB
UkVfRkFJTCA9IC0xLAorCVVDX0ZJUk1XQVJFX05PTkUgPSAwLAorCVVDX0ZJUk1XQVJFX1BFTkRJ
TkcsCisJVUNfRklSTVdBUkVfU1VDQ0VTUwogfTsKIAogLyoKICAqIFRoaXMgc3RydWN0dXJlIGVu
Y2Fwc3VsYXRlcyBhbGwgdGhlIGRhdGEgbmVlZGVkIGR1cmluZyB0aGUgcHJvY2VzcwogICogb2Yg
ZmV0Y2hpbmcsIGNhY2hpbmcsIGFuZCBsb2FkaW5nIHRoZSBmaXJtd2FyZSBpbWFnZSBpbnRvIHRo
ZSBHdUMuCiAgKi8KLXN0cnVjdCBpbnRlbF9ndWNfZncgewotCXN0cnVjdCBkcm1fZGV2aWNlICoJ
CWd1Y19kZXY7Ci0JY29uc3QgY2hhciAqCQkJZ3VjX2Z3X3BhdGg7Ci0Jc2l6ZV90CQkJCWd1Y19m
d19zaXplOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoJZ3VjX2Z3X29iajsKLQllbnVt
IGludGVsX2d1Y19md19zdGF0dXMJZ3VjX2Z3X2ZldGNoX3N0YXR1czsKLQllbnVtIGludGVsX2d1
Y19md19zdGF0dXMJZ3VjX2Z3X2xvYWRfc3RhdHVzOwotCi0JdWludDE2X3QJCQlndWNfZndfbWFq
b3Jfd2FudGVkOwotCXVpbnQxNl90CQkJZ3VjX2Z3X21pbm9yX3dhbnRlZDsKLQl1aW50MTZfdAkJ
CWd1Y19md19tYWpvcl9mb3VuZDsKLQl1aW50MTZfdAkJCWd1Y19md19taW5vcl9mb3VuZDsKK3N0
cnVjdCBpbnRlbF91Y19mdyB7CisJc3RydWN0IGRybV9kZXZpY2UgKgkJdWNfZGV2OworCWNvbnN0
IGNoYXIgKgkJCXVjX2Z3X3BhdGg7CisJc2l6ZV90CQkJCXVjX2Z3X3NpemU7CisJc3RydWN0IGRy
bV9pOTE1X2dlbV9vYmplY3QgKgl1Y19md19vYmo7CisJZW51bSBpbnRlbF91Y19md19zdGF0dXMg
ZmV0Y2hfc3RhdHVzOworCWVudW0gaW50ZWxfdWNfZndfc3RhdHVzCWxvYWRfc3RhdHVzOworCisJ
dWludDE2X3QgbWFqb3JfdmVyX3dhbnRlZDsKKwl1aW50MTZfdCBtaW5vcl92ZXJfd2FudGVkOwor
CXVpbnQxNl90IG1ham9yX3Zlcl9mb3VuZDsKKwl1aW50MTZfdCBtaW5vcl92ZXJfZm91bmQ7CiAK
IAl1aW50MzJfdCBoZWFkZXJfc2l6ZTsKIAl1aW50MzJfdCBoZWFkZXJfb2Zmc2V0OwpAQCAtODUs
NyArODUsNyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsKIH07CiAKIHN0cnVjdCBpbnRlbF9ndWMg
ewotCXN0cnVjdCBpbnRlbF9ndWNfZncgZ3VjX2Z3OworCXN0cnVjdCBpbnRlbF91Y19mdyBndWNf
Znc7CiAJdWludDMyX3QgbG9nX2ZsYWdzOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICps
b2dfb2JqOwogCkBAIC0xMTQsOSArMTE0LDEwIEBAIHN0cnVjdCBpbnRlbF9ndWMgewogZXh0ZXJu
IHZvaWQgaW50ZWxfZ3VjX3Vjb2RlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBleHRl
cm4gaW50IGludGVsX2d1Y191Y29kZV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogZXh0
ZXJuIHZvaWQgaW50ZWxfZ3VjX3Vjb2RlX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1l
eHRlcm4gY29uc3QgY2hhciAqaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50ZWxfZ3Vj
X2Z3X3N0YXR1cyBzdGF0dXMpOworZXh0ZXJuIGNvbnN0IGNoYXIgKmludGVsX3VjX2Z3X3N0YXR1
c19yZXByKGVudW0gaW50ZWxfdWNfZndfc3RhdHVzIHN0YXR1cyk7CiBleHRlcm4gaW50IGludGVs
X2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogZXh0ZXJuIGludCBpbnRlbF9n
dWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwordm9pZCBpbnRlbF91Y19md19mZXRj
aChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KTsKIAog
LyogaTkxNV9ndWNfc3VibWlzc2lvbi5jICovCiBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9pbml0
KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5
MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xv
YWRlci5jCmluZGV4IDNhY2NkOTEuLjMxOGI1ZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry
bS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl
bF9ndWNfbG9hZGVyLmMKQEAgLTYzLDE2ICs2MywxNiBAQAogTU9EVUxFX0ZJUk1XQVJFKEk5MTVf
U0tMX0dVQ19VQ09ERSk7CiAKIC8qIFVzZXItZnJpZW5kbHkgcmVwcmVzZW50YXRpb24gb2YgYW4g
ZW51bSAqLwotY29uc3QgY2hhciAqaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50ZWxf
Z3VjX2Z3X3N0YXR1cyBzdGF0dXMpCitjb25zdCBjaGFyICppbnRlbF91Y19md19zdGF0dXNfcmVw
cihlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXMpCiB7CiAJc3dpdGNoIChzdGF0dXMpIHsK
LQljYXNlIEdVQ19GSVJNV0FSRV9GQUlMOgorCWNhc2UgVUNfRklSTVdBUkVfRkFJTDoKIAkJcmV0
dXJuICJGQUlMIjsKLQljYXNlIEdVQ19GSVJNV0FSRV9OT05FOgorCWNhc2UgVUNfRklSTVdBUkVf
Tk9ORToKIAkJcmV0dXJuICJOT05FIjsKLQljYXNlIEdVQ19GSVJNV0FSRV9QRU5ESU5HOgorCWNh
c2UgVUNfRklSTVdBUkVfUEVORElORzoKIAkJcmV0dXJuICJQRU5ESU5HIjsKLQljYXNlIEdVQ19G
SVJNV0FSRV9TVUNDRVNTOgorCWNhc2UgVUNfRklSTVdBUkVfU1VDQ0VTUzoKIAkJcmV0dXJuICJT
VUNDRVNTIjsKIAlkZWZhdWx0OgogCQlyZXR1cm4gIlVOS05PV04hIjsKQEAgLTIyNCw4ICsyMjQs
OCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZ3VjX3Vjb2RlX3Jlc3BvbnNlKHN0cnVjdCBkcm1faTkx
NV9wcml2YXRlICpkZXZfcHJpdiwKICAqLwogc3RhdGljIGludCBndWNfdWNvZGVfeGZlcl9kbWEo
c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBpbnRlbF9ndWNf
ZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt
X29iamVjdCAqZndfb2JqID0gZ3VjX2Z3LT5ndWNfZndfb2JqOworCXN0cnVjdCBpbnRlbF91Y19m
dyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OworCXN0cnVjdCBkcm1faTkxNV9nZW1f
b2JqZWN0ICpmd19vYmogPSBndWNfZnctPnVjX2Z3X29iajsKIAl1bnNpZ25lZCBsb25nIG9mZnNl
dDsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnNnID0gZndfb2JqLT5wYWdlczsKIAl1MzIgc3RhdHVzLCBy
c2FbVU9TX1JTQV9TQ1JBVENIX01BWF9DT1VOVF07CkBAIC0yODYsMTcgKzI4NiwxNyBAQCBzdGF0
aWMgaW50IGd1Y191Y29kZV94ZmVyX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By
aXYpCiAgKi8KIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh
dGUgKmRldl9wcml2KQogewotCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZfcHJp
di0+Z3VjLmd1Y19mdzsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+
Z3VjLmd1Y19mdzsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKIAlp
bnQgcmV0OwogCi0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKGd1Y19m
dy0+Z3VjX2Z3X29iaiwgZmFsc2UpOworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0
X2RvbWFpbihndWNfZnctPnVjX2Z3X29iaiwgZmFsc2UpOwogCWlmIChyZXQpIHsKIAkJRFJNX0RF
QlVHX0RSSVZFUigic2V0LWRvbWFpbiBmYWlsZWQgJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7
CiAJfQogCi0JcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKGd1Y19mdy0+Z3VjX2Z3X29iaiwg
MCwgMCk7CisJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKGd1Y19mdy0+dWNfZndfb2JqLCAw
LCAwKTsKIAlpZiAocmV0KSB7CiAJCURSTV9ERUJVR19EUklWRVIoInBpbiBmYWlsZWQgJWRcbiIs
IHJldCk7CiAJCXJldHVybiByZXQ7CkBAIC0zNDgsNyArMzQ4LDcgQEAgc3RhdGljIGludCBndWNf
dWNvZGVfeGZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogV2Uga2Vl
cCB0aGUgb2JqZWN0IHBhZ2VzIGZvciByZXVzZSBkdXJpbmcgcmVzdW1lLiBCdXQgd2UgY2FuIHVu
cGluIGl0CiAJICogbm93IHRoYXQgRE1BIGhhcyBjb21wbGV0ZWQsIHNvIGl0IGRvZXNuJ3QgY29u
dGludWUgdG8gdGFrZSB1cCBzcGFjZS4KIAkgKi8KLQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp
bihndWNfZnctPmd1Y19md19vYmopOworCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGd1Y19m
dy0+dWNfZndfb2JqKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0zNjgsNDggKzM2OCw0OCBAQCBz
dGF0aWMgaW50IGd1Y191Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp
dikKIGludCBpbnRlbF9ndWNfdWNvZGVfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewog
CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0J
c3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OworCXN0
cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OwogCWludCBl
cnIgPSAwOwogCiAJaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKIAkJcmV0dXJuIDA7
CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgc3RhdHVzOiBmZXRjaCAlcywgbG9hZCAlc1xu
IiwKLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1
cyksCi0JCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1Y19md19sb2FkX3N0YXR1
cykpOworCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmZldGNoX3N0YXR1cyksCisJ
CWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+bG9hZF9zdGF0dXMpKTsKIAogCWRpcmVj
dF9pbnRlcnJ1cHRzX3RvX2hvc3QoZGV2X3ByaXYpOwogCi0JaWYgKGd1Y19mdy0+Z3VjX2Z3X2Zl
dGNoX3N0YXR1cyA9PSBHVUNfRklSTVdBUkVfTk9ORSkKKwlpZiAoZ3VjX2Z3LT5mZXRjaF9zdGF0
dXMgPT0gVUNfRklSTVdBUkVfTk9ORSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoZ3VjX2Z3LT5ndWNf
ZndfZmV0Y2hfc3RhdHVzID09IEdVQ19GSVJNV0FSRV9TVUNDRVNTICYmCi0JICAgIGd1Y19mdy0+
Z3VjX2Z3X2xvYWRfc3RhdHVzID09IEdVQ19GSVJNV0FSRV9GQUlMKQorCWlmIChndWNfZnctPmZl
dGNoX3N0YXR1cyA9PSBVQ19GSVJNV0FSRV9TVUNDRVNTICYmCisJICAgIGd1Y19mdy0+bG9hZF9z
dGF0dXMgPT0gVUNfRklSTVdBUkVfRkFJTCkKIAkJcmV0dXJuIC1FTk9FWEVDOwogCi0JZ3VjX2Z3
LT5ndWNfZndfbG9hZF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfUEVORElORzsKKwlndWNfZnctPmxv
YWRfc3RhdHVzID0gVUNfRklSTVdBUkVfUEVORElORzsKIAogCURSTV9ERUJVR19EUklWRVIoIkd1
QyBmdyBmZXRjaCBzdGF0dXMgJXNcbiIsCi0JCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNf
ZnctPmd1Y19md19mZXRjaF9zdGF0dXMpKTsKKwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3Vj
X2Z3LT5mZXRjaF9zdGF0dXMpKTsKIAotCXN3aXRjaCAoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3Rh
dHVzKSB7Ci0JY2FzZSBHVUNfRklSTVdBUkVfRkFJTDoKKwlzd2l0Y2ggKGd1Y19mdy0+ZmV0Y2hf
c3RhdHVzKSB7CisJY2FzZSBVQ19GSVJNV0FSRV9GQUlMOgogCQkvKiBzb21ldGhpbmcgd2VudCB3
cm9uZyA6KCAqLwogCQllcnIgPSAtRUlPOwogCQlnb3RvIGZhaWw7CiAKLQljYXNlIEdVQ19GSVJN
V0FSRV9OT05FOgotCWNhc2UgR1VDX0ZJUk1XQVJFX1BFTkRJTkc6CisJY2FzZSBVQ19GSVJNV0FS
RV9OT05FOgorCWNhc2UgVUNfRklSTVdBUkVfUEVORElORzoKIAlkZWZhdWx0OgogCQkvKiAiY2Fu
J3QgaGFwcGVuIiAqLwotCQlXQVJOX09OQ0UoMSwgIkd1QyBmdyAlcyBpbnZhbGlkIGd1Y19md19m
ZXRjaF9zdGF0dXMgJXMgWyVkXVxuIiwKLQkJCWd1Y19mdy0+Z3VjX2Z3X3BhdGgsCi0JCQlpbnRl
bF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSwKLQkJCWd1
Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyk7CisJCVdBUk5fT05DRSgxLCAiR3VDIGZ3ICVzIGlu
dmFsaWQgZmV0Y2hfc3RhdHVzICVzIFslZF1cbiIsCisJCQlndWNfZnctPnVjX2Z3X3BhdGgsCisJ
CQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmZldGNoX3N0YXR1cyksCisJCQlndWNf
ZnctPmZldGNoX3N0YXR1cyk7CiAJCWVyciA9IC1FTlhJTzsKIAkJZ290byBmYWlsOwogCi0JY2Fz
ZSBHVUNfRklSTVdBUkVfU1VDQ0VTUzoKKwljYXNlIFVDX0ZJUk1XQVJFX1NVQ0NFU1M6CiAJCWJy
ZWFrOwogCX0KIApAQCAtNDIxLDExICs0MjEsMTEgQEAgaW50IGludGVsX2d1Y191Y29kZV9sb2Fk
KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKGVycikKIAkJZ290byBmYWlsOwogCi0JZ3Vj
X2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfU1VDQ0VTUzsKKwlndWNfZnct
PmxvYWRfc3RhdHVzID0gVUNfRklSTVdBUkVfU1VDQ0VTUzsKIAogCURSTV9ERUJVR19EUklWRVIo
Ikd1QyBmdyBzdGF0dXM6IGZldGNoICVzLCBsb2FkICVzXG4iLAotCQlpbnRlbF9ndWNfZndfc3Rh
dHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSwKLQkJaW50ZWxfZ3VjX2Z3X3N0
YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7CisJCWludGVsX3VjX2Z3X3N0
YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKKwkJaW50ZWxfdWNfZndfc3RhdHVzX3Jl
cHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwogCiAJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNz
aW9uKSB7CiAJCS8qIFRoZSBleGVjYnVmX2NsaWVudCB3aWxsIGJlIHJlY3JlYXRlZC4gUmVsZWFz
ZSBpdCBmaXJzdC4gKi8KQEAgLTQ0MCw4ICs0NDAsOCBAQCBpbnQgaW50ZWxfZ3VjX3Vjb2RlX2xv
YWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlyZXR1cm4gMDsKIAogZmFpbDoKLQlpZiAoZ3Vj
X2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPT0gR1VDX0ZJUk1XQVJFX1BFTkRJTkcpCi0JCWd1Y19m
dy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX0ZBSUw7CisJaWYgKGd1Y19mdy0+
bG9hZF9zdGF0dXMgPT0gVUNfRklSTVdBUkVfUEVORElORykKKwkJZ3VjX2Z3LT5sb2FkX3N0YXR1
cyA9IFVDX0ZJUk1XQVJFX0ZBSUw7CiAKIAlkaXJlY3RfaW50ZXJydXB0c190b19ob3N0KGRldl9w
cml2KTsKIAlpOTE1X2d1Y19zdWJtaXNzaW9uX2Rpc2FibGUoZGV2KTsKQEAgLTQ1MCw3ICs0NTAs
MTggQEAgZmFpbDoKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgdm9pZCBndWNfZndfZmV0Y2go
c3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQorLyoq
CisgKiBpbnRlbF91Y19md19mZXRjaCgpIC0gZmV0Y2ggZncgYmxvYiBhbmQgc2F2ZSBpdCB0byBp
bnRlcm5hbCBvYmoKKyAqIEBkZXY6CWRybSBkZXZpY2UKKyAqIEB1Y19mdzoJdGhlIGludGVsX3Vj
X2Z3IHRvIGJlIHNldHVwCisgKgorICogVGhlIGNhbGxlciBzaG91bGQgaGF2ZSBzZXR1cCBmdyBw
YXRoIGFuZCBmdyB2ZXJzaW9uIHJlcXVpcmVkLiBUaGlzIGZ1bmN0aW9uCisgKiBmaXJzdCBmZXRj
aCB0aGUgZncgYmxvYiBmcm9tIGZpbGUgc3lzdGVtLiBJZiBzdWNjZWVkLCBpdCB3aWxsIGRvIHNv
bWUgYmFzaWMKKyAqIGNoZWNrIGJhc2VkIG9uIGNzcyBoZWFkZXIgaW5mb3JtYXRpb24uIEF0IGxh
c3QsIGEgR0VNIG9iaiBpcyBjcmVhdGVkIGFuZAorICogZmlsbGVkIHdpdGggdGhlIGZ3IGRhdGEu
IFRoaXMgb2JqIHdpbGwgYmUgbG9hZGVkIHRvIEhXIGF0IGxhdGVyIHN0YWdlIG9mCisgKiBkcml2
ZXIgaW5pdCBwcm9jZXNzLgorICovCit2b2lkIGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1f
ZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCiB7CiAJc3RydWN0IGRybV9p
OTE1X2dlbV9vYmplY3QgKm9iajsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwpAQCAtNDU4
LDE3ICs0NjksMTcgQEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNl
ICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdykKIAlzaXplX3Qgc2l6ZTsKIAlpbnQg
ZXJyOwogCi0JRFJNX0RFQlVHX0RSSVZFUigiYmVmb3JlIHJlcXVlc3RpbmcgZmlybXdhcmU6IEd1
QyBmdyBmZXRjaCBzdGF0dXMgJXNcbiIsCi0JCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNf
ZnctPmd1Y19md19mZXRjaF9zdGF0dXMpKTsKKwlEUk1fREVCVUdfRFJJVkVSKCJiZWZvcmUgcmVx
dWVzdGluZyBmaXJtd2FyZTogdUMgZncgZmV0Y2ggc3RhdHVzICVzXG4iLAorCQlpbnRlbF91Y19m
d19zdGF0dXNfcmVwcih1Y19mdy0+ZmV0Y2hfc3RhdHVzKSk7CiAKLQllcnIgPSByZXF1ZXN0X2Zp
cm13YXJlKCZmdywgZ3VjX2Z3LT5ndWNfZndfcGF0aCwgJmRldi0+cGRldi0+ZGV2KTsKKwllcnIg
PSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgdWNfZnctPnVjX2Z3X3BhdGgsICZkZXYtPnBkZXYtPmRl
dik7CiAJaWYgKGVycikKIAkJZ290byBmYWlsOwogCWlmICghZncpCiAJCWdvdG8gZmFpbDsKIAot
CURSTV9ERUJVR19EUklWRVIoImZldGNoIEd1QyBmdyBmcm9tICVzIHN1Y2NlZWRlZCwgZncgJXBc
biIsCi0JCWd1Y19mdy0+Z3VjX2Z3X3BhdGgsIGZ3KTsKKwlEUk1fREVCVUdfRFJJVkVSKCJmZXRj
aCB1QyBmdyBmcm9tICVzIHN1Y2NlZWRlZCwgZncgJXBcbiIsCisJCXVjX2Z3LT51Y19md19wYXRo
LCBmdyk7CiAKIAkvKiBDaGVjayB0aGUgc2l6ZSBvZiB0aGUgYmxvYiBiZWZvcmUgZXhhbWluaW5n
IGJ1ZmZlciBjb250ZW50cyAqLwogCWlmIChmdy0+c2l6ZSA8IHNpemVvZihzdHJ1Y3QgZ3VjX2Nz
c19oZWFkZXIpKSB7CkBAIC00NzksMzYgKzQ5MCwzNiBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0
Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQog
CWNzcyA9IChzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIgKilmdy0+ZGF0YTsKIAogCS8qIEZpcm13YXJl
IGJpdHMgYWx3YXlzIHN0YXJ0IGZyb20gaGVhZGVyICovCi0JZ3VjX2Z3LT5oZWFkZXJfb2Zmc2V0
ID0gMDsKLQlndWNfZnctPmhlYWRlcl9zaXplID0gKGNzcy0+aGVhZGVyX3NpemVfZHcgLSBjc3Mt
Pm1vZHVsdXNfc2l6ZV9kdyAtCisJdWNfZnctPmhlYWRlcl9vZmZzZXQgPSAwOworCXVjX2Z3LT5o
ZWFkZXJfc2l6ZSA9IChjc3MtPmhlYWRlcl9zaXplX2R3IC0gY3NzLT5tb2R1bHVzX3NpemVfZHcg
LQogCQljc3MtPmtleV9zaXplX2R3IC0gY3NzLT5leHBvbmVudF9zaXplX2R3KSAqIHNpemVvZih1
MzIpOwogCi0JaWYgKGd1Y19mdy0+aGVhZGVyX3NpemUgIT0gc2l6ZW9mKHN0cnVjdCBndWNfY3Nz
X2hlYWRlcikpIHsKKwlpZiAodWNfZnctPmhlYWRlcl9zaXplICE9IHNpemVvZihzdHJ1Y3QgZ3Vj
X2Nzc19oZWFkZXIpKSB7CiAJCURSTV9FUlJPUigiQ1NTIGhlYWRlciBkZWZpbml0aW9uIG1pc21h
dGNoXG4iKTsKIAkJZ290byBmYWlsOwogCX0KIAogCS8qIHRoZW4sIHVDb2RlICovCi0JZ3VjX2Z3
LT51Y29kZV9vZmZzZXQgPSBndWNfZnctPmhlYWRlcl9vZmZzZXQgKyBndWNfZnctPmhlYWRlcl9z
aXplOwotCWd1Y19mdy0+dWNvZGVfc2l6ZSA9IChjc3MtPnNpemVfZHcgLSBjc3MtPmhlYWRlcl9z
aXplX2R3KSAqIHNpemVvZih1MzIpOworCXVjX2Z3LT51Y29kZV9vZmZzZXQgPSB1Y19mdy0+aGVh
ZGVyX29mZnNldCArIHVjX2Z3LT5oZWFkZXJfc2l6ZTsKKwl1Y19mdy0+dWNvZGVfc2l6ZSA9IChj
c3MtPnNpemVfZHcgLSBjc3MtPmhlYWRlcl9zaXplX2R3KSAqIHNpemVvZih1MzIpOwogCiAJLyog
bm93IFJTQSAqLwogCWlmIChjc3MtPmtleV9zaXplX2R3ICE9IFVPU19SU0FfU0NSQVRDSF9NQVhf
Q09VTlQpIHsKIAkJRFJNX0VSUk9SKCJSU0Ega2V5IHNpemUgaXMgYmFkXG4iKTsKIAkJZ290byBm
YWlsOwogCX0KLQlndWNfZnctPnJzYV9vZmZzZXQgPSBndWNfZnctPnVjb2RlX29mZnNldCArIGd1
Y19mdy0+dWNvZGVfc2l6ZTsKLQlndWNfZnctPnJzYV9zaXplID0gY3NzLT5rZXlfc2l6ZV9kdyAq
IHNpemVvZih1MzIpOworCXVjX2Z3LT5yc2Ffb2Zmc2V0ID0gdWNfZnctPnVjb2RlX29mZnNldCAr
IHVjX2Z3LT51Y29kZV9zaXplOworCXVjX2Z3LT5yc2Ffc2l6ZSA9IGNzcy0+a2V5X3NpemVfZHcg
KiBzaXplb2YodTMyKTsKIAogCS8qIEF0IGxlYXN0LCBpdCBzaG91bGQgaGF2ZSBoZWFkZXIsIHVD
b2RlIGFuZCBSU0EuIFNpemUgb2YgYWxsIHRocmVlLiAqLwotCXNpemUgPSBndWNfZnctPmhlYWRl
cl9zaXplICsgZ3VjX2Z3LT51Y29kZV9zaXplICsgZ3VjX2Z3LT5yc2Ffc2l6ZTsKKwlzaXplID0g
dWNfZnctPmhlYWRlcl9zaXplICsgdWNfZnctPnVjb2RlX3NpemUgKyB1Y19mdy0+cnNhX3NpemU7
CiAJaWYgKGZ3LT5zaXplIDwgc2l6ZSkgewogCQlEUk1fRVJST1IoIk1pc3NpbmcgZmlybXdhcmUg
Y29tcG9uZW50c1xuIik7CiAJCWdvdG8gZmFpbDsKIAl9CiAKIAkvKiBIZWFkZXIgYW5kIHVDb2Rl
IHdpbGwgYmUgbG9hZGVkIHRvIFdPUENNLiBTaXplIG9mIHRoZSB0d28uICovCi0Jc2l6ZSA9IGd1
Y19mdy0+aGVhZGVyX3NpemUgKyBndWNfZnctPnVjb2RlX3NpemU7CisJc2l6ZSA9IHVjX2Z3LT5o
ZWFkZXJfc2l6ZSArIHVjX2Z3LT51Y29kZV9zaXplOwogCiAJLyogVG9wIDMyayBvZiBXT1BDTSBp
cyByZXNlcnZlZCAoOEsgc3RhY2sgKyAyNGsgUkM2IGNvbnRleHQpLiAqLwogCWlmIChzaXplID4g
R1VDX1dPUENNX1NJWkVfVkFMVUUgLSAweDgwMDApIHsKQEAgLTUxNywyNiArNTI4LDI2IEBAIHN0
YXRpYyB2b2lkIGd1Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50
ZWxfZ3VjX2Z3ICpndWNfZncpCiAJfQogCiAJLyoKLQkgKiBUaGUgR3VDIGZpcm13YXJlIGltYWdl
IGhhcyB0aGUgdmVyc2lvbiBudW1iZXIgZW1iZWRkZWQgYXQgYSB3ZWxsLWtub3duCisJICogVGhl
IHVDIGZpcm13YXJlIGltYWdlIGhhcyB0aGUgdmVyc2lvbiBudW1iZXIgZW1iZWRkZWQgYXQgYSB3
ZWxsLWtub3duCiAJICogb2Zmc2V0IHdpdGhpbiB0aGUgZmlybXdhcmUgYmxvYjsgbm90ZSB0aGF0
IG1ham9yIC8gbWlub3IgdmVyc2lvbiBhcmUKIAkgKiBUV08gYnl0ZXMgZWFjaCAoaS5lLiB1MTYp
LCBhbHRob3VnaCBhbGwgcG9pbnRlcnMgYW5kIG9mZnNldHMgYXJlIGRlZmluZWQKIAkgKiBpbiB0
ZXJtcyBvZiBieXRlcyAodTgpLgogCSAqLwotCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kID0g
Y3NzLT5ndWNfc3dfdmVyc2lvbiA+PiAxNjsKLQlndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCA9
IGNzcy0+Z3VjX3N3X3ZlcnNpb24gJiAweEZGRkY7Ci0KLQlpZiAoZ3VjX2Z3LT5ndWNfZndfbWFq
b3JfZm91bmQgIT0gZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkIHx8Ci0JICAgIGd1Y19mdy0+
Z3VjX2Z3X21pbm9yX2ZvdW5kIDwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkKSB7Ci0JCURS
TV9FUlJPUigiR3VDIGZpcm13YXJlIHZlcnNpb24gJWQuJWQsIHJlcXVpcmVkICVkLiVkXG4iLAot
CQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQsIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5k
LAotCQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93
YW50ZWQpOworCXVjX2Z3LT5tYWpvcl92ZXJfZm91bmQgPSBjc3MtPmd1Y19zd192ZXJzaW9uID4+
IDE2OworCXVjX2Z3LT5taW5vcl92ZXJfZm91bmQgPSBjc3MtPmd1Y19zd192ZXJzaW9uICYgMHhG
RkZGOworCisJaWYgKHVjX2Z3LT5tYWpvcl92ZXJfZm91bmQgIT0gdWNfZnctPm1ham9yX3Zlcl93
YW50ZWQgfHwKKwkgICAgdWNfZnctPm1pbm9yX3Zlcl9mb3VuZCA8IHVjX2Z3LT5taW5vcl92ZXJf
d2FudGVkKSB7CisJCURSTV9FUlJPUigiRmlybXdhcmUgdmVyc2lvbiAlZC4lZCwgcmVxdWlyZWQg
JWQuJWRcbiIsCisJCQl1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kLCB1Y19mdy0+bWlub3JfdmVyX2Zv
dW5kLAorCQkJdWNfZnctPm1ham9yX3Zlcl93YW50ZWQsIHVjX2Z3LT5taW5vcl92ZXJfd2FudGVk
KTsKIAkJZXJyID0gLUVOT0VYRUM7CiAJCWdvdG8gZmFpbDsKIAl9CiAKIAlEUk1fREVCVUdfRFJJ
VkVSKCJmaXJtd2FyZSB2ZXJzaW9uICVkLiVkIE9LIChtaW5pbXVtICVkLiVkKVxuIiwKLQkJCWd1
Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kLCBndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCwKLQkJ
CWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVk
KTsKKwkJCXVjX2Z3LT5tYWpvcl92ZXJfZm91bmQsIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQsCisJ
CQl1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCwgdWNfZnctPm1pbm9yX3Zlcl93YW50ZWQpOwogCiAJ
bXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9j
cmVhdGVfZnJvbV9kYXRhKGRldiwgZnctPmRhdGEsIGZ3LT5zaXplKTsKQEAgLTU0NiwzMSArNTU3
LDMxIEBAIHN0YXRpYyB2b2lkIGd1Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz
dHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncpCiAJCWdvdG8gZmFpbDsKIAl9CiAKLQlndWNfZnct
Pmd1Y19md19vYmogPSBvYmo7Ci0JZ3VjX2Z3LT5ndWNfZndfc2l6ZSA9IGZ3LT5zaXplOworCXVj
X2Z3LT51Y19md19vYmogPSBvYmo7CisJdWNfZnctPnVjX2Z3X3NpemUgPSBmdy0+c2l6ZTsKIAog
CURSTV9ERUJVR19EUklWRVIoIkd1QyBmdyBmZXRjaCBzdGF0dXMgU1VDQ0VTUywgb2JqICVwXG4i
LAotCQkJZ3VjX2Z3LT5ndWNfZndfb2JqKTsKKwkJCXVjX2Z3LT51Y19md19vYmopOwogCiAJcmVs
ZWFzZV9maXJtd2FyZShmdyk7Ci0JZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJ
Uk1XQVJFX1NVQ0NFU1M7CisJdWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX1NVQ0NF
U1M7CiAJcmV0dXJuOwogCiBmYWlsOgogCURSTV9ERUJVR19EUklWRVIoIkd1QyBmdyBmZXRjaCBz
dGF0dXMgRkFJTDsgZXJyICVkLCBmdyAlcCwgb2JqICVwXG4iLAotCQllcnIsIGZ3LCBndWNfZnct
Pmd1Y19md19vYmopOworCQllcnIsIGZ3LCB1Y19mdy0+dWNfZndfb2JqKTsKIAlEUk1fRVJST1Io
IkZhaWxlZCB0byBmZXRjaCBHdUMgZmlybXdhcmUgZnJvbSAlcyAoZXJyb3IgJWQpXG4iLAotCQkg
IGd1Y19mdy0+Z3VjX2Z3X3BhdGgsIGVycik7CisJCSAgdWNfZnctPnVjX2Z3X3BhdGgsIGVycik7
CiAKIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0Jb2JqID0gZ3VjX2Z3LT5ndWNf
Zndfb2JqOworCW9iaiA9IHVjX2Z3LT51Y19md19vYmo7CiAJaWYgKG9iaikKIAkJZHJtX2dlbV9v
YmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7Ci0JZ3VjX2Z3LT5ndWNfZndfb2JqID0gTlVM
TDsKKwl1Y19mdy0+dWNfZndfb2JqID0gTlVMTDsKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0
X211dGV4KTsKIAogCXJlbGVhc2VfZmlybXdhcmUoZncpOwkJLyogT0sgZXZlbiBpZiBmdyBpcyBO
VUxMICovCi0JZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX0ZBSUw7
CisJdWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX0ZBSUw7CiB9CiAKIC8qKgpAQCAt
NTg1LDcgKzU5Niw3IEBAIGZhaWw6CiB2b2lkIGludGVsX2d1Y191Y29kZV9pbml0KHN0cnVjdCBk
cm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g
ZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3By
aXYtPmd1Yy5ndWNfZnc7CisJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYt
Pmd1Yy5ndWNfZnc7CiAJY29uc3QgY2hhciAqZndfcGF0aDsKIAogCWlmICghSEFTX0dVQ19TQ0hF
RChkZXYpKQpAQCAtNTk1LDggKzYwNiw4IEBAIHZvaWQgaW50ZWxfZ3VjX3Vjb2RlX2luaXQoc3Ry
dWN0IGRybV9kZXZpY2UgKmRldikKIAkJZndfcGF0aCA9IE5VTEw7CiAJfSBlbHNlIGlmIChJU19T
S1lMQUtFKGRldikpIHsKIAkJZndfcGF0aCA9IEk5MTVfU0tMX0dVQ19VQ09ERTsKLQkJZ3VjX2Z3
LT5ndWNfZndfbWFqb3Jfd2FudGVkID0gNDsKLQkJZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVk
ID0gMzsKKwkJZ3VjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gNDsKKwkJZ3VjX2Z3LT5taW5vcl92
ZXJfd2FudGVkID0gMzsKIAl9IGVsc2UgewogCQlpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbiA9
IGZhbHNlOwogCQlmd19wYXRoID0gIiI7CS8qIHVua25vd24gZGV2aWNlICovCkBAIC02MDUsMjMg
KzYxNiwyMyBAQCB2b2lkIGludGVsX2d1Y191Y29kZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk
ZXYpCiAJaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKIAkJcmV0dXJuOwogCi0JZ3Vj
X2Z3LT5ndWNfZGV2ID0gZGV2OwotCWd1Y19mdy0+Z3VjX2Z3X3BhdGggPSBmd19wYXRoOwotCWd1
Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9OT05FOwotCWd1Y19mdy0+
Z3VjX2Z3X2xvYWRfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX05PTkU7CisJZ3VjX2Z3LT51Y19kZXYg
PSBkZXY7CisJZ3VjX2Z3LT51Y19md19wYXRoID0gZndfcGF0aDsKKwlndWNfZnctPmZldGNoX3N0
YXR1cyA9IFVDX0ZJUk1XQVJFX05PTkU7CisJZ3VjX2Z3LT5sb2FkX3N0YXR1cyA9IFVDX0ZJUk1X
QVJFX05PTkU7CiAKIAlpZiAoZndfcGF0aCA9PSBOVUxMKQogCQlyZXR1cm47CiAKIAlpZiAoKmZ3
X3BhdGggPT0gJ1wwJykgewogCQlEUk1fRVJST1IoIk5vIEd1QyBmaXJtd2FyZSBrbm93biBmb3Ig
dGhpcyBwbGF0Zm9ybVxuIik7Ci0JCWd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19G
SVJNV0FSRV9GQUlMOworCQlndWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX0ZBSUw7
CiAJCXJldHVybjsKIAl9CiAKLQlndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMgPSBHVUNfRklS
TVdBUkVfUEVORElORzsKKwlndWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX1BFTkRJ
Tkc7CiAJRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZpcm13YXJlIHBlbmRpbmcsIHBhdGggJXNcbiIs
IGZ3X3BhdGgpOwotCWd1Y19md19mZXRjaChkZXYsIGd1Y19mdyk7CisJaW50ZWxfdWNfZndfZmV0
Y2goZGV2LCBndWNfZncpOwogCS8qIHN0YXR1cyBtdXN0IG5vdyBiZSBGQUlMIG9yIFNVQ0NFU1Mg
Ki8KIH0KIApAQCAtNjMyLDE3ICs2NDMsMTcgQEAgdm9pZCBpbnRlbF9ndWNfdWNvZGVfaW5pdChz
dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogdm9pZCBpbnRlbF9ndWNfdWNvZGVfZmluaShzdHJ1Y3Qg
ZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9
IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9w
cml2LT5ndWMuZ3VjX2Z3OworCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2
LT5ndWMuZ3VjX2Z3OwogCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCWRpcmVj
dF9pbnRlcnJ1cHRzX3RvX2hvc3QoZGV2X3ByaXYpOwogCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZGlz
YWJsZShkZXYpOwogCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShkZXYpOwogCi0JaWYgKGd1Y19m
dy0+Z3VjX2Z3X29iaikKLQkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmd1Y19mdy0+Z3Vj
X2Z3X29iai0+YmFzZSk7Ci0JZ3VjX2Z3LT5ndWNfZndfb2JqID0gTlVMTDsKKwlpZiAoZ3VjX2Z3
LT51Y19md19vYmopCisJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZndWNfZnctPnVjX2Z3
X29iai0+YmFzZSk7CisJZ3VjX2Z3LT51Y19md19vYmogPSBOVUxMOwogCW11dGV4X3VubG9jaygm
ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCi0JZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzID0gR1VD
X0ZJUk1XQVJFX05PTkU7CisJZ3VjX2Z3LT5mZXRjaF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9OT05F
OwogfQotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w
Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs
LWdmeAo=

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Daniel Vetter <daniel@ffwll.ch>
Subject: Re: [PATCH v2 1/6] drm/i915/guc: Make the GuC fw
 loading helper functions general
Date: Tue, 16 Feb 2016 16:37:44 +0100
Message-ID: <20160216153744.GM32705@phenom.ffwll.local>
References: <1454972573-16290-1-git-send-email-yu.dai@intel.com>
 <1454972573-16290-2-git-send-email-yu.dai@intel.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <intel-gfx-bounces@lists.freedesktop.org>
Received: from mail-wm0-f45.google.com (mail-wm0-f45.google.com [74.125.82.45])
 by gabe.freedesktop.org (Postfix) with ESMTPS id 6A0176E17B
 for <intel-gfx@lists.freedesktop.org>; Tue, 16 Feb 2016 15:37:19 +0000 (UTC)
Received: by mail-wm0-f45.google.com with SMTP id g62so197062035wme.0
 for <intel-gfx@lists.freedesktop.org>; Tue, 16 Feb 2016 07:37:19 -0800 (PST)
Content-Disposition: inline
In-Reply-To: <1454972573-16290-2-git-send-email-yu.dai@intel.com>
List-Unsubscribe: <https://lists.freedesktop.org/mailman/options/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <https://lists.freedesktop.org/archives/intel-gfx>
List-Post: <mailto:intel-gfx@lists.freedesktop.org>
List-Help: <mailto:intel-gfx-request@lists.freedesktop.org?subject=help>
List-Subscribe: <https://lists.freedesktop.org/mailman/listinfo/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=subscribe>
Errors-To: intel-gfx-bounces@lists.freedesktop.org
Sender: "Intel-gfx" <intel-gfx-bounces@lists.freedesktop.org>
To: yu.dai@intel.com
Cc: intel-gfx@lists.freedesktop.org
List-Id: intel-gfx@lists.freedesktop.org

T24gTW9uLCBGZWIgMDgsIDIwMTYgYXQgMDM6MDI6NDhQTSAtMDgwMCwgeXUuZGFpQGludGVsLmNv
bSB3cm90ZToKPiBGcm9tOiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KPiAKPiBSZW5hbWUg
c29tZSBvZiB0aGUgR3VDIGZ3IGxvYWRpbmcgY29kZSB0byBtYWtlIHRoZW0gbW9yZSBnZW5lcmFs
LiBXZQo+IHdpbGwgdXRpbGl6ZSB0aGVtIGZvciBIdUMgbG9hZGluZyBhcyB3ZWxsLgo+ICAgICBz
L2ludGVsX2d1Y19mdy9pbnRlbF91Y19mdy9nCj4gICAgIHMvR1VDX0ZJUk1XQVJFL1VDX0ZJUk1X
QVJFL2cKPiAKPiBTdHJ1Y3QgaW50ZWxfZ3VjX2Z3IGlzIHJlbmFtZWQgdG8gaW50ZWxfdWNfZncu
IFByZWZpeCBvZiB0dHMgbWVtYmVycywKPiBzdWNoIGFzICdndWMnIG9yICdndWNfZncnIGVpdGhl
ciBpcyByZW5hbWVkIHRvICd1Yycgb3IgcmVtb3ZlZCBmb3IKPiBzYW1lIHB1cnBvc2UuCj4gCj4g
U2lnbmVkLW9mZi1ieTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1i
eTogUGV0ZXIgQW50b2luZSA8cGV0ZXIuYW50b2luZUBpbnRlbC5jb20+CgpJIHN0aWxsIGRvbid0
IHNlZSB3aGF0IHRoaXMgZmlybXdhcmUgbG9hZGVyIHdyYXBwZXIgYXJvdW5kIHRoZSBtYWlubGlu
ZQpmaXJtd2FyZSBsb2FkZXIgcHJvdmlkZS4gSXQgaGFzIGEgY29tcGxpY2F0ZWQgc3RhdHVzIG1h
dHJpeCBmb3Igb25lLCB0aGF0CmRvZXNuJ3QgcmVhbGx5IHNlZW0gdG8gYmUgcmVxdWlyZWQgLSBl
aXRoZXIgdGhlIGZpcm13YXJlIGlzIHRoZXJlIG9yIG5vdC4KQWxsIHRoYXQgKl9zdGF0dXMgc3R1
ZmYgc2VlbXMgdW5lY2Vzc2FyeSB0byBtZS4KCkNhbiB3ZSBpbnN0ZWFkIGp1c3QgcmVkdWNlIHRo
aXM/IEFuZCB0aGVuIHVzZSBwbGFpbiBvbGQgZmlybXdhcmUgbG9hZGVyCmxpa2UgZm9yIGRtYywg
bWF5YmUgd2l0aCBhIHNtYWxsIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgbG9hZHMgaXQgaW50
byBhCmdlbSBiby4gSW4gY2FzZSBvZiBkb3VidCBJIHRoaW5rIG9wZW4tY29kaW5nIHVzaW5nIGEg
c2V0IG9mIGhlbHBlcnMgKHRvCmxvYWQgZmlybXdhcmUsIHRocm93IGl0IGludG8gYSBnZW0gb2Jq
IGFuZCB0aGVuIGp1c3QgdXNlIGNvcmUgZ2VtIGZ1bmN0aW9uCnRvIGJpbmQgdGhlIHZtYSBzb21l
d2hlcmUpIGlzIG11Y2ggYmV0dGVyLgotRGFuaWVsCgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v
aTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgfCAgMTIgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1
L2ludGVsX2d1Yy5oICAgICAgICB8ICAzOSArKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1
L2ludGVsX2d1Y19sb2FkZXIuYyB8IDE3NyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t
LQo+ICAzIGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspLCAxMDggZGVsZXRpb25zKC0p
Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIv
ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBlYzBjMmEwNWUuLjg3
M2YxYjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK
PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0yNDAyLDcg
KzI0MDIsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ3VjX2xvYWRfc3RhdHVzX2luZm8oc3RydWN0IHNl
cV9maWxlICptLCB2b2lkICpkYXRhKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqbm9k
ZSA9IG0tPnByaXZhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBu
b2RlLT5taW5vci0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1
Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKPiArCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3Vj
X2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+ICAJdTMyIHRtcCwgaTsKPiAgCj4gIAlpZiAo
IUhBU19HVUNfVUNPREUoZGV2X3ByaXYtPmRldikpCj4gQEAgLTI0MTAsMTUgKzI0MTAsMTUgQEAg
c3RhdGljIGludCBpOTE1X2d1Y19sb2FkX3N0YXR1c19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwg
dm9pZCAqZGF0YSkKPiAgCj4gIAlzZXFfcHJpbnRmKG0sICJHdUMgZmlybXdhcmUgc3RhdHVzOlxu
Iik7Cj4gIAlzZXFfcHJpbnRmKG0sICJcdHBhdGg6ICVzXG4iLAo+IC0JCWd1Y19mdy0+Z3VjX2Z3
X3BhdGgpOwo+ICsJCWd1Y19mdy0+dWNfZndfcGF0aCk7Cj4gIAlzZXFfcHJpbnRmKG0sICJcdGZl
dGNoOiAlc1xuIiwKPiAtCQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndf
ZmV0Y2hfc3RhdHVzKSk7Cj4gKwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5mZXRj
aF9zdGF0dXMpKTsKPiAgCXNlcV9wcmludGYobSwgIlx0bG9hZDogJXNcbiIsCj4gLQkJaW50ZWxf
Z3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7Cj4gKwkJaW50
ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwo+ICAJc2VxX3ByaW50
ZihtLCAiXHR2ZXJzaW9uIHdhbnRlZDogJWQuJWRcbiIsCj4gLQkJZ3VjX2Z3LT5ndWNfZndfbWFq
b3Jfd2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpOwo+ICsJCWd1Y19mdy0+bWFq
b3JfdmVyX3dhbnRlZCwgZ3VjX2Z3LT5taW5vcl92ZXJfd2FudGVkKTsKPiAgCXNlcV9wcmludGYo
bSwgIlx0dmVyc2lvbiBmb3VuZDogJWQuJWRcbiIsCj4gLQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jf
Zm91bmQsIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kKTsKPiArCQlndWNfZnctPm1ham9yX3Zl
cl9mb3VuZCwgZ3VjX2Z3LT5taW5vcl92ZXJfZm91bmQpOwo+ICAJc2VxX3ByaW50ZihtLCAiXHRo
ZWFkZXI6IG9mZnNldCBpcyAlZDsgc2l6ZSA9ICVkXG4iLAo+ICAJCWd1Y19mdy0+aGVhZGVyX29m
ZnNldCwgZ3VjX2Z3LT5oZWFkZXJfc2l6ZSk7Cj4gIAlzZXFfcHJpbnRmKG0sICJcdHVDb2RlOiBv
ZmZzZXQgaXMgJWQ7IHNpemUgPSAlZFxuIiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt
L2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IGlu
ZGV4IDczMDAyZTkuLjRlMjBiMGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv
aW50ZWxfZ3VjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IEBA
IC01MiwyOSArNTIsMjkgQEAgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCB7Cj4gIAlpbnQgcmV0Y29k
ZTsKPiAgfTsKPiAgCj4gLWVudW0gaW50ZWxfZ3VjX2Z3X3N0YXR1cyB7Cj4gLQlHVUNfRklSTVdB
UkVfRkFJTCA9IC0xLAo+IC0JR1VDX0ZJUk1XQVJFX05PTkUgPSAwLAo+IC0JR1VDX0ZJUk1XQVJF
X1BFTkRJTkcsCj4gLQlHVUNfRklSTVdBUkVfU1VDQ0VTUwo+ICtlbnVtIGludGVsX3VjX2Z3X3N0
YXR1cyB7Cj4gKwlVQ19GSVJNV0FSRV9GQUlMID0gLTEsCj4gKwlVQ19GSVJNV0FSRV9OT05FID0g
MCwKPiArCVVDX0ZJUk1XQVJFX1BFTkRJTkcsCj4gKwlVQ19GSVJNV0FSRV9TVUNDRVNTCj4gIH07
Cj4gIAo+ICAvKgo+ICAgKiBUaGlzIHN0cnVjdHVyZSBlbmNhcHN1bGF0ZXMgYWxsIHRoZSBkYXRh
IG5lZWRlZCBkdXJpbmcgdGhlIHByb2Nlc3MKPiAgICogb2YgZmV0Y2hpbmcsIGNhY2hpbmcsIGFu
ZCBsb2FkaW5nIHRoZSBmaXJtd2FyZSBpbWFnZSBpbnRvIHRoZSBHdUMuCj4gICAqLwo+IC1zdHJ1
Y3QgaW50ZWxfZ3VjX2Z3IHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICoJCWd1Y19kZXY7Cj4gLQlj
b25zdCBjaGFyICoJCQlndWNfZndfcGF0aDsKPiAtCXNpemVfdAkJCQlndWNfZndfc2l6ZTsKPiAt
CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoJZ3VjX2Z3X29iajsKPiAtCWVudW0gaW50ZWxf
Z3VjX2Z3X3N0YXR1cwlndWNfZndfZmV0Y2hfc3RhdHVzOwo+IC0JZW51bSBpbnRlbF9ndWNfZndf
c3RhdHVzCWd1Y19md19sb2FkX3N0YXR1czsKPiAtCj4gLQl1aW50MTZfdAkJCWd1Y19md19tYWpv
cl93YW50ZWQ7Cj4gLQl1aW50MTZfdAkJCWd1Y19md19taW5vcl93YW50ZWQ7Cj4gLQl1aW50MTZf
dAkJCWd1Y19md19tYWpvcl9mb3VuZDsKPiAtCXVpbnQxNl90CQkJZ3VjX2Z3X21pbm9yX2ZvdW5k
Owo+ICtzdHJ1Y3QgaW50ZWxfdWNfZncgewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKgkJdWNfZGV2
Owo+ICsJY29uc3QgY2hhciAqCQkJdWNfZndfcGF0aDsKPiArCXNpemVfdAkJCQl1Y19md19zaXpl
Owo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgl1Y19md19vYmo7Cj4gKwllbnVtIGlu
dGVsX3VjX2Z3X3N0YXR1cyBmZXRjaF9zdGF0dXM7Cj4gKwllbnVtIGludGVsX3VjX2Z3X3N0YXR1
cwlsb2FkX3N0YXR1czsKPiArCj4gKwl1aW50MTZfdCBtYWpvcl92ZXJfd2FudGVkOwo+ICsJdWlu
dDE2X3QgbWlub3JfdmVyX3dhbnRlZDsKPiArCXVpbnQxNl90IG1ham9yX3Zlcl9mb3VuZDsKPiAr
CXVpbnQxNl90IG1pbm9yX3Zlcl9mb3VuZDsKPiAgCj4gIAl1aW50MzJfdCBoZWFkZXJfc2l6ZTsK
PiAgCXVpbnQzMl90IGhlYWRlcl9vZmZzZXQ7Cj4gQEAgLTg1LDcgKzg1LDcgQEAgc3RydWN0IGlu
dGVsX2d1Y19mdyB7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfZ3VjIHsKPiAtCXN0cnVjdCBp
bnRlbF9ndWNfZncgZ3VjX2Z3Owo+ICsJc3RydWN0IGludGVsX3VjX2Z3IGd1Y19mdzsKPiAgCXVp
bnQzMl90IGxvZ19mbGFnczsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpsb2dfb2Jq
Owo+ICAKPiBAQCAtMTE0LDkgKzExNCwxMCBAQCBzdHJ1Y3QgaW50ZWxfZ3VjIHsKPiAgZXh0ZXJu
IHZvaWQgaW50ZWxfZ3VjX3Vjb2RlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIGV4
dGVybiBpbnQgaW50ZWxfZ3VjX3Vjb2RlX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4g
IGV4dGVybiB2b2lkIGludGVsX2d1Y191Y29kZV9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp
Owo+IC1leHRlcm4gY29uc3QgY2hhciAqaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50
ZWxfZ3VjX2Z3X3N0YXR1cyBzdGF0dXMpOwo+ICtleHRlcm4gY29uc3QgY2hhciAqaW50ZWxfdWNf
Zndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF91Y19md19zdGF0dXMgc3RhdHVzKTsKPiAgZXh0ZXJu
IGludCBpbnRlbF9ndWNfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgZXh0ZXJu
IGludCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICt2b2lkIGlu
dGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF91Y19m
dyAqdWNfZncpOwo+ICAKPiAgLyogaTkxNV9ndWNfc3VibWlzc2lvbi5jICovCj4gIGludCBpOTE1
X2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gZGlmZiAtLWdp
dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBiL2RyaXZlcnMvZ3B1
L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+IGluZGV4IDNhY2NkOTEuLjMxOGI1ZmQgMTAw
NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gKysr
IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gQEAgLTYzLDE2ICs2
MywxNiBAQAo+ICBNT0RVTEVfRklSTVdBUkUoSTkxNV9TS0xfR1VDX1VDT0RFKTsKPiAgCj4gIC8q
IFVzZXItZnJpZW5kbHkgcmVwcmVzZW50YXRpb24gb2YgYW4gZW51bSAqLwo+IC1jb25zdCBjaGFy
ICppbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzIHN0YXR1
cykKPiArY29uc3QgY2hhciAqaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF91Y19m
d19zdGF0dXMgc3RhdHVzKQo+ICB7Cj4gIAlzd2l0Y2ggKHN0YXR1cykgewo+IC0JY2FzZSBHVUNf
RklSTVdBUkVfRkFJTDoKPiArCWNhc2UgVUNfRklSTVdBUkVfRkFJTDoKPiAgCQlyZXR1cm4gIkZB
SUwiOwo+IC0JY2FzZSBHVUNfRklSTVdBUkVfTk9ORToKPiArCWNhc2UgVUNfRklSTVdBUkVfTk9O
RToKPiAgCQlyZXR1cm4gIk5PTkUiOwo+IC0JY2FzZSBHVUNfRklSTVdBUkVfUEVORElORzoKPiAr
CWNhc2UgVUNfRklSTVdBUkVfUEVORElORzoKPiAgCQlyZXR1cm4gIlBFTkRJTkciOwo+IC0JY2Fz
ZSBHVUNfRklSTVdBUkVfU1VDQ0VTUzoKPiArCWNhc2UgVUNfRklSTVdBUkVfU1VDQ0VTUzoKPiAg
CQlyZXR1cm4gIlNVQ0NFU1MiOwo+ICAJZGVmYXVsdDoKPiAgCQlyZXR1cm4gIlVOS05PV04hIjsK
PiBAQCAtMjI0LDggKzIyNCw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBndWNfdWNvZGVfcmVzcG9u
c2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgKi8KPiAgc3RhdGljIGlu
dCBndWNfdWNvZGVfeGZlcl9kbWEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+
ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNf
Znc7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZndfb2JqID0gZ3VjX2Z3LT5ndWNf
Zndfb2JqOwo+ICsJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5n
dWNfZnc7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZndfb2JqID0gZ3VjX2Z3LT51
Y19md19vYmo7Cj4gIAl1bnNpZ25lZCBsb25nIG9mZnNldDsKPiAgCXN0cnVjdCBzZ190YWJsZSAq
c2cgPSBmd19vYmotPnBhZ2VzOwo+ICAJdTMyIHN0YXR1cywgcnNhW1VPU19SU0FfU0NSQVRDSF9N
QVhfQ09VTlRdOwo+IEBAIC0yODYsMTcgKzI4NiwxNyBAQCBzdGF0aWMgaW50IGd1Y191Y29kZV94
ZmVyX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAqLwo+ICBzdGF0
aWMgaW50IGd1Y191Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK
PiAgewo+IC0Jc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3Vj
X2Z3Owo+ICsJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNf
Znc7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiAgCWludCBy
ZXQ7Cj4gIAo+IC0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKGd1Y19m
dy0+Z3VjX2Z3X29iaiwgZmFsc2UpOwo+ICsJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19n
dHRfZG9tYWluKGd1Y19mdy0+dWNfZndfb2JqLCBmYWxzZSk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJ
RFJNX0RFQlVHX0RSSVZFUigic2V0LWRvbWFpbiBmYWlsZWQgJWRcbiIsIHJldCk7Cj4gIAkJcmV0
dXJuIHJldDsKPiAgCX0KPiAgCj4gLQlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4oZ3VjX2Z3
LT5ndWNfZndfb2JqLCAwLCAwKTsKPiArCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihndWNf
ZnctPnVjX2Z3X29iaiwgMCwgMCk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFJNX0RFQlVHX0RSSVZF
UigicGluIGZhaWxlZCAlZFxuIiwgcmV0KTsKPiAgCQlyZXR1cm4gcmV0Owo+IEBAIC0zNDgsNyAr
MzQ4LDcgQEAgc3RhdGljIGludCBndWNfdWNvZGVfeGZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0
ZSAqZGV2X3ByaXYpCj4gIAkgKiBXZSBrZWVwIHRoZSBvYmplY3QgcGFnZXMgZm9yIHJldXNlIGR1
cmluZyByZXN1bWUuIEJ1dCB3ZSBjYW4gdW5waW4gaXQKPiAgCSAqIG5vdyB0aGF0IERNQSBoYXMg
Y29tcGxldGVkLCBzbyBpdCBkb2Vzbid0IGNvbnRpbnVlIHRvIHRha2UgdXAgc3BhY2UuCj4gIAkg
Ki8KPiAtCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGd1Y19mdy0+Z3VjX2Z3X29iaik7Cj4g
KwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihndWNfZnctPnVjX2Z3X29iaik7Cj4gIAo+ICAJ
cmV0dXJuIHJldDsKPiAgfQo+IEBAIC0zNjgsNDggKzM2OCw0OCBAQCBzdGF0aWMgaW50IGd1Y191
Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgaW50IGludGVs
X2d1Y191Y29kZV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBk
cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3Qg
aW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7Cj4gKwlzdHJ1Y3Qg
aW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKPiAgCWludCBlcnIg
PSAwOwo+ICAKPiAgCWlmICghaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pCj4gIAkJcmV0dXJu
IDA7Cj4gIAo+ICAJRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IHN0YXR1czogZmV0Y2ggJXMsIGxv
YWQgJXNcbiIsCj4gLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2Zl
dGNoX3N0YXR1cyksCj4gLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3
X2xvYWRfc3RhdHVzKSk7Cj4gKwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5mZXRj
aF9zdGF0dXMpLAo+ICsJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+bG9hZF9zdGF0
dXMpKTsKPiAgCj4gIAlkaXJlY3RfaW50ZXJydXB0c190b19ob3N0KGRldl9wcml2KTsKPiAgCj4g
LQlpZiAoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzID09IEdVQ19GSVJNV0FSRV9OT05FKQo+
ICsJaWYgKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzID09IFVDX0ZJUk1XQVJFX05PTkUpCj4gIAkJcmV0
dXJuIDA7Cj4gIAo+IC0JaWYgKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9PSBHVUNfRklS
TVdBUkVfU1VDQ0VTUyAmJgo+IC0JICAgIGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID09IEdV
Q19GSVJNV0FSRV9GQUlMKQo+ICsJaWYgKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzID09IFVDX0ZJUk1X
QVJFX1NVQ0NFU1MgJiYKPiArCSAgICBndWNfZnctPmxvYWRfc3RhdHVzID09IFVDX0ZJUk1XQVJF
X0ZBSUwpCj4gIAkJcmV0dXJuIC1FTk9FWEVDOwo+ICAKPiAtCWd1Y19mdy0+Z3VjX2Z3X2xvYWRf
c3RhdHVzID0gR1VDX0ZJUk1XQVJFX1BFTkRJTkc7Cj4gKwlndWNfZnctPmxvYWRfc3RhdHVzID0g
VUNfRklSTVdBUkVfUEVORElORzsKPiAgCj4gIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgZmV0
Y2ggc3RhdHVzICVzXG4iLAo+IC0JCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1
Y19md19mZXRjaF9zdGF0dXMpKTsKPiArCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihndWNfZnct
PmZldGNoX3N0YXR1cykpOwo+ICAKPiAtCXN3aXRjaCAoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3Rh
dHVzKSB7Cj4gLQljYXNlIEdVQ19GSVJNV0FSRV9GQUlMOgo+ICsJc3dpdGNoIChndWNfZnctPmZl
dGNoX3N0YXR1cykgewo+ICsJY2FzZSBVQ19GSVJNV0FSRV9GQUlMOgo+ICAJCS8qIHNvbWV0aGlu
ZyB3ZW50IHdyb25nIDooICovCj4gIAkJZXJyID0gLUVJTzsKPiAgCQlnb3RvIGZhaWw7Cj4gIAo+
IC0JY2FzZSBHVUNfRklSTVdBUkVfTk9ORToKPiAtCWNhc2UgR1VDX0ZJUk1XQVJFX1BFTkRJTkc6
Cj4gKwljYXNlIFVDX0ZJUk1XQVJFX05PTkU6Cj4gKwljYXNlIFVDX0ZJUk1XQVJFX1BFTkRJTkc6
Cj4gIAlkZWZhdWx0Ogo+ICAJCS8qICJjYW4ndCBoYXBwZW4iICovCj4gLQkJV0FSTl9PTkNFKDEs
ICJHdUMgZncgJXMgaW52YWxpZCBndWNfZndfZmV0Y2hfc3RhdHVzICVzIFslZF1cbiIsCj4gLQkJ
CWd1Y19mdy0+Z3VjX2Z3X3BhdGgsCj4gLQkJCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNf
ZnctPmd1Y19md19mZXRjaF9zdGF0dXMpLAo+IC0JCQlndWNfZnctPmd1Y19md19mZXRjaF9zdGF0
dXMpOwo+ICsJCVdBUk5fT05DRSgxLCAiR3VDIGZ3ICVzIGludmFsaWQgZmV0Y2hfc3RhdHVzICVz
IFslZF1cbiIsCj4gKwkJCWd1Y19mdy0+dWNfZndfcGF0aCwKPiArCQkJaW50ZWxfdWNfZndfc3Rh
dHVzX3JlcHIoZ3VjX2Z3LT5mZXRjaF9zdGF0dXMpLAo+ICsJCQlndWNfZnctPmZldGNoX3N0YXR1
cyk7Cj4gIAkJZXJyID0gLUVOWElPOwo+ICAJCWdvdG8gZmFpbDsKPiAgCj4gLQljYXNlIEdVQ19G
SVJNV0FSRV9TVUNDRVNTOgo+ICsJY2FzZSBVQ19GSVJNV0FSRV9TVUNDRVNTOgo+ICAJCWJyZWFr
Owo+ICAJfQo+ICAKPiBAQCAtNDIxLDExICs0MjEsMTEgQEAgaW50IGludGVsX2d1Y191Y29kZV9s
b2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlpZiAoZXJyKQo+ICAJCWdvdG8gZmFpbDsK
PiAgCj4gLQlndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9TVUNDRVNT
Owo+ICsJZ3VjX2Z3LT5sb2FkX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX1NVQ0NFU1M7Cj4gIAo+ICAJ
RFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IHN0YXR1czogZmV0Y2ggJXMsIGxvYWQgJXNcbiIsCj4g
LQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyks
Cj4gLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVz
KSk7Cj4gKwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5mZXRjaF9zdGF0dXMpLAo+
ICsJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+bG9hZF9zdGF0dXMpKTsKPiAgCj4g
IAlpZiAoaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pIHsKPiAgCQkvKiBUaGUgZXhlY2J1Zl9j
bGllbnQgd2lsbCBiZSByZWNyZWF0ZWQuIFJlbGVhc2UgaXQgZmlyc3QuICovCj4gQEAgLTQ0MCw4
ICs0NDAsOCBAQCBpbnQgaW50ZWxfZ3VjX3Vjb2RlX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRl
dikKPiAgCXJldHVybiAwOwo+ICAKPiAgZmFpbDoKPiAtCWlmIChndWNfZnctPmd1Y19md19sb2Fk
X3N0YXR1cyA9PSBHVUNfRklSTVdBUkVfUEVORElORykKPiAtCQlndWNfZnctPmd1Y19md19sb2Fk
X3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9GQUlMOwo+ICsJaWYgKGd1Y19mdy0+bG9hZF9zdGF0dXMg
PT0gVUNfRklSTVdBUkVfUEVORElORykKPiArCQlndWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklS
TVdBUkVfRkFJTDsKPiAgCj4gIAlkaXJlY3RfaW50ZXJydXB0c190b19ob3N0KGRldl9wcml2KTsK
PiAgCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShkZXYpOwo+IEBAIC00NTAsNyArNDUwLDE4
IEBAIGZhaWw6Cj4gIAlyZXR1cm4gZXJyOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBndWNfZndf
ZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3
KQo+ICsvKioKPiArICogaW50ZWxfdWNfZndfZmV0Y2goKSAtIGZldGNoIGZ3IGJsb2IgYW5kIHNh
dmUgaXQgdG8gaW50ZXJuYWwgb2JqCj4gKyAqIEBkZXY6CWRybSBkZXZpY2UKPiArICogQHVjX2Z3
Ogl0aGUgaW50ZWxfdWNfZncgdG8gYmUgc2V0dXAKPiArICoKPiArICogVGhlIGNhbGxlciBzaG91
bGQgaGF2ZSBzZXR1cCBmdyBwYXRoIGFuZCBmdyB2ZXJzaW9uIHJlcXVpcmVkLiBUaGlzIGZ1bmN0
aW9uCj4gKyAqIGZpcnN0IGZldGNoIHRoZSBmdyBibG9iIGZyb20gZmlsZSBzeXN0ZW0uIElmIHN1
Y2NlZWQsIGl0IHdpbGwgZG8gc29tZSBiYXNpYwo+ICsgKiBjaGVjayBiYXNlZCBvbiBjc3MgaGVh
ZGVyIGluZm9ybWF0aW9uLiBBdCBsYXN0LCBhIEdFTSBvYmogaXMgY3JlYXRlZCBhbmQKPiArICog
ZmlsbGVkIHdpdGggdGhlIGZ3IGRhdGEuIFRoaXMgb2JqIHdpbGwgYmUgbG9hZGVkIHRvIEhXIGF0
IGxhdGVyIHN0YWdlIG9mCj4gKyAqIGRyaXZlciBpbml0IHByb2Nlc3MuCj4gKyAqLwo+ICt2b2lk
IGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF91
Y19mdyAqdWNfZncpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4g
IAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3Owo+IEBAIC00NTgsMTcgKzQ2OSwxNyBAQCBzdGF0
aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVs
X2d1Y19mdyAqZ3VjX2Z3KQo+ICAJc2l6ZV90IHNpemU7Cj4gIAlpbnQgZXJyOwo+ICAKPiAtCURS
TV9ERUJVR19EUklWRVIoImJlZm9yZSByZXF1ZXN0aW5nIGZpcm13YXJlOiBHdUMgZncgZmV0Y2gg
c3RhdHVzICVzXG4iLAo+IC0JCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1Y19m
d19mZXRjaF9zdGF0dXMpKTsKPiArCURSTV9ERUJVR19EUklWRVIoImJlZm9yZSByZXF1ZXN0aW5n
IGZpcm13YXJlOiB1QyBmdyBmZXRjaCBzdGF0dXMgJXNcbiIsCj4gKwkJaW50ZWxfdWNfZndfc3Rh
dHVzX3JlcHIodWNfZnctPmZldGNoX3N0YXR1cykpOwo+ICAKPiAtCWVyciA9IHJlcXVlc3RfZmly
bXdhcmUoJmZ3LCBndWNfZnctPmd1Y19md19wYXRoLCAmZGV2LT5wZGV2LT5kZXYpOwo+ICsJZXJy
ID0gcmVxdWVzdF9maXJtd2FyZSgmZncsIHVjX2Z3LT51Y19md19wYXRoLCAmZGV2LT5wZGV2LT5k
ZXYpOwo+ICAJaWYgKGVycikKPiAgCQlnb3RvIGZhaWw7Cj4gIAlpZiAoIWZ3KQo+ICAJCWdvdG8g
ZmFpbDsKPiAgCj4gLQlEUk1fREVCVUdfRFJJVkVSKCJmZXRjaCBHdUMgZncgZnJvbSAlcyBzdWNj
ZWVkZWQsIGZ3ICVwXG4iLAo+IC0JCWd1Y19mdy0+Z3VjX2Z3X3BhdGgsIGZ3KTsKPiArCURSTV9E
RUJVR19EUklWRVIoImZldGNoIHVDIGZ3IGZyb20gJXMgc3VjY2VlZGVkLCBmdyAlcFxuIiwKPiAr
CQl1Y19mdy0+dWNfZndfcGF0aCwgZncpOwo+ICAKPiAgCS8qIENoZWNrIHRoZSBzaXplIG9mIHRo
ZSBibG9iIGJlZm9yZSBleGFtaW5pbmcgYnVmZmVyIGNvbnRlbnRzICovCj4gIAlpZiAoZnctPnNp
emUgPCBzaXplb2Yoc3RydWN0IGd1Y19jc3NfaGVhZGVyKSkgewo+IEBAIC00NzksMzYgKzQ5MCwz
NiBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3Ry
dWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQo+ICAJY3NzID0gKHN0cnVjdCBndWNfY3NzX2hlYWRl
ciAqKWZ3LT5kYXRhOwo+ICAKPiAgCS8qIEZpcm13YXJlIGJpdHMgYWx3YXlzIHN0YXJ0IGZyb20g
aGVhZGVyICovCj4gLQlndWNfZnctPmhlYWRlcl9vZmZzZXQgPSAwOwo+IC0JZ3VjX2Z3LT5oZWFk
ZXJfc2l6ZSA9IChjc3MtPmhlYWRlcl9zaXplX2R3IC0gY3NzLT5tb2R1bHVzX3NpemVfZHcgLQo+
ICsJdWNfZnctPmhlYWRlcl9vZmZzZXQgPSAwOwo+ICsJdWNfZnctPmhlYWRlcl9zaXplID0gKGNz
cy0+aGVhZGVyX3NpemVfZHcgLSBjc3MtPm1vZHVsdXNfc2l6ZV9kdyAtCj4gIAkJY3NzLT5rZXlf
c2l6ZV9kdyAtIGNzcy0+ZXhwb25lbnRfc2l6ZV9kdykgKiBzaXplb2YodTMyKTsKPiAgCj4gLQlp
ZiAoZ3VjX2Z3LT5oZWFkZXJfc2l6ZSAhPSBzaXplb2Yoc3RydWN0IGd1Y19jc3NfaGVhZGVyKSkg
ewo+ICsJaWYgKHVjX2Z3LT5oZWFkZXJfc2l6ZSAhPSBzaXplb2Yoc3RydWN0IGd1Y19jc3NfaGVh
ZGVyKSkgewo+ICAJCURSTV9FUlJPUigiQ1NTIGhlYWRlciBkZWZpbml0aW9uIG1pc21hdGNoXG4i
KTsKPiAgCQlnb3RvIGZhaWw7Cj4gIAl9Cj4gIAo+ICAJLyogdGhlbiwgdUNvZGUgKi8KPiAtCWd1
Y19mdy0+dWNvZGVfb2Zmc2V0ID0gZ3VjX2Z3LT5oZWFkZXJfb2Zmc2V0ICsgZ3VjX2Z3LT5oZWFk
ZXJfc2l6ZTsKPiAtCWd1Y19mdy0+dWNvZGVfc2l6ZSA9IChjc3MtPnNpemVfZHcgLSBjc3MtPmhl
YWRlcl9zaXplX2R3KSAqIHNpemVvZih1MzIpOwo+ICsJdWNfZnctPnVjb2RlX29mZnNldCA9IHVj
X2Z3LT5oZWFkZXJfb2Zmc2V0ICsgdWNfZnctPmhlYWRlcl9zaXplOwo+ICsJdWNfZnctPnVjb2Rl
X3NpemUgPSAoY3NzLT5zaXplX2R3IC0gY3NzLT5oZWFkZXJfc2l6ZV9kdykgKiBzaXplb2YodTMy
KTsKPiAgCj4gIAkvKiBub3cgUlNBICovCj4gIAlpZiAoY3NzLT5rZXlfc2l6ZV9kdyAhPSBVT1Nf
UlNBX1NDUkFUQ0hfTUFYX0NPVU5UKSB7Cj4gIAkJRFJNX0VSUk9SKCJSU0Ega2V5IHNpemUgaXMg
YmFkXG4iKTsKPiAgCQlnb3RvIGZhaWw7Cj4gIAl9Cj4gLQlndWNfZnctPnJzYV9vZmZzZXQgPSBn
dWNfZnctPnVjb2RlX29mZnNldCArIGd1Y19mdy0+dWNvZGVfc2l6ZTsKPiAtCWd1Y19mdy0+cnNh
X3NpemUgPSBjc3MtPmtleV9zaXplX2R3ICogc2l6ZW9mKHUzMik7Cj4gKwl1Y19mdy0+cnNhX29m
ZnNldCA9IHVjX2Z3LT51Y29kZV9vZmZzZXQgKyB1Y19mdy0+dWNvZGVfc2l6ZTsKPiArCXVjX2Z3
LT5yc2Ffc2l6ZSA9IGNzcy0+a2V5X3NpemVfZHcgKiBzaXplb2YodTMyKTsKPiAgCj4gIAkvKiBB
dCBsZWFzdCwgaXQgc2hvdWxkIGhhdmUgaGVhZGVyLCB1Q29kZSBhbmQgUlNBLiBTaXplIG9mIGFs
bCB0aHJlZS4gKi8KPiAtCXNpemUgPSBndWNfZnctPmhlYWRlcl9zaXplICsgZ3VjX2Z3LT51Y29k
ZV9zaXplICsgZ3VjX2Z3LT5yc2Ffc2l6ZTsKPiArCXNpemUgPSB1Y19mdy0+aGVhZGVyX3NpemUg
KyB1Y19mdy0+dWNvZGVfc2l6ZSArIHVjX2Z3LT5yc2Ffc2l6ZTsKPiAgCWlmIChmdy0+c2l6ZSA8
IHNpemUpIHsKPiAgCQlEUk1fRVJST1IoIk1pc3NpbmcgZmlybXdhcmUgY29tcG9uZW50c1xuIik7
Cj4gIAkJZ290byBmYWlsOwo+ICAJfQo+ICAKPiAgCS8qIEhlYWRlciBhbmQgdUNvZGUgd2lsbCBi
ZSBsb2FkZWQgdG8gV09QQ00uIFNpemUgb2YgdGhlIHR3by4gKi8KPiAtCXNpemUgPSBndWNfZnct
PmhlYWRlcl9zaXplICsgZ3VjX2Z3LT51Y29kZV9zaXplOwo+ICsJc2l6ZSA9IHVjX2Z3LT5oZWFk
ZXJfc2l6ZSArIHVjX2Z3LT51Y29kZV9zaXplOwo+ICAKPiAgCS8qIFRvcCAzMmsgb2YgV09QQ00g
aXMgcmVzZXJ2ZWQgKDhLIHN0YWNrICsgMjRrIFJDNiBjb250ZXh0KS4gKi8KPiAgCWlmIChzaXpl
ID4gR1VDX1dPUENNX1NJWkVfVkFMVUUgLSAweDgwMDApIHsKPiBAQCAtNTE3LDI2ICs1MjgsMjYg
QEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj
dCBpbnRlbF9ndWNfZncgKmd1Y19mdykKPiAgCX0KPiAgCj4gIAkvKgo+IC0JICogVGhlIEd1QyBm
aXJtd2FyZSBpbWFnZSBoYXMgdGhlIHZlcnNpb24gbnVtYmVyIGVtYmVkZGVkIGF0IGEgd2VsbC1r
bm93bgo+ICsJICogVGhlIHVDIGZpcm13YXJlIGltYWdlIGhhcyB0aGUgdmVyc2lvbiBudW1iZXIg
ZW1iZWRkZWQgYXQgYSB3ZWxsLWtub3duCj4gIAkgKiBvZmZzZXQgd2l0aGluIHRoZSBmaXJtd2Fy
ZSBibG9iOyBub3RlIHRoYXQgbWFqb3IgLyBtaW5vciB2ZXJzaW9uIGFyZQo+ICAJICogVFdPIGJ5
dGVzIGVhY2ggKGkuZS4gdTE2KSwgYWx0aG91Z2ggYWxsIHBvaW50ZXJzIGFuZCBvZmZzZXRzIGFy
ZSBkZWZpbmVkCj4gIAkgKiBpbiB0ZXJtcyBvZiBieXRlcyAodTgpLgo+ICAJICovCj4gLQlndWNf
ZnctPmd1Y19md19tYWpvcl9mb3VuZCA9IGNzcy0+Z3VjX3N3X3ZlcnNpb24gPj4gMTY7Cj4gLQln
dWNfZnctPmd1Y19md19taW5vcl9mb3VuZCA9IGNzcy0+Z3VjX3N3X3ZlcnNpb24gJiAweEZGRkY7
Cj4gLQo+IC0JaWYgKGd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kICE9IGd1Y19mdy0+Z3VjX2Z3
X21ham9yX3dhbnRlZCB8fAo+IC0JICAgIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kIDwgZ3Vj
X2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkKSB7Cj4gLQkJRFJNX0VSUk9SKCJHdUMgZmlybXdhcmUg
dmVyc2lvbiAlZC4lZCwgcmVxdWlyZWQgJWQuJWRcbiIsCj4gLQkJCWd1Y19mdy0+Z3VjX2Z3X21h
am9yX2ZvdW5kLCBndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCwKPiAtCQkJZ3VjX2Z3LT5ndWNf
ZndfbWFqb3Jfd2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpOwo+ICsJdWNfZnct
Pm1ham9yX3Zlcl9mb3VuZCA9IGNzcy0+Z3VjX3N3X3ZlcnNpb24gPj4gMTY7Cj4gKwl1Y19mdy0+
bWlub3JfdmVyX2ZvdW5kID0gY3NzLT5ndWNfc3dfdmVyc2lvbiAmIDB4RkZGRjsKPiArCj4gKwlp
ZiAodWNfZnctPm1ham9yX3Zlcl9mb3VuZCAhPSB1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCB8fAo+
ICsJICAgIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQgPCB1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCkg
ewo+ICsJCURSTV9FUlJPUigiRmlybXdhcmUgdmVyc2lvbiAlZC4lZCwgcmVxdWlyZWQgJWQuJWRc
biIsCj4gKwkJCXVjX2Z3LT5tYWpvcl92ZXJfZm91bmQsIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQs
Cj4gKwkJCXVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkLCB1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCk7
Cj4gIAkJZXJyID0gLUVOT0VYRUM7Cj4gIAkJZ290byBmYWlsOwo+ICAJfQo+ICAKPiAgCURSTV9E
RUJVR19EUklWRVIoImZpcm13YXJlIHZlcnNpb24gJWQuJWQgT0sgKG1pbmltdW0gJWQuJWQpXG4i
LAo+IC0JCQlndWNfZnctPmd1Y19md19tYWpvcl9mb3VuZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jf
Zm91bmQsCj4gLQkJCWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCwgZ3VjX2Z3LT5ndWNfZndf
bWlub3Jfd2FudGVkKTsKPiArCQkJdWNfZnctPm1ham9yX3Zlcl9mb3VuZCwgdWNfZnctPm1pbm9y
X3Zlcl9mb3VuZCwKPiArCQkJdWNfZnctPm1ham9yX3Zlcl93YW50ZWQsIHVjX2Z3LT5taW5vcl92
ZXJfd2FudGVkKTsKPiAgCj4gIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gIAlv
YmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2Zyb21fZGF0YShkZXYsIGZ3LT5kYXRhLCBmdy0+
c2l6ZSk7Cj4gQEAgLTU0NiwzMSArNTU3LDMxIEBAIHN0YXRpYyB2b2lkIGd1Y19md19mZXRjaChz
dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncpCj4gIAkJ
Z290byBmYWlsOwo+ICAJfQo+ICAKPiAtCWd1Y19mdy0+Z3VjX2Z3X29iaiA9IG9iajsKPiAtCWd1
Y19mdy0+Z3VjX2Z3X3NpemUgPSBmdy0+c2l6ZTsKPiArCXVjX2Z3LT51Y19md19vYmogPSBvYmo7
Cj4gKwl1Y19mdy0+dWNfZndfc2l6ZSA9IGZ3LT5zaXplOwo+ICAKPiAgCURSTV9ERUJVR19EUklW
RVIoIkd1QyBmdyBmZXRjaCBzdGF0dXMgU1VDQ0VTUywgb2JqICVwXG4iLAo+IC0JCQlndWNfZnct
Pmd1Y19md19vYmopOwo+ICsJCQl1Y19mdy0+dWNfZndfb2JqKTsKPiAgCj4gIAlyZWxlYXNlX2Zp
cm13YXJlKGZ3KTsKPiAtCWd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FS
RV9TVUNDRVNTOwo+ICsJdWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX1NVQ0NFU1M7
Cj4gIAlyZXR1cm47Cj4gIAo+ICBmYWlsOgo+ICAJRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IGZl
dGNoIHN0YXR1cyBGQUlMOyBlcnIgJWQsIGZ3ICVwLCBvYmogJXBcbiIsCj4gLQkJZXJyLCBmdywg
Z3VjX2Z3LT5ndWNfZndfb2JqKTsKPiArCQllcnIsIGZ3LCB1Y19mdy0+dWNfZndfb2JqKTsKPiAg
CURSTV9FUlJPUigiRmFpbGVkIHRvIGZldGNoIEd1QyBmaXJtd2FyZSBmcm9tICVzIChlcnJvciAl
ZClcbiIsCj4gLQkJICBndWNfZnctPmd1Y19md19wYXRoLCBlcnIpOwo+ICsJCSAgdWNfZnctPnVj
X2Z3X3BhdGgsIGVycik7Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+
IC0Jb2JqID0gZ3VjX2Z3LT5ndWNfZndfb2JqOwo+ICsJb2JqID0gdWNfZnctPnVjX2Z3X29iajsK
PiAgCWlmIChvYmopCj4gIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7
Cj4gLQlndWNfZnctPmd1Y19md19vYmogPSBOVUxMOwo+ICsJdWNfZnctPnVjX2Z3X29iaiA9IE5V
TEw7Cj4gIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAgCj4gIAlyZWxlYXNl
X2Zpcm13YXJlKGZ3KTsJCS8qIE9LIGV2ZW4gaWYgZncgaXMgTlVMTCAqLwo+IC0JZ3VjX2Z3LT5n
dWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX0ZBSUw7Cj4gKwl1Y19mdy0+ZmV0Y2hf
c3RhdHVzID0gVUNfRklSTVdBUkVfRkFJTDsKPiAgfQo+ICAKPiAgLyoqCj4gQEAgLTU4NSw3ICs1
OTYsNyBAQCBmYWlsOgo+ICB2b2lkIGludGVsX2d1Y191Y29kZV9pbml0KHN0cnVjdCBkcm1fZGV2
aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl
di0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3By
aXYtPmd1Yy5ndWNfZnc7Cj4gKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJp
di0+Z3VjLmd1Y19mdzsKPiAgCWNvbnN0IGNoYXIgKmZ3X3BhdGg7Cj4gIAo+ICAJaWYgKCFIQVNf
R1VDX1NDSEVEKGRldikpCj4gQEAgLTU5NSw4ICs2MDYsOCBAQCB2b2lkIGludGVsX2d1Y191Y29k
ZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJZndfcGF0aCA9IE5VTEw7Cj4gIAl9
IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2KSkgewo+ICAJCWZ3X3BhdGggPSBJOTE1X1NLTF9HVUNf
VUNPREU7Cj4gLQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkID0gNDsKPiAtCQlndWNfZnct
Pmd1Y19md19taW5vcl93YW50ZWQgPSAzOwo+ICsJCWd1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCA9
IDQ7Cj4gKwkJZ3VjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gMzsKPiAgCX0gZWxzZSB7Cj4gIAkJ
aTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24gPSBmYWxzZTsKPiAgCQlmd19wYXRoID0gIiI7CS8q
IHVua25vd24gZGV2aWNlICovCj4gQEAgLTYwNSwyMyArNjE2LDIzIEBAIHZvaWQgaW50ZWxfZ3Vj
X3Vjb2RlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWlmICghaTkxNS5lbmFibGVf
Z3VjX3N1Ym1pc3Npb24pCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWd1Y19mdy0+Z3VjX2RldiA9IGRl
djsKPiAtCWd1Y19mdy0+Z3VjX2Z3X3BhdGggPSBmd19wYXRoOwo+IC0JZ3VjX2Z3LT5ndWNfZndf
ZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX05PTkU7Cj4gLQlndWNfZnctPmd1Y19md19sb2Fk
X3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9OT05FOwo+ICsJZ3VjX2Z3LT51Y19kZXYgPSBkZXY7Cj4g
KwlndWNfZnctPnVjX2Z3X3BhdGggPSBmd19wYXRoOwo+ICsJZ3VjX2Z3LT5mZXRjaF9zdGF0dXMg
PSBVQ19GSVJNV0FSRV9OT05FOwo+ICsJZ3VjX2Z3LT5sb2FkX3N0YXR1cyA9IFVDX0ZJUk1XQVJF
X05PTkU7Cj4gIAo+ICAJaWYgKGZ3X3BhdGggPT0gTlVMTCkKPiAgCQlyZXR1cm47Cj4gIAo+ICAJ
aWYgKCpmd19wYXRoID09ICdcMCcpIHsKPiAgCQlEUk1fRVJST1IoIk5vIEd1QyBmaXJtd2FyZSBr
bm93biBmb3IgdGhpcyBwbGF0Zm9ybVxuIik7Cj4gLQkJZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3Rh
dHVzID0gR1VDX0ZJUk1XQVJFX0ZBSUw7Cj4gKwkJZ3VjX2Z3LT5mZXRjaF9zdGF0dXMgPSBVQ19G
SVJNV0FSRV9GQUlMOwo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gLQlndWNfZnctPmd1Y19md19m
ZXRjaF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfUEVORElORzsKPiArCWd1Y19mdy0+ZmV0Y2hfc3Rh
dHVzID0gVUNfRklSTVdBUkVfUEVORElORzsKPiAgCURSTV9ERUJVR19EUklWRVIoIkd1QyBmaXJt
d2FyZSBwZW5kaW5nLCBwYXRoICVzXG4iLCBmd19wYXRoKTsKPiAtCWd1Y19md19mZXRjaChkZXYs
IGd1Y19mdyk7Cj4gKwlpbnRlbF91Y19md19mZXRjaChkZXYsIGd1Y19mdyk7Cj4gIAkvKiBzdGF0
dXMgbXVzdCBub3cgYmUgRkFJTCBvciBTVUNDRVNTICovCj4gIH0KPiAgCj4gQEAgLTYzMiwxNyAr
NjQzLDE3IEBAIHZvaWQgaW50ZWxfZ3VjX3Vjb2RlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl
dikKPiAgdm9pZCBpbnRlbF9ndWNfdWNvZGVfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+
ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2
YXRlOwo+IC0Jc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3Vj
X2Z3Owo+ICsJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNf
Znc7Cj4gIAo+ICAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAJZGlyZWN0X2lu
dGVycnVwdHNfdG9faG9zdChkZXZfcHJpdik7Cj4gIAlpOTE1X2d1Y19zdWJtaXNzaW9uX2Rpc2Fi
bGUoZGV2KTsKPiAgCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShkZXYpOwo+ICAKPiAtCWlmIChn
dWNfZnctPmd1Y19md19vYmopCj4gLQkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmd1Y19m
dy0+Z3VjX2Z3X29iai0+YmFzZSk7Cj4gLQlndWNfZnctPmd1Y19md19vYmogPSBOVUxMOwo+ICsJ
aWYgKGd1Y19mdy0+dWNfZndfb2JqKQo+ICsJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZn
dWNfZnctPnVjX2Z3X29iai0+YmFzZSk7Cj4gKwlndWNfZnctPnVjX2Z3X29iaiA9IE5VTEw7Cj4g
IAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAgCj4gLQlndWNfZnctPmd1Y19m
d19mZXRjaF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfTk9ORTsKPiArCWd1Y19mdy0+ZmV0Y2hfc3Rh
dHVzID0gVUNfRklSTVdBUkVfTk9ORTsKPiAgfQo+IC0tIAo+IDIuNS4wCj4gCj4gX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGlu
ZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMu
ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZl
dHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3
bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50
ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz
Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Peter Antoine <peter.antoine@intel.com>
Subject: [PATCH v2 1/6] drm/i915/guc: Make the GuC fw loading
	helper functions general
Date: Fri,  1 Jul 2016 14:15:40 +0100
Message-ID: <1467378945-14274-2-git-send-email-peter.antoine@intel.com>
References: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <intel-gfx-bounces@lists.freedesktop.org>
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by gabe.freedesktop.org (Postfix) with ESMTP id C5DBD6EA6B
 for <intel-gfx@lists.freedesktop.org>; Fri,  1 Jul 2016 13:15:55 +0000 (UTC)
In-Reply-To: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
List-Unsubscribe: <https://lists.freedesktop.org/mailman/options/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <https://lists.freedesktop.org/archives/intel-gfx>
List-Post: <mailto:intel-gfx@lists.freedesktop.org>
List-Help: <mailto:intel-gfx-request@lists.freedesktop.org?subject=help>
List-Subscribe: <https://lists.freedesktop.org/mailman/listinfo/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=subscribe>
Errors-To: intel-gfx-bounces@lists.freedesktop.org
Sender: "Intel-gfx" <intel-gfx-bounces@lists.freedesktop.org>
To: intel-gfx@lists.freedesktop.org
Cc: rodrigo.vivi@intel.com
List-Id: intel-gfx@lists.freedesktop.org

UmVuYW1lIHNvbWUgb2YgdGhlIEd1QyBmdyBsb2FkaW5nIGNvZGUgdG8gbWFrZSB0aGVtIG1vcmUg
Z2VuZXJhbC4gV2UKd2lsbCB1dGlsaXNlIHRoZW0gZm9yIEh1QyBsb2FkaW5nIGFzIHdlbGwuCiAg
ICAgcy9pbnRlbF9ndWNfZncvaW50ZWxfdWNfZncvZwogICAgIHMvR1VDX0ZJUk1XQVJFL1VDX0ZJ
Uk1XQVJFL2cKClN0cnVjdCBpbnRlbF9ndWNfZncgaXMgcmVuYW1lZCB0byBpbnRlbF91Y19mdy4g
UHJlZml4IG9mIHR0cyBtZW1iZXJzLApzdWNoIGFzICdndWMnIG9yICdndWNfZncnIGVpdGhlciBp
cyByZW5hbWVkIHRvICd1Yycgb3IgcmVtb3ZlZCBmb3IKc2FtZSBwdXJwb3NlLgoKdjI6IHJlYmFz
ZWQgb24gdG9wIG9mIG5pZ2h0bHkuCiAgICByZWFwcGxpZWQgdGhlIHNlYXJjaC9yZXBsYWNlIGFz
IHVwc3RyZWFtIGNvZGUgYXMgY2hhbmdlZC4KClNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5k
YWlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBBbnRvaW5lIDxwZXRlci5hbnRvaW5l
QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAg
ICAgfCAgMTIgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMg
fCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oICAgICAgICAgICB8ICAz
OSArKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jICAgIHwg
MTQyICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDk5IGlu
c2VydGlvbnMoKyksIDk4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry
bS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz
LmMKaW5kZXggZjY2NDg4NC4uMzg4M2RmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5
MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz
LmMKQEAgLTI0ODMsNyArMjQ4Myw3IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNfbG9hZF9zdGF0dXNf
aW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGRybV9pbmZv
X25vZGUgKm5vZGUgPSBtLT5wcml2YXRlOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf
cHJpdiA9IG5vZGUtPm1pbm9yLT5kZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9ndWNf
ZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncg
Kmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKIAl1MzIgdG1wLCBpOwogCiAJaWYgKCFI
QVNfR1VDX1VDT0RFKGRldl9wcml2KSkKQEAgLTI0OTEsMTUgKzI0OTEsMTUgQEAgc3RhdGljIGlu
dCBpOTE1X2d1Y19sb2FkX3N0YXR1c19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0
YSkKIAogCXNlcV9wcmludGYobSwgIkd1QyBmaXJtd2FyZSBzdGF0dXM6XG4iKTsKIAlzZXFfcHJp
bnRmKG0sICJcdHBhdGg6ICVzXG4iLAotCQlndWNfZnctPmd1Y19md19wYXRoKTsKKwkJZ3VjX2Z3
LT51Y19md19wYXRoKTsKIAlzZXFfcHJpbnRmKG0sICJcdGZldGNoOiAlc1xuIiwKLQkJaW50ZWxf
Z3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cykpOworCQlpbnRl
bF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmZldGNoX3N0YXR1cykpOwogCXNlcV9wcmludGYo
bSwgIlx0bG9hZDogJXNcbiIsCi0JCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1
Y19md19sb2FkX3N0YXR1cykpOworCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmxv
YWRfc3RhdHVzKSk7CiAJc2VxX3ByaW50ZihtLCAiXHR2ZXJzaW9uIHdhbnRlZDogJWQuJWRcbiIs
Ci0JCWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2Fu
dGVkKTsKKwkJZ3VjX2Z3LT5tYWpvcl92ZXJfd2FudGVkLCBndWNfZnctPm1pbm9yX3Zlcl93YW50
ZWQpOwogCXNlcV9wcmludGYobSwgIlx0dmVyc2lvbiBmb3VuZDogJWQuJWRcbiIsCi0JCWd1Y19m
dy0+Z3VjX2Z3X21ham9yX2ZvdW5kLCBndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCk7CisJCWd1
Y19mdy0+bWFqb3JfdmVyX2ZvdW5kLCBndWNfZnctPm1pbm9yX3Zlcl9mb3VuZCk7CiAJc2VxX3By
aW50ZihtLCAiXHRoZWFkZXI6IG9mZnNldCBpcyAlZDsgc2l6ZSA9ICVkXG4iLAogCQlndWNfZnct
PmhlYWRlcl9vZmZzZXQsIGd1Y19mdy0+aGVhZGVyX3NpemUpOwogCXNlcV9wcmludGYobSwgIlx0
dUNvZGU6IG9mZnNldCBpcyAlZDsgc2l6ZSA9ICVkXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n
cHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv
aTkxNV9ndWNfc3VibWlzc2lvbi5jCmluZGV4IDM1NWI2NDcuLjJiZmE4NmUgMTAwNjQ0Ci0tLSBh
L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJz
L2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTEwMzgsNyArMTAzOCw3IEBA
IGludCBpbnRlbF9ndWNfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBp
OTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJdTMyIGRhdGFbM107CiAKLQlpZiAoZ3VjLT5ndWNfZncu
Z3VjX2Z3X2xvYWRfc3RhdHVzICE9IEdVQ19GSVJNV0FSRV9TVUNDRVNTKQorCWlmIChndWMtPmd1
Y19mdy5sb2FkX3N0YXR1cyAhPSBVQ19GSVJNV0FSRV9TVUNDRVNTKQogCQlyZXR1cm4gMDsKIAog
CWN0eCA9IGRldl9wcml2LT5rZXJuZWxfY29udGV4dDsKQEAgLTEwNjQsNyArMTA2NCw3IEBAIGlu
dCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IGk5MTVf
Z2VtX2NvbnRleHQgKmN0eDsKIAl1MzIgZGF0YVszXTsKIAotCWlmIChndWMtPmd1Y19mdy5ndWNf
ZndfbG9hZF9zdGF0dXMgIT0gR1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCisJaWYgKGd1Yy0+Z3VjX2Z3
LmxvYWRfc3RhdHVzICE9IFVDX0ZJUk1XQVJFX1NVQ0NFU1MpCiAJCXJldHVybiAwOwogCiAJY3R4
ID0gZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt
L2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAppbmRl
eCAzZTNlNzQzLi4wMmFkY2ZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl
bF9ndWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaApAQCAtOTAsMjkg
KzkwLDI5IEBAIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgewogCXVpbnQ2NF90IHN1Ym1pc3Npb25z
W0k5MTVfTlVNX0VOR0lORVNdOwogfTsKIAotZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzIHsKLQlH
VUNfRklSTVdBUkVfRkFJTCA9IC0xLAotCUdVQ19GSVJNV0FSRV9OT05FID0gMCwKLQlHVUNfRklS
TVdBUkVfUEVORElORywKLQlHVUNfRklSTVdBUkVfU1VDQ0VTUworZW51bSBpbnRlbF91Y19md19z
dGF0dXMgeworCVVDX0ZJUk1XQVJFX0ZBSUwgPSAtMSwKKwlVQ19GSVJNV0FSRV9OT05FID0gMCwK
KwlVQ19GSVJNV0FSRV9QRU5ESU5HLAorCVVDX0ZJUk1XQVJFX1NVQ0NFU1MKIH07CiAKIC8qCiAg
KiBUaGlzIHN0cnVjdHVyZSBlbmNhcHN1bGF0ZXMgYWxsIHRoZSBkYXRhIG5lZWRlZCBkdXJpbmcg
dGhlIHByb2Nlc3MKICAqIG9mIGZldGNoaW5nLCBjYWNoaW5nLCBhbmQgbG9hZGluZyB0aGUgZmly
bXdhcmUgaW1hZ2UgaW50byB0aGUgR3VDLgogICovCi1zdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsKLQlz
dHJ1Y3QgZHJtX2RldmljZSAqCQlndWNfZGV2OwotCWNvbnN0IGNoYXIgKgkJCWd1Y19md19wYXRo
OwotCXNpemVfdAkJCQlndWNfZndfc2l6ZTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq
CWd1Y19md19vYmo7Ci0JZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19mZXRjaF9zdGF0
dXM7Ci0JZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19sb2FkX3N0YXR1czsKLQotCXVp
bnQxNl90CQkJZ3VjX2Z3X21ham9yX3dhbnRlZDsKLQl1aW50MTZfdAkJCWd1Y19md19taW5vcl93
YW50ZWQ7Ci0JdWludDE2X3QJCQlndWNfZndfbWFqb3JfZm91bmQ7Ci0JdWludDE2X3QJCQlndWNf
ZndfbWlub3JfZm91bmQ7CitzdHJ1Y3QgaW50ZWxfdWNfZncgeworCXN0cnVjdCBkcm1fZGV2aWNl
ICp1Y19kZXY7CisJY29uc3QgY2hhciAqdWNfZndfcGF0aDsKKwlzaXplX3QgdWNfZndfc2l6ZTsK
KwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqdWNfZndfb2JqOworCWVudW0gaW50ZWxfdWNf
Zndfc3RhdHVzIGZldGNoX3N0YXR1czsKKwllbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBsb2FkX3N0
YXR1czsKKworCXVpbnQxNl90IG1ham9yX3Zlcl93YW50ZWQ7CisJdWludDE2X3QgbWlub3JfdmVy
X3dhbnRlZDsKKwl1aW50MTZfdCBtYWpvcl92ZXJfZm91bmQ7CisJdWludDE2X3QgbWlub3JfdmVy
X2ZvdW5kOwogCiAJdWludDMyX3QgaGVhZGVyX3NpemU7CiAJdWludDMyX3QgaGVhZGVyX29mZnNl
dDsKQEAgLTEyMyw3ICsxMjMsNyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsKIH07CiAKIHN0cnVj
dCBpbnRlbF9ndWMgewotCXN0cnVjdCBpbnRlbF9ndWNfZncgZ3VjX2Z3OworCXN0cnVjdCBpbnRl
bF91Y19mdyBndWNfZnc7CiAJdWludDMyX3QgbG9nX2ZsYWdzOwogCXN0cnVjdCBkcm1faTkxNV9n
ZW1fb2JqZWN0ICpsb2dfb2JqOwogCkBAIC0xNTIsOSArMTUyLDEwIEBAIHN0cnVjdCBpbnRlbF9n
dWMgewogZXh0ZXJuIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7
CiBleHRlcm4gaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4
dGVybiB2b2lkIGludGVsX2d1Y19maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJu
IGNvbnN0IGNoYXIgKmludGVsX2d1Y19md19zdGF0dXNfcmVwcihlbnVtIGludGVsX2d1Y19md19z
dGF0dXMgc3RhdHVzKTsKK2V4dGVybiBjb25zdCBjaGFyICppbnRlbF91Y19md19zdGF0dXNfcmVw
cihlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXMpOwogZXh0ZXJuIGludCBpbnRlbF9ndWNf
c3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4dGVybiBpbnQgaW50ZWxfZ3VjX3Jl
c3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK3ZvaWQgaW50ZWxfdWNfZndfZmV0Y2goc3Ry
dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdyk7CiAKIC8qIGk5
MTVfZ3VjX3N1Ym1pc3Npb24uYyAqLwogaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1
Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv
ZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf
Z3VjX2xvYWRlci5jCmluZGV4IDRmNjMxMWEuLjE0MjRjNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv
Z3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx
NS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTY2LDE2ICs2NiwxNiBAQCBNT0RVTEVfRklSTVdBUkUo
STkxNV9TS0xfR1VDX1VDT0RFKTsKIE1PRFVMRV9GSVJNV0FSRShJOTE1X0JYVF9HVUNfVUNPREUp
OwogCiAvKiBVc2VyLWZyaWVuZGx5IHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudW0gKi8KLWNvbnN0
IGNoYXIgKmludGVsX2d1Y19md19zdGF0dXNfcmVwcihlbnVtIGludGVsX2d1Y19md19zdGF0dXMg
c3RhdHVzKQorY29uc3QgY2hhciAqaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF91
Y19md19zdGF0dXMgc3RhdHVzKQogewogCXN3aXRjaCAoc3RhdHVzKSB7Ci0JY2FzZSBHVUNfRklS
TVdBUkVfRkFJTDoKKwljYXNlIFVDX0ZJUk1XQVJFX0ZBSUw6CiAJCXJldHVybiAiRkFJTCI7Ci0J
Y2FzZSBHVUNfRklSTVdBUkVfTk9ORToKKwljYXNlIFVDX0ZJUk1XQVJFX05PTkU6CiAJCXJldHVy
biAiTk9ORSI7Ci0JY2FzZSBHVUNfRklSTVdBUkVfUEVORElORzoKKwljYXNlIFVDX0ZJUk1XQVJF
X1BFTkRJTkc6CiAJCXJldHVybiAiUEVORElORyI7Ci0JY2FzZSBHVUNfRklSTVdBUkVfU1VDQ0VT
UzoKKwljYXNlIFVDX0ZJUk1XQVJFX1NVQ0NFU1M6CiAJCXJldHVybiAiU1VDQ0VTUyI7CiAJZGVm
YXVsdDoKIAkJcmV0dXJuICJVTktOT1dOISI7CkBAIC0yMzcsOCArMjM3LDggQEAgc3RhdGljIGlu
bGluZSBib29sIGd1Y191Y29kZV9yZXNwb25zZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2
X3ByaXYsCiAgKi8KIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXJfZG1hKHN0cnVjdCBkcm1faTkx
NV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAm
ZGV2X3ByaXYtPmd1Yy5ndWNfZnc7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmZ3X29i
aiA9IGd1Y19mdy0+Z3VjX2Z3X29iajsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZk
ZXZfcHJpdi0+Z3VjLmd1Y19mdzsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZndfb2Jq
ID0gZ3VjX2Z3LT51Y19md19vYmo7CiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7CiAJc3RydWN0IHNn
X3RhYmxlICpzZyA9IGZ3X29iai0+cGFnZXM7CiAJdTMyIHN0YXR1cywgcnNhW1VPU19SU0FfU0NS
QVRDSF9NQVhfQ09VTlRdOwpAQCAtMzEwLDE3ICszMTAsMTcgQEAgc3RhdGljIHUzMiBndWNfd29w
Y21fc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAgKi8KIHN0YXRpYyBp
bnQgZ3VjX3Vjb2RlX3hmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewot
CXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKKwlz
dHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKIAlzdHJ1
Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKIAlpbnQgcmV0OwogCi0JcmV0ID0g
aTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKGd1Y19mdy0+Z3VjX2Z3X29iaiwgZmFs
c2UpOworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihndWNfZnctPnVj
X2Z3X29iaiwgZmFsc2UpOwogCWlmIChyZXQpIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigic2V0LWRv
bWFpbiBmYWlsZWQgJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7CiAJfQogCi0JcmV0ID0gaTkx
NV9nZW1fb2JqX2dndHRfcGluKGd1Y19mdy0+Z3VjX2Z3X29iaiwgMCwgMCk7CisJcmV0ID0gaTkx
NV9nZW1fb2JqX2dndHRfcGluKGd1Y19mdy0+dWNfZndfb2JqLCAwLCAwKTsKIAlpZiAocmV0KSB7
CiAJCURSTV9ERUJVR19EUklWRVIoInBpbiBmYWlsZWQgJWRcbiIsIHJldCk7CiAJCXJldHVybiBy
ZXQ7CkBAIC0zNzIsNyArMzcyLDcgQEAgc3RhdGljIGludCBndWNfdWNvZGVfeGZlcihzdHJ1Y3Qg
ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogV2Uga2VlcCB0aGUgb2JqZWN0IHBhZ2Vz
IGZvciByZXVzZSBkdXJpbmcgcmVzdW1lLiBCdXQgd2UgY2FuIHVucGluIGl0CiAJICogbm93IHRo
YXQgRE1BIGhhcyBjb21wbGV0ZWQsIHNvIGl0IGRvZXNuJ3QgY29udGludWUgdG8gdGFrZSB1cCBz
cGFjZS4KIAkgKi8KLQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihndWNfZnctPmd1Y19md19v
YmopOworCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGd1Y19mdy0+dWNfZndfb2JqKTsKIAog
CXJldHVybiByZXQ7CiB9CkBAIC00MTEsMTQgKzQxMSwxNCBAQCBzdGF0aWMgaW50IGk5MTVfcmVz
ZXRfZ3VjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIGludCBpbnRlbF9ndWNf
c2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0
ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1
Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKLQljb25zdCBjaGFyICpmd19wYXRoID0gZ3Vj
X2Z3LT5ndWNfZndfcGF0aDsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJp
di0+Z3VjLmd1Y19mdzsKKwljb25zdCBjaGFyICpmd19wYXRoID0gZ3VjX2Z3LT51Y19md19wYXRo
OwogCWludCByZXRyaWVzLCByZXQsIGVycjsKIAogCURSTV9ERUJVR19EUklWRVIoIkd1QyBmdyBz
dGF0dXM6IHBhdGggJXMsIGZldGNoICVzLCBsb2FkICVzXG4iLAogCQlmd19wYXRoLAotCQlpbnRl
bF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSwKLQkJaW50
ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7CisJCWlu
dGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKKwkJaW50ZWxfdWNf
Zndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwogCiAJLyogTG9hZGluZyBmb3Ji
aWRkZW4sIG9yIG5vIGZpcm13YXJlIHRvIGxvYWQ/ICovCiAJaWYgKCFpOTE1LmVuYWJsZV9ndWNf
bG9hZGluZykgewpAQCAtNDM2LDIxICs0MzYsMjEgQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1
Y3QgZHJtX2RldmljZSAqZGV2KQogCX0KIAogCS8qIEZldGNoIGZhaWxlZCwgb3IgYWxyZWFkeSBm
ZXRjaGVkIGJ1dCBmYWlsZWQgdG8gbG9hZD8gKi8KLQlpZiAoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hf
c3RhdHVzICE9IEdVQ19GSVJNV0FSRV9TVUNDRVNTKSB7CisJaWYgKGd1Y19mdy0+ZmV0Y2hfc3Rh
dHVzICE9IFVDX0ZJUk1XQVJFX1NVQ0NFU1MpIHsKIAkJZXJyID0gLUVJTzsKIAkJZ290byBmYWls
OwotCX0gZWxzZSBpZiAoZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPT0gR1VDX0ZJUk1XQVJF
X0ZBSUwpIHsKKwl9IGVsc2UgaWYgKGd1Y19mdy0+bG9hZF9zdGF0dXMgPT0gVUNfRklSTVdBUkVf
RkFJTCkgewogCQllcnIgPSAtRU5PRVhFQzsKIAkJZ290byBmYWlsOwogCX0KIAogCWRpcmVjdF9p
bnRlcnJ1cHRzX3RvX2hvc3QoZGV2X3ByaXYpOwogCi0JZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0
dXMgPSBHVUNfRklSTVdBUkVfUEVORElORzsKKwlndWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklS
TVdBUkVfUEVORElORzsKIAogCURSTV9ERUJVR19EUklWRVIoIkd1QyBmdyBzdGF0dXM6IGZldGNo
ICVzLCBsb2FkICVzXG4iLAotCQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNf
ZndfZmV0Y2hfc3RhdHVzKSwKLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3Vj
X2Z3X2xvYWRfc3RhdHVzKSk7CisJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0
Y2hfc3RhdHVzKSwKKwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1
cykpOwogCiAJZXJyID0gaTkxNV9ndWNfc3VibWlzc2lvbl9pbml0KGRldl9wcml2KTsKIAlpZiAo
ZXJyKQpAQCAtNDg0LDExICs0ODQsMTEgQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJt
X2RldmljZSAqZGV2KQogCQkJICJyZXRyeSAlZCBtb3JlIHRpbWUocylcbiIsIGVyciwgcmV0cmll
cyk7CiAJfQogCi0JZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfU1VD
Q0VTUzsKKwlndWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklSTVdBUkVfU1VDQ0VTUzsKIAogCURS
TV9ERUJVR19EUklWRVIoIkd1QyBmdyBzdGF0dXM6IGZldGNoICVzLCBsb2FkICVzXG4iLAotCQlp
bnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSwKLQkJ
aW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7CisJ
CWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKKwkJaW50ZWxf
dWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwogCiAJaWYgKGk5MTUuZW5h
YmxlX2d1Y19zdWJtaXNzaW9uKSB7CiAJCWVyciA9IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxl
KGRldl9wcml2KTsKQEAgLTUwMCw4ICs1MDAsOCBAQCBpbnQgaW50ZWxfZ3VjX3NldHVwKHN0cnVj
dCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0dXJuIDA7CiAKIGZhaWw6Ci0JaWYgKGd1Y19mdy0+Z3Vj
X2Z3X2xvYWRfc3RhdHVzID09IEdVQ19GSVJNV0FSRV9QRU5ESU5HKQotCQlndWNfZnctPmd1Y19m
d19sb2FkX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9GQUlMOworCWlmIChndWNfZnctPmxvYWRfc3Rh
dHVzID09IFVDX0ZJUk1XQVJFX1BFTkRJTkcpCisJCWd1Y19mdy0+bG9hZF9zdGF0dXMgPSBVQ19G
SVJNV0FSRV9GQUlMOwogCiAJZGlyZWN0X2ludGVycnVwdHNfdG9faG9zdChkZXZfcHJpdik7CiAJ
aTkxNV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKGRldl9wcml2KTsKQEAgLTU0Niw3ICs1NDYsNyBA
QCBmYWlsOgogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIGd1Y19md19mZXRjaChzdHJ1
Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncpCit2b2lkIGlu
dGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF91Y19m
dyAqdWNfZncpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAljb25zdCBz
dHJ1Y3QgZmlybXdhcmUgKmZ3OwpAQCAtNTU1LDE2ICs1NTUsMTYgQEAgc3RhdGljIHZvaWQgZ3Vj
X2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1
Y19mdykKIAlpbnQgZXJyOwogCiAJRFJNX0RFQlVHX0RSSVZFUigiYmVmb3JlIHJlcXVlc3Rpbmcg
ZmlybXdhcmU6IEd1QyBmdyBmZXRjaCBzdGF0dXMgJXNcbiIsCi0JCWludGVsX2d1Y19md19zdGF0
dXNfcmVwcihndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMpKTsKKwkJaW50ZWxfdWNfZndfc3Rh
dHVzX3JlcHIodWNfZnctPmZldGNoX3N0YXR1cykpOwogCi0JZXJyID0gcmVxdWVzdF9maXJtd2Fy
ZSgmZncsIGd1Y19mdy0+Z3VjX2Z3X3BhdGgsICZkZXYtPnBkZXYtPmRldik7CisJZXJyID0gcmVx
dWVzdF9maXJtd2FyZSgmZncsIHVjX2Z3LT51Y19md19wYXRoLCAmZGV2LT5wZGV2LT5kZXYpOwog
CWlmIChlcnIpCiAJCWdvdG8gZmFpbDsKIAlpZiAoIWZ3KQogCQlnb3RvIGZhaWw7CiAKIAlEUk1f
REVCVUdfRFJJVkVSKCJmZXRjaCBHdUMgZncgZnJvbSAlcyBzdWNjZWVkZWQsIGZ3ICVwXG4iLAot
CQlndWNfZnctPmd1Y19md19wYXRoLCBmdyk7CisJCXVjX2Z3LT51Y19md19wYXRoLCBmdyk7CiAK
IAkvKiBDaGVjayB0aGUgc2l6ZSBvZiB0aGUgYmxvYiBiZWZvcmUgZXhhbWluaW5nIGJ1ZmZlciBj
b250ZW50cyAqLwogCWlmIChmdy0+c2l6ZSA8IHNpemVvZihzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIp
KSB7CkBAIC01NzUsMzYgKzU3NSwzNiBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0
IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogCWNzcyA9IChz
dHJ1Y3QgZ3VjX2Nzc19oZWFkZXIgKilmdy0+ZGF0YTsKIAogCS8qIEZpcm13YXJlIGJpdHMgYWx3
YXlzIHN0YXJ0IGZyb20gaGVhZGVyICovCi0JZ3VjX2Z3LT5oZWFkZXJfb2Zmc2V0ID0gMDsKLQln
dWNfZnctPmhlYWRlcl9zaXplID0gKGNzcy0+aGVhZGVyX3NpemVfZHcgLSBjc3MtPm1vZHVsdXNf
c2l6ZV9kdyAtCisJdWNfZnctPmhlYWRlcl9vZmZzZXQgPSAwOworCXVjX2Z3LT5oZWFkZXJfc2l6
ZSA9IChjc3MtPmhlYWRlcl9zaXplX2R3IC0gY3NzLT5tb2R1bHVzX3NpemVfZHcgLQogCQljc3Mt
PmtleV9zaXplX2R3IC0gY3NzLT5leHBvbmVudF9zaXplX2R3KSAqIHNpemVvZih1MzIpOwogCi0J
aWYgKGd1Y19mdy0+aGVhZGVyX3NpemUgIT0gc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikp
IHsKKwlpZiAodWNfZnctPmhlYWRlcl9zaXplICE9IHNpemVvZihzdHJ1Y3QgZ3VjX2Nzc19oZWFk
ZXIpKSB7CiAJCURSTV9FUlJPUigiQ1NTIGhlYWRlciBkZWZpbml0aW9uIG1pc21hdGNoXG4iKTsK
IAkJZ290byBmYWlsOwogCX0KIAogCS8qIHRoZW4sIHVDb2RlICovCi0JZ3VjX2Z3LT51Y29kZV9v
ZmZzZXQgPSBndWNfZnctPmhlYWRlcl9vZmZzZXQgKyBndWNfZnctPmhlYWRlcl9zaXplOwotCWd1
Y19mdy0+dWNvZGVfc2l6ZSA9IChjc3MtPnNpemVfZHcgLSBjc3MtPmhlYWRlcl9zaXplX2R3KSAq
IHNpemVvZih1MzIpOworCXVjX2Z3LT51Y29kZV9vZmZzZXQgPSB1Y19mdy0+aGVhZGVyX29mZnNl
dCArIHVjX2Z3LT5oZWFkZXJfc2l6ZTsKKwl1Y19mdy0+dWNvZGVfc2l6ZSA9IChjc3MtPnNpemVf
ZHcgLSBjc3MtPmhlYWRlcl9zaXplX2R3KSAqIHNpemVvZih1MzIpOwogCiAJLyogbm93IFJTQSAq
LwogCWlmIChjc3MtPmtleV9zaXplX2R3ICE9IFVPU19SU0FfU0NSQVRDSF9NQVhfQ09VTlQpIHsK
IAkJRFJNX0VSUk9SKCJSU0Ega2V5IHNpemUgaXMgYmFkXG4iKTsKIAkJZ290byBmYWlsOwogCX0K
LQlndWNfZnctPnJzYV9vZmZzZXQgPSBndWNfZnctPnVjb2RlX29mZnNldCArIGd1Y19mdy0+dWNv
ZGVfc2l6ZTsKLQlndWNfZnctPnJzYV9zaXplID0gY3NzLT5rZXlfc2l6ZV9kdyAqIHNpemVvZih1
MzIpOworCXVjX2Z3LT5yc2Ffb2Zmc2V0ID0gdWNfZnctPnVjb2RlX29mZnNldCArIHVjX2Z3LT51
Y29kZV9zaXplOworCXVjX2Z3LT5yc2Ffc2l6ZSA9IGNzcy0+a2V5X3NpemVfZHcgKiBzaXplb2Yo
dTMyKTsKIAogCS8qIEF0IGxlYXN0LCBpdCBzaG91bGQgaGF2ZSBoZWFkZXIsIHVDb2RlIGFuZCBS
U0EuIFNpemUgb2YgYWxsIHRocmVlLiAqLwotCXNpemUgPSBndWNfZnctPmhlYWRlcl9zaXplICsg
Z3VjX2Z3LT51Y29kZV9zaXplICsgZ3VjX2Z3LT5yc2Ffc2l6ZTsKKwlzaXplID0gdWNfZnctPmhl
YWRlcl9zaXplICsgdWNfZnctPnVjb2RlX3NpemUgKyB1Y19mdy0+cnNhX3NpemU7CiAJaWYgKGZ3
LT5zaXplIDwgc2l6ZSkgewogCQlEUk1fRVJST1IoIk1pc3NpbmcgZmlybXdhcmUgY29tcG9uZW50
c1xuIik7CiAJCWdvdG8gZmFpbDsKIAl9CiAKIAkvKiBIZWFkZXIgYW5kIHVDb2RlIHdpbGwgYmUg
bG9hZGVkIHRvIFdPUENNLiBTaXplIG9mIHRoZSB0d28uICovCi0Jc2l6ZSA9IGd1Y19mdy0+aGVh
ZGVyX3NpemUgKyBndWNfZnctPnVjb2RlX3NpemU7CisJc2l6ZSA9IHVjX2Z3LT5oZWFkZXJfc2l6
ZSArIHVjX2Z3LT51Y29kZV9zaXplOwogCWlmIChzaXplID4gZ3VjX3dvcGNtX3NpemUoZGV2LT5k
ZXZfcHJpdmF0ZSkpIHsKIAkJRFJNX0VSUk9SKCJGaXJtd2FyZSBpcyB0b28gbGFyZ2UgdG8gZml0
IGluIFdPUENNXG4iKTsKIAkJZ290byBmYWlsOwpAQCAtNjE2LDIxICs2MTYsMjEgQEAgc3RhdGlj
IHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9n
dWNfZncgKmd1Y19mdykKIAkgKiBUV08gYnl0ZXMgZWFjaCAoaS5lLiB1MTYpLCBhbHRob3VnaCBh
bGwgcG9pbnRlcnMgYW5kIG9mZnNldHMgYXJlIGRlZmluZWQKIAkgKiBpbiB0ZXJtcyBvZiBieXRl
cyAodTgpLgogCSAqLwotCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kID0gY3NzLT5ndWNfc3df
dmVyc2lvbiA+PiAxNjsKLQlndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCA9IGNzcy0+Z3VjX3N3
X3ZlcnNpb24gJiAweEZGRkY7CisJdWNfZnctPm1ham9yX3Zlcl9mb3VuZCA9IGNzcy0+Z3VjX3N3
X3ZlcnNpb24gPj4gMTY7CisJdWNfZnctPm1pbm9yX3Zlcl9mb3VuZCA9IGNzcy0+Z3VjX3N3X3Zl
cnNpb24gJiAweEZGRkY7CiAKLQlpZiAoZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQgIT0gZ3Vj
X2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkIHx8Ci0JICAgIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2Zv
dW5kIDwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkKSB7CisJaWYgKHVjX2Z3LT5tYWpvcl92
ZXJfZm91bmQgIT0gdWNfZnctPm1ham9yX3Zlcl93YW50ZWQgfHwKKwkgICAgdWNfZnctPm1pbm9y
X3Zlcl9mb3VuZCA8IHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkKSB7CiAJCURSTV9FUlJPUigiR3VD
IGZpcm13YXJlIHZlcnNpb24gJWQuJWQsIHJlcXVpcmVkICVkLiVkXG4iLAotCQkJZ3VjX2Z3LT5n
dWNfZndfbWFqb3JfZm91bmQsIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kLAotCQkJZ3VjX2Z3
LT5ndWNfZndfbWFqb3Jfd2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpOworCQkJ
dWNfZnctPm1ham9yX3Zlcl9mb3VuZCwgdWNfZnctPm1pbm9yX3Zlcl9mb3VuZCwKKwkJCXVjX2Z3
LT5tYWpvcl92ZXJfd2FudGVkLCB1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCk7CiAJCWVyciA9IC1F
Tk9FWEVDOwogCQlnb3RvIGZhaWw7CiAJfQogCiAJRFJNX0RFQlVHX0RSSVZFUigiZmlybXdhcmUg
dmVyc2lvbiAlZC4lZCBPSyAobWluaW11bSAlZC4lZClcbiIsCi0JCQlndWNfZnctPmd1Y19md19t
YWpvcl9mb3VuZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3JfZm91bmQsCi0JCQlndWNfZnctPmd1Y19m
d19tYWpvcl93YW50ZWQsIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX3dhbnRlZCk7CisJCQl1Y19mdy0+
bWFqb3JfdmVyX2ZvdW5kLCB1Y19mdy0+bWlub3JfdmVyX2ZvdW5kLAorCQkJdWNfZnctPm1ham9y
X3Zlcl93YW50ZWQsIHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkKTsKIAogCW11dGV4X2xvY2soJmRl
di0+c3RydWN0X211dGV4KTsKIAlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2Zyb21fZGF0
YShkZXYsIGZ3LT5kYXRhLCBmdy0+c2l6ZSk7CkBAIC02NDAsMzEgKzY0MCwzMSBAQCBzdGF0aWMg
dm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1
Y19mdyAqZ3VjX2Z3KQogCQlnb3RvIGZhaWw7CiAJfQogCi0JZ3VjX2Z3LT5ndWNfZndfb2JqID0g
b2JqOwotCWd1Y19mdy0+Z3VjX2Z3X3NpemUgPSBmdy0+c2l6ZTsKKwl1Y19mdy0+dWNfZndfb2Jq
ID0gb2JqOworCXVjX2Z3LT51Y19md19zaXplID0gZnctPnNpemU7CiAKIAlEUk1fREVCVUdfRFJJ
VkVSKCJHdUMgZncgZmV0Y2ggc3RhdHVzIFNVQ0NFU1MsIG9iaiAlcFxuIiwKLQkJCWd1Y19mdy0+
Z3VjX2Z3X29iaik7CisJCQl1Y19mdy0+dWNfZndfb2JqKTsKIAogCXJlbGVhc2VfZmlybXdhcmUo
ZncpOwotCWd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9TVUNDRVNT
OworCXVjX2Z3LT5mZXRjaF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9TVUNDRVNTOwogCXJldHVybjsK
IAogZmFpbDoKIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgZmV0Y2ggc3RhdHVzIEZBSUw7IGVy
ciAlZCwgZncgJXAsIG9iaiAlcFxuIiwKLQkJZXJyLCBmdywgZ3VjX2Z3LT5ndWNfZndfb2JqKTsK
KwkJZXJyLCBmdywgdWNfZnctPnVjX2Z3X29iaik7CiAJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZmV0
Y2ggR3VDIGZpcm13YXJlIGZyb20gJXMgKGVycm9yICVkKVxuIiwKLQkJICBndWNfZnctPmd1Y19m
d19wYXRoLCBlcnIpOworCQkgIHVjX2Z3LT51Y19md19wYXRoLCBlcnIpOwogCiAJbXV0ZXhfbG9j
aygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCW9iaiA9IGd1Y19mdy0+Z3VjX2Z3X29iajsKKwlvYmog
PSB1Y19mdy0+dWNfZndfb2JqOwogCWlmIChvYmopCiAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJl
bmNlKCZvYmotPmJhc2UpOwotCWd1Y19mdy0+Z3VjX2Z3X29iaiA9IE5VTEw7CisJdWNfZnctPnVj
X2Z3X29iaiA9IE5VTEw7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKIAly
ZWxlYXNlX2Zpcm13YXJlKGZ3KTsJCS8qIE9LIGV2ZW4gaWYgZncgaXMgTlVMTCAqLwotCWd1Y19m
dy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9GQUlMOworCXVjX2Z3LT5mZXRj
aF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9GQUlMOwogfQogCiAvKioKQEAgLTY3OSw3ICs2NzksNyBA
QCBmYWlsOgogdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewog
CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0J
c3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OworCXN0
cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OwogCWNvbnN0
IGNoYXIgKmZ3X3BhdGg7CiAKIAkvKiBBIG5lZ2F0aXZlIHZhbHVlIG1lYW5zICJ1c2UgcGxhdGZv
cm0gZGVmYXVsdCIgKi8KQEAgLTY5MiwyMCArNjkyLDIwIEBAIHZvaWQgaW50ZWxfZ3VjX2luaXQo
c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJZndfcGF0aCA9IE5VTEw7CiAJfSBlbHNlIGlmIChJ
U19TS1lMQUtFKGRldikpIHsKIAkJZndfcGF0aCA9IEk5MTVfU0tMX0dVQ19VQ09ERTsKLQkJZ3Vj
X2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkID0gNjsKLQkJZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2Fu
dGVkID0gMTsKKwkJZ3VjX2Z3LT5tYWpvcl92ZXJfd2FudGVkID0gNjsKKwkJZ3VjX2Z3LT5taW5v
cl92ZXJfd2FudGVkID0gMTsKIAl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgewogCQlmd19w
YXRoID0gSTkxNV9CWFRfR1VDX1VDT0RFOwotCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQg
PSA4OwotCQlndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQgPSA3OworCQlndWNfZnctPm1ham9y
X3Zlcl93YW50ZWQgPSA4OworCQlndWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPSA3OwogCX0gZWxz
ZSB7CiAJCWZ3X3BhdGggPSAiIjsJLyogdW5rbm93biBkZXZpY2UgKi8KIAl9CiAKLQlndWNfZnct
Pmd1Y19kZXYgPSBkZXY7Ci0JZ3VjX2Z3LT5ndWNfZndfcGF0aCA9IGZ3X3BhdGg7Ci0JZ3VjX2Z3
LT5ndWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX05PTkU7Ci0JZ3VjX2Z3LT5ndWNf
ZndfbG9hZF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfTk9ORTsKKwlndWNfZnctPnVjX2RldiA9IGRl
djsKKwlndWNfZnctPnVjX2Z3X3BhdGggPSBmd19wYXRoOworCWd1Y19mdy0+ZmV0Y2hfc3RhdHVz
ID0gVUNfRklSTVdBUkVfTk9ORTsKKwlndWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklSTVdBUkVf
Tk9ORTsKIAogCS8qIEVhcmx5IChhbmQgc2lsZW50KSByZXR1cm4gaWYgR3VDIGxvYWRpbmcgaXMg
ZGlzYWJsZWQgKi8KIAlpZiAoIWk5MTUuZW5hYmxlX2d1Y19sb2FkaW5nKQpAQCAtNzE1LDkgKzcx
NSw5IEBAIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAo
KmZ3X3BhdGggPT0gJ1wwJykKIAkJcmV0dXJuOwogCi0JZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3Rh
dHVzID0gR1VDX0ZJUk1XQVJFX1BFTkRJTkc7CisJZ3VjX2Z3LT5mZXRjaF9zdGF0dXMgPSBVQ19G
SVJNV0FSRV9QRU5ESU5HOwogCURSTV9ERUJVR19EUklWRVIoIkd1QyBmaXJtd2FyZSBwZW5kaW5n
LCBwYXRoICVzXG4iLCBmd19wYXRoKTsKLQlndWNfZndfZmV0Y2goZGV2LCBndWNfZncpOworCWlu
dGVsX3VjX2Z3X2ZldGNoKGRldiwgZ3VjX2Z3KTsKIAkvKiBzdGF0dXMgbXVzdCBub3cgYmUgRkFJ
TCBvciBTVUNDRVNTICovCiB9CiAKQEAgLTcyOCwxNyArNzI4LDE3IEBAIHZvaWQgaW50ZWxfZ3Vj
X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHZvaWQgaW50ZWxfZ3VjX2Zpbmkoc3RydWN0
IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg
PSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZf
cHJpdi0+Z3VjLmd1Y19mdzsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJp
di0+Z3VjLmd1Y19mdzsKIAogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlkaXJl
Y3RfaW50ZXJydXB0c190b19ob3N0KGRldl9wcml2KTsKIAlpOTE1X2d1Y19zdWJtaXNzaW9uX2Rp
c2FibGUoZGV2X3ByaXYpOwogCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShkZXZfcHJpdik7CiAK
LQlpZiAoZ3VjX2Z3LT5ndWNfZndfb2JqKQotCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgm
Z3VjX2Z3LT5ndWNfZndfb2JqLT5iYXNlKTsKLQlndWNfZnctPmd1Y19md19vYmogPSBOVUxMOwor
CWlmIChndWNfZnctPnVjX2Z3X29iaikKKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmd1
Y19mdy0+dWNfZndfb2JqLT5iYXNlKTsKKwlndWNfZnctPnVjX2Z3X29iaiA9IE5VTEw7CiAJbXV0
ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKLQlndWNfZnctPmd1Y19md19mZXRjaF9z
dGF0dXMgPSBHVUNfRklSTVdBUkVfTk9ORTsKKwlndWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJ
Uk1XQVJFX05PTkU7CiB9Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu
ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz
dGluZm8vaW50ZWwtZ2Z4Cg==

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Peter Antoine <peter.antoine@intel.com>
Subject: [PATCH v2 2/6] drm/i915/huc: Unified css_header struct
	for GuC and HuC
Date: Fri,  1 Jul 2016 14:15:41 +0100
Message-ID: <1467378945-14274-3-git-send-email-peter.antoine@intel.com>
References: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <intel-gfx-bounces@lists.freedesktop.org>
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by gabe.freedesktop.org (Postfix) with ESMTP id 678FE6EA6E
 for <intel-gfx@lists.freedesktop.org>; Fri,  1 Jul 2016 13:15:57 +0000 (UTC)
In-Reply-To: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
List-Unsubscribe: <https://lists.freedesktop.org/mailman/options/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <https://lists.freedesktop.org/archives/intel-gfx>
List-Post: <mailto:intel-gfx@lists.freedesktop.org>
List-Help: <mailto:intel-gfx-request@lists.freedesktop.org?subject=help>
List-Subscribe: <https://lists.freedesktop.org/mailman/listinfo/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=subscribe>
Errors-To: intel-gfx-bounces@lists.freedesktop.org
Sender: "Intel-gfx" <intel-gfx-bounces@lists.freedesktop.org>
To: intel-gfx@lists.freedesktop.org
Cc: rodrigo.vivi@intel.com
List-Id: intel-gfx@lists.freedesktop.org

SHVDIGZpcm13YXJlIGNzcyBoZWFkZXIgaGFzIGFsbW9zdCBleGFjdGx5IHNhbWUgZGVmaW5pdGlv
biBhcyBHdUMKZmlybXdhcmUgZXhjZXB0IGZvciB0aGUgc3dfdmVyc2lvbi4gQWxzbywgYWRkIGEg
bmV3IG1lbWJlciBmd190eXBlCmludG8gaW50ZWxfdWNfZncgdG8gaW5kaWNhdGUgd2hhdCBraW5k
IG9mIGZ3IGl0IGlzLiBTbywgdGhlIGxvYWRlcgp3aWxsIHB1bGwgcmlnaHQgc3dfdmVyc2lvbiBm
cm9tIGhlYWRlci4KCnYyOiByZWJhc2VkIG9uLXRvcCBvZiBkcm4taW50ZWwtbmlnaHRseQoKU2ln
bmVkLW9mZi1ieTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFBl
dGVyIEFudG9pbmUgPHBldGVyLmFudG9pbmVAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry
bS9pOTE1L2ludGVsX2d1Yy5oICAgICAgICB8ICA0ICsrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1
L2ludGVsX2d1Y19md2lmLmggICB8IDE2ICsrKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9p
OTE1L2ludGVsX2d1Y19sb2FkZXIuYyB8IDQwICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0t
LS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZlcnMv
Z3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCmluZGV4IDAyYWRjZmMuLmViZjljOGQgMTAwNjQ0Ci0t
LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry
bS9pOTE1L2ludGVsX2d1Yy5oCkBAIC05Nyw2ICs5Nyw5IEBAIGVudW0gaW50ZWxfdWNfZndfc3Rh
dHVzIHsKIAlVQ19GSVJNV0FSRV9TVUNDRVNTCiB9OwogCisjZGVmaW5lIFVDX0ZXX1RZUEVfR1VD
CQkwCisjZGVmaW5lIFVDX0ZXX1RZUEVfSFVDCQkxCisKIC8qCiAgKiBUaGlzIHN0cnVjdHVyZSBl
bmNhcHN1bGF0ZXMgYWxsIHRoZSBkYXRhIG5lZWRlZCBkdXJpbmcgdGhlIHByb2Nlc3MKICAqIG9m
IGZldGNoaW5nLCBjYWNoaW5nLCBhbmQgbG9hZGluZyB0aGUgZmlybXdhcmUgaW1hZ2UgaW50byB0
aGUgR3VDLgpAQCAtMTE0LDYgKzExNyw3IEBAIHN0cnVjdCBpbnRlbF91Y19mdyB7CiAJdWludDE2
X3QgbWFqb3JfdmVyX2ZvdW5kOwogCXVpbnQxNl90IG1pbm9yX3Zlcl9mb3VuZDsKIAorCXVpbnQz
Ml90IGZ3X3R5cGU7CiAJdWludDMyX3QgaGVhZGVyX3NpemU7CiAJdWludDMyX3QgaGVhZGVyX29m
ZnNldDsKIAl1aW50MzJfdCByc2Ffc2l6ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p
OTE1L2ludGVsX2d1Y19md2lmLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndp
Zi5oCmluZGV4IDk0NDc4NmQuLmE2OWVlMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p
OTE1L2ludGVsX2d1Y19md2lmLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj
X2Z3aWYuaApAQCAtMTU0LDcgKzE1NCw3IEBACiAgKiBUaGUgR3VDIGZpcm13YXJlIGxheW91dCBs
b29rcyBsaWtlIHRoaXM6CiAgKgogICogICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKwotICogICAgIHwgICAgICAgIGd1Y19jc3NfaGVhZGVyICAgICAgICAgfAorICogICAgIHwg
ICAgICAgICB1Y19jc3NfaGVhZGVyICAgICAgICAgfAogICogICAgIHwgY29udGFpbnMgbWFqb3Iv
bWlub3IgdmVyc2lvbiAgfAogICogICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KwogICogICAgIHwgICAgICAgICAgICAgdUNvZGUgICAgICAgICAgICAgfApAQCAtMTgwLDkgKzE4
MCwxNiBAQAogICogMy4gTGVuZ3RoIGluZm8gb2YgZWFjaCBjb21wb25lbnQgY2FuIGJlIGZvdW5k
IGluIGhlYWRlciwgaW4gZHdvcmRzLgogICogNC4gTW9kdWx1cyBhbmQgZXhwb25lbnQga2V5IGFy
ZSBub3QgcmVxdWlyZWQgYnkgZHJpdmVyLiBUaGV5IG1heSBub3QgYXBwZWFyCiAgKiBpbiBmdy4g
U28gZHJpdmVyIHdpbGwgbG9hZCBhIHRydW5jYXRlZCBmaXJtd2FyZSBpbiB0aGlzIGNhc2UuCisg
KgorICogSHVDIGZpcm13YXJlIGxheW91dCBpcyBzYW1lIGFzIEd1QyBmaXJtd2FyZS4KKyAqCisg
KiBIdUMgZmlybXdhcmUgY3NzIGhlYWRlciBpcyBkaWZmZXJlbnQuIEhvd2V2ZXIsIHRoZSBvbmx5
IGRpZmZlcmVuY2UgaXMgd2hlcmUKKyAqIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGlzIHNhdmVk
LiBUaGUgdWNfY3NzX2hlYWRlciBpcyB1bmlmaWVkIHRvIHN1cHBvcnQKKyAqIGJvdGguIERyaXZl
ciBzaG91bGQgZ2V0IEh1QyB2ZXJzaW9uIGZyb20gdWNfY3NzX2hlYWRlci5odWNfc3dfdmVyc2lv
biwgd2hpbGUKKyAqIHVjX2Nzc19oZWFkZXIuZ3VjX3N3X3ZlcnNpb24gZm9yIEd1Qy4KICAqLwog
Ci1zdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIgeworc3RydWN0IHVjX2Nzc19oZWFkZXIgewogCXVpbnQz
Ml90IG1vZHVsZV90eXBlOwogCS8qIGhlYWRlcl9zaXplIGluY2x1ZGVzIGFsbCBub24tdUNvZGUg
Yml0cywgaW5jbHVkaW5nIGNzc19oZWFkZXIsIHJzYQogCSAqIGtleSwgbW9kdWx1cyBrZXkgYW5k
IGV4cG9uZW50IGRhdGEuICovCkBAIC0yMTMsNyArMjIwLDEwIEBAIHN0cnVjdCBndWNfY3NzX2hl
YWRlciB7CiAKIAljaGFyIHVzZXJuYW1lWzhdOwogCWNoYXIgYnVpbGRudW1iZXJbMTJdOwotCXVp
bnQzMl90IGRldmljZV9pZDsKKwl1bmlvbiB7CisJCXVpbnQzMl90IGRldmljZV9pZDsKKwkJdWlu
dDMyX3QgaHVjX3N3X3ZlcnNpb247CisJfTsKIAl1aW50MzJfdCBndWNfc3dfdmVyc2lvbjsKIAl1
aW50MzJfdCBwcm9kX3ByZXByb2RfZnc7CiAJdWludDMyX3QgcmVzZXJ2ZWRbMTJdOwpkaWZmIC0t
Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9n
cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCmluZGV4IDE0MjRjNDIuLjNlOGUxN2EgMTAw
NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9k
cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTU1MCw3ICs1NTAsNyBA
QCB2b2lkIGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBp
bnRlbF91Y19mdyAqdWNfZncpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsK
IAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwotCXN0cnVjdCBndWNfY3NzX2hlYWRlciAqY3Nz
OworCXN0cnVjdCB1Y19jc3NfaGVhZGVyICpjc3M7CiAJc2l6ZV90IHNpemU7CiAJaW50IGVycjsK
IApAQCAtNTY3LDE5ICs1NjcsMTkgQEAgdm9pZCBpbnRlbF91Y19md19mZXRjaChzdHJ1Y3QgZHJt
X2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQogCQl1Y19mdy0+dWNfZndf
cGF0aCwgZncpOwogCiAJLyogQ2hlY2sgdGhlIHNpemUgb2YgdGhlIGJsb2IgYmVmb3JlIGV4YW1p
bmluZyBidWZmZXIgY29udGVudHMgKi8KLQlpZiAoZnctPnNpemUgPCBzaXplb2Yoc3RydWN0IGd1
Y19jc3NfaGVhZGVyKSkgeworCWlmIChmdy0+c2l6ZSA8IHNpemVvZihzdHJ1Y3QgdWNfY3NzX2hl
YWRlcikpIHsKIAkJRFJNX0VSUk9SKCJGaXJtd2FyZSBoZWFkZXIgaXMgbWlzc2luZ1xuIik7CiAJ
CWdvdG8gZmFpbDsKIAl9CiAKLQljc3MgPSAoc3RydWN0IGd1Y19jc3NfaGVhZGVyICopZnctPmRh
dGE7CisJY3NzID0gKHN0cnVjdCB1Y19jc3NfaGVhZGVyICopZnctPmRhdGE7CiAKIAkvKiBGaXJt
d2FyZSBiaXRzIGFsd2F5cyBzdGFydCBmcm9tIGhlYWRlciAqLwogCXVjX2Z3LT5oZWFkZXJfb2Zm
c2V0ID0gMDsKIAl1Y19mdy0+aGVhZGVyX3NpemUgPSAoY3NzLT5oZWFkZXJfc2l6ZV9kdyAtIGNz
cy0+bW9kdWx1c19zaXplX2R3IC0KIAkJY3NzLT5rZXlfc2l6ZV9kdyAtIGNzcy0+ZXhwb25lbnRf
c2l6ZV9kdykgKiBzaXplb2YodTMyKTsKIAotCWlmICh1Y19mdy0+aGVhZGVyX3NpemUgIT0gc2l6
ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikpIHsKKwlpZiAodWNfZnctPmhlYWRlcl9zaXplICE9
IHNpemVvZihzdHJ1Y3QgdWNfY3NzX2hlYWRlcikpIHsKIAkJRFJNX0VSUk9SKCJDU1MgaGVhZGVy
IGRlZmluaXRpb24gbWlzbWF0Y2hcbiIpOwogCQlnb3RvIGZhaWw7CiAJfQpAQCAtNjAzLDIxICs2
MDMsMzUgQEAgdm9pZCBpbnRlbF91Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz
dHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQogCQlnb3RvIGZhaWw7CiAJfQogCi0JLyogSGVhZGVy
IGFuZCB1Q29kZSB3aWxsIGJlIGxvYWRlZCB0byBXT1BDTS4gU2l6ZSBvZiB0aGUgdHdvLiAqLwot
CXNpemUgPSB1Y19mdy0+aGVhZGVyX3NpemUgKyB1Y19mdy0+dWNvZGVfc2l6ZTsKLQlpZiAoc2l6
ZSA+IGd1Y193b3BjbV9zaXplKGRldi0+ZGV2X3ByaXZhdGUpKSB7Ci0JCURSTV9FUlJPUigiRmly
bXdhcmUgaXMgdG9vIGxhcmdlIHRvIGZpdCBpbiBXT1BDTVxuIik7Ci0JCWdvdG8gZmFpbDsKLQl9
Ci0KIAkvKgogCSAqIFRoZSBHdUMgZmlybXdhcmUgaW1hZ2UgaGFzIHRoZSB2ZXJzaW9uIG51bWJl
ciBlbWJlZGRlZCBhdCBhIHdlbGwta25vd24KIAkgKiBvZmZzZXQgd2l0aGluIHRoZSBmaXJtd2Fy
ZSBibG9iOyBub3RlIHRoYXQgbWFqb3IgLyBtaW5vciB2ZXJzaW9uIGFyZQogCSAqIFRXTyBieXRl
cyBlYWNoIChpLmUuIHUxNiksIGFsdGhvdWdoIGFsbCBwb2ludGVycyBhbmQgb2Zmc2V0cyBhcmUg
ZGVmaW5lZAogCSAqIGluIHRlcm1zIG9mIGJ5dGVzICh1OCkuCiAJICovCi0JdWNfZnctPm1ham9y
X3Zlcl9mb3VuZCA9IGNzcy0+Z3VjX3N3X3ZlcnNpb24gPj4gMTY7Ci0JdWNfZnctPm1pbm9yX3Zl
cl9mb3VuZCA9IGNzcy0+Z3VjX3N3X3ZlcnNpb24gJiAweEZGRkY7CisJc3dpdGNoICh1Y19mdy0+
ZndfdHlwZSkgeworCWNhc2UgVUNfRldfVFlQRV9HVUM6CisJCS8qIEhlYWRlciBhbmQgdUNvZGUg
d2lsbCBiZSBsb2FkZWQgdG8gV09QQ00uIFNpemUgb2YgdGhlIHR3by4gKi8KKwkJc2l6ZSA9IHVj
X2Z3LT5oZWFkZXJfc2l6ZSArIHVjX2Z3LT51Y29kZV9zaXplOworCisJCS8qIFRvcCAzMmsgb2Yg
V09QQ00gaXMgcmVzZXJ2ZWQgKDhLIHN0YWNrICsgMjRrIFJDNiBjb250ZXh0KS4gKi8KKwkJaWYg
KHNpemUgPiBndWNfd29wY21fc2l6ZShkZXYtPmRldl9wcml2YXRlKSkgeworCQkJRFJNX0VSUk9S
KCJGaXJtd2FyZSBpcyB0b28gbGFyZ2UgdG8gZml0IGluIFdPUENNXG4iKTsKKwkJCWdvdG8gZmFp
bDsKKwkJfQorCisJCXVjX2Z3LT5tYWpvcl92ZXJfZm91bmQgPSBjc3MtPmd1Y19zd192ZXJzaW9u
ID4+IDE2OworCQl1Y19mdy0+bWlub3JfdmVyX2ZvdW5kID0gY3NzLT5ndWNfc3dfdmVyc2lvbiAm
IDB4RkZGRjsKKwkJYnJlYWs7CisJY2FzZSBVQ19GV19UWVBFX0hVQzoKKwkJdWNfZnctPm1ham9y
X3Zlcl9mb3VuZCA9IGNzcy0+aHVjX3N3X3ZlcnNpb24gPj4gMTY7CisJCXVjX2Z3LT5taW5vcl92
ZXJfZm91bmQgPSBjc3MtPmh1Y19zd192ZXJzaW9uICYgMHhGRkZGOworCQlicmVhazsKKwlkZWZh
dWx0OgorCQlEUk1fRVJST1IoIlVua25vd24gZmlybXdhcmUgdHlwZSAlZFxuIiwgdWNfZnctPmZ3
X3R5cGUpOworCQllcnIgPSAtRU5PRVhFQzsKKwkJZ290byBmYWlsOworCX0KIAogCWlmICh1Y19m
dy0+bWFqb3JfdmVyX2ZvdW5kICE9IHVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkIHx8CiAJICAgIHVj
X2Z3LT5taW5vcl92ZXJfZm91bmQgPCB1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCkgewotLSAKMS45
LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs
LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov
L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Peter Antoine <peter.antoine@intel.com>
Subject: [PATCH v2 4/6] drm/i915/huc: Add debugfs for HuC
	loading status check
Date: Fri,  1 Jul 2016 14:15:43 +0100
Message-ID: <1467378945-14274-5-git-send-email-peter.antoine@intel.com>
References: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <intel-gfx-bounces@lists.freedesktop.org>
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by gabe.freedesktop.org (Postfix) with ESMTP id B9C906EA71
 for <intel-gfx@lists.freedesktop.org>; Fri,  1 Jul 2016 13:16:00 +0000 (UTC)
In-Reply-To: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
List-Unsubscribe: <https://lists.freedesktop.org/mailman/options/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <https://lists.freedesktop.org/archives/intel-gfx>
List-Post: <mailto:intel-gfx@lists.freedesktop.org>
List-Help: <mailto:intel-gfx-request@lists.freedesktop.org?subject=help>
List-Subscribe: <https://lists.freedesktop.org/mailman/listinfo/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=subscribe>
Errors-To: intel-gfx-bounces@lists.freedesktop.org
Sender: "Intel-gfx" <intel-gfx-bounces@lists.freedesktop.org>
To: intel-gfx@lists.freedesktop.org
Cc: rodrigo.vivi@intel.com
List-Id: intel-gfx@lists.freedesktop.org

QWRkIGRlYnVnZnMgZW50cnkgZm9yIEh1QyBsb2FkaW5nIHN0YXR1cyBjaGVjay4KCnYyOiByZWJh
c2Ugb24tdG9wIG9mIGRybS1pbnRlbC1uaWdodGx5LgoKU2lnbmVkLW9mZi1ieTogQWxleCBEYWkg
PHl1LmRhaUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFBldGVyIEFudG9pbmUgPHBldGVyLmFu
dG9pbmVAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j
IHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAz
MiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k
ZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCAzODgz
ZGY1Li5jMWY5MmUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn
ZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMjQ3OSw2
ICsyNDc5LDM3IEBAIHN0YXRpYyBpbnQgaTkxNV9sbGMoc3RydWN0IHNlcV9maWxlICptLCB2b2lk
ICpkYXRhKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGk5MTVfaHVjX2xvYWRfc3RhdHVz
X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBkcm1faW5m
b19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2
X3ByaXYgPSBub2RlLT5taW5vci0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfdWNf
ZncgKmh1Y19mdyA9ICZkZXZfcHJpdi0+aHVjLmh1Y19mdzsKKworCWlmICghSEFTX0hVQ19VQ09E
RShkZXZfcHJpdi0+ZGV2KSkKKwkJcmV0dXJuIDA7CisKKwlzZXFfcHV0cyhtLCAiSHVDIGZpcm13
YXJlIHN0YXR1czpcbiIpOworCXNlcV9wcmludGYobSwgIlx0cGF0aDogJXNcbiIsIGh1Y19mdy0+
dWNfZndfcGF0aCk7CisJc2VxX3ByaW50ZihtLCAiXHRmZXRjaDogJXNcbiIsCisJCWludGVsX3Vj
X2Z3X3N0YXR1c19yZXByKGh1Y19mdy0+ZmV0Y2hfc3RhdHVzKSk7CisJc2VxX3ByaW50ZihtLCAi
XHRsb2FkOiAlc1xuIiwKKwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoaHVjX2Z3LT5sb2FkX3N0
YXR1cykpOworCXNlcV9wcmludGYobSwgIlx0dmVyc2lvbiB3YW50ZWQ6ICVkLiVkXG4iLAorCQlo
dWNfZnctPm1ham9yX3Zlcl93YW50ZWQsIGh1Y19mdy0+bWlub3JfdmVyX3dhbnRlZCk7CisJc2Vx
X3ByaW50ZihtLCAiXHR2ZXJzaW9uIGZvdW5kOiAlZC4lZFxuIiwKKwkJaHVjX2Z3LT5tYWpvcl92
ZXJfZm91bmQsIGh1Y19mdy0+bWlub3JfdmVyX2ZvdW5kKTsKKwlzZXFfcHJpbnRmKG0sICJcdGhl
YWRlcjogb2Zmc2V0IGlzICVkOyBzaXplID0gJWRcbiIsCisJCWh1Y19mdy0+aGVhZGVyX29mZnNl
dCwgaHVjX2Z3LT5oZWFkZXJfc2l6ZSk7CisJc2VxX3ByaW50ZihtLCAiXHR1Q29kZTogb2Zmc2V0
IGlzICVkOyBzaXplID0gJWRcbiIsCisJCWh1Y19mdy0+dWNvZGVfb2Zmc2V0LCBodWNfZnctPnVj
b2RlX3NpemUpOworCXNlcV9wcmludGYobSwgIlx0UlNBOiBvZmZzZXQgaXMgJWQ7IHNpemUgPSAl
ZFxuIiwKKwkJaHVjX2Z3LT5yc2Ffb2Zmc2V0LCBodWNfZnctPnJzYV9zaXplKTsKKworCXNlcV9w
cmludGYobSwgIlxuSHVDIHN0YXR1cyAweCUwOHg6XG4iLCBJOTE1X1JFQUQoSFVDX1NUQVRVUzIp
KTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGk5MTVfZ3VjX2xvYWRfc3RhdHVzX2lu
Zm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBkcm1faW5mb19u
b2RlICpub2RlID0gbS0+cHJpdmF0ZTsKQEAgLTU0MzMsNiArNTQ2NCw3IEBAIHN0YXRpYyBjb25z
dCBzdHJ1Y3QgZHJtX2luZm9fbGlzdCBpOTE1X2RlYnVnZnNfbGlzdFtdID0gewogCXsiaTkxNV9n
dWNfaW5mbyIsIGk5MTVfZ3VjX2luZm8sIDB9LAogCXsiaTkxNV9ndWNfbG9hZF9zdGF0dXMiLCBp
OTE1X2d1Y19sb2FkX3N0YXR1c19pbmZvLCAwfSwKIAl7Imk5MTVfZ3VjX2xvZ19kdW1wIiwgaTkx
NV9ndWNfbG9nX2R1bXAsIDB9LAorCXsiaTkxNV9odWNfbG9hZF9zdGF0dXMiLCBpOTE1X2h1Y19s
b2FkX3N0YXR1c19pbmZvLCAwfSwKIAl7Imk5MTVfZnJlcXVlbmN5X2luZm8iLCBpOTE1X2ZyZXF1
ZW5jeV9pbmZvLCAwfSwKIAl7Imk5MTVfaGFuZ2NoZWNrX2luZm8iLCBpOTE1X2hhbmdjaGVja19p
bmZvLCAwfSwKIAl7Imk5MTVfZHJwY19pbmZvIiwgaTkxNV9kcnBjX2luZm8sIDB9LAotLSAKMS45
LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs
LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov
L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Peter Antoine <peter.antoine@intel.com>
Subject: [PATCH v2 6/6] drm/i915/huc: Add BXT HuC Loading Support
Date: Fri,  1 Jul 2016 14:15:45 +0100
Message-ID: <1467378945-14274-7-git-send-email-peter.antoine@intel.com>
References: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <intel-gfx-bounces@lists.freedesktop.org>
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by gabe.freedesktop.org (Postfix) with ESMTP id A5AF96EA78
 for <intel-gfx@lists.freedesktop.org>; Fri,  1 Jul 2016 13:16:04 +0000 (UTC)
In-Reply-To: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
List-Unsubscribe: <https://lists.freedesktop.org/mailman/options/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <https://lists.freedesktop.org/archives/intel-gfx>
List-Post: <mailto:intel-gfx@lists.freedesktop.org>
List-Help: <mailto:intel-gfx-request@lists.freedesktop.org?subject=help>
List-Subscribe: <https://lists.freedesktop.org/mailman/listinfo/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=subscribe>
Errors-To: intel-gfx-bounces@lists.freedesktop.org
Sender: "Intel-gfx" <intel-gfx-bounces@lists.freedesktop.org>
To: intel-gfx@lists.freedesktop.org
Cc: rodrigo.vivi@intel.com
List-Id: intel-gfx@lists.freedesktop.org

VGhpcyBwYXRjaCBhZGRzIHRoZSBIdUMgTG9hZGluZyBmb3IgdGhlIEJYVC4KVmVyc2lvbiAxLjcg
b2YgdGhlIEh1QyBmaXJtd2FyZS4KClNpZ25lZC1vZmYtYnk6IFBldGVyIEFudG9pbmUgPHBldGVy
LmFudG9pbmVAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Y19s
b2FkZXIuYyB8IDcgKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQoKZGlm
ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Y19sb2FkZXIuYyBiL2RyaXZl
cnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Y19sb2FkZXIuYwppbmRleCA5OGVmOGRmLi4yM2RmNjM5
IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWNfbG9hZGVyLmMKKysr
IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjX2xvYWRlci5jCkBAIC00OSw2ICs0OSw5
IEBACiAjZGVmaW5lIEk5MTVfU0tMX0hVQ19VQ09ERSAiaTkxNS9za2xfaHVjX3ZlcjFfNy5iaW4i
CiBNT0RVTEVfRklSTVdBUkUoSTkxNV9TS0xfSFVDX1VDT0RFKTsKIAorI2RlZmluZSBJOTE1X0JY
VF9IVUNfVUNPREUgImk5MTUvYnh0X2h1Y192ZXIxXzcuYmluIgorTU9EVUxFX0ZJUk1XQVJFKEk5
MTVfQlhUX0hVQ19VQ09ERSk7CisKIC8qKgogICogaW50ZWxfaHVjX2xvYWRfdWNvZGUoKSAtIERN
QSdzIHRoZSBmaXJtd2FyZQogICogQGRldjogdGhlIGRybSBkZXZpY2UKQEAgLTE1Nyw2ICsxNjAs
MTAgQEAgdm9pZCBpbnRlbF9odWNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlmd19w
YXRoID0gSTkxNV9TS0xfSFVDX1VDT0RFOwogCQlodWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSAx
OwogCQlodWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPSA3OworCX0gZWxzZSBpZiAoSVNfQlJPWFRP
TihkZXZfcHJpdikpIHsKKwkJZndfcGF0aCA9IEk5MTVfQlhUX0hVQ19VQ09ERTsKKwkJaHVjX2Z3
LT5tYWpvcl92ZXJfd2FudGVkID0gMTsKKwkJaHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gNzsK
IAl9CiAKIAlpZiAoZndfcGF0aCA9PSBOVUxMKQotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50
ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Peter Antoine <peter.antoine@intel.com>
Subject: [PATCH v2 0/6] HuC Loading Patches
Date: Fri,  1 Jul 2016 14:15:39 +0100
Message-ID: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <intel-gfx-bounces@lists.freedesktop.org>
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by gabe.freedesktop.org (Postfix) with ESMTP id 3386E6EA6B
 for <intel-gfx@lists.freedesktop.org>; Fri,  1 Jul 2016 13:15:54 +0000 (UTC)
List-Unsubscribe: <https://lists.freedesktop.org/mailman/options/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <https://lists.freedesktop.org/archives/intel-gfx>
List-Post: <mailto:intel-gfx@lists.freedesktop.org>
List-Help: <mailto:intel-gfx-request@lists.freedesktop.org?subject=help>
List-Subscribe: <https://lists.freedesktop.org/mailman/listinfo/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=subscribe>
Errors-To: intel-gfx-bounces@lists.freedesktop.org
Sender: "Intel-gfx" <intel-gfx-bounces@lists.freedesktop.org>
To: intel-gfx@lists.freedesktop.org
Cc: rodrigo.vivi@intel.com
List-Id: intel-gfx@lists.freedesktop.org

VGhpcyBwYXRjaCBzZXJpZXMgZW5hYmxlcyB0aGUgSHVDIGxvYWRpbmcuIFRoZXNlIHBhdGNoZXMg
YXJlIGEgcG9ydCBvZiB0aGUKcGF0Y2hlcyB0aGF0IHdlcmUgY3JlYXRlZCBieSBZdSBEYWkgKEFs
ZXgpIGFuZCBoYXZlIGJlZW4gcG9ydGVkIHRvIHdvcmsgd2l0aAp0aGUgbmV3IEd1QyBwYXRjaGVz
LgoKVGhlIHNlcmllcyBpbmNsdWRlIGEgcGF0Y2ggdG8gZW5hYmxlIHRoZSBIdUMgb24gQlhULiBU
aGlzIGlzIGEgc2VwYXJhdGUgcGF0Y2gKYXMgdGhlIHN0YXRlIG9mIHRoZSBCWFQgSHVDIGZpcm13
YXJlIGlzIHN0aWxsIGluIGZsdXgsIHNvIHRoZSBwYXRjaCBjYW4gYmUKZHJvcHBlZCB3aXRob3V0
IGRlbGF5aW5nIHRoZSBzZXJpZXMuCgp2MjogcmViYXNlZCBvbnRvIGRybS1pbnRlbC1uaWdodGx5
LgogICAgQWxzbywgcGF0Y2ggMSBoYXMgYmVlbiByZWNyZWF0ZWQgYXMgdGhlIHVwc3RyZWFtIHZl
cnNpb24gb2YgdGhlIGZ1bmN0aW9uCiAgICBoYWQgY2hhbmdlIHNpZ25pZmljYW50bHkgbWFraW5n
IHRoZSBvbGQgcGF0Y2ggb2Jzb2xldGUuCiAgICBBbHNvLCBkdWUgdG8gYSBjb2RlIG1vdmUgaTkx
NV9kbWEuYyAtPiBpOTE1X2Rydi5jIHNvbWUgY29kZSB3YXMgYmVpbmcKICAgIGFwcGxpZWQgdG8g
YSBkZWxldGVkIGZpbGUuCiAgICBBbHNvIEh1QyBmaWxlIHZlcnNpb25zIGFuZCBmb3JtYXRzIGNo
YW5nZWQuCgogICAgRmVlZGJhY2sgZnJvbSBELkdvcmRvbiBhbmQgUi5WaXZpIChUaGFua3MpLgoK
UGV0ZXIgQW50b2luZSAoNik6CiAgZHJtL2k5MTUvZ3VjOiBNYWtlIHRoZSBHdUMgZncgbG9hZGlu
ZyBoZWxwZXIgZnVuY3Rpb25zIGdlbmVyYWwKICBkcm0vaTkxNS9odWM6IFVuaWZpZWQgY3NzX2hl
YWRlciBzdHJ1Y3QgZm9yIEd1QyBhbmQgSHVDCiAgZHJtL2k5MTUvaHVjOiBBZGQgSHVDIGZ3IGxv
YWRpbmcgc3VwcG9ydAogIGRybS9pOTE1L2h1YzogQWRkIGRlYnVnZnMgZm9yIEh1QyBsb2FkaW5n
IHN0YXR1cyBjaGVjawogIGRybS9pOTE1L2h1YzogU3VwcG9ydCBIdUMgYXV0aGVudGljYXRpb24K
ICBkcm0vaTkxNS9odWM6IEFkZCBCWFQgSHVDIExvYWRpbmcgU3VwcG9ydAoKIGRyaXZlcnMvZ3B1
L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0v
aTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgfCAgNDQgKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9p
OTE1L2k5MTVfZHJ2LmMgICAgICAgICAgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p
OTE1X2Rydi5oICAgICAgICAgICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n
dWNfcmVnLmggICAgICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1
Ym1pc3Npb24uYyB8ICA2OSArKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj
LmggICAgICAgICAgIHwgIDQ2ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNf
ZndpZi5oICAgICAgfCAgMTcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2Fk
ZXIuYyAgICB8IDIwMiArKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1
L2ludGVsX2h1Yy5oICAgICAgICAgICB8ICA0NCArKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv
aW50ZWxfaHVjX2xvYWRlci5jICAgIHwgMjc0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr
CiAxMSBmaWxlcyBjaGFuZ2VkLCA1ODMgaW5zZXJ0aW9ucygrKSwgMTIzIGRlbGV0aW9ucygtKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Yy5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjX2xvYWRlci5jCgot
LSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo
dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Peter Antoine <peter.antoine@intel.com>
Subject: [PATCH v2 5/6] drm/i915/huc: Support HuC authentication
Date: Fri,  1 Jul 2016 14:15:44 +0100
Message-ID: <1467378945-14274-6-git-send-email-peter.antoine@intel.com>
References: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <intel-gfx-bounces@lists.freedesktop.org>
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by gabe.freedesktop.org (Postfix) with ESMTP id 685D06EA73
 for <intel-gfx@lists.freedesktop.org>; Fri,  1 Jul 2016 13:16:02 +0000 (UTC)
In-Reply-To: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
List-Unsubscribe: <https://lists.freedesktop.org/mailman/options/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <https://lists.freedesktop.org/archives/intel-gfx>
List-Post: <mailto:intel-gfx@lists.freedesktop.org>
List-Help: <mailto:intel-gfx-request@lists.freedesktop.org?subject=help>
List-Subscribe: <https://lists.freedesktop.org/mailman/listinfo/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=subscribe>
Errors-To: intel-gfx-bounces@lists.freedesktop.org
Sender: "Intel-gfx" <intel-gfx-bounces@lists.freedesktop.org>
To: intel-gfx@lists.freedesktop.org
Cc: rodrigo.vivi@intel.com
List-Id: intel-gfx@lists.freedesktop.org

VGhlIEh1QyBhdXRoZW50aWNhdGlvbiBpcyBkb25lIGJ5IGhvc3QyZ3VjIGNhbGwuIFRoZSBIdUMg
UlNBIGtleXMKYXJlIHNlbnQgdG8gR3VDIGZvciBhdXRoZW50aWNhdGlvbi4KCnYyOiByZWJhc2Vk
IG9uIHRvcCBvZiBkcm0taW50ZWwtbmlnaHRseS4KICAgIGNoYW5nZWQgbmFtZSBmb3JtYXQgYW5k
IHVwcGVkIHZlcnNpb24gMS43LgoKU2lnbmVkLW9mZi1ieTogQWxleCBEYWkgPHl1LmRhaUBpbnRl
bC5jb20+ClNpZ25lZC1vZmYtYnk6IFBldGVyIEFudG9pbmUgPHBldGVyLmFudG9pbmVAaW50ZWwu
Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8IDY1
ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50
ZWxfZ3VjX2Z3aWYuaCAgICAgIHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj
X2xvYWRlci5jICAgIHwgIDIgKwogMyBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspCgpk
aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIv
ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCmluZGV4IDJiZmE4NmUu
LjNiYjhjMjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1p
c3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMK
QEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jaXJjX2J1Zi5oPgogI2luY2x1ZGUg
Imk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCisjaW5jbHVkZSAiaW50ZWxfaHVj
LmgiCiAKIC8qKgogICogRE9DOiBHdUMtYmFzZWQgY29tbWFuZCBzdWJtaXNzaW9uCkBAIC0xMDc2
LDMgKzEwNzcsNjcgQEAgaW50IGludGVsX2d1Y19yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRl
dikKIAogCXJldHVybiBob3N0Mmd1Y19hY3Rpb24oZ3VjLCBkYXRhLCBBUlJBWV9TSVpFKGRhdGEp
KTsKIH0KKworLyoqCisgKiBpbnRlbF9odWNfYXV0aCgpIC0gYXV0aGVudGljYXRlIHVjb2RlCisg
KiBAZGV2OiB0aGUgZHJtIGRldmljZQorICoKKyAqIFRyaWdnZXJzIGEgSHVDIGZ3IGF1dGhlbnRp
Y2F0aW9uIHJlcXVlc3QgdG8gdGhlIEd1QyB2aWEgaG9zdC0yLWd1YworICogaW50ZXJmYWNlLgor
ICovCit2b2lkIGludGVsX2h1Y19hdXRoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3Ry
dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1
Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKKwlzdHJ1Y3QgaW50ZWxfaHVjICpo
dWMgPSAmZGV2X3ByaXYtPmh1YzsKKwlpbnQgcmV0OworCXUzMiBkYXRhWzJdOworCisJLyogQnlw
YXNzIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGlzIG5vIEh1QyBmaXJtd2FyZSAqLworCWlmIChodWMt
Pmh1Y19mdy5mZXRjaF9zdGF0dXMgPT0gVUNfRklSTVdBUkVfTk9ORSB8fAorCSAgICBodWMtPmh1
Y19mdy5sb2FkX3N0YXR1cyA9PSBVQ19GSVJNV0FSRV9OT05FKQorCQlyZXR1cm47CisKKwlpZiAo
Z3VjLT5ndWNfZncubG9hZF9zdGF0dXMgIT0gVUNfRklSTVdBUkVfU1VDQ0VTUykgeworCQlEUk1f
RVJST1IoIkh1QzogR3VDIGZ3IHdhc24ndCBsb2FkZWQuIENhbid0IGF1dGhlbnRpY2F0ZSIpOwor
CQlyZXR1cm47CisJfQorCisJaWYgKGh1Yy0+aHVjX2Z3LmxvYWRfc3RhdHVzICE9IFVDX0ZJUk1X
QVJFX1NVQ0NFU1MpIHsKKwkJRFJNX0VSUk9SKCJIdUM6IGZ3IHdhc24ndCBsb2FkZWQuIE5vdGhp
bmcgdG8gYXV0aGVudGljYXRlIik7CisJCXJldHVybjsKKwl9CisKKwlyZXQgPSBpOTE1X2dlbV9v
YmpfZ2d0dF9waW4oaHVjLT5odWNfZncudWNfZndfb2JqLCAwLCAwKTsKKwlpZiAocmV0KSB7CisJ
CURSTV9FUlJPUigiSHVDOiBQaW4gZmFpbGVkIik7CisJCXJldHVybjsKKwl9CisKKwkvKiBJbnZh
bGlkYXRlIEd1QyBUTEIgdG8gbGV0IEd1QyB0YWtlIHRoZSBsYXRlc3QgdXBkYXRlcyB0byBHVFQu
ICovCisJSTkxNV9XUklURShHRU44X0dUQ1IsIEdFTjhfR1RDUl9JTlZBTElEQVRFKTsKKworCS8q
IFNwZWNpZnkgYXV0aCBhY3Rpb24gYW5kIHdoZXJlIHB1YmxpYyBzaWduYXR1cmUgaXMuIEl0J3Mg
c3RvcmVkCisJICogYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZ2VtIG9iamVjdCwgYmVmb3JlIHRo
ZSBmdyBiaXRzCisJICovCisJZGF0YVswXSA9IEhPU1QyR1VDX0FDVElPTl9BVVRIRU5USUNBVEVf
SFVDOworCWRhdGFbMV0gPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoaHVjLT5odWNfZncudWNf
Zndfb2JqKSArCisJCQlodWMtPmh1Y19mdy5yc2Ffb2Zmc2V0OworCisJcmV0ID0gaG9zdDJndWNf
YWN0aW9uKGd1YywgZGF0YSwgQVJSQVlfU0laRShkYXRhKSk7CisJaWYgKHJldCkgeworCQlEUk1f
RVJST1IoIkh1QzogR3VDIGRpZCBub3QgYWNrIEF1dGggcmVxdWVzdFxuIik7CisJCWdvdG8gb3V0
OworCX0KKworCS8qIENoZWNrIGF1dGhlbnRpY2F0aW9uIHN0YXR1cywgaXQgc2hvdWxkIGJlIGRv
bmUgYnkgbm93ICovCisJcmV0ID0gd2FpdF9mb3JfYXRvbWljKAorCQkoSTkxNV9SRUFEKEhVQ19T
VEFUVVMyKSAmIEhVQ19GV19WRVJJRklFRCkgPiAwLCA1MCk7CisJaWYgKHJldCkgeworCQlEUk1f
RVJST1IoIkh1QzogQXV0aGVudGljYXRpb24gZmFpbGVkXG4iKTsKKwkJZ290byBvdXQ7CisJfQor
CitvdXQ6CisJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oaHVjLT5odWNfZncudWNfZndfb2Jq
KTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmgg
Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCmluZGV4IGE2OWVlMzYuLmM1
YTYyMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmgK
KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaApAQCAtNDM3LDYgKzQz
Nyw3IEBAIGVudW0gaG9zdDJndWNfYWN0aW9uIHsKIAlIT1NUMkdVQ19BQ1RJT05fRU5URVJfU19T
VEFURSA9IDB4NTAxLAogCUhPU1QyR1VDX0FDVElPTl9FWElUX1NfU1RBVEUgPSAweDUwMiwKIAlI
T1NUMkdVQ19BQ1RJT05fU0xQQ19SRVFVRVNUID0gMHgzMDAzLAorCUhPU1QyR1VDX0FDVElPTl9B
VVRIRU5USUNBVEVfSFVDID0gMHg0MDAwLAogCUhPU1QyR1VDX0FDVElPTl9MSU1JVAogfTsKIApk
aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJp
dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCmluZGV4IGM3MjA2ZDguLjdkMDg1
ZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwor
KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTQ5Miw2ICs0
OTIsOCBAQCBpbnQgaW50ZWxfZ3VjX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWlu
dGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKIAkJaW50ZWxfdWNf
Zndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwogCisJaW50ZWxfaHVjX2F1dGgo
ZGV2KTsKKwogCWlmIChpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikgewogCQllcnIgPSBpOTE1
X2d1Y19zdWJtaXNzaW9uX2VuYWJsZShkZXZfcHJpdik7CiAJCWlmIChlcnIpCi0tIAoxLjkuMQoK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4
IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz
dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Peter Antoine <peter.antoine@intel.com>
Subject: [PATCH v2 3/6] drm/i915/huc: Add HuC fw loading support
Date: Fri,  1 Jul 2016 14:15:42 +0100
Message-ID: <1467378945-14274-4-git-send-email-peter.antoine@intel.com>
References: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <intel-gfx-bounces@lists.freedesktop.org>
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by gabe.freedesktop.org (Postfix) with ESMTP id 24A4E6EA70
 for <intel-gfx@lists.freedesktop.org>; Fri,  1 Jul 2016 13:15:59 +0000 (UTC)
In-Reply-To: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
List-Unsubscribe: <https://lists.freedesktop.org/mailman/options/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <https://lists.freedesktop.org/archives/intel-gfx>
List-Post: <mailto:intel-gfx@lists.freedesktop.org>
List-Help: <mailto:intel-gfx-request@lists.freedesktop.org?subject=help>
List-Subscribe: <https://lists.freedesktop.org/mailman/listinfo/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=subscribe>
Errors-To: intel-gfx-bounces@lists.freedesktop.org
Sender: "Intel-gfx" <intel-gfx-bounces@lists.freedesktop.org>
To: intel-gfx@lists.freedesktop.org
Cc: rodrigo.vivi@intel.com
List-Id: intel-gfx@lists.freedesktop.org

VGhlIEh1QyBsb2FkaW5nIHByb2Nlc3MgaXMgc2ltaWxhciB0byBHdUMuIFRoZSBpbnRlbF91Y19m
d19mZXRjaCgpCmlzIHVzZWQgZm9yIGJvdGggY2FzZXMuCgpIdUMgbG9hZGluZyBuZWVkcyB0byBi
ZSBiZWZvcmUgR3VDIGxvYWRpbmcuIFRoZSBXT1BDTSBzZXR0aW5nIG11c3QKYmUgZG9uZSBlYXJs
eSBiZWZvcmUgbG9hZGluZyBhbnkgb2YgdGhlbS4KCnYyOiByZWJhc2VkIG9uLXRvcCBvZiBkcm0t
aW50ZWwtbmlnaHRseS4KICAgIHJlbW92ZWQgaWYoSEFTX0dVQygpKSBiZWZvcmUgdGhlIGd1YyBj
YWxsLiAoRC5Hb3Jkb24pCiAgICB1cGRhdGUgaHVjX3ZlcnNpb24gbnVtYmVyIG9mIGZvcm1hdC4K
ClNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5
OiBQZXRlciBBbnRvaW5lIDxwZXRlci5hbnRvaW5lQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw
dS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5
MTUvaTkxNV9kcnYuYyAgICAgICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf
ZHJ2LmggICAgICAgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcu
aCAgICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggICAgICAgIHwg
ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyB8ICAyNiArKy0t
CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWMuaCAgICAgICAgfCAgNDQgKysrKysrCiBk
cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWNfbG9hZGVyLmMgfCAyNjcgKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgMzM2IGluc2VydGlvbnMoKyks
IDEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1
L2ludGVsX2h1Yy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50
ZWxfaHVjX2xvYWRlci5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZp
bGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCBhM2QyYjc4Li4zMmFmNjZl
IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJz
L2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtNDUsNiArNDUsNyBAQCBpOTE1LXkgKz0gaTkxNV9j
bWRfcGFyc2VyLm8gXAogCiAjIGdlbmVyYWwtcHVycG9zZSBtaWNyb2NvbnRyb2xsZXIgKEd1Qykg
c3VwcG9ydAogaTkxNS15ICs9IGludGVsX2d1Y19sb2FkZXIubyBcCisJICBpbnRlbF9odWNfbG9h
ZGVyLm8gXAogCSAgaTkxNV9ndWNfc3VibWlzc2lvbi5vCiAKICMgYXV0b2dlbmVyYXRlZCBudWxs
IHJlbmRlciBzdGF0ZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu
YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggYzU4MGUyNC4uYWU1MDkz
YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2
ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC02MzksNiArNjM5LDcgQEAgc3RhdGljIGlu
dCBpOTE1X2xvYWRfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJICogd29y
a2luZyBpcnFzIGZvciBlLmcuIGdtYnVzIGFuZCBkcCBhdXggdHJhbnNmZXJzLiAqLwogCWludGVs
X21vZGVzZXRfaW5pdChkZXYpOwogCisJaW50ZWxfaHVjX2luaXQoZGV2KTsKIAlpbnRlbF9ndWNf
aW5pdChkZXYpOwogCiAJcmV0ID0gaTkxNV9nZW1faW5pdChkZXYpOwpAQCAtNjY0LDYgKzY2NSw3
IEBAIHN0YXRpYyBpbnQgaTkxNV9sb2FkX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq
ZGV2KQogY2xlYW51cF9nZW06CiAJaTkxNV9nZW1fZmluaShkZXYpOwogY2xlYW51cF9pcnE6CisJ
aW50ZWxfaHVjX2ZpbmkoZGV2KTsKIAlpbnRlbF9ndWNfZmluaShkZXYpOwogCWRybV9pcnFfdW5p
bnN0YWxsKGRldik7CiAJaW50ZWxfdGVhcmRvd25fZ21idXMoZGV2KTsKQEAgLTE3MTQsNiArMTcx
Niw3IEBAIHZvaWQgaTkxNV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ
LyogRmx1c2ggYW55IG91dHN0YW5kaW5nIHVucGluX3dvcmsuICovCiAJZmx1c2hfd29ya3F1ZXVl
KGRldl9wcml2LT53cSk7CiAKKwlpbnRlbF9odWNfZmluaShkZXYpOwogCWludGVsX2d1Y19maW5p
KGRldik7CiAJaTkxNV9nZW1fZmluaShkZXYpOwogCWludGVsX2ZiY19jbGVhbnVwX2NmYihkZXZf
cHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp
dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA0ODVhYjExLi43ODM5MzRlIDEwMDY0
NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1
L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJpbnRlbF9i
aW9zLmgiCiAjaW5jbHVkZSAiaW50ZWxfZHBsbF9tZ3IuaCIKICNpbmNsdWRlICJpbnRlbF9ndWMu
aCIKKyNpbmNsdWRlICJpbnRlbF9odWMuaCIKICNpbmNsdWRlICJpbnRlbF9scmMuaCIKICNpbmNs
dWRlICJpbnRlbF9yaW5nYnVmZmVyLmgiCiAKQEAgLTE3NTQsNiArMTc1NSw3IEBAIHN0cnVjdCBk
cm1faTkxNV9wcml2YXRlIHsKIAogCXN0cnVjdCBpbnRlbF9ndnQgZ3Z0OwogCisJc3RydWN0IGlu
dGVsX2h1YyBodWM7CiAJc3RydWN0IGludGVsX2d1YyBndWM7CiAKIAlzdHJ1Y3QgaW50ZWxfY3Ny
IGNzcjsKQEAgLTI4NTEsNiArMjg1Myw3IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFibGUgewog
I2RlZmluZSBIQVNfR1VDKGRldikJCShJU19HRU45KGRldikgJiYgIUlTX0tBQllMQUtFKGRldikp
CiAjZGVmaW5lIEhBU19HVUNfVUNPREUoZGV2KQkoSEFTX0dVQyhkZXYpKQogI2RlZmluZSBIQVNf
R1VDX1NDSEVEKGRldikJKEhBU19HVUMoZGV2KSkKKyNkZWZpbmUgSEFTX0hVQ19VQ09ERShkZXYp
CShIQVNfR1VDKGRldikpCiAKICNkZWZpbmUgSEFTX1JFU09VUkNFX1NUUkVBTUVSKGRldikgKElT
X0hBU1dFTEwoZGV2KSB8fCBcCiAJCQkJICAgIElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDgpCmRp
ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcuaCBiL2RyaXZlcnMv
Z3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCmluZGV4IGNmNWE2NWIuLjUxNTMzZjEgMTAwNjQ0
Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCisrKyBiL2RyaXZlcnMv
Z3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCkBAIC02MSw5ICs2MSwxMiBAQAogI2RlZmluZSAg
IERNQV9BRERSRVNTX1NQQUNFX0dUVAkJICAoOCA8PCAxNikKICNkZWZpbmUgRE1BX0NPUFlfU0la
RQkJCV9NTUlPKDB4YzMxMCkKICNkZWZpbmUgRE1BX0NUUkwJCQlfTU1JTygweGMzMTQpCisjZGVm
aW5lICAgSFVDX1VLRVJORUwJCQkgICgxPDw5KQogI2RlZmluZSAgIFVPU19NT1ZFCQkJICAoMTw8
NCkKICNkZWZpbmUgICBTVEFSVF9ETUEJCQkgICgxPDwwKQogI2RlZmluZSBETUFfR1VDX1dPUENN
X09GRlNFVAkJX01NSU8oMHhjMzQwKQorI2RlZmluZSAgIEhVQ19MT0FESU5HX0FHRU5UX1ZDUgkJ
ICAoMDw8MSkKKyNkZWZpbmUgICBIVUNfTE9BRElOR19BR0VOVF9HVUMJCSAgKDE8PDEpCiAjZGVm
aW5lICAgR1VDX1dPUENNX09GRlNFVF9WQUxVRQkgIDB4ODAwMDAJLyogNTEyS0IgKi8KICNkZWZp
bmUgR1VDX01BWF9JRExFX0NPVU5UCQlfTU1JTygweEMzRTQpCiAKZGlmZiAtLWdpdCBhL2RyaXZl
cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf
Z3VjLmgKaW5kZXggZWJmOWM4ZC4uYzdiMjc0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt
L2k5MTUvaW50ZWxfZ3VjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgK
QEAgLTE2MCw2ICsxNjAsNyBAQCBleHRlcm4gY29uc3QgY2hhciAqaW50ZWxfdWNfZndfc3RhdHVz
X3JlcHIoZW51bSBpbnRlbF91Y19md19zdGF0dXMgc3RhdHVzKTsKIGV4dGVybiBpbnQgaW50ZWxf
Z3VjX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBleHRlcm4gaW50IGludGVsX2d1
Y19yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGludGVsX3VjX2Z3X2ZldGNo
KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpOwordTMy
IGd1Y193b3BjbV9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiAKIC8q
IGk5MTVfZ3VjX3N1Ym1pc3Npb24uYyAqLwogaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChz
dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n
cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50
ZWxfZ3VjX2xvYWRlci5jCmluZGV4IDNlOGUxN2EuLmM3MjA2ZDggMTAwNjQ0Ci0tLSBhL2RyaXZl
cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v
aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTgyLDYgKzgyLDE3IEBAIGNvbnN0IGNoYXIgKmlu
dGVsX3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50ZWxfdWNfZndfc3RhdHVzIHN0YXR1cykKIAl9
CiB9OwogCit1MzIgZ3VjX3dvcGNtX3NpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w
cml2KQoreworCXUzMiB3b3BjbV9zaXplID0gR1VDX1dPUENNX1RPUDsKKworCS8qIE9uIEJYVCwg
dGhlIHRvcCBvZiBXT1BDTSBpcyByZXNlcnZlZCBmb3IgUkM2IGNvbnRleHQgKi8KKwlpZiAoSVNf
QlJPWFRPTihkZXZfcHJpdikpCisJCXdvcGNtX3NpemUgLT0gQlhUX0dVQ19XT1BDTV9SQzZfUkVT
RVJWRUQ7CisKKwlyZXR1cm4gd29wY21fc2l6ZTsKK30KKwogc3RhdGljIHZvaWQgZGlyZWN0X2lu
dGVycnVwdHNfdG9faG9zdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJ
c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwpAQCAtMjY5LDcgKzI4MCw4IEBAIHN0YXRp
YyBpbnQgZ3VjX3Vjb2RlX3hmZXJfZG1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp
dikKIAlJOTE1X1dSSVRFKERNQV9BRERSXzFfSElHSCwgRE1BX0FERFJFU1NfU1BBQ0VfV09QQ00p
OwogCiAJLyogRmluYWxseSBzdGFydCB0aGUgRE1BICovCi0JSTkxNV9XUklURShETUFfQ1RSTCwg
X01BU0tFRF9CSVRfRU5BQkxFKFVPU19NT1ZFIHwgU1RBUlRfRE1BKSk7CisJSTkxNV9XUklURShE
TUFfQ1RSTCwgX01BU0tFRF9CSVRfRU5BQkxFKFVPU19NT1ZFIHwgU1RBUlRfRE1BKSB8CisJCQlf
TUFTS0VEX0JJVF9ESVNBQkxFKEhVQ19VS0VSTkVMKSk7CiAKIAkvKgogCSAqIFdhaXQgZm9yIHRo
ZSBETUEgdG8gY29tcGxldGUgJiB0aGUgR3VDIHRvIHN0YXJ0IHVwLgpAQCAtMjk0LDE3ICszMDYs
NiBAQCBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0
ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHUzMiBndWNfd29wY21fc2l6
ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0JdTMyIHdvcGNtX3NpemUg
PSBHVUNfV09QQ01fVE9QOwotCi0JLyogT24gQlhULCB0aGUgdG9wIG9mIFdPUENNIGlzIHJlc2Vy
dmVkIGZvciBSQzYgY29udGV4dCAqLwotCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKLQkJd29w
Y21fc2l6ZSAtPSBCWFRfR1VDX1dPUENNX1JDNl9SRVNFUlZFRDsKLQotCXJldHVybiB3b3BjbV9z
aXplOwotfQotCiAvKgogICogTG9hZCB0aGUgR3VDIGZpcm13YXJlIGJsb2IgaW50byB0aGUgTWlu
dXRlSUEuCiAgKi8KQEAgLTQ3Myw2ICs0NzQsNyBAQCBpbnQgaW50ZWxfZ3VjX3NldHVwKHN0cnVj
dCBkcm1fZGV2aWNlICpkZXYpCiAJCQlnb3RvIGZhaWw7CiAJCX0KIAorCQlpbnRlbF9odWNfbG9h
ZChkZXYpOwogCQllcnIgPSBndWNfdWNvZGVfeGZlcihkZXZfcHJpdik7CiAJCWlmICghZXJyKQog
CQkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWMuaCBi
L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Yy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjk0NmNhYTcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0v
aTkxNS9pbnRlbF9odWMuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIw
MTQgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk
LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0
aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m
dHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s
IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5
LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5k
L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBh
cmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisg
KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1Ig
Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RI
RVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg
T1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX
SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUg
U09GVFdBUkUuCisgKgorICovCisjaWZuZGVmIF9JTlRFTF9IVUNfSF8KKyNkZWZpbmUgX0lOVEVM
X0hVQ19IXworCisjaW5jbHVkZSAiaW50ZWxfZ3VjLmgiCisKKyNkZWZpbmUgSFVDX1NUQVRVUzIJ
CV9NTUlPKDB4RDNCMCkKKyNkZWZpbmUgICBIVUNfRldfVkVSSUZJRUQJKDE8PDcpCisKK3N0cnVj
dCBpbnRlbF9odWMgeworCS8qIEdlbmVyaWMgdUMgZmlybXdhcmUgbWFuYWdlbWVudCAqLworCXN0
cnVjdCBpbnRlbF91Y19mdyBodWNfZnc7CisKKwkvKiBIdUMtc3BlY2lmaWMgYWRkaXRpb25zICov
Cit9OworCitleHRlcm4gdm9pZCBpbnRlbF9odWNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2
KTsKK2V4dGVybiBpbnQgaW50ZWxfaHVjX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Citl
eHRlcm4gdm9pZCBpbnRlbF9odWNfYXV0aChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVy
biB2b2lkIGludGVsX2h1Y19maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Y19sb2FkZXIuYyBiL2Ry
aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Y19sb2FkZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45OGVmOGRmCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUv
ZHJtL2k5MTUvaW50ZWxfaHVjX2xvYWRlci5jCkBAIC0wLDAgKzEsMjY3IEBACisvKgorICogQ29w
eXJpZ2h0IMKpIDIwMTQgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhl
cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQor
ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg
cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMg
dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNl
bnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p
dCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28s
IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhl
IG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBz
dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZU
V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF
WFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhF
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O
VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4g
Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT
CisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUu
aD4KKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImludGVsX2h1Yy5oIgorCisvKioK
KyAqIERPQzogSHVDIEZpcm13YXJlCisgKgorICogTW90aXZhdGlvbjoKKyAqIEdFTjkgaW50cm9k
dWNlcyBhIG5ldyBkZWRpY2F0ZWQgZmlybXdhcmUgZm9yIHVzYWdlIGluIG1lZGlhIEhFVkMgKEhp
Z2gKKyAqIEVmZmljaWVuY3kgVmlkZW8gQ29kaW5nKSBvcGVyYXRpb25zLiBVc2Vyc3BhY2UgY2Fu
IHVzZSB0aGUgZmlybXdhcmUKKyAqIGNhcGFiaWxpdGllcyBieSBhZGRpbmcgSHVDIHNwZWNpZmlj
IGNvbW1hbmRzIHRvIGJhdGNoIGJ1ZmZlcnMuCisgKgorICogSW1wbGVtZW50YXRpb246CisgKiBP
biBzdXBwb3J0ZWQgcGxhdGZvcm1zLCBpOTE1J3Mgam9iIGlzIHRvIGxvYWQgdGhlIGZpcm13YXJl
IHN0b3JlZCBvbiB0aGUKKyAqIGZpbGUgc3lzdGVtIGFuZCBhc3Npc3Qgd2l0aCBhdXRoZW50aWNh
dGlvbi4gSXQgaXMgdXAgdG8gdXNlcnNwYWNlIHRvCisgKiBkZXRlY3QgdGhlIHByZXNlbmNlIG9m
IEh1QyBzdXBwb3J0IG9uIGEgcGxhdGZvcm0sIG9uIHRoZWlyIG93bi4KKyAqIEZvciBkZWJ1Z2dp
bmcsIGk5MTUgcHJvdmlkZXMgYSBkZWJ1Z2ZzIGZpbGUsIGk5MTVfaHVjX2xvYWRfc3RhdHVzX2lu
Zm8KKyAqIHdoaWNoIGRpc3BsYXlzIHRoZSBmaXJtd2FyZSBsb2FkIHN0YXR1cy4KKyAqCisgKiBU
aGUgdW5pZmllZCB1QyBmaXJtd2FyZSBsb2FkZXIgaXMgdXNlZC4gRmlybXdhcmUgYmluYXJ5IGlz
IGZldGNoZWQgYnkgdGhlCisgKiBsb2FkZXIgYXN5bmNocm9ub3VzbHkgZnJvbSB0aGUgZHJpdmVy
IGluaXQgcHJvY2Vzcy4gSG93ZXZlciwgdGhlIGFjdHVhbAorICogbG9hZGluZyB0byBIVyBpcyBk
ZWZlcnJlZCB1bnRpbCBHRU0gaW5pdGlhbGl6YXRpb24gaXMgZG9uZS4gQmUgbm90ZSB0aGF0IEh1
QworICogZmlybXdhcmUgbG9hZGluZyBtdXN0IGJlIGRvbmUgYmVmb3JlIEd1QyBsb2FkaW5nLgor
ICovCisKKyNkZWZpbmUgSTkxNV9TS0xfSFVDX1VDT0RFICJpOTE1L3NrbF9odWNfdmVyMV83LmJp
biIKK01PRFVMRV9GSVJNV0FSRShJOTE1X1NLTF9IVUNfVUNPREUpOworCisvKioKKyAqIGludGVs
X2h1Y19sb2FkX3Vjb2RlKCkgLSBETUEncyB0aGUgZmlybXdhcmUKKyAqIEBkZXY6IHRoZSBkcm0g
ZGV2aWNlCisgKgorICogVGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgZ2VtIG9iamVjdCBjb250YWlu
aW5nIHRoZSBmaXJtd2FyZSwgc2V0cyB1cCB0aGUgRE1BCisgKiBlbmdpbmUgTU1JTywgdHJpZ2dl
cnMgdGhlIERNQSBvcGVyYXRpb24gYW5kIHdhaXRzIGZvciBpdCB0byBmaW5pc2guCisgKgorICog
VHJhbnNmZXIgdGhlIGZpcm13YXJlIGltYWdlIHRvIFJBTSBmb3IgZXhlY3V0aW9uIGJ5IHRoZSBt
aWNyb2NvbnRyb2xsZXIuCisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIG9u
IGZhaWx1cmUKKyAqLworCitzdGF0aWMgaW50IGh1Y191Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkx
NV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmh1Y19mdyA9ICZk
ZXZfcHJpdi0+aHVjLmh1Y19mdzsKKwl1bnNpZ25lZCBsb25nIG9mZnNldCA9IDA7CisJdTMyIHNp
emU7CisJaW50IHJldDsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFp
bihodWNfZnctPnVjX2Z3X29iaiwgZmFsc2UpOworCWlmIChyZXQpIHsKKwkJRFJNX0RFQlVHX0RS
SVZFUigic2V0LWRvbWFpbiBmYWlsZWQgJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQor
CisJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKGh1Y19mdy0+dWNfZndfb2JqLCAwLCAwKTsK
KwlpZiAocmV0KSB7CisJCURSTV9ERUJVR19EUklWRVIoInBpbiBmYWlsZWQgJWRcbiIsIHJldCk7
CisJCXJldHVybiByZXQ7CisJfQorCisJLyogSW52YWxpZGF0ZSBHdUMgVExCIHRvIGxldCBHdUMg
dGFrZSB0aGUgbGF0ZXN0IHVwZGF0ZXMgdG8gR1RULiAqLworCUk5MTVfV1JJVEUoR0VOOF9HVENS
LCBHRU44X0dUQ1JfSU5WQUxJREFURSk7CisKKwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRl
dl9wcml2LT5kZXYtPnN0cnVjdF9tdXRleCkpOworCWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0
KGRldl9wcml2LCBGT1JDRVdBS0VfQUxMKTsKKworCS8qIGluaXQgV09QQ00gKi8KKwlJOTE1X1dS
SVRFKEdVQ19XT1BDTV9TSVpFLCBndWNfd29wY21fc2l6ZShkZXZfcHJpdikpOworCUk5MTVfV1JJ
VEUoRE1BX0dVQ19XT1BDTV9PRkZTRVQsIEdVQ19XT1BDTV9PRkZTRVRfVkFMVUUgfAorCQkJSFVD
X0xPQURJTkdfQUdFTlRfR1VDKTsKKworCS8qIFNldCB0aGUgc291cmNlIGFkZHJlc3MgZm9yIHRo
ZSB1Q29kZSAqLworCW9mZnNldCA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChodWNfZnctPnVj
X2Z3X29iaikgKworCQkJaHVjX2Z3LT5oZWFkZXJfb2Zmc2V0OworCUk5MTVfV1JJVEUoRE1BX0FE
RFJfMF9MT1csIGxvd2VyXzMyX2JpdHMob2Zmc2V0KSk7CisJSTkxNV9XUklURShETUFfQUREUl8w
X0hJR0gsIHVwcGVyXzMyX2JpdHMob2Zmc2V0KSAmIDB4RkZGRik7CisKKwkvKiBIYXJkd2FyZSBk
b2Vzbid0IGxvb2sgYXQgZGVzdGluYXRpb24gYWRkcmVzcyBmb3IgSHVDLiBTZXQgaXQgdG8gMCwK
KwkgKiBidXQgc3RpbGwgcHJvZ3JhbSB0aGUgY29ycmVjdCBhZGRyZXNzIHNwYWNlLgorCSAqLwor
CUk5MTVfV1JJVEUoRE1BX0FERFJfMV9MT1csIDApOworCUk5MTVfV1JJVEUoRE1BX0FERFJfMV9I
SUdILCBETUFfQUREUkVTU19TUEFDRV9XT1BDTSk7CisKKwlzaXplID0gaHVjX2Z3LT5oZWFkZXJf
c2l6ZSArIGh1Y19mdy0+dWNvZGVfc2l6ZTsKKwlJOTE1X1dSSVRFKERNQV9DT1BZX1NJWkUsIHNp
emUpOworCisJLyogU3RhcnQgdGhlIERNQSAqLworCUk5MTVfV1JJVEUoRE1BX0NUUkwsIF9NQVNL
RURfQklUX0VOQUJMRShIVUNfVUtFUk5FTCB8IFNUQVJUX0RNQSkpOworCisJLyogV2FpdCBmb3Ig
RE1BIHRvIGZpbmlzaCAqLworCXJldCA9IHdhaXRfZm9yX2F0b21pYygoSTkxNV9SRUFEKERNQV9D
VFJMKSAmIFNUQVJUX0RNQSkgPT0gMCwgNTApOworCisJRFJNX0RFQlVHX0RSSVZFUigiSHVDIERN
QSB0cmFuc2ZlciB3YWl0IG92ZXIgd2l0aCByZXQgJWRcbiIsIHJldCk7CisKKwlpbnRlbF91bmNv
cmVfZm9yY2V3YWtlX3B1dChkZXZfcHJpdiwgRk9SQ0VXQUtFX0FMTCk7CisKKwkvKgorCSAqIFdl
IGtlZXAgdGhlIG9iamVjdCBwYWdlcyBmb3IgcmV1c2UgZHVyaW5nIHJlc3VtZS4gQnV0IHdlIGNh
biB1bnBpbiBpdAorCSAqIG5vdyB0aGF0IERNQSBoYXMgY29tcGxldGVkLCBzbyBpdCBkb2Vzbid0
IGNvbnRpbnVlIHRvIHRha2UgdXAgc3BhY2UuCisJICovCisJaTkxNV9nZW1fb2JqZWN0X2dndHRf
dW5waW4oaHVjX2Z3LT51Y19md19vYmopOworCisJcmV0dXJuIHJldDsKK30KKworLyoqCisgKiBp
bnRlbF9odWNfaW5pdCgpIC0gaW5pdGlhdGUgSHVDIGZpcm13YXJlIGxvYWRpbmcgcmVxdWVzdAor
ICogQGRldjogdGhlIGRybSBkZXZpY2UKKyAqCisgKiBDYWxsZWQgZWFybHkgZHVyaW5nIGRyaXZl
ciBsb2FkLCBidXQgYWZ0ZXIgR0VNIGlzIGluaXRpYWxpc2VkLiBUaGUgbG9hZGluZworICogd2ls
bCBjb250aW51ZSBvbmx5IHdoZW4gZHJpdmVyIGV4cGxpY2l0bHkgc3BlY2lmeSBmaXJtd2FyZSBu
YW1lIGFuZCB2ZXJzaW9uLgorICogQWxsIG90aGVyIGNhc2VzIGFyZSBjb25zaWRlcmVkIGFzIFVD
X0ZJUk1XQVJFX05PTkUgZWl0aGVyIGJlY2F1c2UgSFcgaXMgbm90CisgKiBjYXBhYmxlIG9yIGRy
aXZlciB5ZXQgc3VwcG9ydCBpdC4gQW5kIHRoZXJlIHdpbGwgYmUgbm8gZXJyb3IgbWVzc2FnZSBm
b3IKKyAqIFVDX0ZJUk1XQVJFX05PTkUgY2FzZXMuCisgKgorICogVGhlIERNQS1jb3B5aW5nIHRv
IEhXIGlzIGRvbmUgbGF0ZXIgd2hlbiBpbnRlbF9odWNfdWNvZGVfbG9hZCgpIGlzIGNhbGxlZC4K
KyAqLwordm9pZCBpbnRlbF9odWNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0
cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3Ry
dWN0IGludGVsX2h1YyAqaHVjID0gJmRldl9wcml2LT5odWM7CisJc3RydWN0IGludGVsX3VjX2Z3
ICpodWNfZncgPSAmaHVjLT5odWNfZnc7CisJY29uc3QgY2hhciAqZndfcGF0aCA9IE5VTEw7CisK
KwlodWNfZnctPnVjX2RldiA9IGRldjsKKwlodWNfZnctPnVjX2Z3X3BhdGggPSBOVUxMOworCWh1
Y19mdy0+ZmV0Y2hfc3RhdHVzID0gVUNfRklSTVdBUkVfTk9ORTsKKwlodWNfZnctPmxvYWRfc3Rh
dHVzID0gVUNfRklSTVdBUkVfTk9ORTsKKwlodWNfZnctPmZ3X3R5cGUgPSBVQ19GV19UWVBFX0hV
QzsKKworCWlmICghSEFTX0hVQ19VQ09ERShkZXZfcHJpdikpCisJCXJldHVybjsKKworCWlmIChJ
U19TS1lMQUtFKGRldl9wcml2KSkgeworCQlmd19wYXRoID0gSTkxNV9TS0xfSFVDX1VDT0RFOwor
CQlodWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSAxOworCQlodWNfZnctPm1pbm9yX3Zlcl93YW50
ZWQgPSA3OworCX0KKworCWlmIChmd19wYXRoID09IE5VTEwpCisJCXJldHVybjsKKworCWh1Y19m
dy0+dWNfZndfcGF0aCA9IGZ3X3BhdGg7CisJaHVjX2Z3LT5mZXRjaF9zdGF0dXMgPSBVQ19GSVJN
V0FSRV9QRU5ESU5HOworCisJRFJNX0RFQlVHX0RSSVZFUigiSHVDIGZpcm13YXJlIHBlbmRpbmcs
IHBhdGggJXNcbiIsIGZ3X3BhdGgpOworCisJaW50ZWxfdWNfZndfZmV0Y2goZGV2LCBodWNfZncp
OworfQorCisvKioKKyAqIGludGVsX2h1Y19sb2FkKCkgLSBsb2FkIEh1QyB1Q29kZSB0byBkZXZp
Y2UKKyAqIEBkZXY6IHRoZSBkcm0gZGV2aWNlCisgKgorICogQ2FsbGVkIGZyb20gZ2VtX2luaXRf
aHcoKSBkdXJpbmcgZHJpdmVyIGxvYWRpbmcgYW5kIGFsc28gYWZ0ZXIgYSBHUFUgcmVzZXQuCisg
KiBCZSBub3RlIHRoYXQgSHVDIGxvYWRpbmcgbXVzdCBiZSBkb25lIGJlZm9yZSBHdUMgbG9hZGlu
Zy4KKyAqCisgKiBUaGUgZmlybXdhcmUgaW1hZ2Ugc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIGZl
dGNoZWQgaW50byBtZW1vcnkgYnkgdGhlCisgKiBlYXJsaWVyIGNhbGwgdG8gaW50ZWxfaHVjX3Vj
b2RlX2luaXQoKSwgc28gaGVyZSB3ZSBuZWVkIG9ubHkgY2hlY2sgdGhhdAorICogaXMgc3VjY2Vl
ZGVkLCBhbmQgdGhlbiB0cmFuc2ZlciB0aGUgaW1hZ2UgdG8gdGhlIGgvdy4KKyAqCisgKiBSZXR1
cm46CW5vbi16ZXJvIGNvZGUgb24gZXJyb3IKKyAqLworaW50IGludGVsX2h1Y19sb2FkKHN0cnVj
dCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2
ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmh1Y19mdyA9ICZkZXZf
cHJpdi0+aHVjLmh1Y19mdzsKKwlpbnQgZXJyOworCisJaWYgKGh1Y19mdy0+ZmV0Y2hfc3RhdHVz
ID09IFVDX0ZJUk1XQVJFX05PTkUpCisJCXJldHVybiAwOworCisJRFJNX0RFQlVHX0RSSVZFUigi
JXMgZncgc3RhdHVzOiBmZXRjaCAlcywgbG9hZCAlc1xuIiwKKwkJaHVjX2Z3LT51Y19md19wYXRo
LAorCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihodWNfZnctPmZldGNoX3N0YXR1cyksCisJCWlu
dGVsX3VjX2Z3X3N0YXR1c19yZXByKGh1Y19mdy0+bG9hZF9zdGF0dXMpKTsKKworCWlmIChodWNf
ZnctPmZldGNoX3N0YXR1cyA9PSBVQ19GSVJNV0FSRV9TVUNDRVNTICYmCisJICAgIGh1Y19mdy0+
bG9hZF9zdGF0dXMgPT0gVUNfRklSTVdBUkVfRkFJTCkKKwkJcmV0dXJuIC1FTk9FWEVDOworCisJ
aHVjX2Z3LT5sb2FkX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX1BFTkRJTkc7CisKKwlzd2l0Y2ggKGh1
Y19mdy0+ZmV0Y2hfc3RhdHVzKSB7CisJY2FzZSBVQ19GSVJNV0FSRV9GQUlMOgorCQkvKiBzb21l
dGhpbmcgd2VudCB3cm9uZyA6KCAqLworCQllcnIgPSAtRUlPOworCQlnb3RvIGZhaWw7CisKKwlj
YXNlIFVDX0ZJUk1XQVJFX05PTkU6CisJY2FzZSBVQ19GSVJNV0FSRV9QRU5ESU5HOgorCWRlZmF1
bHQ6CisJCS8qICJjYW4ndCBoYXBwZW4iICovCisJCVdBUk5fT05DRSgxLCAiSHVDIGZ3ICVzIGlu
dmFsaWQgZmV0Y2hfc3RhdHVzICVzIFslZF1cbiIsCisJCQlodWNfZnctPnVjX2Z3X3BhdGgsCisJ
CQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihodWNfZnctPmZldGNoX3N0YXR1cyksCisJCQlodWNf
ZnctPmZldGNoX3N0YXR1cyk7CisJCWVyciA9IC1FTlhJTzsKKwkJZ290byBmYWlsOworCisJY2Fz
ZSBVQ19GSVJNV0FSRV9TVUNDRVNTOgorCQlicmVhazsKKwl9CisKKwllcnIgPSBodWNfdWNvZGVf
eGZlcihkZXZfcHJpdik7CisJaWYgKGVycikKKwkJZ290byBmYWlsOworCisJaHVjX2Z3LT5sb2Fk
X3N0YXR1cyA9IFVDX0ZJUk1XQVJFX1NVQ0NFU1M7CisKKwlEUk1fREVCVUdfRFJJVkVSKCIlcyBm
dyBzdGF0dXM6IGZldGNoICVzLCBsb2FkICVzXG4iLAorCQlodWNfZnctPnVjX2Z3X3BhdGgsCisJ
CWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGh1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwKKwkJaW50ZWxf
dWNfZndfc3RhdHVzX3JlcHIoaHVjX2Z3LT5sb2FkX3N0YXR1cykpOworCisJcmV0dXJuIDA7CisK
K2ZhaWw6CisJaWYgKGh1Y19mdy0+bG9hZF9zdGF0dXMgPT0gVUNfRklSTVdBUkVfUEVORElORykK
KwkJaHVjX2Z3LT5sb2FkX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX0ZBSUw7CisKKwlEUk1fRVJST1Io
IkZhaWxlZCB0byBjb21wbGV0ZSBIdUMgdUNvZGUgbG9hZCB3aXRoIHJldCAlZFxuIiwgZXJyKTsK
KworCXJldHVybiBlcnI7Cit9CisKKy8qKgorICogaW50ZWxfaHVjX2ZpbmkoKSAtIGNsZWFuIHVw
IHJlc291cmNlcyBhbGxvY2F0ZWQgZm9yIEh1QworICogQGRldjogdGhlIGRybSBkZXZpY2UKKyAq
CisgKiBDbGVhbnMgdXAgYnkgcmVsZWFzaW5nIHRoZSBodWMgZmlybXdhcmUgR0VNIG9iai4KKyAq
Lwordm9pZCBpbnRlbF9odWNfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVj
dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0
IGludGVsX3VjX2Z3ICpodWNfZncgPSAmZGV2X3ByaXYtPmh1Yy5odWNfZnc7CisKKwltdXRleF9s
b2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJaWYgKGh1Y19mdy0+dWNfZndfb2JqKQorCQlkcm1f
Z2VtX29iamVjdF91bnJlZmVyZW5jZSgmaHVjX2Z3LT51Y19md19vYmotPmJhc2UpOworCWh1Y19m
dy0+dWNfZndfb2JqID0gTlVMTDsKKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsK
KworCWh1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gVUNfRklSTVdBUkVfTk9ORTsKK30KLS0gCjEuOS4x
CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n
ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s
aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Patchwork <patchwork@emeril.freedesktop.org>
Subject: =?utf-8?q?=E2=9C=97_Ro=2ECI=2EBAT=3A_warning_for_HuC_?=
 =?utf-8?q?Loading_Patches_=28rev2=29?=
Date: Fri, 01 Jul 2016 14:04:55 -0000
Message-ID: <20160701140455.21323.92171@emeril.freedesktop.org>
References: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
Reply-To: intel-gfx@lists.freedesktop.org
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path: <intel-gfx-bounces@lists.freedesktop.org>
In-Reply-To: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
List-Unsubscribe: <https://lists.freedesktop.org/mailman/options/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <https://lists.freedesktop.org/archives/intel-gfx>
List-Post: <mailto:intel-gfx@lists.freedesktop.org>
List-Help: <mailto:intel-gfx-request@lists.freedesktop.org?subject=help>
List-Subscribe: <https://lists.freedesktop.org/mailman/listinfo/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=subscribe>
Errors-To: intel-gfx-bounces@lists.freedesktop.org
Sender: "Intel-gfx" <intel-gfx-bounces@lists.freedesktop.org>
To: Peter Antoine <peter.antoine@intel.com>
Cc: intel-gfx@lists.freedesktop.org
List-Id: intel-gfx@lists.freedesktop.org

PT0gU2VyaWVzIERldGFpbHMgPT0KClNlcmllczogSHVDIExvYWRpbmcgUGF0Y2hlcyAocmV2MikK
VVJMICAgOiBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzkwMTEvClN0
YXRlIDogd2FybmluZwoKPT0gU3VtbWFyeSA9PQoKU2VyaWVzIDkwMTF2MiBIdUMgTG9hZGluZyBQ
YXRjaGVzCmh0dHA6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL2FwaS8xLjAvc2VyaWVzLzkw
MTEvcmV2aXNpb25zLzIvbWJveAoKVGVzdCBkcnZfaGFuZ21hbjoKICAgICAgICBTdWJncm91cCBl
cnJvci1zdGF0ZS1iYXNpYzoKICAgICAgICAgICAgICAgIHBhc3MgICAgICAgLT4gRE1FU0ctV0FS
TiAoZmktc2tsLWk1LTYyNjB1KQogICAgICAgICAgICAgICAgcGFzcyAgICAgICAtPiBETUVTRy1X
QVJOIChmaS1za2wtaTctNjcwMGspClRlc3QgZHJ2X21vZHVsZV9yZWxvYWRfYmFzaWM6CiAgICAg
ICAgICAgICAgICBwYXNzICAgICAgIC0+IERNRVNHLVdBUk4gKHJvLWJ5dC1uMjgyMCkKICAgICAg
ICAgICAgICAgIHBhc3MgICAgICAgLT4gRE1FU0ctV0FSTiAocm8tYmR3LWk3LTU2MDB1KQogICAg
ICAgICAgICAgICAgcGFzcyAgICAgICAtPiBETUVTRy1XQVJOIChmaS1za2wtaTUtNjI2MHUpCiAg
ICAgICAgICAgICAgICBwYXNzICAgICAgIC0+IERNRVNHLVdBUk4gKGZpLXNrbC1pNy02NzAwaykK
VGVzdCBnZW1fZXhlY19mbHVzaDoKICAgICAgICBTdWJncm91cCBiYXNpYy1iYXRjaC1rZXJuZWwt
ZGVmYXVsdC1jbWQ6CiAgICAgICAgICAgICAgICBmYWlsICAgICAgIC0+IFBBU1MgICAgICAgKHJv
LWJ5dC1uMjgyMCkKVGVzdCBnZW1fZXhlY19zdXNwZW5kOgogICAgICAgIFN1Ymdyb3VwIGJhc2lj
LXMzOgogICAgICAgICAgICAgICAgcGFzcyAgICAgICAtPiBETUVTRy1XQVJOIChmaS1za2wtaTUt
NjI2MHUpCiAgICAgICAgICAgICAgICBwYXNzICAgICAgIC0+IERNRVNHLVdBUk4gKGZpLXNrbC1p
Ny02NzAwaykKVGVzdCBnZW1fcmluZ2ZpbGw6CiAgICAgICAgU3ViZ3JvdXAgYmFzaWMtZGVmYXVs
dC1oYW5nOgogICAgICAgICAgICAgICAgcGFzcyAgICAgICAtPiBETUVTRy1XQVJOIChmaS1za2wt
aTUtNjI2MHUpCiAgICAgICAgICAgICAgICBwYXNzICAgICAgIC0+IERNRVNHLVdBUk4gKGZpLXNr
bC1pNy02NzAwaykKVGVzdCBrbXNfcGlwZV9jcmNfYmFzaWM6CiAgICAgICAgU3ViZ3JvdXAgaGFu
Zy1yZWFkLWNyYy1waXBlLWE6CiAgICAgICAgICAgICAgICBwYXNzICAgICAgIC0+IERNRVNHLVdB
Uk4gKGZpLXNrbC1pNS02MjYwdSkKICAgICAgICAgICAgICAgIHBhc3MgICAgICAgLT4gRE1FU0ct
V0FSTiAoZmktc2tsLWk3LTY3MDBrKQogICAgICAgIFN1Ymdyb3VwIGhhbmctcmVhZC1jcmMtcGlw
ZS1iOgogICAgICAgICAgICAgICAgcGFzcyAgICAgICAtPiBETUVTRy1XQVJOIChmaS1za2wtaTUt
NjI2MHUpCiAgICAgICAgICAgICAgICBwYXNzICAgICAgIC0+IERNRVNHLVdBUk4gKGZpLXNrbC1p
Ny02NzAwaykKICAgICAgICBTdWJncm91cCBoYW5nLXJlYWQtY3JjLXBpcGUtYzoKICAgICAgICAg
ICAgICAgIHBhc3MgICAgICAgLT4gRE1FU0ctV0FSTiAoZmktc2tsLWk1LTYyNjB1KQogICAgICAg
ICAgICAgICAgcGFzcyAgICAgICAtPiBETUVTRy1XQVJOIChmaS1za2wtaTctNjcwMGspCiAgICAg
ICAgU3ViZ3JvdXAgc3VzcGVuZC1yZWFkLWNyYy1waXBlLWE6CiAgICAgICAgICAgICAgICBkbWVz
Zy13YXJuIC0+IFNLSVAgICAgICAgKHJvLWJkdy1pNS01MjUwdSkKICAgICAgICAgICAgICAgIHBh
c3MgICAgICAgLT4gRE1FU0ctV0FSTiAoZmktc2tsLWk1LTYyNjB1KQogICAgICAgICAgICAgICAg
cGFzcyAgICAgICAtPiBETUVTRy1XQVJOIChmaS1za2wtaTctNjcwMGspCiAgICAgICAgU3ViZ3Jv
dXAgc3VzcGVuZC1yZWFkLWNyYy1waXBlLWI6CiAgICAgICAgICAgICAgICBwYXNzICAgICAgIC0+
IFNLSVAgICAgICAgKGZpLXNrbC1pNS02MjYwdSkKICAgICAgICAgICAgICAgIHBhc3MgICAgICAg
LT4gRE1FU0ctV0FSTiAoZmktc2tsLWk3LTY3MDBrKQogICAgICAgIFN1Ymdyb3VwIHN1c3BlbmQt
cmVhZC1jcmMtcGlwZS1jOgogICAgICAgICAgICAgICAgcGFzcyAgICAgICAtPiBETUVTRy1XQVJO
IChmaS1za2wtaTUtNjI2MHUpCiAgICAgICAgICAgICAgICBwYXNzICAgICAgIC0+IERNRVNHLVdB
Uk4gKGZpLXNrbC1pNy02NzAwaykKCmZpLWhzdy1pNy00NzcwayAgdG90YWw6MjI5ICBwYXNzOjE5
NiAgZHdhcm46MCAgIGRmYWlsOjAgICBmYWlsOjAgICBza2lwOjMzIApmaS1rYmwtcWtrciAgICAg
IHRvdGFsOjIyOSAgcGFzczoxNjEgIGR3YXJuOjI4ICBkZmFpbDoxICAgZmFpbDowICAgc2tpcDoz
OSAKZmktc2tsLWk1LTYyNjB1ICB0b3RhbDoyMjkgIHBhc3M6MTk0ICBkd2Fybjo5ICAgZGZhaWw6
MCAgIGZhaWw6MCAgIHNraXA6MjYgCmZpLXNrbC1pNy02NzAwayAgdG90YWw6MjI5ICBwYXNzOjE4
MCAgZHdhcm46MTAgIGRmYWlsOjAgICBmYWlsOjAgICBza2lwOjM5IApmaS1zbmItaTctMjYwMCAg
IHRvdGFsOjIyOSAgcGFzczoxNzYgIGR3YXJuOjAgICBkZmFpbDowICAgZmFpbDowICAgc2tpcDo1
MyAKcm8tYmR3LWk1LTUyNTB1ICB0b3RhbDoyMjkgIHBhc3M6MjA0ICBkd2FybjoyICAgZGZhaWw6
MSAgIGZhaWw6MCAgIHNraXA6MjIgCnJvLWJkdy1pNy01NTU3VSAgdG90YWw6MjI5ICBwYXNzOjIw
NCAgZHdhcm46MSAgIGRmYWlsOjEgICBmYWlsOjAgICBza2lwOjIzIApyby1iZHctaTctNTYwMHUg
IHRvdGFsOjIyOSAgcGFzczoxODkgIGR3YXJuOjEgICBkZmFpbDoxICAgZmFpbDowICAgc2tpcDoz
OCAKcm8tYnl0LW4yODIwICAgICB0b3RhbDoyMjkgIHBhc3M6MTgwICBkd2FybjoxICAgZGZhaWw6
MSAgIGZhaWw6MiAgIHNraXA6NDUgCnJvLWhzdy1pMy00MDEwdSAgdG90YWw6MjI5ICBwYXNzOjE5
NyAgZHdhcm46MCAgIGRmYWlsOjEgICBmYWlsOjAgICBza2lwOjMxIApyby1oc3ctaTctNDc3MHIg
IHRvdGFsOjIyOSAgcGFzczoxOTcgIGR3YXJuOjAgICBkZmFpbDoxICAgZmFpbDowICAgc2tpcDoz
MSAKcm8taWxrLWk3LTYyMGxtICB0b3RhbDoyMjkgIHBhc3M6MTU3ICBkd2FybjowICAgZGZhaWw6
MSAgIGZhaWw6MSAgIHNraXA6NzAgCnJvLWlsazEtaTUtNjUwICAgdG90YWw6MjI0ICBwYXNzOjE1
NyAgZHdhcm46MCAgIGRmYWlsOjEgICBmYWlsOjEgICBza2lwOjY1IApyby1pdmItaTctMzc3MCAg
IHRvdGFsOjIyOSAgcGFzczoxODggIGR3YXJuOjAgICBkZmFpbDoxICAgZmFpbDowICAgc2tpcDo0
MCAKcm8tc2tsMy1pNS02MjYwdSB0b3RhbDoyMjkgIHBhc3M6MjA4ICBkd2FybjoxICAgZGZhaWw6
MSAgIGZhaWw6MCAgIHNraXA6MTkgCnJvLXNuYi1pNy0yNjIwTSAgdG90YWw6MjI5ICBwYXNzOjE3
OSAgZHdhcm46MCAgIGRmYWlsOjEgICBmYWlsOjEgICBza2lwOjQ4IApyby1ic3ctbjMwNTAgZmFp
bGVkIHRvIGNvbm5lY3QgYWZ0ZXIgcmVib290CgpSZXN1bHRzIGF0IC9hcmNoaXZlL3Jlc3VsdHMv
Q0lfSUdUX3Rlc3QvUk9fUGF0Y2h3b3JrXzEzNjAvCgo4Zjg5MTBiIGRybS1pbnRlbC1uaWdodGx5
OiAyMDE2eS0wN20tMDFkLTExaC01OW0tMzJzIFVUQyBpbnRlZ3JhdGlvbiBtYW5pZmVzdAphM2U5
MGI2IGRybS9pOTE1L2h1YzogQWRkIEJYVCBIdUMgTG9hZGluZyBTdXBwb3J0CjNjOGY5NjMgZHJt
L2k5MTUvaHVjOiBTdXBwb3J0IEh1QyBhdXRoZW50aWNhdGlvbgpiODg5ZmJkIGRybS9pOTE1L2h1
YzogQWRkIGRlYnVnZnMgZm9yIEh1QyBsb2FkaW5nIHN0YXR1cyBjaGVjawpjZjk1NDQzIGRybS9p
OTE1L2h1YzogQWRkIEh1QyBmdyBsb2FkaW5nIHN1cHBvcnQKYTlkYWRhMSBkcm0vaTkxNS9odWM6
IFVuaWZpZWQgY3NzX2hlYWRlciBzdHJ1Y3QgZm9yIEd1QyBhbmQgSHVDCmYwMTg4ZTEgZHJtL2k5
MTUvZ3VjOiBNYWtlIHRoZSBHdUMgZncgbG9hZGluZyBoZWxwZXIgZnVuY3Rpb25zIGdlbmVyYWwK
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm
eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp
c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=

From mboxrd@z Thu Jan  1 00:00:00 1970
From: Dave Gordon <david.s.gordon@intel.com>
Subject: Re: [PATCH v2 1/6] drm/i915/guc: Make the GuC fw
 loading helper functions general
Date: Tue, 5 Jul 2016 15:44:09 +0100
Message-ID: <577BC7B9.4020605@intel.com>
References: <1467378945-14274-1-git-send-email-peter.antoine@intel.com>
 <1467378945-14274-2-git-send-email-peter.antoine@intel.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Content-Transfer-Encoding: base64
Return-path: <intel-gfx-bounces@lists.freedesktop.org>
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by gabe.freedesktop.org (Postfix) with ESMTP id 464CB6E2C9
 for <intel-gfx@lists.freedesktop.org>; Tue,  5 Jul 2016 14:44:12 +0000 (UTC)
In-Reply-To: <1467378945-14274-2-git-send-email-peter.antoine@intel.com>
List-Unsubscribe: <https://lists.freedesktop.org/mailman/options/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=unsubscribe>
List-Archive: <https://lists.freedesktop.org/archives/intel-gfx>
List-Post: <mailto:intel-gfx@lists.freedesktop.org>
List-Help: <mailto:intel-gfx-request@lists.freedesktop.org?subject=help>
List-Subscribe: <https://lists.freedesktop.org/mailman/listinfo/intel-gfx>,
 <mailto:intel-gfx-request@lists.freedesktop.org?subject=subscribe>
Errors-To: intel-gfx-bounces@lists.freedesktop.org
Sender: "Intel-gfx" <intel-gfx-bounces@lists.freedesktop.org>
To: Peter Antoine <peter.antoine@intel.com>, intel-gfx@lists.freedesktop.org
Cc: Alex Dai <yu.dai@intel.com>, rodrigo.vivi@intel.com
List-Id: intel-gfx@lists.freedesktop.org

T24gMDEvMDcvMTYgMTQ6MTUsIFBldGVyIEFudG9pbmUgd3JvdGU6Cj4gUmVuYW1lIHNvbWUgb2Yg
dGhlIEd1QyBmdyBsb2FkaW5nIGNvZGUgdG8gbWFrZSB0aGVtIG1vcmUgZ2VuZXJhbC4gV2UKPiB3
aWxsIHV0aWxpc2UgdGhlbSBmb3IgSHVDIGxvYWRpbmcgYXMgd2VsbC4KPiAgICAgICBzL2ludGVs
X2d1Y19mdy9pbnRlbF91Y19mdy9nCj4gICAgICAgcy9HVUNfRklSTVdBUkUvVUNfRklSTVdBUkUv
Zwo+Cj4gU3RydWN0IGludGVsX2d1Y19mdyBpcyByZW5hbWVkIHRvIGludGVsX3VjX2Z3LiBQcmVm
aXggb2YgdHRzIG1lbWJlcnMsCj4gc3VjaCBhcyAnZ3VjJyBvciAnZ3VjX2Z3JyBlaXRoZXIgaXMg
cmVuYW1lZCB0byAndWMnIG9yIHJlbW92ZWQgZm9yCj4gc2FtZSBwdXJwb3NlLgo+Cj4gdjI6IHJl
YmFzZWQgb24gdG9wIG9mIG5pZ2h0bHkuCj4gICAgICByZWFwcGxpZWQgdGhlIHNlYXJjaC9yZXBs
YWNlIGFzIHVwc3RyZWFtIGNvZGUgYXMgY2hhbmdlZC4KPgo+IFNpZ25lZC1vZmYtYnk6IEFsZXgg
RGFpIDx5dS5kYWlAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFBldGVyIEFudG9pbmUgPHBl
dGVyLmFudG9pbmVAaW50ZWwuY29tPgoKVGhpcyBkaWRuJ3QgYXBwbHkgY2xlYW5seSwgc28gaXQg
d2lsbCBuZWVkIHJlYmFzaW5nIChhZ2FpbiksIGJ1dCBpdCdzIApvbmx5IGEgc2ltcGxlIGNvbmZs
aWN0IHdpdGggcmVjZW50IHBhdGNoZXMuIEFwYXJ0IGZyb20gdGhhdCwgaXRzIE9LIG5vdywgc286
CgpSZXZpZXdlZC1ieTogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KCih3
aGljaCB5b3UgY2FuIGNhcnJ5IG92ZXIgdG8gdGhlIHJlYmFzZWQgdmVyc2lvbikuCgo+IC0tLQo+
ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgIHwgIDEyICstLQo+
ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgICA0ICstCj4g
ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgMzkgKysrKy0t
LS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyAgICB8IDE0MiAr
KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+ICAgNCBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNl
cnRpb25zKCspLCA5OCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k
cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm
cy5jCj4gaW5kZXggZjY2NDg4NC4uMzg4M2RmNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k
cm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf
ZGVidWdmcy5jCj4gQEAgLTI0ODMsNyArMjQ4Myw3IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNfbG9h
ZF9zdGF0dXNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gICB7Cj4gICAJ
c3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSBtLT5wcml2YXRlOwo+ICAgCXN0cnVjdCBkcm1f
aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGUtPm1pbm9yLT5kZXYtPmRldl9wcml2YXRlOwo+
IC0Jc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+
ICsJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7Cj4g
ICAJdTMyIHRtcCwgaTsKPgo+ICAgCWlmICghSEFTX0dVQ19VQ09ERShkZXZfcHJpdikpCj4gQEAg
LTI0OTEsMTUgKzI0OTEsMTUgQEAgc3RhdGljIGludCBpOTE1X2d1Y19sb2FkX3N0YXR1c19pbmZv
KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPgo+ICAgCXNlcV9wcmludGYobSwgIkd1
QyBmaXJtd2FyZSBzdGF0dXM6XG4iKTsKPiAgIAlzZXFfcHJpbnRmKG0sICJcdHBhdGg6ICVzXG4i
LAo+IC0JCWd1Y19mdy0+Z3VjX2Z3X3BhdGgpOwo+ICsJCWd1Y19mdy0+dWNfZndfcGF0aCk7Cj4g
ICAJc2VxX3ByaW50ZihtLCAiXHRmZXRjaDogJXNcbiIsCj4gLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1
c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cykpOwo+ICsJCWludGVsX3VjX2Z3X3N0
YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSk7Cj4gICAJc2VxX3ByaW50ZihtLCAiXHRs
b2FkOiAlc1xuIiwKPiAtCQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndf
bG9hZF9zdGF0dXMpKTsKPiArCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmxvYWRf
c3RhdHVzKSk7Cj4gICAJc2VxX3ByaW50ZihtLCAiXHR2ZXJzaW9uIHdhbnRlZDogJWQuJWRcbiIs
Cj4gLQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93
YW50ZWQpOwo+ICsJCWd1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCwgZ3VjX2Z3LT5taW5vcl92ZXJf
d2FudGVkKTsKPiAgIAlzZXFfcHJpbnRmKG0sICJcdHZlcnNpb24gZm91bmQ6ICVkLiVkXG4iLAo+
IC0JCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kLCBndWNfZnctPmd1Y19md19taW5vcl9mb3Vu
ZCk7Cj4gKwkJZ3VjX2Z3LT5tYWpvcl92ZXJfZm91bmQsIGd1Y19mdy0+bWlub3JfdmVyX2ZvdW5k
KTsKPiAgIAlzZXFfcHJpbnRmKG0sICJcdGhlYWRlcjogb2Zmc2V0IGlzICVkOyBzaXplID0gJWRc
biIsCj4gICAJCWd1Y19mdy0+aGVhZGVyX29mZnNldCwgZ3VjX2Z3LT5oZWFkZXJfc2l6ZSk7Cj4g
ICAJc2VxX3ByaW50ZihtLCAiXHR1Q29kZTogb2Zmc2V0IGlzICVkOyBzaXplID0gJWRcbiIsCj4g
ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBi
L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IGluZGV4IDM1NWI2
NDcuLjJiZmE4NmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNf
c3VibWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlz
c2lvbi5jCj4gQEAgLTEwMzgsNyArMTAzOCw3IEBAIGludCBpbnRlbF9ndWNfc3VzcGVuZChzdHJ1
Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4g
ICAJdTMyIGRhdGFbM107Cj4KPiAtCWlmIChndWMtPmd1Y19mdy5ndWNfZndfbG9hZF9zdGF0dXMg
IT0gR1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCj4gKwlpZiAoZ3VjLT5ndWNfZncubG9hZF9zdGF0dXMg
IT0gVUNfRklSTVdBUkVfU1VDQ0VTUykKPiAgIAkJcmV0dXJuIDA7Cj4KPiAgIAljdHggPSBkZXZf
cHJpdi0+a2VybmVsX2NvbnRleHQ7Cj4gQEAgLTEwNjQsNyArMTA2NCw3IEBAIGludCBpbnRlbF9n
dWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJc3RydWN0IGk5MTVfZ2VtX2Nv
bnRleHQgKmN0eDsKPiAgIAl1MzIgZGF0YVszXTsKPgo+IC0JaWYgKGd1Yy0+Z3VjX2Z3Lmd1Y19m
d19sb2FkX3N0YXR1cyAhPSBHVUNfRklSTVdBUkVfU1VDQ0VTUykKPiArCWlmIChndWMtPmd1Y19m
dy5sb2FkX3N0YXR1cyAhPSBVQ19GSVJNV0FSRV9TVUNDRVNTKQo+ICAgCQlyZXR1cm4gMDsKPgo+
ICAgCWN0eCA9IGRldl9wcml2LT5rZXJuZWxfY29udGV4dDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy
cy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n
dWMuaAo+IGluZGV4IDNlM2U3NDMuLjAyYWRjZmMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv
ZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n
dWMuaAo+IEBAIC05MCwyOSArOTAsMjkgQEAgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCB7Cj4gICAJ
dWludDY0X3Qgc3VibWlzc2lvbnNbSTkxNV9OVU1fRU5HSU5FU107Cj4gICB9Owo+Cj4gLWVudW0g
aW50ZWxfZ3VjX2Z3X3N0YXR1cyB7Cj4gLQlHVUNfRklSTVdBUkVfRkFJTCA9IC0xLAo+IC0JR1VD
X0ZJUk1XQVJFX05PTkUgPSAwLAo+IC0JR1VDX0ZJUk1XQVJFX1BFTkRJTkcsCj4gLQlHVUNfRklS
TVdBUkVfU1VDQ0VTUwo+ICtlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyB7Cj4gKwlVQ19GSVJNV0FS
RV9GQUlMID0gLTEsCj4gKwlVQ19GSVJNV0FSRV9OT05FID0gMCwKPiArCVVDX0ZJUk1XQVJFX1BF
TkRJTkcsCj4gKwlVQ19GSVJNV0FSRV9TVUNDRVNTCj4gICB9Owo+Cj4gICAvKgo+ICAgICogVGhp
cyBzdHJ1Y3R1cmUgZW5jYXBzdWxhdGVzIGFsbCB0aGUgZGF0YSBuZWVkZWQgZHVyaW5nIHRoZSBw
cm9jZXNzCj4gICAgKiBvZiBmZXRjaGluZywgY2FjaGluZywgYW5kIGxvYWRpbmcgdGhlIGZpcm13
YXJlIGltYWdlIGludG8gdGhlIEd1Qy4KPiAgICAqLwo+IC1zdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsK
PiAtCXN0cnVjdCBkcm1fZGV2aWNlICoJCWd1Y19kZXY7Cj4gLQljb25zdCBjaGFyICoJCQlndWNf
ZndfcGF0aDsKPiAtCXNpemVfdAkJCQlndWNfZndfc2l6ZTsKPiAtCXN0cnVjdCBkcm1faTkxNV9n
ZW1fb2JqZWN0ICoJZ3VjX2Z3X29iajsKPiAtCWVudW0gaW50ZWxfZ3VjX2Z3X3N0YXR1cwlndWNf
ZndfZmV0Y2hfc3RhdHVzOwo+IC0JZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19sb2Fk
X3N0YXR1czsKPiAtCj4gLQl1aW50MTZfdAkJCWd1Y19md19tYWpvcl93YW50ZWQ7Cj4gLQl1aW50
MTZfdAkJCWd1Y19md19taW5vcl93YW50ZWQ7Cj4gLQl1aW50MTZfdAkJCWd1Y19md19tYWpvcl9m
b3VuZDsKPiAtCXVpbnQxNl90CQkJZ3VjX2Z3X21pbm9yX2ZvdW5kOwo+ICtzdHJ1Y3QgaW50ZWxf
dWNfZncgewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKnVjX2RldjsKPiArCWNvbnN0IGNoYXIgKnVj
X2Z3X3BhdGg7Cj4gKwlzaXplX3QgdWNfZndfc2l6ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1f
b2JqZWN0ICp1Y19md19vYmo7Cj4gKwllbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBmZXRjaF9zdGF0
dXM7Cj4gKwllbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBsb2FkX3N0YXR1czsKPiArCj4gKwl1aW50
MTZfdCBtYWpvcl92ZXJfd2FudGVkOwo+ICsJdWludDE2X3QgbWlub3JfdmVyX3dhbnRlZDsKPiAr
CXVpbnQxNl90IG1ham9yX3Zlcl9mb3VuZDsKPiArCXVpbnQxNl90IG1pbm9yX3Zlcl9mb3VuZDsK
Pgo+ICAgCXVpbnQzMl90IGhlYWRlcl9zaXplOwo+ICAgCXVpbnQzMl90IGhlYWRlcl9vZmZzZXQ7
Cj4gQEAgLTEyMyw3ICsxMjMsNyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsKPiAgIH07Cj4KPiAg
IHN0cnVjdCBpbnRlbF9ndWMgewo+IC0Jc3RydWN0IGludGVsX2d1Y19mdyBndWNfZnc7Cj4gKwlz
dHJ1Y3QgaW50ZWxfdWNfZncgZ3VjX2Z3Owo+ICAgCXVpbnQzMl90IGxvZ19mbGFnczsKPiAgIAlz
dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqbG9nX29iajsKPgo+IEBAIC0xNTIsOSArMTUyLDEw
IEBAIHN0cnVjdCBpbnRlbF9ndWMgewo+ICAgZXh0ZXJuIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3Ry
dWN0IGRybV9kZXZpY2UgKmRldik7Cj4gICBleHRlcm4gaW50IGludGVsX2d1Y19zZXR1cChzdHJ1
Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgIGV4dGVybiB2b2lkIGludGVsX2d1Y19maW5pKHN0cnVj
dCBkcm1fZGV2aWNlICpkZXYpOwo+IC1leHRlcm4gY29uc3QgY2hhciAqaW50ZWxfZ3VjX2Z3X3N0
YXR1c19yZXByKGVudW0gaW50ZWxfZ3VjX2Z3X3N0YXR1cyBzdGF0dXMpOwo+ICtleHRlcm4gY29u
c3QgY2hhciAqaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF91Y19md19zdGF0dXMg
c3RhdHVzKTsKPiAgIGV4dGVybiBpbnQgaW50ZWxfZ3VjX3N1c3BlbmQoc3RydWN0IGRybV9kZXZp
Y2UgKmRldik7Cj4gICBleHRlcm4gaW50IGludGVsX2d1Y19yZXN1bWUoc3RydWN0IGRybV9kZXZp
Y2UgKmRldik7Cj4gK3ZvaWQgaW50ZWxfdWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRl
diwgc3RydWN0IGludGVsX3VjX2Z3ICp1Y19mdyk7Cj4KPiAgIC8qIGk5MTVfZ3VjX3N1Ym1pc3Np
b24uYyAqLwo+ICAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgZHJtX2k5MTVf
cHJpdmF0ZSAqZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p
bnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVy
LmMKPiBpbmRleCA0ZjYzMTFhLi4xNDI0YzQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry
bS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu
dGVsX2d1Y19sb2FkZXIuYwo+IEBAIC02NiwxNiArNjYsMTYgQEAgTU9EVUxFX0ZJUk1XQVJFKEk5
MTVfU0tMX0dVQ19VQ09ERSk7Cj4gICBNT0RVTEVfRklSTVdBUkUoSTkxNV9CWFRfR1VDX1VDT0RF
KTsKPgo+ICAgLyogVXNlci1mcmllbmRseSByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnVtICovCj4g
LWNvbnN0IGNoYXIgKmludGVsX2d1Y19md19zdGF0dXNfcmVwcihlbnVtIGludGVsX2d1Y19md19z
dGF0dXMgc3RhdHVzKQo+ICtjb25zdCBjaGFyICppbnRlbF91Y19md19zdGF0dXNfcmVwcihlbnVt
IGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXMpCj4gICB7Cj4gICAJc3dpdGNoIChzdGF0dXMpIHsK
PiAtCWNhc2UgR1VDX0ZJUk1XQVJFX0ZBSUw6Cj4gKwljYXNlIFVDX0ZJUk1XQVJFX0ZBSUw6Cj4g
ICAJCXJldHVybiAiRkFJTCI7Cj4gLQljYXNlIEdVQ19GSVJNV0FSRV9OT05FOgo+ICsJY2FzZSBV
Q19GSVJNV0FSRV9OT05FOgo+ICAgCQlyZXR1cm4gIk5PTkUiOwo+IC0JY2FzZSBHVUNfRklSTVdB
UkVfUEVORElORzoKPiArCWNhc2UgVUNfRklSTVdBUkVfUEVORElORzoKPiAgIAkJcmV0dXJuICJQ
RU5ESU5HIjsKPiAtCWNhc2UgR1VDX0ZJUk1XQVJFX1NVQ0NFU1M6Cj4gKwljYXNlIFVDX0ZJUk1X
QVJFX1NVQ0NFU1M6Cj4gICAJCXJldHVybiAiU1VDQ0VTUyI7Cj4gICAJZGVmYXVsdDoKPiAgIAkJ
cmV0dXJuICJVTktOT1dOISI7Cj4gQEAgLTIzNyw4ICsyMzcsOCBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgZ3VjX3Vjb2RlX3Jlc3BvbnNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK
PiAgICAqLwo+ICAgc3RhdGljIGludCBndWNfdWNvZGVfeGZlcl9kbWEoc3RydWN0IGRybV9pOTE1
X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3
ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg
KmZ3X29iaiA9IGd1Y19mdy0+Z3VjX2Z3X29iajsKPiArCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3Vj
X2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl
Y3QgKmZ3X29iaiA9IGd1Y19mdy0+dWNfZndfb2JqOwo+ICAgCXVuc2lnbmVkIGxvbmcgb2Zmc2V0
Owo+ICAgCXN0cnVjdCBzZ190YWJsZSAqc2cgPSBmd19vYmotPnBhZ2VzOwo+ICAgCXUzMiBzdGF0
dXMsIHJzYVtVT1NfUlNBX1NDUkFUQ0hfTUFYX0NPVU5UXTsKPiBAQCAtMzEwLDE3ICszMTAsMTcg
QEAgc3RhdGljIHUzMiBndWNfd29wY21fc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2
X3ByaXYpCj4gICAgKi8KPiAgIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXIoc3RydWN0IGRybV9p
OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2d1Y19mdyAqZ3Vj
X2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+ICsJc3RydWN0IGludGVsX3VjX2Z3ICpndWNf
ZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7Cj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9
IGRldl9wcml2LT5kZXY7Cj4gICAJaW50IHJldDsKPgo+IC0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0
X3NldF90b19ndHRfZG9tYWluKGd1Y19mdy0+Z3VjX2Z3X29iaiwgZmFsc2UpOwo+ICsJcmV0ID0g
aTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKGd1Y19mdy0+dWNfZndfb2JqLCBmYWxz
ZSk7Cj4gICAJaWYgKHJldCkgewo+ICAgCQlEUk1fREVCVUdfRFJJVkVSKCJzZXQtZG9tYWluIGZh
aWxlZCAlZFxuIiwgcmV0KTsKPiAgIAkJcmV0dXJuIHJldDsKPiAgIAl9Cj4KPiAtCXJldCA9IGk5
MTVfZ2VtX29ial9nZ3R0X3BpbihndWNfZnctPmd1Y19md19vYmosIDAsIDApOwo+ICsJcmV0ID0g
aTkxNV9nZW1fb2JqX2dndHRfcGluKGd1Y19mdy0+dWNfZndfb2JqLCAwLCAwKTsKPiAgIAlpZiAo
cmV0KSB7Cj4gICAJCURSTV9ERUJVR19EUklWRVIoInBpbiBmYWlsZWQgJWRcbiIsIHJldCk7Cj4g
ICAJCXJldHVybiByZXQ7Cj4gQEAgLTM3Miw3ICszNzIsNyBAQCBzdGF0aWMgaW50IGd1Y191Y29k
ZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAkgKiBXZSBrZWVw
IHRoZSBvYmplY3QgcGFnZXMgZm9yIHJldXNlIGR1cmluZyByZXN1bWUuIEJ1dCB3ZSBjYW4gdW5w
aW4gaXQKPiAgIAkgKiBub3cgdGhhdCBETUEgaGFzIGNvbXBsZXRlZCwgc28gaXQgZG9lc24ndCBj
b250aW51ZSB0byB0YWtlIHVwIHNwYWNlLgo+ICAgCSAqLwo+IC0JaTkxNV9nZW1fb2JqZWN0X2dn
dHRfdW5waW4oZ3VjX2Z3LT5ndWNfZndfb2JqKTsKPiArCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3Vu
cGluKGd1Y19mdy0+dWNfZndfb2JqKTsKPgo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4gQEAgLTQx
MSwxNCArNDExLDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9yZXNldF9ndWMoc3RydWN0IGRybV9pOTE1
X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2Rl
dmljZSAqZGV2KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9
IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2
X3ByaXYtPmd1Yy5ndWNfZnc7Cj4gLQljb25zdCBjaGFyICpmd19wYXRoID0gZ3VjX2Z3LT5ndWNf
ZndfcGF0aDsKPiArCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMu
Z3VjX2Z3Owo+ICsJY29uc3QgY2hhciAqZndfcGF0aCA9IGd1Y19mdy0+dWNfZndfcGF0aDsKPiAg
IAlpbnQgcmV0cmllcywgcmV0LCBlcnI7Cj4KPiAgIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncg
c3RhdHVzOiBwYXRoICVzLCBmZXRjaCAlcywgbG9hZCAlc1xuIiwKPiAgIAkJZndfcGF0aCwKPiAt
CQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSwK
PiAtCQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMp
KTsKPiArCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmZldGNoX3N0YXR1cyksCj4g
KwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwo+Cj4gICAJ
LyogTG9hZGluZyBmb3JiaWRkZW4sIG9yIG5vIGZpcm13YXJlIHRvIGxvYWQ/ICovCj4gICAJaWYg
KCFpOTE1LmVuYWJsZV9ndWNfbG9hZGluZykgewo+IEBAIC00MzYsMjEgKzQzNiwyMSBAQCBpbnQg
aW50ZWxfZ3VjX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJfQo+Cj4gICAJLyog
RmV0Y2ggZmFpbGVkLCBvciBhbHJlYWR5IGZldGNoZWQgYnV0IGZhaWxlZCB0byBsb2FkPyAqLwo+
IC0JaWYgKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyAhPSBHVUNfRklSTVdBUkVfU1VDQ0VT
Uykgewo+ICsJaWYgKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzICE9IFVDX0ZJUk1XQVJFX1NVQ0NFU1Mp
IHsKPiAgIAkJZXJyID0gLUVJTzsKPiAgIAkJZ290byBmYWlsOwo+IC0JfSBlbHNlIGlmIChndWNf
ZnctPmd1Y19md19sb2FkX3N0YXR1cyA9PSBHVUNfRklSTVdBUkVfRkFJTCkgewo+ICsJfSBlbHNl
IGlmIChndWNfZnctPmxvYWRfc3RhdHVzID09IFVDX0ZJUk1XQVJFX0ZBSUwpIHsKPiAgIAkJZXJy
ID0gLUVOT0VYRUM7Cj4gICAJCWdvdG8gZmFpbDsKPiAgIAl9Cj4KPiAgIAlkaXJlY3RfaW50ZXJy
dXB0c190b19ob3N0KGRldl9wcml2KTsKPgo+IC0JZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMg
PSBHVUNfRklSTVdBUkVfUEVORElORzsKPiArCWd1Y19mdy0+bG9hZF9zdGF0dXMgPSBVQ19GSVJN
V0FSRV9QRU5ESU5HOwo+Cj4gICAJRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IHN0YXR1czogZmV0
Y2ggJXMsIGxvYWQgJXNcbiIsCj4gLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+
Z3VjX2Z3X2ZldGNoX3N0YXR1cyksCj4gLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19m
dy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7Cj4gKwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3Vj
X2Z3LT5mZXRjaF9zdGF0dXMpLAo+ICsJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+
bG9hZF9zdGF0dXMpKTsKPgo+ICAgCWVyciA9IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChkZXZf
cHJpdik7Cj4gICAJaWYgKGVycikKPiBAQCAtNDg0LDExICs0ODQsMTEgQEAgaW50IGludGVsX2d1
Y19zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCQkJICJyZXRyeSAlZCBtb3JlIHRp
bWUocylcbiIsIGVyciwgcmV0cmllcyk7Cj4gICAJfQo+Cj4gLQlndWNfZnctPmd1Y19md19sb2Fk
X3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9TVUNDRVNTOwo+ICsJZ3VjX2Z3LT5sb2FkX3N0YXR1cyA9
IFVDX0ZJUk1XQVJFX1NVQ0NFU1M7Cj4KPiAgIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgc3Rh
dHVzOiBmZXRjaCAlcywgbG9hZCAlc1xuIiwKPiAtCQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIo
Z3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSwKPiAtCQlpbnRlbF9ndWNfZndfc3RhdHVzX3Jl
cHIoZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMpKTsKPiArCQlpbnRlbF91Y19md19zdGF0dXNf
cmVwcihndWNfZnctPmZldGNoX3N0YXR1cyksCj4gKwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIo
Z3VjX2Z3LT5sb2FkX3N0YXR1cykpOwo+Cj4gICAJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNz
aW9uKSB7Cj4gICAJCWVyciA9IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKGRldl9wcml2KTsK
PiBAQCAtNTAwLDggKzUwMCw4IEBAIGludCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9kZXZp
Y2UgKmRldikKPiAgIAlyZXR1cm4gMDsKPgo+ICAgZmFpbDoKPiAtCWlmIChndWNfZnctPmd1Y19m
d19sb2FkX3N0YXR1cyA9PSBHVUNfRklSTVdBUkVfUEVORElORykKPiAtCQlndWNfZnctPmd1Y19m
d19sb2FkX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9GQUlMOwo+ICsJaWYgKGd1Y19mdy0+bG9hZF9z
dGF0dXMgPT0gVUNfRklSTVdBUkVfUEVORElORykKPiArCQlndWNfZnctPmxvYWRfc3RhdHVzID0g
VUNfRklSTVdBUkVfRkFJTDsKPgo+ICAgCWRpcmVjdF9pbnRlcnJ1cHRzX3RvX2hvc3QoZGV2X3By
aXYpOwo+ICAgCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShkZXZfcHJpdik7Cj4gQEAgLTU0
Niw3ICs1NDYsNyBAQCBmYWlsOgo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4KPiAtc3RhdGljIHZv
aWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNf
ZncgKmd1Y19mdykKPiArdm9pZCBpbnRlbF91Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAq
ZGV2LCBzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkx
NV9nZW1fb2JqZWN0ICpvYmo7Cj4gICAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKPiBAQCAt
NTU1LDE2ICs1NTUsMTYgQEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2
aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdykKPiAgIAlpbnQgZXJyOwo+Cj4g
ICAJRFJNX0RFQlVHX0RSSVZFUigiYmVmb3JlIHJlcXVlc3RpbmcgZmlybXdhcmU6IEd1QyBmdyBm
ZXRjaCBzdGF0dXMgJXNcbiIsCj4gLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+
Z3VjX2Z3X2ZldGNoX3N0YXR1cykpOwo+ICsJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKHVjX2Z3
LT5mZXRjaF9zdGF0dXMpKTsKPgo+IC0JZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmZncsIGd1Y19m
dy0+Z3VjX2Z3X3BhdGgsICZkZXYtPnBkZXYtPmRldik7Cj4gKwllcnIgPSByZXF1ZXN0X2Zpcm13
YXJlKCZmdywgdWNfZnctPnVjX2Z3X3BhdGgsICZkZXYtPnBkZXYtPmRldik7Cj4gICAJaWYgKGVy
cikKPiAgIAkJZ290byBmYWlsOwo+ICAgCWlmICghZncpCj4gICAJCWdvdG8gZmFpbDsKPgo+ICAg
CURSTV9ERUJVR19EUklWRVIoImZldGNoIEd1QyBmdyBmcm9tICVzIHN1Y2NlZWRlZCwgZncgJXBc
biIsCj4gLQkJZ3VjX2Z3LT5ndWNfZndfcGF0aCwgZncpOwo+ICsJCXVjX2Z3LT51Y19md19wYXRo
LCBmdyk7Cj4KPiAgIAkvKiBDaGVjayB0aGUgc2l6ZSBvZiB0aGUgYmxvYiBiZWZvcmUgZXhhbWlu
aW5nIGJ1ZmZlciBjb250ZW50cyAqLwo+ICAgCWlmIChmdy0+c2l6ZSA8IHNpemVvZihzdHJ1Y3Qg
Z3VjX2Nzc19oZWFkZXIpKSB7Cj4gQEAgLTU3NSwzNiArNTc1LDM2IEBAIHN0YXRpYyB2b2lkIGd1
Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpn
dWNfZncpCj4gICAJY3NzID0gKHN0cnVjdCBndWNfY3NzX2hlYWRlciAqKWZ3LT5kYXRhOwo+Cj4g
ICAJLyogRmlybXdhcmUgYml0cyBhbHdheXMgc3RhcnQgZnJvbSBoZWFkZXIgKi8KPiAtCWd1Y19m
dy0+aGVhZGVyX29mZnNldCA9IDA7Cj4gLQlndWNfZnctPmhlYWRlcl9zaXplID0gKGNzcy0+aGVh
ZGVyX3NpemVfZHcgLSBjc3MtPm1vZHVsdXNfc2l6ZV9kdyAtCj4gKwl1Y19mdy0+aGVhZGVyX29m
ZnNldCA9IDA7Cj4gKwl1Y19mdy0+aGVhZGVyX3NpemUgPSAoY3NzLT5oZWFkZXJfc2l6ZV9kdyAt
IGNzcy0+bW9kdWx1c19zaXplX2R3IC0KPiAgIAkJY3NzLT5rZXlfc2l6ZV9kdyAtIGNzcy0+ZXhw
b25lbnRfc2l6ZV9kdykgKiBzaXplb2YodTMyKTsKPgo+IC0JaWYgKGd1Y19mdy0+aGVhZGVyX3Np
emUgIT0gc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikpIHsKPiArCWlmICh1Y19mdy0+aGVh
ZGVyX3NpemUgIT0gc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikpIHsKPiAgIAkJRFJNX0VS
Uk9SKCJDU1MgaGVhZGVyIGRlZmluaXRpb24gbWlzbWF0Y2hcbiIpOwo+ICAgCQlnb3RvIGZhaWw7
Cj4gICAJfQo+Cj4gICAJLyogdGhlbiwgdUNvZGUgKi8KPiAtCWd1Y19mdy0+dWNvZGVfb2Zmc2V0
ID0gZ3VjX2Z3LT5oZWFkZXJfb2Zmc2V0ICsgZ3VjX2Z3LT5oZWFkZXJfc2l6ZTsKPiAtCWd1Y19m
dy0+dWNvZGVfc2l6ZSA9IChjc3MtPnNpemVfZHcgLSBjc3MtPmhlYWRlcl9zaXplX2R3KSAqIHNp
emVvZih1MzIpOwo+ICsJdWNfZnctPnVjb2RlX29mZnNldCA9IHVjX2Z3LT5oZWFkZXJfb2Zmc2V0
ICsgdWNfZnctPmhlYWRlcl9zaXplOwo+ICsJdWNfZnctPnVjb2RlX3NpemUgPSAoY3NzLT5zaXpl
X2R3IC0gY3NzLT5oZWFkZXJfc2l6ZV9kdykgKiBzaXplb2YodTMyKTsKPgo+ICAgCS8qIG5vdyBS
U0EgKi8KPiAgIAlpZiAoY3NzLT5rZXlfc2l6ZV9kdyAhPSBVT1NfUlNBX1NDUkFUQ0hfTUFYX0NP
VU5UKSB7Cj4gICAJCURSTV9FUlJPUigiUlNBIGtleSBzaXplIGlzIGJhZFxuIik7Cj4gICAJCWdv
dG8gZmFpbDsKPiAgIAl9Cj4gLQlndWNfZnctPnJzYV9vZmZzZXQgPSBndWNfZnctPnVjb2RlX29m
ZnNldCArIGd1Y19mdy0+dWNvZGVfc2l6ZTsKPiAtCWd1Y19mdy0+cnNhX3NpemUgPSBjc3MtPmtl
eV9zaXplX2R3ICogc2l6ZW9mKHUzMik7Cj4gKwl1Y19mdy0+cnNhX29mZnNldCA9IHVjX2Z3LT51
Y29kZV9vZmZzZXQgKyB1Y19mdy0+dWNvZGVfc2l6ZTsKPiArCXVjX2Z3LT5yc2Ffc2l6ZSA9IGNz
cy0+a2V5X3NpemVfZHcgKiBzaXplb2YodTMyKTsKPgo+ICAgCS8qIEF0IGxlYXN0LCBpdCBzaG91
bGQgaGF2ZSBoZWFkZXIsIHVDb2RlIGFuZCBSU0EuIFNpemUgb2YgYWxsIHRocmVlLiAqLwo+IC0J
c2l6ZSA9IGd1Y19mdy0+aGVhZGVyX3NpemUgKyBndWNfZnctPnVjb2RlX3NpemUgKyBndWNfZnct
PnJzYV9zaXplOwo+ICsJc2l6ZSA9IHVjX2Z3LT5oZWFkZXJfc2l6ZSArIHVjX2Z3LT51Y29kZV9z
aXplICsgdWNfZnctPnJzYV9zaXplOwo+ICAgCWlmIChmdy0+c2l6ZSA8IHNpemUpIHsKPiAgIAkJ
RFJNX0VSUk9SKCJNaXNzaW5nIGZpcm13YXJlIGNvbXBvbmVudHNcbiIpOwo+ICAgCQlnb3RvIGZh
aWw7Cj4gICAJfQo+Cj4gICAJLyogSGVhZGVyIGFuZCB1Q29kZSB3aWxsIGJlIGxvYWRlZCB0byBX
T1BDTS4gU2l6ZSBvZiB0aGUgdHdvLiAqLwo+IC0Jc2l6ZSA9IGd1Y19mdy0+aGVhZGVyX3NpemUg
KyBndWNfZnctPnVjb2RlX3NpemU7Cj4gKwlzaXplID0gdWNfZnctPmhlYWRlcl9zaXplICsgdWNf
ZnctPnVjb2RlX3NpemU7Cj4gICAJaWYgKHNpemUgPiBndWNfd29wY21fc2l6ZShkZXYtPmRldl9w
cml2YXRlKSkgewo+ICAgCQlEUk1fRVJST1IoIkZpcm13YXJlIGlzIHRvbyBsYXJnZSB0byBmaXQg
aW4gV09QQ01cbiIpOwo+ICAgCQlnb3RvIGZhaWw7Cj4gQEAgLTYxNiwyMSArNjE2LDIxIEBAIHN0
YXRpYyB2b2lkIGd1Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50
ZWxfZ3VjX2Z3ICpndWNfZncpCj4gICAJICogVFdPIGJ5dGVzIGVhY2ggKGkuZS4gdTE2KSwgYWx0
aG91Z2ggYWxsIHBvaW50ZXJzIGFuZCBvZmZzZXRzIGFyZSBkZWZpbmVkCj4gICAJICogaW4gdGVy
bXMgb2YgYnl0ZXMgKHU4KS4KPiAgIAkgKi8KPiAtCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5k
ID0gY3NzLT5ndWNfc3dfdmVyc2lvbiA+PiAxNjsKPiAtCWd1Y19mdy0+Z3VjX2Z3X21pbm9yX2Zv
dW5kID0gY3NzLT5ndWNfc3dfdmVyc2lvbiAmIDB4RkZGRjsKPiArCXVjX2Z3LT5tYWpvcl92ZXJf
Zm91bmQgPSBjc3MtPmd1Y19zd192ZXJzaW9uID4+IDE2Owo+ICsJdWNfZnctPm1pbm9yX3Zlcl9m
b3VuZCA9IGNzcy0+Z3VjX3N3X3ZlcnNpb24gJiAweEZGRkY7Cj4KPiAtCWlmIChndWNfZnctPmd1
Y19md19tYWpvcl9mb3VuZCAhPSBndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQgfHwKPiAtCSAg
ICBndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCA8IGd1Y19mdy0+Z3VjX2Z3X21pbm9yX3dhbnRl
ZCkgewo+ICsJaWYgKHVjX2Z3LT5tYWpvcl92ZXJfZm91bmQgIT0gdWNfZnctPm1ham9yX3Zlcl93
YW50ZWQgfHwKPiArCSAgICB1Y19mdy0+bWlub3JfdmVyX2ZvdW5kIDwgdWNfZnctPm1pbm9yX3Zl
cl93YW50ZWQpIHsKPiAgIAkJRFJNX0VSUk9SKCJHdUMgZmlybXdhcmUgdmVyc2lvbiAlZC4lZCwg
cmVxdWlyZWQgJWQuJWRcbiIsCj4gLQkJCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kLCBndWNf
ZnctPmd1Y19md19taW5vcl9mb3VuZCwKPiAtCQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVk
LCBndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpOwo+ICsJCQl1Y19mdy0+bWFqb3JfdmVyX2Zv
dW5kLCB1Y19mdy0+bWlub3JfdmVyX2ZvdW5kLAo+ICsJCQl1Y19mdy0+bWFqb3JfdmVyX3dhbnRl
ZCwgdWNfZnctPm1pbm9yX3Zlcl93YW50ZWQpOwo+ICAgCQllcnIgPSAtRU5PRVhFQzsKPiAgIAkJ
Z290byBmYWlsOwo+ICAgCX0KPgo+ICAgCURSTV9ERUJVR19EUklWRVIoImZpcm13YXJlIHZlcnNp
b24gJWQuJWQgT0sgKG1pbmltdW0gJWQuJWQpXG4iLAo+IC0JCQlndWNfZnctPmd1Y19md19tYWpv
cl9mb3VuZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3JfZm91bmQsCj4gLQkJCWd1Y19mdy0+Z3VjX2Z3
X21ham9yX3dhbnRlZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkKTsKPiArCQkJdWNfZnct
Pm1ham9yX3Zlcl9mb3VuZCwgdWNfZnctPm1pbm9yX3Zlcl9mb3VuZCwKPiArCQkJdWNfZnctPm1h
am9yX3Zlcl93YW50ZWQsIHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkKTsKPgo+ICAgCW11dGV4X2xv
Y2soJmRldi0+c3RydWN0X211dGV4KTsKPiAgIAlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRl
X2Zyb21fZGF0YShkZXYsIGZ3LT5kYXRhLCBmdy0+c2l6ZSk7Cj4gQEAgLTY0MCwzMSArNjQwLDMx
IEBAIHN0YXRpYyB2b2lkIGd1Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1
Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncpCj4gICAJCWdvdG8gZmFpbDsKPiAgIAl9Cj4KPiAtCWd1
Y19mdy0+Z3VjX2Z3X29iaiA9IG9iajsKPiAtCWd1Y19mdy0+Z3VjX2Z3X3NpemUgPSBmdy0+c2l6
ZTsKPiArCXVjX2Z3LT51Y19md19vYmogPSBvYmo7Cj4gKwl1Y19mdy0+dWNfZndfc2l6ZSA9IGZ3
LT5zaXplOwo+Cj4gICAJRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IGZldGNoIHN0YXR1cyBTVUND
RVNTLCBvYmogJXBcbiIsCj4gLQkJCWd1Y19mdy0+Z3VjX2Z3X29iaik7Cj4gKwkJCXVjX2Z3LT51
Y19md19vYmopOwo+Cj4gICAJcmVsZWFzZV9maXJtd2FyZShmdyk7Cj4gLQlndWNfZnctPmd1Y19m
d19mZXRjaF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfU1VDQ0VTUzsKPiArCXVjX2Z3LT5mZXRjaF9z
dGF0dXMgPSBVQ19GSVJNV0FSRV9TVUNDRVNTOwo+ICAgCXJldHVybjsKPgo+ICAgZmFpbDoKPiAg
IAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgZmV0Y2ggc3RhdHVzIEZBSUw7IGVyciAlZCwgZncg
JXAsIG9iaiAlcFxuIiwKPiAtCQllcnIsIGZ3LCBndWNfZnctPmd1Y19md19vYmopOwo+ICsJCWVy
ciwgZncsIHVjX2Z3LT51Y19md19vYmopOwo+ICAgCURSTV9FUlJPUigiRmFpbGVkIHRvIGZldGNo
IEd1QyBmaXJtd2FyZSBmcm9tICVzIChlcnJvciAlZClcbiIsCj4gLQkJICBndWNfZnctPmd1Y19m
d19wYXRoLCBlcnIpOwo+ICsJCSAgdWNfZnctPnVjX2Z3X3BhdGgsIGVycik7Cj4KPiAgIAltdXRl
eF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gLQlvYmogPSBndWNfZnctPmd1Y19md19vYmo7
Cj4gKwlvYmogPSB1Y19mdy0+dWNfZndfb2JqOwo+ICAgCWlmIChvYmopCj4gICAJCWRybV9nZW1f
b2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOwo+IC0JZ3VjX2Z3LT5ndWNfZndfb2JqID0g
TlVMTDsKPiArCXVjX2Z3LT51Y19md19vYmogPSBOVUxMOwo+ICAgCW11dGV4X3VubG9jaygmZGV2
LT5zdHJ1Y3RfbXV0ZXgpOwo+Cj4gICAJcmVsZWFzZV9maXJtd2FyZShmdyk7CQkvKiBPSyBldmVu
IGlmIGZ3IGlzIE5VTEwgKi8KPiAtCWd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19G
SVJNV0FSRV9GQUlMOwo+ICsJdWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX0ZBSUw7
Cj4gICB9Cj4KPiAgIC8qKgo+IEBAIC02NzksNyArNjc5LDcgQEAgZmFpbDoKPiAgIHZvaWQgaW50
ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJt
X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGlu
dGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+ICsJc3RydWN0IGlu
dGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7Cj4gICAJY29uc3QgY2hh
ciAqZndfcGF0aDsKPgo+ICAgCS8qIEEgbmVnYXRpdmUgdmFsdWUgbWVhbnMgInVzZSBwbGF0Zm9y
bSBkZWZhdWx0IiAqLwo+IEBAIC02OTIsMjAgKzY5MiwyMCBAQCB2b2lkIGludGVsX2d1Y19pbml0
KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCWZ3X3BhdGggPSBOVUxMOwo+ICAgCX0gZWxz
ZSBpZiAoSVNfU0tZTEFLRShkZXYpKSB7Cj4gICAJCWZ3X3BhdGggPSBJOTE1X1NLTF9HVUNfVUNP
REU7Cj4gLQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkID0gNjsKPiAtCQlndWNfZnctPmd1
Y19md19taW5vcl93YW50ZWQgPSAxOwo+ICsJCWd1Y19mdy0+bWFqb3JfdmVyX3dhbnRlZCA9IDY7
Cj4gKwkJZ3VjX2Z3LT5taW5vcl92ZXJfd2FudGVkID0gMTsKPiAgIAl9IGVsc2UgaWYgKElTX0JS
T1hUT04oZGV2KSkgewo+ICAgCQlmd19wYXRoID0gSTkxNV9CWFRfR1VDX1VDT0RFOwo+IC0JCWd1
Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCA9IDg7Cj4gLQkJZ3VjX2Z3LT5ndWNfZndfbWlub3Jf
d2FudGVkID0gNzsKPiArCQlndWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSA4Owo+ICsJCWd1Y19m
dy0+bWlub3JfdmVyX3dhbnRlZCA9IDc7Cj4gICAJfSBlbHNlIHsKPiAgIAkJZndfcGF0aCA9ICIi
OwkvKiB1bmtub3duIGRldmljZSAqLwo+ICAgCX0KPgo+IC0JZ3VjX2Z3LT5ndWNfZGV2ID0gZGV2
Owo+IC0JZ3VjX2Z3LT5ndWNfZndfcGF0aCA9IGZ3X3BhdGg7Cj4gLQlndWNfZnctPmd1Y19md19m
ZXRjaF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfTk9ORTsKPiAtCWd1Y19mdy0+Z3VjX2Z3X2xvYWRf
c3RhdHVzID0gR1VDX0ZJUk1XQVJFX05PTkU7Cj4gKwlndWNfZnctPnVjX2RldiA9IGRldjsKPiAr
CWd1Y19mdy0+dWNfZndfcGF0aCA9IGZ3X3BhdGg7Cj4gKwlndWNfZnctPmZldGNoX3N0YXR1cyA9
IFVDX0ZJUk1XQVJFX05PTkU7Cj4gKwlndWNfZnctPmxvYWRfc3RhdHVzID0gVUNfRklSTVdBUkVf
Tk9ORTsKPgo+ICAgCS8qIEVhcmx5IChhbmQgc2lsZW50KSByZXR1cm4gaWYgR3VDIGxvYWRpbmcg
aXMgZGlzYWJsZWQgKi8KPiAgIAlpZiAoIWk5MTUuZW5hYmxlX2d1Y19sb2FkaW5nKQo+IEBAIC03
MTUsOSArNzE1LDkgQEAgdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2
KQo+ICAgCWlmICgqZndfcGF0aCA9PSAnXDAnKQo+ICAgCQlyZXR1cm47Cj4KPiAtCWd1Y19mdy0+
Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9QRU5ESU5HOwo+ICsJZ3VjX2Z3LT5m
ZXRjaF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9QRU5ESU5HOwo+ICAgCURSTV9ERUJVR19EUklWRVIo
Ikd1QyBmaXJtd2FyZSBwZW5kaW5nLCBwYXRoICVzXG4iLCBmd19wYXRoKTsKPiAtCWd1Y19md19m
ZXRjaChkZXYsIGd1Y19mdyk7Cj4gKwlpbnRlbF91Y19md19mZXRjaChkZXYsIGd1Y19mdyk7Cj4g
ICAJLyogc3RhdHVzIG11c3Qgbm93IGJlIEZBSUwgb3IgU1VDQ0VTUyAqLwo+ICAgfQo+Cj4gQEAg
LTcyOCwxNyArNzI4LDE3IEBAIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug
KmRldikKPiAgIHZvaWQgaW50ZWxfZ3VjX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg
IHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2
YXRlOwo+IC0Jc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3Vj
X2Z3Owo+ICsJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNf
Znc7Cj4KPiAgIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gICAJZGlyZWN0X2lu
dGVycnVwdHNfdG9faG9zdChkZXZfcHJpdik7Cj4gICAJaTkxNV9ndWNfc3VibWlzc2lvbl9kaXNh
YmxlKGRldl9wcml2KTsKPiAgIAlpOTE1X2d1Y19zdWJtaXNzaW9uX2ZpbmkoZGV2X3ByaXYpOwo+
Cj4gLQlpZiAoZ3VjX2Z3LT5ndWNfZndfb2JqKQo+IC0JCWRybV9nZW1fb2JqZWN0X3VucmVmZXJl
bmNlKCZndWNfZnctPmd1Y19md19vYmotPmJhc2UpOwo+IC0JZ3VjX2Z3LT5ndWNfZndfb2JqID0g
TlVMTDsKPiArCWlmIChndWNfZnctPnVjX2Z3X29iaikKPiArCQlkcm1fZ2VtX29iamVjdF91bnJl
ZmVyZW5jZSgmZ3VjX2Z3LT51Y19md19vYmotPmJhc2UpOwo+ICsJZ3VjX2Z3LT51Y19md19vYmog
PSBOVUxMOwo+ICAgCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+Cj4gLQlndWNf
ZnctPmd1Y19md19mZXRjaF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfTk9ORTsKPiArCWd1Y19mdy0+
ZmV0Y2hfc3RhdHVzID0gVUNfRklSTVdBUkVfTk9ORTsKPiAgIH0KPgoKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ
bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au
b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==

