From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Subject: [PATCH V4 5/8] soc: mediatek: pwrap: add pwrap for mt6797 SoCs Date: Wed, 2 May 2018 17:21:09 +0800 Message-ID: <20180502092112.3991-6-argus.lin@mediatek.com> In-Reply-To: <20180502092112.3991-1-argus.lin@mediatek.com> References: <20180502092112.3991-1-argus.lin@mediatek.com> MIME-Version: 1.0 Content-Type: multipart/related; boundary="__=_Part_Boundary_006_1141830149.1544906792" To: Rob Herring , Mark Rutland , Matthias Brugger , Catalin Marinas , Will Deacon Cc: Chenglin Xu , argus.lin@mediatek.com, "Sean Wang , ," , 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_006_1141830149.1544906792 Content-Transfer-Encoding: base64 Content-Type: multipart/alternative; boundary="__=_Part_Boundary_007_1274330412.6805361" --__=_Part_Boundary_007_1274330412.6805361 Content-Type: text/html Content-Transfer-Encoding: base64 PHByZT4NCkZyb206IEFyZ3VzIExpbiAmbHQ7YXJndXMubGluQG1lZGlhdGVrLmNvbSZndDsNCg0K bXQ2Nzk3IGlzIGEgaGlnaGx5IGludGVncmF0ZWQgU29DcywgaXQgdXNlcyBtdDYzNTEgZm9yIHBv d2VyDQptYW5hZ2VtZW50LiBXZSBuZWVkIHRvIGFkZCBwd3JhcCBzdXBwb3J0IHRvIGFjY2VzcyBt dDYzNTEuDQpQd3JhcCBvZiBtdDY3OTcgc3VwcG9ydCBuZXcgZmVhdHVyZSBpbmNsdWRlIHN0YXJ2 YXRpb24gYW5kIGNoYW5uZWwNCnJlcXVlc3QgZXhjZXB0aW9uIGludGVycnVwdCwgZHluYW1pYyBz dGFydmF0aW9uIHByaW9yaXR5DQphZGp1c3RtZW50IG1lY2hhbmlzbS4NCg0KU2lnbmVkLW9mZi1i eTogQXJndXMgTGluICZsdDthcmd1cy5saW5AbWVkaWF0ZWsuY29tJmd0Ow0KLS0tDQogZHJpdmVy cy9zb2MvbWVkaWF0ZWsvbXRrLXBtaWMtd3JhcC5jIHwgMTEwICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tDQogMSBmaWxlIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCA4IGRl bGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXBtaWMt d3JhcC5jIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXBtaWMtd3JhcC5jDQppbmRleCBhNjM2 NmYxNDdiNzkuLjBkNGEyZGFlNjkxMiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc29jL21lZGlhdGVr L210ay1wbWljLXdyYXAuYw0KKysrIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXBtaWMtd3Jh cC5jDQpAQCAtMjg0LDYgKzI4NCwxMiBAQCBlbnVtIHB3cmFwX3JlZ3Mgew0KIAlQV1JBUF9EVkZT X1dEQVRBNywNCiAJUFdSQVBfU1BNSU5GX1NUQSwNCiAJUFdSQVBfQ0lQSEVSX0VOLA0KKw0KKwkv KiBNVDY3OTcgc2VyaWVzIHJlZ3MgKi8NCisJUFdSQVBfSU5UMV9FTiwNCisJUFdSQVBfSU5UMV9G TEdfUkFXLA0KKwlQV1JBUF9JTlQxX0ZMRywNCisJUFdSQVBfSU5UMV9DTFIsDQogfTsNCiANCiBz dGF0aWMgaW50IG10MjcwMV9yZWdzW10gPSB7DQpAQCAtMzcyLDYgKzM3OCw0MyBAQCBzdGF0aWMg aW50IG10MjcwMV9yZWdzW10gPSB7DQogCVtQV1JBUF9BRENfUkRBVEFfQUREUjJdID0JMHgxNTQs DQogfTsNCiANCitzdGF0aWMgaW50IG10Njc5N19yZWdzW10gPSB7DQorCVtQV1JBUF9NVVhfU0VM XSA9CQkweDAsDQorCVtQV1JBUF9XUkFQX0VOXSA9CQkweDQsDQorCVtQV1JBUF9ESU9fRU5dID0J CTB4OCwNCisJW1BXUkFQX1NJRExZXSA9CQkJMHhDLA0KKwlbUFdSQVBfUkRETVldID0JCQkweDEw LA0KKwlbUFdSQVBfQ1NIRVhUX1dSSVRFXSA9CQkweDE4LA0KKwlbUFdSQVBfQ1NIRVhUX1JFQURd ID0JCTB4MUMsDQorCVtQV1JBUF9DU0xFWFRfU1RBUlRdID0JCTB4MjAsDQorCVtQV1JBUF9DU0xF WFRfRU5EXSA9CQkweDI0LA0KKwlbUFdSQVBfU1RBVVBEX1BSRF0gPQkJMHgyOCwNCisJW1BXUkFQ X0hBUkJfSFBSSU9dID0JCTB4NTAsDQorCVtQV1JBUF9ISVBSSU9fQVJCX0VOXSA9CQkweDU0LA0K KwlbUFdSQVBfTUFOX0VOXSA9CQkweDYwLA0KKwlbUFdSQVBfTUFOX0NNRF0gPQkJMHg2NCwNCisJ W1BXUkFQX1dBQ1MwX0VOXSA9CQkweDcwLA0KKwlbUFdSQVBfV0FDUzFfRU5dID0JCTB4ODQsDQor CVtQV1JBUF9XQUNTMl9FTl0gPQkJMHg5OCwNCisJW1BXUkFQX0lOSVRfRE9ORTJdID0JCTB4OUMs DQorCVtQV1JBUF9XQUNTMl9DTURdID0JCTB4QTAsDQorCVtQV1JBUF9XQUNTMl9SREFUQV0gPQkJ MHhBNCwNCisJW1BXUkFQX1dBQ1MyX1ZMRENMUl0gPQkJMHhBOCwNCisJW1BXUkFQX0lOVF9FTl0g PQkJMHhDMCwNCisJW1BXUkFQX0lOVF9GTEdfUkFXXSA9CQkweEM0LA0KKwlbUFdSQVBfSU5UX0ZM R10gPQkJMHhDOCwNCisJW1BXUkFQX0lOVF9DTFJdID0JCTB4Q0MsDQorCVtQV1JBUF9JTlQxX0VO XSA9CQkweEQwLA0KKwlbUFdSQVBfSU5UMV9GTEdfUkFXXSA9CQkweEQ0LA0KKwlbUFdSQVBfSU5U MV9GTEddID0JCTB4RDgsDQorCVtQV1JBUF9JTlQxX0NMUl0gPQkJMHhEQywNCisJW1BXUkFQX1RJ TUVSX0VOXSA9CQkweEY0LA0KKwlbUFdSQVBfV0RUX1VOSVRdID0JCTB4RkMsDQorCVtQV1JBUF9X RFRfU1JDX0VOXSA9CQkweDEwMCwNCisJW1BXUkFQX0RDTV9FTl0gPQkJMHgxQ0MsDQorCVtQV1JB UF9EQ01fREJDX1BSRF0gPQkJMHgxRDQsDQorfTsNCisNCiBzdGF0aWMgaW50IG10NzYyMl9yZWdz W10gPSB7DQogCVtQV1JBUF9NVVhfU0VMXSA9CQkweDAsDQogCVtQV1JBUF9XUkFQX0VOXSA9CQkw eDQsDQpAQCAtNjQ3LDYgKzY5MCw3IEBAIGVudW0gcG1pY190eXBlIHsNCiANCiBlbnVtIHB3cmFw X3R5cGUgew0KIAlQV1JBUF9NVDI3MDEsDQorCVBXUkFQX01UNjc5NywNCiAJUFdSQVBfTVQ3NjIy LA0KIAlQV1JBUF9NVDgxMzUsDQogCVBXUkFQX01UODE3MywNCkBAIC0xMDA2LDYgKzEwNTAsMTIg QEAgc3RhdGljIHZvaWQgcHdyYXBfaW5pdF9jaGlwX3NlbGVjdF9leHQoc3RydWN0IHBtaWNfd3Jh cHBlciAqd3JwLCB1OCBoZXh0X3dyaXRlLA0KIHN0YXRpYyBpbnQgcHdyYXBfY29tbW9uX2luaXRf cmVnX2Nsb2NrKHN0cnVjdCBwbWljX3dyYXBwZXIgKndycCkNCiB7DQogCXN3aXRjaCAod3JwLSZn dDttYXN0ZXItJmd0O3R5cGUpIHsNCisJY2FzZSBQV1JBUF9NVDY3OTc6DQorCQlwd3JhcF93cml0 ZWwod3JwLCAweDgsIFBXUkFQX1JERE1ZKTsNCisJCXB3cmFwX3dyaXRlKHdycCwgd3JwLSZndDtz bGF2ZS0mZ3Q7ZGV3X3JlZ3NbUFdSQVBfREVXX1JERE1ZX05PXSwNCisJCQkgICAgMHg4KTsNCisJ CXB3cmFwX2luaXRfY2hpcF9zZWxlY3RfZXh0KHdycCwgMHg4OCwgMHg1NSwgMywgMCk7DQorCQli cmVhazsNCiAJY2FzZSBQV1JBUF9NVDgxNzM6DQogCQlwd3JhcF9pbml0X2NoaXBfc2VsZWN0X2V4 dCh3cnAsIDAsIDQsIDIsIDIpOw0KIAkJYnJlYWs7DQpAQCAtMTA3NiwxMSArMTEyNiwxNCBAQCBz dGF0aWMgaW50IHB3cmFwX2luaXRfY2lwaGVyKHN0cnVjdCBwbWljX3dyYXBwZXIgKndycCkNCiAJ CWJyZWFrOw0KIAljYXNlIFBXUkFQX01UMjcwMToNCiAJY2FzZSBQV1JBUF9NVDgxNzM6DQorCWNh c2UgUFdSQVBfTVQ2Nzk3Og0KIAkJcHdyYXBfd3JpdGVsKHdycCwgMSwgUFdSQVBfQ0lQSEVSX0VO KTsNCiAJCWJyZWFrOw0KIAljYXNlIFBXUkFQX01UNzYyMjoNCiAJCXB3cmFwX3dyaXRlbCh3cnAs IDAsIFBXUkFQX0NJUEhFUl9FTik7DQogCQlicmVhazsNCisJZGVmYXVsdDoNCisJCWJyZWFrOw0K IAl9DQogDQogCS8qIENvbmZpZyBjaXBoZXIgbW9kZSBAUE1JQyAqLw0KQEAgLTEzMjUsNiArMTM3 OCwxNSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcHdyYXBfaW50ZXJydXB0KGludCBpcnFubywgdm9p ZCAqZGV2X2lkKQ0KIA0KIAlwd3JhcF93cml0ZWwod3JwLCAweGZmZmZmZmZmLCBQV1JBUF9JTlRf Q0xSKTsNCiANCisJLyogSWYgd2Ugc3VwcG9ydCBJTlQxIGludGVycnVwdCwgd2UgYWxzbyBuZWVk IHRvIGNsZWFyIGl0ICovDQorCWlmIChIQVNfQ0FQKHdycC0mZ3Q7bWFzdGVyLSZndDtjYXBzLCBQ V1JBUF9DQVBfSU5UMV9FTikpIHsNCisJCXJkYXRhID0gcHdyYXBfcmVhZGwod3JwLCBQV1JBUF9J TlQxX0ZMRyk7DQorDQorCQlkZXZfZXJyKHdycC0mZ3Q7ZGV2LCAmcXVvdDt1bmV4cGVjdGVkIGlu dGVycnVwdCBpbnQxPTB4JXhcbiZxdW90OywgcmRhdGEpOw0KKw0KKwkJcHdyYXBfd3JpdGVsKHdy cCwgcmRhdGEsIFBXUkFQX0lOVDFfQ0xSKTsNCisJfQ0KKw0KIAlyZXR1cm4gSVJRX0hBTkRMRUQ7 DQogfQ0KIA0KQEAgLTE0NDYsNiArMTUwOCwxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBtaWNf d3JhcHBlcl90eXBlIHB3cmFwX210ODE3MyA9IHsNCiAJLmluaXRfc29jX3NwZWNpZmljID0gcHdy YXBfbXQ4MTczX2luaXRfc29jX3NwZWNpZmljLA0KIH07DQogDQorc3RhdGljIGNvbnN0IHN0cnVj dCBwbWljX3dyYXBwZXJfdHlwZSBwd3JhcF9tdDY3OTcgPSB7DQorCS5yZWdzID0gbXQ2Nzk3X3Jl Z3MsDQorCS50eXBlID0gUFdSQVBfTVQ2Nzk3LA0KKwkuYXJiX2VuX2FsbCA9IDB4MDFmZmYsDQor CS5pbnRfZW5fYWxsID0gMHhmZmZmZmZjNiwNCisJLmludDFfZW5fYWxsID0gMHgwMDAxZmZmZiwN CisJLnNwaV93ID0gUFdSQVBfTUFOX0NNRF9TUElfV1JJVEUsDQorCS53ZHRfc3JjID0gUFdSQVBf V0RUX1NSQ19NQVNLX0FMTCwNCisJLmNhcHMgPSBQV1JBUF9DQVBfRENNIHwgUFdSQVBfQ0FQX0lO VDFfRU4sDQorCS5pbml0X3JlZ19jbG9jayA9IHB3cmFwX2NvbW1vbl9pbml0X3JlZ19jbG9jaywN CisJLmluaXRfc29jX3NwZWNpZmljID0gTlVMTCwNCit9Ow0KKw0KIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIG9mX3B3cmFwX21hdGNoX3RibFtdID0gew0KIAl7DQogCQkuY29tcGF0 aWJsZSA9ICZxdW90O21lZGlhdGVrLG10MjcwMS1wd3JhcCZxdW90OywNCkBAIC0xNDYwLDYgKzE1 MzUsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9wd3JhcF9tYXRjaF90 YmxbXSA9IHsNCiAJCS5jb21wYXRpYmxlID0gJnF1b3Q7bWVkaWF0ZWssbXQ4MTczLXB3cmFwJnF1 b3Q7LA0KIAkJLmRhdGEgPSAmYW1wO3B3cmFwX210ODE3MywNCiAJfSwgew0KKwkJLmNvbXBhdGli bGUgPSAmcXVvdDttZWRpYXRlayxtdDY3OTctcHdyYXAmcXVvdDssDQorCQkuZGF0YSA9ICZhbXA7 cHdyYXBfbXQ2Nzk3LA0KKwl9LCB7DQogCQkvKiBzZW50aW5lbCAqLw0KIAl9DQogfTsNCkBAIC0x NTAzLDExICsxNTgxLDEzIEBAIHN0YXRpYyBpbnQgcHdyYXBfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikNCiAJaWYgKElTX0VSUih3cnAtJmd0O2Jhc2UpKQ0KIAkJcmV0dXJuIFBU Ul9FUlIod3JwLSZndDtiYXNlKTsNCiANCi0Jd3JwLSZndDtyc3RjID0gZGV2bV9yZXNldF9jb250 cm9sX2dldCh3cnAtJmd0O2RldiwgJnF1b3Q7cHdyYXAmcXVvdDspOw0KLQlpZiAoSVNfRVJSKHdy cC0mZ3Q7cnN0YykpIHsNCi0JCXJldCA9IFBUUl9FUlIod3JwLSZndDtyc3RjKTsNCi0JCWRldl9k Ymcod3JwLSZndDtkZXYsICZxdW90O2Nhbm5vdCBnZXQgcHdyYXAgcmVzZXQ6ICVkXG4mcXVvdDss IHJldCk7DQotCQlyZXR1cm4gcmV0Ow0KKwlpZiAoSEFTX0NBUCh3cnAtJmd0O21hc3Rlci0mZ3Q7 Y2FwcywgUFdSQVBfQ0FQX1JFU0VUKSkgew0KKwkJd3JwLSZndDtyc3RjID0gZGV2bV9yZXNldF9j b250cm9sX2dldCh3cnAtJmd0O2RldiwgJnF1b3Q7cHdyYXAmcXVvdDspOw0KKwkJaWYgKElTX0VS Uih3cnAtJmd0O3JzdGMpKSB7DQorCQkJcmV0ID0gUFRSX0VSUih3cnAtJmd0O3JzdGMpOw0KKwkJ CWRldl9kYmcod3JwLSZndDtkZXYsICZxdW90O2Nhbm5vdCBnZXQgcHdyYXAgcmVzZXQ6ICVkXG4m cXVvdDssIHJldCk7DQorCQkJcmV0dXJuIHJldDsNCisJCX0NCiAJfQ0KIA0KIAlpZiAoSEFTX0NB UCh3cnAtJmd0O21hc3Rlci0mZ3Q7Y2FwcywgUFdSQVBfQ0FQX0JSSURHRSkpIHsNCkBAIC0xNTQ5 LDkgKzE2MjksMTcgQEAgc3RhdGljIGludCBwd3JhcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQ0KIAlpZiAocmV0KQ0KIAkJZ290byBlcnJfb3V0MTsNCiANCi0JLyogRW5hYmxl IGludGVybmFsIGR5bmFtaWMgY2xvY2sgKi8NCi0JcHdyYXBfd3JpdGVsKHdycCwgMSwgUFdSQVBf RENNX0VOKTsNCi0JcHdyYXBfd3JpdGVsKHdycCwgMCwgUFdSQVBfRENNX0RCQ19QUkQpOw0KKwkv Kg0KKwkgKiBhZGQgZGNtIGNhcGFiaWxpdHkgY2hlY2sNCisJICovDQorCWlmIChIQVNfQ0FQKHdy cC0mZ3Q7bWFzdGVyLSZndDtjYXBzLCBQV1JBUF9DQVBfRENNKSkgew0KKwkJaWYgKHdycC0mZ3Q7 bWFzdGVyLSZndDt0eXBlID09IFBXUkFQX01UNjc5NykNCisJCQlwd3JhcF93cml0ZWwod3JwLCAz LCBQV1JBUF9EQ01fRU4pOw0KKwkJZWxzZQ0KKwkJCXB3cmFwX3dyaXRlbCh3cnAsIDEsIFBXUkFQ X0RDTV9FTik7DQorDQorCQlwd3JhcF93cml0ZWwod3JwLCAwLCBQV1JBUF9EQ01fREJDX1BSRCk7 DQorCX0NCiANCiAJLyoNCiAJICogVGhlIFBNSUMgY291bGQgYWxyZWFkeSBiZSBpbml0aWFsaXpl ZCBieSB0aGUgYm9vdGxvYWRlci4NCkBAIC0xNTgwLDYgKzE2NjgsMTIgQEAgc3RhdGljIGludCBw d3JhcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAlwd3JhcF93cml0ZWwo d3JwLCB3cnAtJmd0O21hc3Rlci0mZ3Q7d2R0X3NyYywgUFdSQVBfV0RUX1NSQ19FTik7DQogCXB3 cmFwX3dyaXRlbCh3cnAsIDB4MSwgUFdSQVBfVElNRVJfRU4pOw0KIAlwd3JhcF93cml0ZWwod3Jw LCB3cnAtJmd0O21hc3Rlci0mZ3Q7aW50X2VuX2FsbCwgUFdSQVBfSU5UX0VOKTsNCisJLyoNCisJ ICogV2UgYWRkIElOVDEgaW50ZXJydXB0IHRvIGhhbmRsZSBzdGFydmF0aW9uIGFuZCByZXF1ZXN0 IGV4Y2VwdGlvbg0KKwkgKiBJZiB3ZSBzdXBwb3J0IGl0LCB3ZSBzaG91bGQgZW5hYmxlIHRoZW0g aGVyZS4NCisJICovDQorCWlmIChIQVNfQ0FQKHdycC0mZ3Q7bWFzdGVyLSZndDtjYXBzLCBQV1JB UF9DQVBfSU5UMV9FTikpDQorCQlwd3JhcF93cml0ZWwod3JwLCB3cnAtJmd0O21hc3Rlci0mZ3Q7 aW50MV9lbl9hbGwsIFBXUkFQX0lOVDFfRU4pOw0KIA0KIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJx KHBkZXYsIDApOw0KIAlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKHdycC0mZ3Q7ZGV2LCBpcnEsIHB3 cmFwX2ludGVycnVwdCwNCi0tIA0KMi4xMi41DQoNCjwvcHJlPjwhLS10eXBlOnRleHQtLT48IS0t ey0tPjxwcmU+KioqKioqKioqKioqKiBFbWFpbCBDb25maWRlbnRpYWxpdHkgTm90aWNlICoqKioq KioqKioqKioqKioqKioqDQpUaGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMgZS1tYWls IG1lc3NhZ2UgKGluY2x1ZGluZyBhbnkgDQphdHRhY2htZW50cykgbWF5IGJlIGNvbmZpZGVudGlh bCwgcHJvcHJpZXRhcnksIHByaXZpbGVnZWQsIG9yIG90aGVyd2lzZQ0KZXhlbXB0IGZyb20gZGlz Y2xvc3VyZSB1bmRlciBhcHBsaWNhYmxlIGxhd3MuIEl0IGlzIGludGVuZGVkIHRvIGJlIA0KY29u dmV5ZWQgb25seSB0byB0aGUgZGVzaWduYXRlZCByZWNpcGllbnQocykuIEFueSB1c2UsIGRpc3Nl bWluYXRpb24sIA0KZGlzdHJpYnV0aW9uLCBwcmludGluZywgcmV0YWluaW5nIG9yIGNvcHlpbmcg b2YgdGhpcyBlLW1haWwgKGluY2x1ZGluZyBpdHMgDQphdHRhY2htZW50cykgYnkgdW5pbnRlbmRl ZCByZWNpcGllbnQocykgaXMgc3RyaWN0bHkgcHJvaGliaXRlZCBhbmQgbWF5IA0KYmUgdW5sYXdm dWwuIElmIHlvdSBhcmUgbm90IGFuIGludGVuZGVkIHJlY2lwaWVudCBvZiB0aGlzIGUtbWFpbCwg b3IgYmVsaWV2ZSANCnRoYXQgeW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBlLW1haWwgaW4gZXJyb3Is IHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciANCmltbWVkaWF0ZWx5IChieSByZXBseWluZyB0byB0 aGlzIGUtbWFpbCksIGRlbGV0ZSBhbnkgYW5kIGFsbCBjb3BpZXMgb2YgDQp0aGlzIGUtbWFpbCAo aW5jbHVkaW5nIGFueSBhdHRhY2htZW50cykgZnJvbSB5b3VyIHN5c3RlbSwgYW5kIGRvIG5vdA0K ZGlzY2xvc2UgdGhlIGNvbnRlbnQgb2YgdGhpcyBlLW1haWwgdG8gYW55IG90aGVyIHBlcnNvbi4g VGhhbmsgeW91ITwvcHJlPjwhLS19LS0+ --__=_Part_Boundary_007_1274330412.6805361 Content-Type: text/plain Content-Transfer-Encoding: base64 RnJvbTogQXJndXMgTGluIDxhcmd1cy5saW5AbWVkaWF0ZWsuY29tPg0KDQptdDY3OTcgaXMgYSBo aWdobHkgaW50ZWdyYXRlZCBTb0NzLCBpdCB1c2VzIG10NjM1MSBmb3IgcG93ZXINCm1hbmFnZW1l bnQuIFdlIG5lZWQgdG8gYWRkIHB3cmFwIHN1cHBvcnQgdG8gYWNjZXNzIG10NjM1MS4NClB3cmFw IG9mIG10Njc5NyBzdXBwb3J0IG5ldyBmZWF0dXJlIGluY2x1ZGUgc3RhcnZhdGlvbiBhbmQgY2hh bm5lbA0KcmVxdWVzdCBleGNlcHRpb24gaW50ZXJydXB0LCBkeW5hbWljIHN0YXJ2YXRpb24gcHJp b3JpdHkNCmFkanVzdG1lbnQgbWVjaGFuaXNtLg0KDQpTaWduZWQtb2ZmLWJ5OiBBcmd1cyBMaW4g PGFyZ3VzLmxpbkBtZWRpYXRlay5jb20+DQotLS0NCiBkcml2ZXJzL3NvYy9tZWRpYXRlay9tdGst cG1pYy13cmFwLmMgfCAxMTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0NCiAx IGZpbGUgY2hhbmdlZCwgMTAyIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQoNCmRpZmYg LS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstcG1pYy13cmFwLmMgYi9kcml2ZXJzL3Nv Yy9tZWRpYXRlay9tdGstcG1pYy13cmFwLmMNCmluZGV4IGE2MzY2ZjE0N2I3OS4uMGQ0YTJkYWU2 OTEyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXBtaWMtd3JhcC5jDQor KysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstcG1pYy13cmFwLmMNCkBAIC0yODQsNiArMjg0 LDEyIEBAIGVudW0gcHdyYXBfcmVncyB7DQogCVBXUkFQX0RWRlNfV0RBVEE3LA0KIAlQV1JBUF9T UE1JTkZfU1RBLA0KIAlQV1JBUF9DSVBIRVJfRU4sDQorDQorCS8qIE1UNjc5NyBzZXJpZXMgcmVn cyAqLw0KKwlQV1JBUF9JTlQxX0VOLA0KKwlQV1JBUF9JTlQxX0ZMR19SQVcsDQorCVBXUkFQX0lO VDFfRkxHLA0KKwlQV1JBUF9JTlQxX0NMUiwNCiB9Ow0KIA0KIHN0YXRpYyBpbnQgbXQyNzAxX3Jl Z3NbXSA9IHsNCkBAIC0zNzIsNiArMzc4LDQzIEBAIHN0YXRpYyBpbnQgbXQyNzAxX3JlZ3NbXSA9 IHsNCiAJW1BXUkFQX0FEQ19SREFUQV9BRERSMl0gPQkweDE1NCwNCiB9Ow0KIA0KK3N0YXRpYyBp bnQgbXQ2Nzk3X3JlZ3NbXSA9IHsNCisJW1BXUkFQX01VWF9TRUxdID0JCTB4MCwNCisJW1BXUkFQ X1dSQVBfRU5dID0JCTB4NCwNCisJW1BXUkFQX0RJT19FTl0gPQkJMHg4LA0KKwlbUFdSQVBfU0lE TFldID0JCQkweEMsDQorCVtQV1JBUF9SRERNWV0gPQkJCTB4MTAsDQorCVtQV1JBUF9DU0hFWFRf V1JJVEVdID0JCTB4MTgsDQorCVtQV1JBUF9DU0hFWFRfUkVBRF0gPQkJMHgxQywNCisJW1BXUkFQ X0NTTEVYVF9TVEFSVF0gPQkJMHgyMCwNCisJW1BXUkFQX0NTTEVYVF9FTkRdID0JCTB4MjQsDQor CVtQV1JBUF9TVEFVUERfUFJEXSA9CQkweDI4LA0KKwlbUFdSQVBfSEFSQl9IUFJJT10gPQkJMHg1 MCwNCisJW1BXUkFQX0hJUFJJT19BUkJfRU5dID0JCTB4NTQsDQorCVtQV1JBUF9NQU5fRU5dID0J CTB4NjAsDQorCVtQV1JBUF9NQU5fQ01EXSA9CQkweDY0LA0KKwlbUFdSQVBfV0FDUzBfRU5dID0J CTB4NzAsDQorCVtQV1JBUF9XQUNTMV9FTl0gPQkJMHg4NCwNCisJW1BXUkFQX1dBQ1MyX0VOXSA9 CQkweDk4LA0KKwlbUFdSQVBfSU5JVF9ET05FMl0gPQkJMHg5QywNCisJW1BXUkFQX1dBQ1MyX0NN RF0gPQkJMHhBMCwNCisJW1BXUkFQX1dBQ1MyX1JEQVRBXSA9CQkweEE0LA0KKwlbUFdSQVBfV0FD UzJfVkxEQ0xSXSA9CQkweEE4LA0KKwlbUFdSQVBfSU5UX0VOXSA9CQkweEMwLA0KKwlbUFdSQVBf SU5UX0ZMR19SQVddID0JCTB4QzQsDQorCVtQV1JBUF9JTlRfRkxHXSA9CQkweEM4LA0KKwlbUFdS QVBfSU5UX0NMUl0gPQkJMHhDQywNCisJW1BXUkFQX0lOVDFfRU5dID0JCTB4RDAsDQorCVtQV1JB UF9JTlQxX0ZMR19SQVddID0JCTB4RDQsDQorCVtQV1JBUF9JTlQxX0ZMR10gPQkJMHhEOCwNCisJ W1BXUkFQX0lOVDFfQ0xSXSA9CQkweERDLA0KKwlbUFdSQVBfVElNRVJfRU5dID0JCTB4RjQsDQor CVtQV1JBUF9XRFRfVU5JVF0gPQkJMHhGQywNCisJW1BXUkFQX1dEVF9TUkNfRU5dID0JCTB4MTAw LA0KKwlbUFdSQVBfRENNX0VOXSA9CQkweDFDQywNCisJW1BXUkFQX0RDTV9EQkNfUFJEXSA9CQkw eDFENCwNCit9Ow0KKw0KIHN0YXRpYyBpbnQgbXQ3NjIyX3JlZ3NbXSA9IHsNCiAJW1BXUkFQX01V WF9TRUxdID0JCTB4MCwNCiAJW1BXUkFQX1dSQVBfRU5dID0JCTB4NCwNCkBAIC02NDcsNiArNjkw LDcgQEAgZW51bSBwbWljX3R5cGUgew0KIA0KIGVudW0gcHdyYXBfdHlwZSB7DQogCVBXUkFQX01U MjcwMSwNCisJUFdSQVBfTVQ2Nzk3LA0KIAlQV1JBUF9NVDc2MjIsDQogCVBXUkFQX01UODEzNSwN CiAJUFdSQVBfTVQ4MTczLA0KQEAgLTEwMDYsNiArMTA1MCwxMiBAQCBzdGF0aWMgdm9pZCBwd3Jh cF9pbml0X2NoaXBfc2VsZWN0X2V4dChzdHJ1Y3QgcG1pY193cmFwcGVyICp3cnAsIHU4IGhleHRf d3JpdGUsDQogc3RhdGljIGludCBwd3JhcF9jb21tb25faW5pdF9yZWdfY2xvY2soc3RydWN0IHBt aWNfd3JhcHBlciAqd3JwKQ0KIHsNCiAJc3dpdGNoICh3cnAtPm1hc3Rlci0+dHlwZSkgew0KKwlj YXNlIFBXUkFQX01UNjc5NzoNCisJCXB3cmFwX3dyaXRlbCh3cnAsIDB4OCwgUFdSQVBfUkRETVkp Ow0KKwkJcHdyYXBfd3JpdGUod3JwLCB3cnAtPnNsYXZlLT5kZXdfcmVnc1tQV1JBUF9ERVdfUkRE TVlfTk9dLA0KKwkJCSAgICAweDgpOw0KKwkJcHdyYXBfaW5pdF9jaGlwX3NlbGVjdF9leHQod3Jw LCAweDg4LCAweDU1LCAzLCAwKTsNCisJCWJyZWFrOw0KIAljYXNlIFBXUkFQX01UODE3MzoNCiAJ CXB3cmFwX2luaXRfY2hpcF9zZWxlY3RfZXh0KHdycCwgMCwgNCwgMiwgMik7DQogCQlicmVhazsN CkBAIC0xMDc2LDExICsxMTI2LDE0IEBAIHN0YXRpYyBpbnQgcHdyYXBfaW5pdF9jaXBoZXIoc3Ry dWN0IHBtaWNfd3JhcHBlciAqd3JwKQ0KIAkJYnJlYWs7DQogCWNhc2UgUFdSQVBfTVQyNzAxOg0K IAljYXNlIFBXUkFQX01UODE3MzoNCisJY2FzZSBQV1JBUF9NVDY3OTc6DQogCQlwd3JhcF93cml0 ZWwod3JwLCAxLCBQV1JBUF9DSVBIRVJfRU4pOw0KIAkJYnJlYWs7DQogCWNhc2UgUFdSQVBfTVQ3 NjIyOg0KIAkJcHdyYXBfd3JpdGVsKHdycCwgMCwgUFdSQVBfQ0lQSEVSX0VOKTsNCiAJCWJyZWFr Ow0KKwlkZWZhdWx0Og0KKwkJYnJlYWs7DQogCX0NCiANCiAJLyogQ29uZmlnIGNpcGhlciBtb2Rl IEBQTUlDICovDQpAQCAtMTMyNSw2ICsxMzc4LDE1IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBwd3Jh cF9pbnRlcnJ1cHQoaW50IGlycW5vLCB2b2lkICpkZXZfaWQpDQogDQogCXB3cmFwX3dyaXRlbCh3 cnAsIDB4ZmZmZmZmZmYsIFBXUkFQX0lOVF9DTFIpOw0KIA0KKwkvKiBJZiB3ZSBzdXBwb3J0IElO VDEgaW50ZXJydXB0LCB3ZSBhbHNvIG5lZWQgdG8gY2xlYXIgaXQgKi8NCisJaWYgKEhBU19DQVAo d3JwLT5tYXN0ZXItPmNhcHMsIFBXUkFQX0NBUF9JTlQxX0VOKSkgew0KKwkJcmRhdGEgPSBwd3Jh cF9yZWFkbCh3cnAsIFBXUkFQX0lOVDFfRkxHKTsNCisNCisJCWRldl9lcnIod3JwLT5kZXYsICJ1 bmV4cGVjdGVkIGludGVycnVwdCBpbnQxPTB4JXhcbiIsIHJkYXRhKTsNCisNCisJCXB3cmFwX3dy aXRlbCh3cnAsIHJkYXRhLCBQV1JBUF9JTlQxX0NMUik7DQorCX0NCisNCiAJcmV0dXJuIElSUV9I QU5ETEVEOw0KIH0NCiANCkBAIC0xNDQ2LDYgKzE1MDgsMTkgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBwbWljX3dyYXBwZXJfdHlwZSBwd3JhcF9tdDgxNzMgPSB7DQogCS5pbml0X3NvY19zcGVjaWZp YyA9IHB3cmFwX210ODE3M19pbml0X3NvY19zcGVjaWZpYywNCiB9Ow0KIA0KK3N0YXRpYyBjb25z dCBzdHJ1Y3QgcG1pY193cmFwcGVyX3R5cGUgcHdyYXBfbXQ2Nzk3ID0gew0KKwkucmVncyA9IG10 Njc5N19yZWdzLA0KKwkudHlwZSA9IFBXUkFQX01UNjc5NywNCisJLmFyYl9lbl9hbGwgPSAweDAx ZmZmLA0KKwkuaW50X2VuX2FsbCA9IDB4ZmZmZmZmYzYsDQorCS5pbnQxX2VuX2FsbCA9IDB4MDAw MWZmZmYsDQorCS5zcGlfdyA9IFBXUkFQX01BTl9DTURfU1BJX1dSSVRFLA0KKwkud2R0X3NyYyA9 IFBXUkFQX1dEVF9TUkNfTUFTS19BTEwsDQorCS5jYXBzID0gUFdSQVBfQ0FQX0RDTSB8IFBXUkFQ X0NBUF9JTlQxX0VOLA0KKwkuaW5pdF9yZWdfY2xvY2sgPSBwd3JhcF9jb21tb25faW5pdF9yZWdf Y2xvY2ssDQorCS5pbml0X3NvY19zcGVjaWZpYyA9IE5VTEwsDQorfTsNCisNCiBzdGF0aWMgY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9wd3JhcF9tYXRjaF90YmxbXSA9IHsNCiAJew0KIAkJ LmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQyNzAxLXB3cmFwIiwNCkBAIC0xNDYwLDYgKzE1MzUs OSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9wd3JhcF9tYXRjaF90Ymxb XSA9IHsNCiAJCS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1wd3JhcCIsDQogCQkuZGF0 YSA9ICZwd3JhcF9tdDgxNzMsDQogCX0sIHsNCisJCS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10 Njc5Ny1wd3JhcCIsDQorCQkuZGF0YSA9ICZwd3JhcF9tdDY3OTcsDQorCX0sIHsNCiAJCS8qIHNl bnRpbmVsICovDQogCX0NCiB9Ow0KQEAgLTE1MDMsMTEgKzE1ODEsMTMgQEAgc3RhdGljIGludCBw d3JhcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAlpZiAoSVNfRVJSKHdy cC0+YmFzZSkpDQogCQlyZXR1cm4gUFRSX0VSUih3cnAtPmJhc2UpOw0KIA0KLQl3cnAtPnJzdGMg PSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0KHdycC0+ZGV2LCAicHdyYXAiKTsNCi0JaWYgKElTX0VS Uih3cnAtPnJzdGMpKSB7DQotCQlyZXQgPSBQVFJfRVJSKHdycC0+cnN0Yyk7DQotCQlkZXZfZGJn KHdycC0+ZGV2LCAiY2Fubm90IGdldCBwd3JhcCByZXNldDogJWRcbiIsIHJldCk7DQotCQlyZXR1 cm4gcmV0Ow0KKwlpZiAoSEFTX0NBUCh3cnAtPm1hc3Rlci0+Y2FwcywgUFdSQVBfQ0FQX1JFU0VU KSkgew0KKwkJd3JwLT5yc3RjID0gZGV2bV9yZXNldF9jb250cm9sX2dldCh3cnAtPmRldiwgInB3 cmFwIik7DQorCQlpZiAoSVNfRVJSKHdycC0+cnN0YykpIHsNCisJCQlyZXQgPSBQVFJfRVJSKHdy cC0+cnN0Yyk7DQorCQkJZGV2X2RiZyh3cnAtPmRldiwgImNhbm5vdCBnZXQgcHdyYXAgcmVzZXQ6 ICVkXG4iLCByZXQpOw0KKwkJCXJldHVybiByZXQ7DQorCQl9DQogCX0NCiANCiAJaWYgKEhBU19D QVAod3JwLT5tYXN0ZXItPmNhcHMsIFBXUkFQX0NBUF9CUklER0UpKSB7DQpAQCAtMTU0OSw5ICsx NjI5LDE3IEBAIHN0YXRpYyBpbnQgcHdyYXBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikNCiAJaWYgKHJldCkNCiAJCWdvdG8gZXJyX291dDE7DQogDQotCS8qIEVuYWJsZSBpbnRl cm5hbCBkeW5hbWljIGNsb2NrICovDQotCXB3cmFwX3dyaXRlbCh3cnAsIDEsIFBXUkFQX0RDTV9F Tik7DQotCXB3cmFwX3dyaXRlbCh3cnAsIDAsIFBXUkFQX0RDTV9EQkNfUFJEKTsNCisJLyoNCisJ ICogYWRkIGRjbSBjYXBhYmlsaXR5IGNoZWNrDQorCSAqLw0KKwlpZiAoSEFTX0NBUCh3cnAtPm1h c3Rlci0+Y2FwcywgUFdSQVBfQ0FQX0RDTSkpIHsNCisJCWlmICh3cnAtPm1hc3Rlci0+dHlwZSA9 PSBQV1JBUF9NVDY3OTcpDQorCQkJcHdyYXBfd3JpdGVsKHdycCwgMywgUFdSQVBfRENNX0VOKTsN CisJCWVsc2UNCisJCQlwd3JhcF93cml0ZWwod3JwLCAxLCBQV1JBUF9EQ01fRU4pOw0KKw0KKwkJ cHdyYXBfd3JpdGVsKHdycCwgMCwgUFdSQVBfRENNX0RCQ19QUkQpOw0KKwl9DQogDQogCS8qDQog CSAqIFRoZSBQTUlDIGNvdWxkIGFscmVhZHkgYmUgaW5pdGlhbGl6ZWQgYnkgdGhlIGJvb3Rsb2Fk ZXIuDQpAQCAtMTU4MCw2ICsxNjY4LDEyIEBAIHN0YXRpYyBpbnQgcHdyYXBfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikNCiAJcHdyYXBfd3JpdGVsKHdycCwgd3JwLT5tYXN0ZXIt PndkdF9zcmMsIFBXUkFQX1dEVF9TUkNfRU4pOw0KIAlwd3JhcF93cml0ZWwod3JwLCAweDEsIFBX UkFQX1RJTUVSX0VOKTsNCiAJcHdyYXBfd3JpdGVsKHdycCwgd3JwLT5tYXN0ZXItPmludF9lbl9h bGwsIFBXUkFQX0lOVF9FTik7DQorCS8qDQorCSAqIFdlIGFkZCBJTlQxIGludGVycnVwdCB0byBo YW5kbGUgc3RhcnZhdGlvbiBhbmQgcmVxdWVzdCBleGNlcHRpb24NCisJICogSWYgd2Ugc3VwcG9y dCBpdCwgd2Ugc2hvdWxkIGVuYWJsZSB0aGVtIGhlcmUuDQorCSAqLw0KKwlpZiAoSEFTX0NBUCh3 cnAtPm1hc3Rlci0+Y2FwcywgUFdSQVBfQ0FQX0lOVDFfRU4pKQ0KKwkJcHdyYXBfd3JpdGVsKHdy cCwgd3JwLT5tYXN0ZXItPmludDFfZW5fYWxsLCBQV1JBUF9JTlQxX0VOKTsNCiANCiAJaXJxID0g cGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsNCiAJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycSh3cnAt PmRldiwgaXJxLCBwd3JhcF9pbnRlcnJ1cHQsDQotLSANCjIuMTIuNQ0K --__=_Part_Boundary_007_1274330412.6805361-- --__=_Part_Boundary_006_1141830149.1544906792--