From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Subject: [PATCH v2 4/5] soc: mediatek: pwrap: add pwrap for mt6797 SoCs Date: Mon, 29 Jan 2018 17:09:43 +0800 Message-ID: <20180129090944.28687-4-argus.lin@mediatek.com> In-Reply-To: <20180129090944.28687-1-argus.lin@mediatek.com> References: <20180129090944.28687-1-argus.lin@mediatek.com> MIME-Version: 1.0 Content-Type: multipart/related; boundary="__=_Part_Boundary_002_2043617879.2046488461" To: Rob Herring , Mark Rutland , Matthias Brugger , Catalin Marinas , Will Deacon Cc: Chenglin Xu , argus.lin@mediatek.com, Sean Wang , wsd_upstream@mediatek.com, henryc.chen@mediatek.com, flora.fu@mediatek.com, Chen Zhong , Christophe Jaillet , "shailendra . v" , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org List-ID: --__=_Part_Boundary_002_2043617879.2046488461 Content-Transfer-Encoding: base64 Content-Type: multipart/alternative; boundary="__=_Part_Boundary_003_73013624.731433368" --__=_Part_Boundary_003_73013624.731433368 Content-Type: text/html Content-Transfer-Encoding: base64 PHByZT4NCkZyb206IEFyZ3VzIExpbiAmbHQ7YXJndXMubGluQG1lZGlhdGVrLmNvbSZndDsNCg0K bXQ2Nzk3IGlzIGEgaGlnaGx5IGludGVncmF0ZWQgU29DcywgaXQgdXNlcyBtdDYzNTEgZm9yIHBv d2VyDQptYW5hZ2VtZW50LiBXZSBuZWVkIHRvIGFkZCBwd3JhcCBzdXBwb3J0IHRvIGFjY2VzcyBt dDYzNTEuDQpQd3JhcCBvZiBtdDY3OTcgYWxzbyBhZGQgbmV3IGZlYXR1cmUgaW5jbHVkZSBzdGFy dmF0aW9uIGFuZA0KcmVxdWVzdCBleGNlcHRpb24gaW50ZXJydXB0LCBkeW5hbWljIHN0YXJ2YXRp b24gcHJpb3JpdHkNCmFkanVzdG1lbnQgbWVjaGFuaXNtLiBQd3JhcCBvZiBtdDY3OTcgc3VwcG9y dCBjYXBhYmlsaXR5DQpsaWtlIGRjbSwgcHJpb3JpdHkgc2VsZWN0aW9uIGFuZCBJTlQxIGludGVy cnVwdC4NCg0KU2lnbmVkLW9mZi1ieTogQXJndXMgTGluICZsdDthcmd1cy5saW5AbWVkaWF0ZWsu Y29tJmd0Ow0KLS0tDQogZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXBtaWMtd3JhcC5jIHwgMTM3 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tDQogMSBmaWxlIGNoYW5nZWQsIDEy MyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv c29jL21lZGlhdGVrL210ay1wbWljLXdyYXAuYyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1w bWljLXdyYXAuYw0KaW5kZXggOWY5MjRkM2Y4NjQ1Li42OTBkMmY1NDViMWEgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstcG1pYy13cmFwLmMNCisrKyBiL2RyaXZlcnMvc29j L21lZGlhdGVrL210ay1wbWljLXdyYXAuYw0KQEAgLTI4NSw2ICsyODUsMzAgQEAgZW51bSBwd3Jh cF9yZWdzIHsNCiAJUFdSQVBfRFZGU19XREFUQTcsDQogCVBXUkFQX1NQTUlORl9TVEEsDQogCVBX UkFQX0NJUEhFUl9FTiwNCisNCisJLyogTVQ2Nzk3IHNlcmllcyByZWdzICovDQorCVBXUkFQX0lO VDFfRU4sDQorCVBXUkFQX0lOVDFfRkxHX1JBVywNCisJUFdSQVBfSU5UMV9GTEcsDQorCVBXUkFQ X0lOVDFfQ0xSLA0KKwlQV1JBUF9QUklPUklUWV9VU0VSX1NFTF8wLA0KKwlQV1JBUF9QUklPUklU WV9VU0VSX1NFTF8xLA0KKwlQV1JBUF9BUkJJVEVSX09VVF9TRUxfMCwNCisJUFdSQVBfQVJCSVRF Ul9PVVRfU0VMXzEsDQorCVBXUkFQX1NUQVJWX0NPVU5URVJfMCwNCisJUFdSQVBfU1RBUlZfQ09V TlRFUl8xLA0KKwlQV1JBUF9TVEFSVl9DT1VOVEVSXzIsDQorCVBXUkFQX1NUQVJWX0NPVU5URVJf MywNCisJUFdSQVBfU1RBUlZfQ09VTlRFUl80LA0KKwlQV1JBUF9TVEFSVl9DT1VOVEVSXzUsDQor CVBXUkFQX1NUQVJWX0NPVU5URVJfNiwNCisJUFdSQVBfU1RBUlZfQ09VTlRFUl83LA0KKwlQV1JB UF9TVEFSVl9DT1VOVEVSXzgsDQorCVBXUkFQX1NUQVJWX0NPVU5URVJfOSwNCisJUFdSQVBfU1RB UlZfQ09VTlRFUl8xMCwNCisJUFdSQVBfU1RBUlZfQ09VTlRFUl8xMSwNCisJUFdSQVBfU1RBUlZf Q09VTlRFUl8xMiwNCisJUFdSQVBfU1RBUlZfQ09VTlRFUl8xMywNCiB9Ow0KIA0KIHN0YXRpYyBp bnQgbXQyNzAxX3JlZ3NbXSA9IHsNCkBAIC02NTEsNiArNjc1LDcgQEAgZW51bSBwd3JhcF90eXBl IHsNCiAJUFdSQVBfTVQ3NjIyLA0KIAlQV1JBUF9NVDgxMzUsDQogCVBXUkFQX01UODE3MywNCisJ UFdSQVBfTVQ2Nzk3LA0KIH07DQogDQogc3RydWN0IHBtaWNfd3JhcHBlcjsNCkBAIC0xMDA3LDYg KzEwMzIsMTIgQEAgc3RhdGljIHZvaWQgcHdyYXBfaW5pdF9jaGlwX3NlbGVjdF9leHQoc3RydWN0 IHBtaWNfd3JhcHBlciAqd3JwLCB1OCBoZXh0X3dyaXRlLA0KIHN0YXRpYyBpbnQgcHdyYXBfY29t bW9uX2luaXRfcmVnX2Nsb2NrKHN0cnVjdCBwbWljX3dyYXBwZXIgKndycCkNCiB7DQogCXN3aXRj aCAod3JwLSZndDttYXN0ZXItJmd0O3R5cGUpIHsNCisJY2FzZSBQV1JBUF9NVDY3OTc6DQorCQlw d3JhcF93cml0ZWwod3JwLCAweDgsIFBXUkFQX1JERE1ZKTsNCisJCXB3cmFwX3dyaXRlKHdycCwg d3JwLSZndDtzbGF2ZS0mZ3Q7ZGV3X3JlZ3NbUFdSQVBfREVXX1JERE1ZX05PXSwNCisJCQkgICAg MHg4KTsNCisJCXB3cmFwX2luaXRfY2hpcF9zZWxlY3RfZXh0KHdycCwgMHg4OCwgMHg1NSwgMywg MCk7DQorCQlicmVhazsNCiAJY2FzZSBQV1JBUF9NVDgxNzM6DQogCQlwd3JhcF9pbml0X2NoaXBf c2VsZWN0X2V4dCh3cnAsIDAsIDQsIDIsIDIpOw0KIAkJYnJlYWs7DQpAQCAtMTA3NywxMSArMTEw OCwxNCBAQCBzdGF0aWMgaW50IHB3cmFwX2luaXRfY2lwaGVyKHN0cnVjdCBwbWljX3dyYXBwZXIg KndycCkNCiAJCWJyZWFrOw0KIAljYXNlIFBXUkFQX01UMjcwMToNCiAJY2FzZSBQV1JBUF9NVDgx NzM6DQorCWNhc2UgUFdSQVBfTVQ2Nzk3Og0KIAkJcHdyYXBfd3JpdGVsKHdycCwgMSwgUFdSQVBf Q0lQSEVSX0VOKTsNCiAJCWJyZWFrOw0KIAljYXNlIFBXUkFQX01UNzYyMjoNCiAJCXB3cmFwX3dy aXRlbCh3cnAsIDAsIFBXUkFQX0NJUEhFUl9FTik7DQogCQlicmVhazsNCisJZGVmYXVsdDoNCisJ CWJyZWFrOw0KIAl9DQogDQogCS8qIENvbmZpZyBjaXBoZXIgbW9kZSBAUE1JQyAqLw0KQEAgLTEy MzUsNiArMTI2OSwyNyBAQCBzdGF0aWMgaW50IHB3cmFwX210NzYyMl9pbml0X3NvY19zcGVjaWZp YyhzdHJ1Y3QgcG1pY193cmFwcGVyICp3cnApDQogCXJldHVybiAwOw0KIH0NCiANCitzdGF0aWMg aW50IHB3cmFwX3NldF9zdGFydmF0aW9uKHN0cnVjdCBwbWljX3dyYXBwZXIgKndycCkNCit7DQor CXB3cmFwX3dyaXRlbCh3cnAsIDB4MDAwNywgUFdSQVBfSEFSQl9IUFJJTyk7DQorCXB3cmFwX3dy aXRlbCh3cnAsIDB4MDQwMiwgUFdSQVBfU1RBUlZfQ09VTlRFUl8wKTsNCisJcHdyYXBfd3JpdGVs KHdycCwgMHgwNDAyLCBQV1JBUF9TVEFSVl9DT1VOVEVSXzEpOw0KKwlwd3JhcF93cml0ZWwod3Jw LCAweDA0MDMsIFBXUkFQX1NUQVJWX0NPVU5URVJfMik7DQorCXB3cmFwX3dyaXRlbCh3cnAsIDB4 MDQxNCwgUFdSQVBfU1RBUlZfQ09VTlRFUl8zKTsNCisJcHdyYXBfd3JpdGVsKHdycCwgMHgwNDIw LCBQV1JBUF9TVEFSVl9DT1VOVEVSXzQpOw0KKwlwd3JhcF93cml0ZWwod3JwLCAweDA0MjAsIFBX UkFQX1NUQVJWX0NPVU5URVJfNSk7DQorCXB3cmFwX3dyaXRlbCh3cnAsIDB4MDQyMCwgUFdSQVBf U1RBUlZfQ09VTlRFUl82KTsNCisJcHdyYXBfd3JpdGVsKHdycCwgMHgwNDI4LCBQV1JBUF9TVEFS Vl9DT1VOVEVSXzcpOw0KKwlwd3JhcF93cml0ZWwod3JwLCAweDA0MjgsIFBXUkFQX1NUQVJWX0NP VU5URVJfOCk7DQorCXB3cmFwX3dyaXRlbCh3cnAsIDB4MDQxNywgUFdSQVBfU1RBUlZfQ09VTlRF Ul85KTsNCisJcHdyYXBfd3JpdGVsKHdycCwgMHgwNTYzLCBQV1JBUF9TVEFSVl9DT1VOVEVSXzEw KTsNCisJcHdyYXBfd3JpdGVsKHdycCwgMHgwNDdjLCBQV1JBUF9TVEFSVl9DT1VOVEVSXzExKTsN CisJcHdyYXBfd3JpdGVsKHdycCwgMHgwNzQwLCBQV1JBUF9TVEFSVl9DT1VOVEVSXzEyKTsNCisJ cHdyYXBfd3JpdGVsKHdycCwgMHgwNzQwLCBQV1JBUF9TVEFSVl9DT1VOVEVSXzEzKTsNCisNCisJ cmV0dXJuIDA7DQorfQ0KKw0KIHN0YXRpYyBpbnQgcHdyYXBfaW5pdChzdHJ1Y3QgcG1pY193cmFw cGVyICp3cnApDQogew0KIAlpbnQgcmV0Ow0KQEAgLTEzMDcsNyArMTM2Miw3IEBAIHN0YXRpYyBp bnQgcHdyYXBfaW5pdChzdHJ1Y3QgcG1pY193cmFwcGVyICp3cnApDQogCXB3cmFwX3dyaXRlbCh3 cnAsIDEsIFBXUkFQX0lOSVRfRE9ORTApOw0KIAlwd3JhcF93cml0ZWwod3JwLCAxLCBQV1JBUF9J TklUX0RPTkUxKTsNCiANCi0JaWYgKHdycC0mZ3Q7bWFzdGVyLSZndDtoYXNfYnJpZGdlKSB7DQor CWlmIChIQVNfQ0FQKHdycC0mZ3Q7bWFzdGVyLSZndDtjYXBzLCBQV1JBUF9DQVBfQlJJREdFKSkg ew0KIAkJd3JpdGVsKDEsIHdycC0mZ3Q7YnJpZGdlX2Jhc2UgKyBQV1JBUF9NVDgxMzVfQlJJREdF X0lOSVRfRE9ORTMpOw0KIAkJd3JpdGVsKDEsIHdycC0mZ3Q7YnJpZGdlX2Jhc2UgKyBQV1JBUF9N VDgxMzVfQlJJREdFX0lOSVRfRE9ORTQpOw0KIAl9DQpAQCAtMTMyNiw2ICsxMzgxLDE1IEBAIHN0 YXRpYyBpcnFyZXR1cm5fdCBwd3JhcF9pbnRlcnJ1cHQoaW50IGlycW5vLCB2b2lkICpkZXZfaWQp DQogDQogCXB3cmFwX3dyaXRlbCh3cnAsIDB4ZmZmZmZmZmYsIFBXUkFQX0lOVF9DTFIpOw0KIA0K KwkvKiBJZiB3ZSBzdXBwb3J0IElOVDEgaW50ZXJydXB0LCB3ZSBhbHNvIG5lZWQgdG8gY2xlYXIg aXQgKi8NCisJaWYgKEhBU19DQVAod3JwLSZndDttYXN0ZXItJmd0O2NhcHMsIFBXUkFQX0NBUF9J TlQxX0VOKSkgew0KKwkJcmRhdGEgPSBwd3JhcF9yZWFkbCh3cnAsIFBXUkFQX0lOVDFfRkxHKTsN CisNCisJCWRldl9lcnIod3JwLSZndDtkZXYsICZxdW90O3VuZXhwZWN0ZWQgaW50ZXJydXB0IGlu dDE9MHgleFxuJnF1b3Q7LCByZGF0YSk7DQorDQorCQlwd3JhcF93cml0ZWwod3JwLCByZGF0YSwg UFdSQVBfSU5UMV9DTFIpOw0KKwl9DQorDQogCXJldHVybiBJUlFfSEFORExFRDsNCiB9DQogDQpA QCAtMTQwMCw5ICsxNDY0LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcG1pY193cmFwcGVyX3R5 cGUgcHdyYXBfbXQyNzAxID0gew0KIAkudHlwZSA9IFBXUkFQX01UMjcwMSwNCiAJLmFyYl9lbl9h bGwgPSAweDNmLA0KIAkuaW50X2VuX2FsbCA9IH4odTMyKShCSVQoMzEpIHwgQklUKDIpKSwNCisJ LmludDFfZW5fYWxsID0gMCwNCiAJLnNwaV93ID0gUFdSQVBfTUFOX0NNRF9TUElfV1JJVEVfTkVX LA0KIAkud2R0X3NyYyA9IFBXUkFQX1dEVF9TUkNfTUFTS19BTEwsDQotCS5oYXNfYnJpZGdlID0g MCwNCisJLmNhcHMgPSBQV1JBUF9DQVBfUkVTRVQgfCBQV1JBUF9DQVBfRENNLA0KIAkuaW5pdF9y ZWdfY2xvY2sgPSBwd3JhcF9tdDI3MDFfaW5pdF9yZWdfY2xvY2ssDQogCS5pbml0X3NvY19zcGVj aWZpYyA9IHB3cmFwX210MjcwMV9pbml0X3NvY19zcGVjaWZpYywNCiB9Ow0KQEAgLTE0MTIsOSAr MTQ3NywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBtaWNfd3JhcHBlcl90eXBlIHB3cmFwX210 NzYyMiA9IHsNCiAJLnR5cGUgPSBQV1JBUF9NVDc2MjIsDQogCS5hcmJfZW5fYWxsID0gMHhmZiwN CiAJLmludF9lbl9hbGwgPSB+KHUzMilCSVQoMzEpLA0KKwkuaW50MV9lbl9hbGwgPSAwLA0KIAku c3BpX3cgPSBQV1JBUF9NQU5fQ01EX1NQSV9XUklURSwNCiAJLndkdF9zcmMgPSBQV1JBUF9XRFRf U1JDX01BU0tfQUxMLA0KLQkuaGFzX2JyaWRnZSA9IDAsDQorCS5jYXBzID0gUFdSQVBfQ0FQX1JF U0VUIHwgUFdSQVBfQ0FQX0RDTSwNCiAJLmluaXRfcmVnX2Nsb2NrID0gcHdyYXBfY29tbW9uX2lu aXRfcmVnX2Nsb2NrLA0KIAkuaW5pdF9zb2Nfc3BlY2lmaWMgPSBwd3JhcF9tdDc2MjJfaW5pdF9z b2Nfc3BlY2lmaWMsDQogfTsNCkBAIC0xNDI0LDkgKzE0OTAsMTAgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBwbWljX3dyYXBwZXJfdHlwZSBwd3JhcF9tdDgxMzUgPSB7DQogCS50eXBlID0gUFdSQVBf TVQ4MTM1LA0KIAkuYXJiX2VuX2FsbCA9IDB4MWZmLA0KIAkuaW50X2VuX2FsbCA9IH4odTMyKShC SVQoMzEpIHwgQklUKDEpKSwNCisJLmludDFfZW5fYWxsID0gMCwNCiAJLnNwaV93ID0gUFdSQVBf TUFOX0NNRF9TUElfV1JJVEUsDQogCS53ZHRfc3JjID0gUFdSQVBfV0RUX1NSQ19NQVNLX0FMTCwN Ci0JLmhhc19icmlkZ2UgPSAxLA0KKwkuY2FwcyA9IFBXUkFQX0NBUF9CUklER0UgfCBQV1JBUF9D QVBfUkVTRVQgfCBQV1JBUF9DQVBfRENNLA0KIAkuaW5pdF9yZWdfY2xvY2sgPSBwd3JhcF9jb21t b25faW5pdF9yZWdfY2xvY2ssDQogCS5pbml0X3NvY19zcGVjaWZpYyA9IHB3cmFwX210ODEzNV9p bml0X3NvY19zcGVjaWZpYywNCiB9Ow0KQEAgLTE0MzYsMTMgKzE1MDMsMjcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBwbWljX3dyYXBwZXJfdHlwZSBwd3JhcF9tdDgxNzMgPSB7DQogCS50eXBlID0g UFdSQVBfTVQ4MTczLA0KIAkuYXJiX2VuX2FsbCA9IDB4M2YsDQogCS5pbnRfZW5fYWxsID0gfih1 MzIpKEJJVCgzMSkgfCBCSVQoMSkpLA0KKwkuaW50MV9lbl9hbGwgPSAwLA0KIAkuc3BpX3cgPSBQ V1JBUF9NQU5fQ01EX1NQSV9XUklURSwNCiAJLndkdF9zcmMgPSBQV1JBUF9XRFRfU1JDX01BU0tf Tk9fU1RBVVBELA0KLQkuaGFzX2JyaWRnZSA9IDAsDQorCS5jYXBzID0gUFdSQVBfQ0FQX1JFU0VU IHwgUFdSQVBfQ0FQX0RDTSwNCiAJLmluaXRfcmVnX2Nsb2NrID0gcHdyYXBfY29tbW9uX2luaXRf cmVnX2Nsb2NrLA0KIAkuaW5pdF9zb2Nfc3BlY2lmaWMgPSBwd3JhcF9tdDgxNzNfaW5pdF9zb2Nf c3BlY2lmaWMsDQogfTsNCiANCitzdGF0aWMgY29uc3Qgc3RydWN0IHBtaWNfd3JhcHBlcl90eXBl IHB3cmFwX210Njc5NyA9IHsNCisJLnJlZ3MgPSBtdDY3OTdfcmVncywNCisJLnR5cGUgPSBQV1JB UF9NVDY3OTcsDQorCS5hcmJfZW5fYWxsID0gMHgwMWZmZiwNCisJLmludF9lbl9hbGwgPSAweGZm ZmZmZmZkLA0KKwkuaW50MV9lbl9hbGwgPSAweDAwMDFmZmZmLA0KKwkuc3BpX3cgPSBQV1JBUF9N QU5fQ01EX1NQSV9XUklURSwNCisJLndkdF9zcmMgPSBQV1JBUF9XRFRfU1JDX01BU0tfQUxMLA0K KwkuY2FwcyA9IFBXUkFQX0NBUF9EQ00gfCBQV1JBUF9DQVBfUFJJT1JJVFlfU0VMIHwgUFdSQVBf Q0FQX0lOVDFfRU4sDQorCS5pbml0X3JlZ19jbG9jayA9IHB3cmFwX2NvbW1vbl9pbml0X3JlZ19j bG9jaywNCisJLmluaXRfc29jX3NwZWNpZmljID0gTlVMTCwNCit9Ow0KKw0KIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX3B3cmFwX21hdGNoX3RibFtdID0gew0KIAl7DQogCQku Y29tcGF0aWJsZSA9ICZxdW90O21lZGlhdGVrLG10MjcwMS1wd3JhcCZxdW90OywNCkBAIC0xNDU3 LDYgKzE1MzgsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9wd3JhcF9t YXRjaF90YmxbXSA9IHsNCiAJCS5jb21wYXRpYmxlID0gJnF1b3Q7bWVkaWF0ZWssbXQ4MTczLXB3 cmFwJnF1b3Q7LA0KIAkJLmRhdGEgPSAmYW1wO3B3cmFwX210ODE3MywNCiAJfSwgew0KKwkJLmNv bXBhdGlibGUgPSAmcXVvdDttZWRpYXRlayxtdDY3OTctcHdyYXAmcXVvdDssDQorCQkuZGF0YSA9 ICZhbXA7cHdyYXBfbXQ2Nzk3LA0KKwl9LCB7DQogCQkvKiBzZW50aW5lbCAqLw0KIAl9DQogfTsN CkBAIC0xNTAwLDE0ICsxNTg0LDE2IEBAIHN0YXRpYyBpbnQgcHdyYXBfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikNCiAJaWYgKElTX0VSUih3cnAtJmd0O2Jhc2UpKQ0KIAkJcmV0 dXJuIFBUUl9FUlIod3JwLSZndDtiYXNlKTsNCiANCi0Jd3JwLSZndDtyc3RjID0gZGV2bV9yZXNl dF9jb250cm9sX2dldCh3cnAtJmd0O2RldiwgJnF1b3Q7cHdyYXAmcXVvdDspOw0KLQlpZiAoSVNf RVJSKHdycC0mZ3Q7cnN0YykpIHsNCi0JCXJldCA9IFBUUl9FUlIod3JwLSZndDtyc3RjKTsNCi0J CWRldl9kYmcod3JwLSZndDtkZXYsICZxdW90O2Nhbm5vdCBnZXQgcHdyYXAgcmVzZXQ6ICVkXG4m cXVvdDssIHJldCk7DQotCQlyZXR1cm4gcmV0Ow0KKwlpZiAoSEFTX0NBUCh3cnAtJmd0O21hc3Rl ci0mZ3Q7Y2FwcywgUFdSQVBfQ0FQX1JFU0VUKSkgew0KKwkJd3JwLSZndDtyc3RjID0gZGV2bV9y ZXNldF9jb250cm9sX2dldCh3cnAtJmd0O2RldiwgJnF1b3Q7cHdyYXAmcXVvdDspOw0KKwkJaWYg KElTX0VSUih3cnAtJmd0O3JzdGMpKSB7DQorCQkJcmV0ID0gUFRSX0VSUih3cnAtJmd0O3JzdGMp Ow0KKwkJCWRldl9kYmcod3JwLSZndDtkZXYsICZxdW90O2Nhbm5vdCBnZXQgcHdyYXAgcmVzZXQ6 ICVkXG4mcXVvdDssIHJldCk7DQorCQkJcmV0dXJuIHJldDsNCisJCX0NCiAJfQ0KIA0KLQlpZiAo d3JwLSZndDttYXN0ZXItJmd0O2hhc19icmlkZ2UpIHsNCisJaWYgKEhBU19DQVAod3JwLSZndDtt YXN0ZXItJmd0O2NhcHMsIFBXUkFQX0NBUF9CUklER0UpKSB7DQogCQlyZXMgPSBwbGF0Zm9ybV9n ZXRfcmVzb3VyY2VfYnluYW1lKHBkZXYsIElPUkVTT1VSQ0VfTUVNLA0KIAkJCQkmcXVvdDtwd3Jh cC1icmlkZ2UmcXVvdDspOw0KIAkJd3JwLSZndDticmlkZ2VfYmFzZSA9IGRldm1faW9yZW1hcF9y ZXNvdXJjZSh3cnAtJmd0O2RldiwgcmVzKTsNCkBAIC0xNTM4LDYgKzE2MjQsMTYgQEAgc3RhdGlj IGludCBwd3JhcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAkJcmV0dXJu IFBUUl9FUlIod3JwLSZndDtjbGtfd3JhcCk7DQogCX0NCiANCisJLyogQWRkIHByaW9yaXR5IGFk anVzdCBzZXR0aW5nLCBpdCB1c2VkIHRvIGF2b2lkIHN0YXJ2YXRpb24gKi8NCisJaWYgKEhBU19D QVAod3JwLSZndDttYXN0ZXItJmd0O2NhcHMsIFBXUkFQX0NBUF9QUklPUklUWV9TRUwpKSB7DQor CQlwd3JhcF93cml0ZWwod3JwLCAweDY1NDNDMjEwLCBQV1JBUF9QUklPUklUWV9VU0VSX1NFTF8w KTsNCisJCXB3cmFwX3dyaXRlbCh3cnAsIDB4RkVEQkE5ODcsIFBXUkFQX1BSSU9SSVRZX1VTRVJf U0VMXzEpOw0KKwkJcHdyYXBfd3JpdGVsKHdycCwgMHg4NzY1NDIxMCwgUFdSQVBfQVJCSVRFUl9P VVRfU0VMXzApOw0KKwkJcHdyYXBfd3JpdGVsKHdycCwgMHhGRUQzQ0JBOSwgUFdSQVBfQVJCSVRF Ul9PVVRfU0VMXzEpOw0KKw0KKwkJcHdyYXBfc2V0X3N0YXJ2YXRpb24od3JwKTsNCisJfQ0KKw0K IAlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUod3JwLSZndDtjbGtfc3BpKTsNCiAJaWYgKHJldCkN CiAJCXJldHVybiByZXQ7DQpAQCAtMTU0Niw5ICsxNjQyLDE2IEBAIHN0YXRpYyBpbnQgcHdyYXBf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCiAJaWYgKHJldCkNCiAJCWdvdG8g ZXJyX291dDE7DQogDQotCS8qIEVuYWJsZSBpbnRlcm5hbCBkeW5hbWljIGNsb2NrICovDQotCXB3 cmFwX3dyaXRlbCh3cnAsIDEsIFBXUkFQX0RDTV9FTik7DQotCXB3cmFwX3dyaXRlbCh3cnAsIDAs IFBXUkFQX0RDTV9EQkNfUFJEKTsNCisJLyoNCisJICogYWRkIGRjbSBjYXBhYmlsaXR5IGNoZWNr DQorCSAqLw0KKwlpZiAoSEFTX0NBUCh3cnAtJmd0O21hc3Rlci0mZ3Q7Y2FwcywgUFdSQVBfQ0FQ X0RDTSkpIHsNCisJCWlmICh3cnAtJmd0O21hc3Rlci0mZ3Q7dHlwZSA9PSBQV1JBUF9NVDY3OTcp DQorCQkJcHdyYXBfd3JpdGVsKHdycCwgMywgUFdSQVBfRENNX0VOKTsNCisJCWVsc2UNCisJCQlw d3JhcF93cml0ZWwod3JwLCAxLCBQV1JBUF9EQ01fRU4pOw0KKwkJcHdyYXBfd3JpdGVsKHdycCwg MCwgUFdSQVBfRENNX0RCQ19QUkQpOw0KKwl9DQogDQogCS8qDQogCSAqIFRoZSBQTUlDIGNvdWxk IGFscmVhZHkgYmUgaW5pdGlhbGl6ZWQgYnkgdGhlIGJvb3Rsb2FkZXIuDQpAQCAtMTU3Nyw2ICsx NjgwLDEyIEBAIHN0YXRpYyBpbnQgcHdyYXBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikNCiAJcHdyYXBfd3JpdGVsKHdycCwgd3JwLSZndDttYXN0ZXItJmd0O3dkdF9zcmMsIFBX UkFQX1dEVF9TUkNfRU4pOw0KIAlwd3JhcF93cml0ZWwod3JwLCAweDEsIFBXUkFQX1RJTUVSX0VO KTsNCiAJcHdyYXBfd3JpdGVsKHdycCwgd3JwLSZndDttYXN0ZXItJmd0O2ludF9lbl9hbGwsIFBX UkFQX0lOVF9FTik7DQorCS8qDQorCSAqIFdlIGFkZCBJTlQxIGludGVycnVwdCB0byBoYW5kbGUg c3RhcnZhdGlvbiBhbmQgcmVxdWVzdCBleGNlcHRpb24NCisJICogSWYgd2Ugc3VwcG9ydCBpdCwg d2Ugc2hvdWxkIGVuYWJsZSB0aGVtIGhlcmUuDQorCSAqLw0KKwlpZiAoSEFTX0NBUCh3cnAtJmd0 O21hc3Rlci0mZ3Q7Y2FwcywgUFdSQVBfQ0FQX0lOVDFfRU4pKQ0KKwkJcHdyYXBfd3JpdGVsKHdy cCwgd3JwLSZndDttYXN0ZXItJmd0O2ludDFfZW5fYWxsLCBQV1JBUF9JTlQxX0VOKTsNCiANCiAJ aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsNCiAJcmV0ID0gZGV2bV9yZXF1ZXN0X2ly cSh3cnAtJmd0O2RldiwgaXJxLCBwd3JhcF9pbnRlcnJ1cHQsDQotLSANCjIuMTIuNQ0KDQo8L3By ZT48IS0tdHlwZTp0ZXh0LS0+PCEtLXstLT48cHJlPioqKioqKioqKioqKiogRW1haWwgQ29uZmlk ZW50aWFsaXR5IE5vdGljZQ0KICoqKioqKioqKioqKioqKioqKioqDQpUaGUgaW5mb3JtYXRpb24g Y29udGFpbmVkIGluIHRoaXMgZS1tYWlsIG1lc3NhZ2UgKGluY2x1ZGluZyBhbnkgDQphdHRhY2ht ZW50cykgbWF5IGJlIGNvbmZpZGVudGlhbCwgcHJvcHJpZXRhcnksIHByaXZpbGVnZWQsIG9yIG90 aGVyd2lzZQ0KZXhlbXB0IGZyb20gZGlzY2xvc3VyZSB1bmRlciBhcHBsaWNhYmxlIGxhd3MuIEl0 IGlzIGludGVuZGVkIHRvIGJlIA0KY29udmV5ZWQgb25seSB0byB0aGUgZGVzaWduYXRlZCByZWNp cGllbnQocykuIEFueSB1c2UsIGRpc3NlbWluYXRpb24sIA0KZGlzdHJpYnV0aW9uLCBwcmludGlu ZywgcmV0YWluaW5nIG9yIGNvcHlpbmcgb2YgdGhpcyBlLW1haWwgKGluY2x1ZGluZyBpdHMgDQph dHRhY2htZW50cykgYnkgdW5pbnRlbmRlZCByZWNpcGllbnQocykgaXMgc3RyaWN0bHkgcHJvaGli aXRlZCBhbmQgbWF5IA0KYmUgdW5sYXdmdWwuIElmIHlvdSBhcmUgbm90IGFuIGludGVuZGVkIHJl Y2lwaWVudCBvZiB0aGlzIGUtbWFpbCwgb3IgYmVsaWV2ZQ0KIA0KdGhhdCB5b3UgaGF2ZSByZWNl aXZlZCB0aGlzIGUtbWFpbCBpbiBlcnJvciwgcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIA0KaW1t ZWRpYXRlbHkgKGJ5IHJlcGx5aW5nIHRvIHRoaXMgZS1tYWlsKSwgZGVsZXRlIGFueSBhbmQgYWxs IGNvcGllcyBvZiANCnRoaXMgZS1tYWlsIChpbmNsdWRpbmcgYW55IGF0dGFjaG1lbnRzKSBmcm9t IHlvdXIgc3lzdGVtLCBhbmQgZG8gbm90DQpkaXNjbG9zZSB0aGUgY29udGVudCBvZiB0aGlzIGUt bWFpbCB0byBhbnkgb3RoZXIgcGVyc29uLiBUaGFuaw0KIHlvdSE8L3ByZT48IS0tfS0tPg== --__=_Part_Boundary_003_73013624.731433368 Content-Type: text/plain Content-Transfer-Encoding: base64 RnJvbTogQXJndXMgTGluIDxhcmd1cy5saW5AbWVkaWF0ZWsuY29tPg0KDQptdDY3OTcgaXMgYSBo aWdobHkgaW50ZWdyYXRlZCBTb0NzLCBpdCB1c2VzIG10NjM1MSBmb3IgcG93ZXINCm1hbmFnZW1l bnQuIFdlIG5lZWQgdG8gYWRkIHB3cmFwIHN1cHBvcnQgdG8gYWNjZXNzIG10NjM1MS4NClB3cmFw IG9mIG10Njc5NyBhbHNvIGFkZCBuZXcgZmVhdHVyZSBpbmNsdWRlIHN0YXJ2YXRpb24gYW5kDQpy ZXF1ZXN0IGV4Y2VwdGlvbiBpbnRlcnJ1cHQsIGR5bmFtaWMgc3RhcnZhdGlvbiBwcmlvcml0eQ0K YWRqdXN0bWVudCBtZWNoYW5pc20uIFB3cmFwIG9mIG10Njc5NyBzdXBwb3J0IGNhcGFiaWxpdHkN Cmxpa2UgZGNtLCBwcmlvcml0eSBzZWxlY3Rpb24gYW5kIElOVDEgaW50ZXJydXB0Lg0KDQpTaWdu ZWQtb2ZmLWJ5OiBBcmd1cyBMaW4gPGFyZ3VzLmxpbkBtZWRpYXRlay5jb20+DQotLS0NCiBkcml2 ZXJzL3NvYy9tZWRpYXRlay9tdGstcG1pYy13cmFwLmMgfCAxMzcgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0NCiAxIGZpbGUgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDE0 IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXBt aWMtd3JhcC5jIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXBtaWMtd3JhcC5jDQppbmRleCA5 ZjkyNGQzZjg2NDUuLjY5MGQyZjU0NWIxYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc29jL21lZGlh dGVrL210ay1wbWljLXdyYXAuYw0KKysrIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXBtaWMt d3JhcC5jDQpAQCAtMjg1LDYgKzI4NSwzMCBAQCBlbnVtIHB3cmFwX3JlZ3Mgew0KIAlQV1JBUF9E VkZTX1dEQVRBNywNCiAJUFdSQVBfU1BNSU5GX1NUQSwNCiAJUFdSQVBfQ0lQSEVSX0VOLA0KKw0K KwkvKiBNVDY3OTcgc2VyaWVzIHJlZ3MgKi8NCisJUFdSQVBfSU5UMV9FTiwNCisJUFdSQVBfSU5U MV9GTEdfUkFXLA0KKwlQV1JBUF9JTlQxX0ZMRywNCisJUFdSQVBfSU5UMV9DTFIsDQorCVBXUkFQ X1BSSU9SSVRZX1VTRVJfU0VMXzAsDQorCVBXUkFQX1BSSU9SSVRZX1VTRVJfU0VMXzEsDQorCVBX UkFQX0FSQklURVJfT1VUX1NFTF8wLA0KKwlQV1JBUF9BUkJJVEVSX09VVF9TRUxfMSwNCisJUFdS QVBfU1RBUlZfQ09VTlRFUl8wLA0KKwlQV1JBUF9TVEFSVl9DT1VOVEVSXzEsDQorCVBXUkFQX1NU QVJWX0NPVU5URVJfMiwNCisJUFdSQVBfU1RBUlZfQ09VTlRFUl8zLA0KKwlQV1JBUF9TVEFSVl9D T1VOVEVSXzQsDQorCVBXUkFQX1NUQVJWX0NPVU5URVJfNSwNCisJUFdSQVBfU1RBUlZfQ09VTlRF Ul82LA0KKwlQV1JBUF9TVEFSVl9DT1VOVEVSXzcsDQorCVBXUkFQX1NUQVJWX0NPVU5URVJfOCwN CisJUFdSQVBfU1RBUlZfQ09VTlRFUl85LA0KKwlQV1JBUF9TVEFSVl9DT1VOVEVSXzEwLA0KKwlQ V1JBUF9TVEFSVl9DT1VOVEVSXzExLA0KKwlQV1JBUF9TVEFSVl9DT1VOVEVSXzEyLA0KKwlQV1JB UF9TVEFSVl9DT1VOVEVSXzEzLA0KIH07DQogDQogc3RhdGljIGludCBtdDI3MDFfcmVnc1tdID0g ew0KQEAgLTY1MSw2ICs2NzUsNyBAQCBlbnVtIHB3cmFwX3R5cGUgew0KIAlQV1JBUF9NVDc2MjIs DQogCVBXUkFQX01UODEzNSwNCiAJUFdSQVBfTVQ4MTczLA0KKwlQV1JBUF9NVDY3OTcsDQogfTsN CiANCiBzdHJ1Y3QgcG1pY193cmFwcGVyOw0KQEAgLTEwMDcsNiArMTAzMiwxMiBAQCBzdGF0aWMg dm9pZCBwd3JhcF9pbml0X2NoaXBfc2VsZWN0X2V4dChzdHJ1Y3QgcG1pY193cmFwcGVyICp3cnAs IHU4IGhleHRfd3JpdGUsDQogc3RhdGljIGludCBwd3JhcF9jb21tb25faW5pdF9yZWdfY2xvY2so c3RydWN0IHBtaWNfd3JhcHBlciAqd3JwKQ0KIHsNCiAJc3dpdGNoICh3cnAtPm1hc3Rlci0+dHlw ZSkgew0KKwljYXNlIFBXUkFQX01UNjc5NzoNCisJCXB3cmFwX3dyaXRlbCh3cnAsIDB4OCwgUFdS QVBfUkRETVkpOw0KKwkJcHdyYXBfd3JpdGUod3JwLCB3cnAtPnNsYXZlLT5kZXdfcmVnc1tQV1JB UF9ERVdfUkRETVlfTk9dLA0KKwkJCSAgICAweDgpOw0KKwkJcHdyYXBfaW5pdF9jaGlwX3NlbGVj dF9leHQod3JwLCAweDg4LCAweDU1LCAzLCAwKTsNCisJCWJyZWFrOw0KIAljYXNlIFBXUkFQX01U ODE3MzoNCiAJCXB3cmFwX2luaXRfY2hpcF9zZWxlY3RfZXh0KHdycCwgMCwgNCwgMiwgMik7DQog CQlicmVhazsNCkBAIC0xMDc3LDExICsxMTA4LDE0IEBAIHN0YXRpYyBpbnQgcHdyYXBfaW5pdF9j aXBoZXIoc3RydWN0IHBtaWNfd3JhcHBlciAqd3JwKQ0KIAkJYnJlYWs7DQogCWNhc2UgUFdSQVBf TVQyNzAxOg0KIAljYXNlIFBXUkFQX01UODE3MzoNCisJY2FzZSBQV1JBUF9NVDY3OTc6DQogCQlw d3JhcF93cml0ZWwod3JwLCAxLCBQV1JBUF9DSVBIRVJfRU4pOw0KIAkJYnJlYWs7DQogCWNhc2Ug UFdSQVBfTVQ3NjIyOg0KIAkJcHdyYXBfd3JpdGVsKHdycCwgMCwgUFdSQVBfQ0lQSEVSX0VOKTsN CiAJCWJyZWFrOw0KKwlkZWZhdWx0Og0KKwkJYnJlYWs7DQogCX0NCiANCiAJLyogQ29uZmlnIGNp cGhlciBtb2RlIEBQTUlDICovDQpAQCAtMTIzNSw2ICsxMjY5LDI3IEBAIHN0YXRpYyBpbnQgcHdy YXBfbXQ3NjIyX2luaXRfc29jX3NwZWNpZmljKHN0cnVjdCBwbWljX3dyYXBwZXIgKndycCkNCiAJ cmV0dXJuIDA7DQogfQ0KIA0KK3N0YXRpYyBpbnQgcHdyYXBfc2V0X3N0YXJ2YXRpb24oc3RydWN0 IHBtaWNfd3JhcHBlciAqd3JwKQ0KK3sNCisJcHdyYXBfd3JpdGVsKHdycCwgMHgwMDA3LCBQV1JB UF9IQVJCX0hQUklPKTsNCisJcHdyYXBfd3JpdGVsKHdycCwgMHgwNDAyLCBQV1JBUF9TVEFSVl9D T1VOVEVSXzApOw0KKwlwd3JhcF93cml0ZWwod3JwLCAweDA0MDIsIFBXUkFQX1NUQVJWX0NPVU5U RVJfMSk7DQorCXB3cmFwX3dyaXRlbCh3cnAsIDB4MDQwMywgUFdSQVBfU1RBUlZfQ09VTlRFUl8y KTsNCisJcHdyYXBfd3JpdGVsKHdycCwgMHgwNDE0LCBQV1JBUF9TVEFSVl9DT1VOVEVSXzMpOw0K Kwlwd3JhcF93cml0ZWwod3JwLCAweDA0MjAsIFBXUkFQX1NUQVJWX0NPVU5URVJfNCk7DQorCXB3 cmFwX3dyaXRlbCh3cnAsIDB4MDQyMCwgUFdSQVBfU1RBUlZfQ09VTlRFUl81KTsNCisJcHdyYXBf d3JpdGVsKHdycCwgMHgwNDIwLCBQV1JBUF9TVEFSVl9DT1VOVEVSXzYpOw0KKwlwd3JhcF93cml0 ZWwod3JwLCAweDA0MjgsIFBXUkFQX1NUQVJWX0NPVU5URVJfNyk7DQorCXB3cmFwX3dyaXRlbCh3 cnAsIDB4MDQyOCwgUFdSQVBfU1RBUlZfQ09VTlRFUl84KTsNCisJcHdyYXBfd3JpdGVsKHdycCwg MHgwNDE3LCBQV1JBUF9TVEFSVl9DT1VOVEVSXzkpOw0KKwlwd3JhcF93cml0ZWwod3JwLCAweDA1 NjMsIFBXUkFQX1NUQVJWX0NPVU5URVJfMTApOw0KKwlwd3JhcF93cml0ZWwod3JwLCAweDA0N2Ms IFBXUkFQX1NUQVJWX0NPVU5URVJfMTEpOw0KKwlwd3JhcF93cml0ZWwod3JwLCAweDA3NDAsIFBX UkFQX1NUQVJWX0NPVU5URVJfMTIpOw0KKwlwd3JhcF93cml0ZWwod3JwLCAweDA3NDAsIFBXUkFQ X1NUQVJWX0NPVU5URVJfMTMpOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQogc3RhdGljIGludCBw d3JhcF9pbml0KHN0cnVjdCBwbWljX3dyYXBwZXIgKndycCkNCiB7DQogCWludCByZXQ7DQpAQCAt MTMwNyw3ICsxMzYyLDcgQEAgc3RhdGljIGludCBwd3JhcF9pbml0KHN0cnVjdCBwbWljX3dyYXBw ZXIgKndycCkNCiAJcHdyYXBfd3JpdGVsKHdycCwgMSwgUFdSQVBfSU5JVF9ET05FMCk7DQogCXB3 cmFwX3dyaXRlbCh3cnAsIDEsIFBXUkFQX0lOSVRfRE9ORTEpOw0KIA0KLQlpZiAod3JwLT5tYXN0 ZXItPmhhc19icmlkZ2UpIHsNCisJaWYgKEhBU19DQVAod3JwLT5tYXN0ZXItPmNhcHMsIFBXUkFQ X0NBUF9CUklER0UpKSB7DQogCQl3cml0ZWwoMSwgd3JwLT5icmlkZ2VfYmFzZSArIFBXUkFQX01U ODEzNV9CUklER0VfSU5JVF9ET05FMyk7DQogCQl3cml0ZWwoMSwgd3JwLT5icmlkZ2VfYmFzZSAr IFBXUkFQX01UODEzNV9CUklER0VfSU5JVF9ET05FNCk7DQogCX0NCkBAIC0xMzI2LDYgKzEzODEs MTUgQEAgc3RhdGljIGlycXJldHVybl90IHB3cmFwX2ludGVycnVwdChpbnQgaXJxbm8sIHZvaWQg KmRldl9pZCkNCiANCiAJcHdyYXBfd3JpdGVsKHdycCwgMHhmZmZmZmZmZiwgUFdSQVBfSU5UX0NM Uik7DQogDQorCS8qIElmIHdlIHN1cHBvcnQgSU5UMSBpbnRlcnJ1cHQsIHdlIGFsc28gbmVlZCB0 byBjbGVhciBpdCAqLw0KKwlpZiAoSEFTX0NBUCh3cnAtPm1hc3Rlci0+Y2FwcywgUFdSQVBfQ0FQ X0lOVDFfRU4pKSB7DQorCQlyZGF0YSA9IHB3cmFwX3JlYWRsKHdycCwgUFdSQVBfSU5UMV9GTEcp Ow0KKw0KKwkJZGV2X2Vycih3cnAtPmRldiwgInVuZXhwZWN0ZWQgaW50ZXJydXB0IGludDE9MHgl eFxuIiwgcmRhdGEpOw0KKw0KKwkJcHdyYXBfd3JpdGVsKHdycCwgcmRhdGEsIFBXUkFQX0lOVDFf Q0xSKTsNCisJfQ0KKw0KIAlyZXR1cm4gSVJRX0hBTkRMRUQ7DQogfQ0KIA0KQEAgLTE0MDAsOSAr MTQ2NCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBtaWNfd3JhcHBlcl90eXBlIHB3cmFwX210 MjcwMSA9IHsNCiAJLnR5cGUgPSBQV1JBUF9NVDI3MDEsDQogCS5hcmJfZW5fYWxsID0gMHgzZiwN CiAJLmludF9lbl9hbGwgPSB+KHUzMikoQklUKDMxKSB8IEJJVCgyKSksDQorCS5pbnQxX2VuX2Fs bCA9IDAsDQogCS5zcGlfdyA9IFBXUkFQX01BTl9DTURfU1BJX1dSSVRFX05FVywNCiAJLndkdF9z cmMgPSBQV1JBUF9XRFRfU1JDX01BU0tfQUxMLA0KLQkuaGFzX2JyaWRnZSA9IDAsDQorCS5jYXBz ID0gUFdSQVBfQ0FQX1JFU0VUIHwgUFdSQVBfQ0FQX0RDTSwNCiAJLmluaXRfcmVnX2Nsb2NrID0g cHdyYXBfbXQyNzAxX2luaXRfcmVnX2Nsb2NrLA0KIAkuaW5pdF9zb2Nfc3BlY2lmaWMgPSBwd3Jh cF9tdDI3MDFfaW5pdF9zb2Nfc3BlY2lmaWMsDQogfTsNCkBAIC0xNDEyLDkgKzE0NzcsMTAgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBwbWljX3dyYXBwZXJfdHlwZSBwd3JhcF9tdDc2MjIgPSB7DQog CS50eXBlID0gUFdSQVBfTVQ3NjIyLA0KIAkuYXJiX2VuX2FsbCA9IDB4ZmYsDQogCS5pbnRfZW5f YWxsID0gfih1MzIpQklUKDMxKSwNCisJLmludDFfZW5fYWxsID0gMCwNCiAJLnNwaV93ID0gUFdS QVBfTUFOX0NNRF9TUElfV1JJVEUsDQogCS53ZHRfc3JjID0gUFdSQVBfV0RUX1NSQ19NQVNLX0FM TCwNCi0JLmhhc19icmlkZ2UgPSAwLA0KKwkuY2FwcyA9IFBXUkFQX0NBUF9SRVNFVCB8IFBXUkFQ X0NBUF9EQ00sDQogCS5pbml0X3JlZ19jbG9jayA9IHB3cmFwX2NvbW1vbl9pbml0X3JlZ19jbG9j aywNCiAJLmluaXRfc29jX3NwZWNpZmljID0gcHdyYXBfbXQ3NjIyX2luaXRfc29jX3NwZWNpZmlj LA0KIH07DQpAQCAtMTQyNCw5ICsxNDkwLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcG1pY193 cmFwcGVyX3R5cGUgcHdyYXBfbXQ4MTM1ID0gew0KIAkudHlwZSA9IFBXUkFQX01UODEzNSwNCiAJ LmFyYl9lbl9hbGwgPSAweDFmZiwNCiAJLmludF9lbl9hbGwgPSB+KHUzMikoQklUKDMxKSB8IEJJ VCgxKSksDQorCS5pbnQxX2VuX2FsbCA9IDAsDQogCS5zcGlfdyA9IFBXUkFQX01BTl9DTURfU1BJ X1dSSVRFLA0KIAkud2R0X3NyYyA9IFBXUkFQX1dEVF9TUkNfTUFTS19BTEwsDQotCS5oYXNfYnJp ZGdlID0gMSwNCisJLmNhcHMgPSBQV1JBUF9DQVBfQlJJREdFIHwgUFdSQVBfQ0FQX1JFU0VUIHwg UFdSQVBfQ0FQX0RDTSwNCiAJLmluaXRfcmVnX2Nsb2NrID0gcHdyYXBfY29tbW9uX2luaXRfcmVn X2Nsb2NrLA0KIAkuaW5pdF9zb2Nfc3BlY2lmaWMgPSBwd3JhcF9tdDgxMzVfaW5pdF9zb2Nfc3Bl Y2lmaWMsDQogfTsNCkBAIC0xNDM2LDEzICsxNTAzLDI3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg cG1pY193cmFwcGVyX3R5cGUgcHdyYXBfbXQ4MTczID0gew0KIAkudHlwZSA9IFBXUkFQX01UODE3 MywNCiAJLmFyYl9lbl9hbGwgPSAweDNmLA0KIAkuaW50X2VuX2FsbCA9IH4odTMyKShCSVQoMzEp IHwgQklUKDEpKSwNCisJLmludDFfZW5fYWxsID0gMCwNCiAJLnNwaV93ID0gUFdSQVBfTUFOX0NN RF9TUElfV1JJVEUsDQogCS53ZHRfc3JjID0gUFdSQVBfV0RUX1NSQ19NQVNLX05PX1NUQVVQRCwN Ci0JLmhhc19icmlkZ2UgPSAwLA0KKwkuY2FwcyA9IFBXUkFQX0NBUF9SRVNFVCB8IFBXUkFQX0NB UF9EQ00sDQogCS5pbml0X3JlZ19jbG9jayA9IHB3cmFwX2NvbW1vbl9pbml0X3JlZ19jbG9jaywN CiAJLmluaXRfc29jX3NwZWNpZmljID0gcHdyYXBfbXQ4MTczX2luaXRfc29jX3NwZWNpZmljLA0K IH07DQogDQorc3RhdGljIGNvbnN0IHN0cnVjdCBwbWljX3dyYXBwZXJfdHlwZSBwd3JhcF9tdDY3 OTcgPSB7DQorCS5yZWdzID0gbXQ2Nzk3X3JlZ3MsDQorCS50eXBlID0gUFdSQVBfTVQ2Nzk3LA0K KwkuYXJiX2VuX2FsbCA9IDB4MDFmZmYsDQorCS5pbnRfZW5fYWxsID0gMHhmZmZmZmZmZCwNCisJ LmludDFfZW5fYWxsID0gMHgwMDAxZmZmZiwNCisJLnNwaV93ID0gUFdSQVBfTUFOX0NNRF9TUElf V1JJVEUsDQorCS53ZHRfc3JjID0gUFdSQVBfV0RUX1NSQ19NQVNLX0FMTCwNCisJLmNhcHMgPSBQ V1JBUF9DQVBfRENNIHwgUFdSQVBfQ0FQX1BSSU9SSVRZX1NFTCB8IFBXUkFQX0NBUF9JTlQxX0VO LA0KKwkuaW5pdF9yZWdfY2xvY2sgPSBwd3JhcF9jb21tb25faW5pdF9yZWdfY2xvY2ssDQorCS5p bml0X3NvY19zcGVjaWZpYyA9IE5VTEwsDQorfTsNCisNCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9m X2RldmljZV9pZCBvZl9wd3JhcF9tYXRjaF90YmxbXSA9IHsNCiAJew0KIAkJLmNvbXBhdGlibGUg PSAibWVkaWF0ZWssbXQyNzAxLXB3cmFwIiwNCkBAIC0xNDU3LDYgKzE1MzgsOSBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9wd3JhcF9tYXRjaF90YmxbXSA9IHsNCiAJCS5j b21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1wd3JhcCIsDQogCQkuZGF0YSA9ICZwd3JhcF9t dDgxNzMsDQogCX0sIHsNCisJCS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10Njc5Ny1wd3JhcCIs DQorCQkuZGF0YSA9ICZwd3JhcF9tdDY3OTcsDQorCX0sIHsNCiAJCS8qIHNlbnRpbmVsICovDQog CX0NCiB9Ow0KQEAgLTE1MDAsMTQgKzE1ODQsMTYgQEAgc3RhdGljIGludCBwd3JhcF9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAlpZiAoSVNfRVJSKHdycC0+YmFzZSkpDQog CQlyZXR1cm4gUFRSX0VSUih3cnAtPmJhc2UpOw0KIA0KLQl3cnAtPnJzdGMgPSBkZXZtX3Jlc2V0 X2NvbnRyb2xfZ2V0KHdycC0+ZGV2LCAicHdyYXAiKTsNCi0JaWYgKElTX0VSUih3cnAtPnJzdGMp KSB7DQotCQlyZXQgPSBQVFJfRVJSKHdycC0+cnN0Yyk7DQotCQlkZXZfZGJnKHdycC0+ZGV2LCAi Y2Fubm90IGdldCBwd3JhcCByZXNldDogJWRcbiIsIHJldCk7DQotCQlyZXR1cm4gcmV0Ow0KKwlp ZiAoSEFTX0NBUCh3cnAtPm1hc3Rlci0+Y2FwcywgUFdSQVBfQ0FQX1JFU0VUKSkgew0KKwkJd3Jw LT5yc3RjID0gZGV2bV9yZXNldF9jb250cm9sX2dldCh3cnAtPmRldiwgInB3cmFwIik7DQorCQlp ZiAoSVNfRVJSKHdycC0+cnN0YykpIHsNCisJCQlyZXQgPSBQVFJfRVJSKHdycC0+cnN0Yyk7DQor CQkJZGV2X2RiZyh3cnAtPmRldiwgImNhbm5vdCBnZXQgcHdyYXAgcmVzZXQ6ICVkXG4iLCByZXQp Ow0KKwkJCXJldHVybiByZXQ7DQorCQl9DQogCX0NCiANCi0JaWYgKHdycC0+bWFzdGVyLT5oYXNf YnJpZGdlKSB7DQorCWlmIChIQVNfQ0FQKHdycC0+bWFzdGVyLT5jYXBzLCBQV1JBUF9DQVBfQlJJ REdFKSkgew0KIAkJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFtZShwZGV2LCBJT1JF U09VUkNFX01FTSwNCiAJCQkJInB3cmFwLWJyaWRnZSIpOw0KIAkJd3JwLT5icmlkZ2VfYmFzZSA9 IGRldm1faW9yZW1hcF9yZXNvdXJjZSh3cnAtPmRldiwgcmVzKTsNCkBAIC0xNTM4LDYgKzE2MjQs MTYgQEAgc3RhdGljIGludCBwd3JhcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQ0KIAkJcmV0dXJuIFBUUl9FUlIod3JwLT5jbGtfd3JhcCk7DQogCX0NCiANCisJLyogQWRkIHBy aW9yaXR5IGFkanVzdCBzZXR0aW5nLCBpdCB1c2VkIHRvIGF2b2lkIHN0YXJ2YXRpb24gKi8NCisJ aWYgKEhBU19DQVAod3JwLT5tYXN0ZXItPmNhcHMsIFBXUkFQX0NBUF9QUklPUklUWV9TRUwpKSB7 DQorCQlwd3JhcF93cml0ZWwod3JwLCAweDY1NDNDMjEwLCBQV1JBUF9QUklPUklUWV9VU0VSX1NF TF8wKTsNCisJCXB3cmFwX3dyaXRlbCh3cnAsIDB4RkVEQkE5ODcsIFBXUkFQX1BSSU9SSVRZX1VT RVJfU0VMXzEpOw0KKwkJcHdyYXBfd3JpdGVsKHdycCwgMHg4NzY1NDIxMCwgUFdSQVBfQVJCSVRF Ul9PVVRfU0VMXzApOw0KKwkJcHdyYXBfd3JpdGVsKHdycCwgMHhGRUQzQ0JBOSwgUFdSQVBfQVJC SVRFUl9PVVRfU0VMXzEpOw0KKw0KKwkJcHdyYXBfc2V0X3N0YXJ2YXRpb24od3JwKTsNCisJfQ0K Kw0KIAlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUod3JwLT5jbGtfc3BpKTsNCiAJaWYgKHJldCkN CiAJCXJldHVybiByZXQ7DQpAQCAtMTU0Niw5ICsxNjQyLDE2IEBAIHN0YXRpYyBpbnQgcHdyYXBf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCiAJaWYgKHJldCkNCiAJCWdvdG8g ZXJyX291dDE7DQogDQotCS8qIEVuYWJsZSBpbnRlcm5hbCBkeW5hbWljIGNsb2NrICovDQotCXB3 cmFwX3dyaXRlbCh3cnAsIDEsIFBXUkFQX0RDTV9FTik7DQotCXB3cmFwX3dyaXRlbCh3cnAsIDAs IFBXUkFQX0RDTV9EQkNfUFJEKTsNCisJLyoNCisJICogYWRkIGRjbSBjYXBhYmlsaXR5IGNoZWNr DQorCSAqLw0KKwlpZiAoSEFTX0NBUCh3cnAtPm1hc3Rlci0+Y2FwcywgUFdSQVBfQ0FQX0RDTSkp IHsNCisJCWlmICh3cnAtPm1hc3Rlci0+dHlwZSA9PSBQV1JBUF9NVDY3OTcpDQorCQkJcHdyYXBf d3JpdGVsKHdycCwgMywgUFdSQVBfRENNX0VOKTsNCisJCWVsc2UNCisJCQlwd3JhcF93cml0ZWwo d3JwLCAxLCBQV1JBUF9EQ01fRU4pOw0KKwkJcHdyYXBfd3JpdGVsKHdycCwgMCwgUFdSQVBfRENN X0RCQ19QUkQpOw0KKwl9DQogDQogCS8qDQogCSAqIFRoZSBQTUlDIGNvdWxkIGFscmVhZHkgYmUg aW5pdGlhbGl6ZWQgYnkgdGhlIGJvb3Rsb2FkZXIuDQpAQCAtMTU3Nyw2ICsxNjgwLDEyIEBAIHN0 YXRpYyBpbnQgcHdyYXBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCiAJcHdy YXBfd3JpdGVsKHdycCwgd3JwLT5tYXN0ZXItPndkdF9zcmMsIFBXUkFQX1dEVF9TUkNfRU4pOw0K IAlwd3JhcF93cml0ZWwod3JwLCAweDEsIFBXUkFQX1RJTUVSX0VOKTsNCiAJcHdyYXBfd3JpdGVs KHdycCwgd3JwLT5tYXN0ZXItPmludF9lbl9hbGwsIFBXUkFQX0lOVF9FTik7DQorCS8qDQorCSAq IFdlIGFkZCBJTlQxIGludGVycnVwdCB0byBoYW5kbGUgc3RhcnZhdGlvbiBhbmQgcmVxdWVzdCBl eGNlcHRpb24NCisJICogSWYgd2Ugc3VwcG9ydCBpdCwgd2Ugc2hvdWxkIGVuYWJsZSB0aGVtIGhl cmUuDQorCSAqLw0KKwlpZiAoSEFTX0NBUCh3cnAtPm1hc3Rlci0+Y2FwcywgUFdSQVBfQ0FQX0lO VDFfRU4pKQ0KKwkJcHdyYXBfd3JpdGVsKHdycCwgd3JwLT5tYXN0ZXItPmludDFfZW5fYWxsLCBQ V1JBUF9JTlQxX0VOKTsNCiANCiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsNCiAJ cmV0ID0gZGV2bV9yZXF1ZXN0X2lycSh3cnAtPmRldiwgaXJxLCBwd3JhcF9pbnRlcnJ1cHQsDQot LSANCjIuMTIuNQ0K --__=_Part_Boundary_003_73013624.731433368-- --__=_Part_Boundary_002_2043617879.2046488461--