From mboxrd@z Thu Jan 1 00:00:00 1970 From: CK Hu Subject: Re: [PATCH v3, 11/27] drm/mediatek: add mmsys private data for ddp path config Date: Fri, 14 Jun 2019 11:28:34 +0800 Message-ID: <1560482914.16718.10.camel@mtksdaap41> References: <1559734986-7379-1-git-send-email-yongqiang.niu@mediatek.com> <1559734986-7379-12-git-send-email-yongqiang.niu@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1559734986-7379-12-git-send-email-yongqiang.niu@mediatek.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: yongqiang.niu@mediatek.com Cc: Mark Rutland , devicetree@vger.kernel.org, David Airlie , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Rob Herring , linux-mediatek@lists.infradead.org, Matthias Brugger , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org SGksIFlvbmdxaWFuZzoKCk9uIFdlZCwgMjAxOS0wNi0wNSBhdCAxOTo0MiArMDgwMCwgeW9uZ3Fp YW5nLm5pdUBtZWRpYXRlay5jb20gd3JvdGU6Cj4gRnJvbTogWW9uZ3FpYW5nIE5pdSA8eW9uZ3Fp YW5nLm5pdUBtZWRpYXRlay5jb20+Cj4gCj4gVGhpcyBwYXRjaCBhZGQgbW1zeXMgcHJpdmF0ZSBk YXRhIGZvciBkZHAgcGF0aCBjb25maWcKPiBhbGwgdGhlc2UgcmVnaXN0ZXIgb2Zmc2V0IGFuZCB2 YWx1ZSB3aWxsIGJlIGRpZmZlcmVudCBpbiBmdXR1cmUgU09DCj4gYWRkIHRoZXNlIGRlZmluZSBp bnRvIG1tc3lzIHByaXZhdGUgZGF0YQo+IAl1MzIgb3ZsMF9tb3V0X2VuOwo+IAl1MzIgcmRtYTBf c291dF9zZWxfaW47Cj4gCXUzMiByZG1hMF9zb3V0X2NvbG9yMDsKPiAJdTMyIHJkbWExX3NvdXRf c2VsX2luOwo+IAl1MzIgcmRtYTFfc291dF9kcGkwOwo+IAl1MzIgcmRtYTFfc291dF9kc2kwOwo+ IAl1MzIgZHBpMF9zZWxfaW47Cj4gCXUzMiBkcGkwX3NlbF9pbl9yZG1hMTsKPiAJdTMyIGRzaTBf c2VsX2luOwo+IAl1MzIgZHNpMF9zZWxfaW5fcmRtYTE7Cj4gCj4gU2lnbmVkLW9mZi1ieTogWW9u Z3FpYW5nIE5pdSA8eW9uZ3FpYW5nLm5pdUBtZWRpYXRlay5jb20+Cj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYyB8ICAgNCArKwo+ICBkcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuYyAgfCAxMDAgKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmggIHwgICA1 ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jICB8ICAgNSArKwo+ ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCAgfCAgIDQgKysKPiAgNSBm aWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jCj4gaW5kZXggYWNhZDA4OC4uMTFlMzQw NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMKPiBAQCAtNTAs NiArNTAsNyBAQCBzdHJ1Y3QgbXRrX2RybV9jcnRjIHsKPiAgCWJvb2wJCQkJcGVuZGluZ19wbGFu ZXM7Cj4gIAo+ICAJdm9pZCBfX2lvbWVtCQkJKmNvbmZpZ19yZWdzOwo+ICsJY29uc3Qgc3RydWN0 IG10a19tbXN5c19yZWdfZGF0YSAqbW1zeXNfcmVnX2RhdGE7Cj4gIAlzdHJ1Y3QgbXRrX2Rpc3Bf bXV0ZXgJCSptdXRleDsKPiAgCXVuc2lnbmVkIGludAkJCWRkcF9jb21wX25yOwo+ICAJc3RydWN0 IG10a19kZHBfY29tcAkJKipkZHBfY29tcDsKPiBAQCAtMjcxLDYgKzI3Miw3IEBAIHN0YXRpYyBp bnQgbXRrX2NydGNfZGRwX2h3X2luaXQoc3RydWN0IG10a19kcm1fY3J0YyAqbXRrX2NydGMpCj4g IAlEUk1fREVCVUdfRFJJVkVSKCJtZWRpYXRla19kZHBfZGRwX3BhdGhfc2V0dXBcbiIpOwo+ICAJ Zm9yIChpID0gMDsgaSA8IG10a19jcnRjLT5kZHBfY29tcF9uciAtIDE7IGkrKykgewo+ICAJCW10 a19kZHBfYWRkX2NvbXBfdG9fcGF0aChtdGtfY3J0Yy0+Y29uZmlnX3JlZ3MsCj4gKwkJCQkJIG10 a19jcnRjLT5tbXN5c19yZWdfZGF0YSwKPiAgCQkJCQkgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5p ZCwKPiAgCQkJCQkgbXRrX2NydGMtPmRkcF9jb21wW2kgKyAxXS0+aWQpOwo+ICAJCW10a19kaXNw X211dGV4X2FkZF9jb21wKG10a19jcnRjLT5tdXRleCwKPiBAQCAtMzE5LDYgKzMyMSw3IEBAIHN0 YXRpYyB2b2lkIG10a19jcnRjX2RkcF9od19maW5pKHN0cnVjdCBtdGtfZHJtX2NydGMgKm10a19j cnRjKQo+ICAJbXRrX2Rpc3BfbXV0ZXhfZGlzYWJsZShtdGtfY3J0Yy0+bXV0ZXgpOwo+ICAJZm9y IChpID0gMDsgaSA8IG10a19jcnRjLT5kZHBfY29tcF9uciAtIDE7IGkrKykgewo+ICAJCW10a19k ZHBfcmVtb3ZlX2NvbXBfZnJvbV9wYXRoKG10a19jcnRjLT5jb25maWdfcmVncywKPiArCQkJCQkg ICAgICBtdGtfY3J0Yy0+bW1zeXNfcmVnX2RhdGEsCj4gIAkJCQkJICAgICAgbXRrX2NydGMtPmRk cF9jb21wW2ldLT5pZCwKPiAgCQkJCQkgICAgICBtdGtfY3J0Yy0+ZGRwX2NvbXBbaSArIDFdLT5p ZCk7Cj4gIAkJbXRrX2Rpc3BfbXV0ZXhfcmVtb3ZlX2NvbXAobXRrX2NydGMtPm11dGV4LAo+IEBA IC01NjEsNiArNTY0LDcgQEAgaW50IG10a19kcm1fY3J0Y19jcmVhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRybV9kZXYsCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gIAo+ICAJbXRrX2NydGMtPmNvbmZp Z19yZWdzID0gcHJpdi0+Y29uZmlnX3JlZ3M7Cj4gKwltdGtfY3J0Yy0+bW1zeXNfcmVnX2RhdGEg PSBwcml2LT5yZWdfZGF0YTsKPiAgCW10a19jcnRjLT5kZHBfY29tcF9uciA9IHBhdGhfbGVuOwo+ ICAJbXRrX2NydGMtPmRkcF9jb21wID0gZGV2bV9rbWFsbG9jX2FycmF5KGRldiwgbXRrX2NydGMt PmRkcF9jb21wX25yLAo+ICAJCQkJCQlzaXplb2YoKm10a19jcnRjLT5kZHBfY29tcCksCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcC5jIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMKPiBpbmRleCAxYmJhYmU2Li5jOGFjODky IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcC5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwLmMKPiBAQCAtMTQ1LDYg KzE0NSwxNyBAQAo+ICAjZGVmaW5lIERQSV9TRUxfSU5fQkxTCQkJMHgwCj4gICNkZWZpbmUgRFNJ X1NFTF9JTl9SRE1BCQkJMHgxCj4gIAo+ICsjZGVmaW5lIERJU1BfUkVHX09WTDBfTU9VVF9FTihk YXRhKQkJKChkYXRhKS0+b3ZsMF9tb3V0X2VuKQo+ICsjZGVmaW5lIERJU1BfUkVHX0RQSTBfU0VM X0lOKGRhdGEpCQkoKGRhdGEpLT5kcGkwX3NlbF9pbikKPiArI2RlZmluZSBESVNQX1JFR19EUEkw X1NFTF9JTl9SRE1BMShkYXRhKQkoKGRhdGEpLT5kcGkwX3NlbF9pbl9yZG1hMSkKPiArI2RlZmlu ZSBESVNQX1JFR19EU0kwX1NFTF9JTihkYXRhKQkJKChkYXRhKS0+ZHNpMF9zZWxfaW4pCj4gKyNk ZWZpbmUgRElTUF9SRUdfRFNJMF9TRUxfSU5fUkRNQTEoZGF0YSkJKChkYXRhKS0+ZHNpMF9zZWxf aW5fcmRtYTEpCj4gKyNkZWZpbmUgRElTUF9SRUdfUkRNQTBfU09VVF9TRUxfSU4oZGF0YSkJKChk YXRhKS0+cmRtYTBfc291dF9zZWxfaW4pCj4gKyNkZWZpbmUgRElTUF9SRUdfUkRNQTBfU09VVF9D T0xPUjAoZGF0YSkJKChkYXRhKS0+cmRtYTBfc291dF9jb2xvcjApCj4gKyNkZWZpbmUgRElTUF9S RUdfUkRNQTFfU09VVF9TRUxfSU4oZGF0YSkJKChkYXRhKS0+cmRtYTFfc291dF9zZWxfaW4pCj4g KyNkZWZpbmUgRElTUF9SRUdfUkRNQTFfU09VVF9EUEkwKGRhdGEpCQkoKGRhdGEpLT5yZG1hMV9z b3V0X2RwaTApCj4gKyNkZWZpbmUgRElTUF9SRUdfUkRNQTFfU09VVF9EU0kwKGRhdGEpCQkoKGRh dGEpLT5yZG1hMV9zb3V0X2RzaTApCgpJIGRvZXMgbm90IHNlZSBhbnkgYmVuZWZpdCB0byBpbnZl bnQgdGhlc2UgbWFjcm8sIGNhbGxlciBjb3VsZCBkaXJlY3RseQp1c2UgZGF0YS0+eHh4LgoKcmRt YTBfc291dF9zZWxfaW4sIHJkbWEwX3NvdXRfY29sb3IwLCBhbmQgcmRtYTFfc291dF9kc2kwIGFy ZSBub3QgdXNlZAppbiB0aGlzIHBhdGNoLCBzbyByZW1vdmUgZnJvbSB0aGlzIHBhdGNoLgoKPiAr Cj4gIHN0cnVjdCBtdGtfZGlzcF9tdXRleCB7Cj4gIAlpbnQgaWQ7Cj4gIAlib29sIGNsYWltZWQ7 Cj4gQEAgLTE3Niw2ICsxODcsMTkgQEAgc3RydWN0IG10a19kZHAgewo+ICAJY29uc3Qgc3RydWN0 IG10a19kZHBfZGF0YQkqZGF0YTsKPiAgfTsKPiAgCj4gK3N0cnVjdCBtdGtfbW1zeXNfcmVnX2Rh dGEgewo+ICsJdTMyIG92bDBfbW91dF9lbjsKPiArCXUzMiByZG1hMF9zb3V0X3NlbF9pbjsKPiAr CXUzMiByZG1hMF9zb3V0X2NvbG9yMDsKPiArCXUzMiByZG1hMV9zb3V0X3NlbF9pbjsKPiArCXUz MiByZG1hMV9zb3V0X2RwaTA7Cj4gKwl1MzIgcmRtYTFfc291dF9kc2kwOwo+ICsJdTMyIGRwaTBf c2VsX2luOwo+ICsJdTMyIGRwaTBfc2VsX2luX3JkbWExOwo+ICsJdTMyIGRzaTBfc2VsX2luOwo+ ICsJdTMyIGRzaTBfc2VsX2luX3JkbWExOwo+ICt9Owo+ICsKPiAgc3RhdGljIGNvbnN0IHVuc2ln bmVkIGludCBtdDI3MDFfbXV0ZXhfbW9kW0REUF9DT01QT05FTlRfSURfTUFYXSA9IHsKPiAgCVtE RFBfQ09NUE9ORU5UX0JMU10gPSBNVDI3MDFfTVVURVhfTU9EX0RJU1BfQkxTLAo+ICAJW0REUF9D T01QT05FTlRfQ09MT1IwXSA9IE1UMjcwMV9NVVRFWF9NT0RfRElTUF9DT0xPUiwKPiBAQCAtMjU0 LDE3ICsyNzgsMzQgQEAgc3RydWN0IG10a19kZHAgewo+ICAJLm11dGV4X3NvZl9yZWcgPSBNVDI3 MDFfRElTUF9NVVRFWDBfU09GMCwKPiAgfTsKPiAgCj4gLXN0YXRpYyB1bnNpZ25lZCBpbnQgbXRr X2RkcF9tb3V0X2VuKGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwKPiArY29uc3Qgc3RydWN0IG10 a19tbXN5c19yZWdfZGF0YSBtdDI3MDFfbW1zeXNfcmVnX2RhdGEgPSB7Cj4gKwkub3ZsMF9tb3V0 X2VuID0gRElTUF9SRUdfQ09ORklHX0RJU1BfT1ZMX01PVVRfRU4sCj4gKwkuZHNpMF9zZWxfaW4g PSBESVNQX1JFR19DT05GSUdfRFNJX1NFTCwKPiArCS5kc2kwX3NlbF9pbl9yZG1hMSA9IERTSV9T RUxfSU5fUkRNQSwKPiArfTsKPiArCj4gK2NvbnN0IHN0cnVjdCBtdGtfbW1zeXNfcmVnX2RhdGEg bXQ4MTczX21tc3lzX3JlZ19kYXRhID0gewo+ICsJLm92bDBfbW91dF9lbiA9IERJU1BfUkVHX0NP TkZJR19ESVNQX09WTDBfTU9VVF9FTiwKPiArCS5yZG1hMV9zb3V0X3NlbF9pbiA9IERJU1BfUkVH X0NPTkZJR19ESVNQX1JETUExX1NPVVRfRU4sCj4gKwkucmRtYTFfc291dF9kcGkwID0gUkRNQTFf U09VVF9EUEkwLAo+ICsJLmRwaTBfc2VsX2luID0gRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU4s Cj4gKwkuZHBpMF9zZWxfaW5fcmRtYTEgPSBEUEkwX1NFTF9JTl9SRE1BMSwKPiArCS5kc2kwX3Nl bF9pbiA9IERJU1BfUkVHX0NPTkZJR19EU0lFX1NFTF9JTiwKPiArCS5kc2kwX3NlbF9pbl9yZG1h MSA9IERTSTBfU0VMX0lOX1JETUExLAo+ICt9Owo+ICsKPiArc3RhdGljIHVuc2lnbmVkIGludCBt dGtfZGRwX21vdXRfZW4oY29uc3Qgc3RydWN0IG10a19tbXN5c19yZWdfZGF0YSAqZGF0YSwKPiAr CQkJCSAgICBlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsCj4gIAkJCQkgICAgZW51bSBtdGtfZGRw X2NvbXBfaWQgbmV4dCwKPiAgCQkJCSAgICB1bnNpZ25lZCBpbnQgKmFkZHIpCj4gIHsKPiAgCXVu c2lnbmVkIGludCB2YWx1ZTsKPiAgCj4gIAlpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMCAm JiBuZXh0ID09IEREUF9DT01QT05FTlRfQ09MT1IwKSB7Cj4gLQkJKmFkZHIgPSBESVNQX1JFR19D T05GSUdfRElTUF9PVkwwX01PVVRfRU47Cj4gKwkJKmFkZHIgPSBESVNQX1JFR19PVkwwX01PVVRf RU4oZGF0YSk7Cj4gIAkJdmFsdWUgPSBPVkwwX01PVVRfRU5fQ09MT1IwOwo+ICAJfSBlbHNlIGlm IChjdXIgPT0gRERQX0NPTVBPTkVOVF9PVkwwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1B MCkgewo+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfT1ZMX01PVVRfRU47Cj4gKwkJ KmFkZHIgPSBESVNQX1JFR19PVkwwX01PVVRfRU4oZGF0YSk7Cj4gIAkJdmFsdWUgPSBPVkxfTU9V VF9FTl9SRE1BOwo+ICAJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9PRDAgJiYgbmV4 dCA9PSBERFBfQ09NUE9ORU5UX1JETUEwKSB7Cj4gIAkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdf RElTUF9PRF9NT1VUX0VOOwo+IEBAIC0zMDYsOCArMzQ3LDggQEAgc3RhdGljIHVuc2lnbmVkIGlu dCBtdGtfZGRwX21vdXRfZW4oZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLAo+ICAJCSphZGRyID0g RElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsKPiAgCQl2YWx1ZSA9IFJETUExX1NP VVRfRFNJMzsKPiAgCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4 dCA9PSBERFBfQ09NUE9ORU5UX0RQSTApIHsKPiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19E SVNQX1JETUExX1NPVVRfRU47Cj4gLQkJdmFsdWUgPSBSRE1BMV9TT1VUX0RQSTA7Cj4gKwkJKmFk ZHIgPSBESVNQX1JFR19SRE1BMV9TT1VUX1NFTF9JTihkYXRhKTsKPiArCQl2YWx1ZSA9IERJU1Bf UkVHX1JETUExX1NPVVRfRFBJMChkYXRhKTsKPiAgCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01Q T05FTlRfUkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQSTEpIHsKPiAgCQkqYWRkciA9 IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUExX1NPVVRfRU47Cj4gIAkJdmFsdWUgPSBSRE1BMV9T T1VUX0RQSTE7Cj4gQEAgLTMzMyw3ICszNzQsOCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG10a19k ZHBfbW91dF9lbihlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsCj4gIAlyZXR1cm4gdmFsdWU7Cj4g IH0KPiAgCj4gLXN0YXRpYyB1bnNpZ25lZCBpbnQgbXRrX2RkcF9zZWxfaW4oZW51bSBtdGtfZGRw X2NvbXBfaWQgY3VyLAo+ICtzdGF0aWMgdW5zaWduZWQgaW50IG10a19kZHBfc2VsX2luKGNvbnN0 IHN0cnVjdCBtdGtfbW1zeXNfcmVnX2RhdGEgKmRhdGEsCj4gKwkJCQkgICBlbnVtIG10a19kZHBf Y29tcF9pZCBjdXIsCj4gIAkJCQkgICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0LAo+ICAJCQkJ ICAgdW5zaWduZWQgaW50ICphZGRyKQo+ICB7Cj4gQEAgLTM0MywxNCArMzg1LDE0IEBAIHN0YXRp YyB1bnNpZ25lZCBpbnQgbXRrX2RkcF9zZWxfaW4oZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLAo+ ICAJCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1IwX1NFTF9JTjsKPiAgCQl2YWx1 ZSA9IENPTE9SMF9TRUxfSU5fT1ZMMDsKPiAgCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05F TlRfUkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQSTApIHsKPiAtCQkqYWRkciA9IERJ U1BfUkVHX0NPTkZJR19EUElfU0VMX0lOOwo+IC0JCXZhbHVlID0gRFBJMF9TRUxfSU5fUkRNQTE7 Cj4gKwkJKmFkZHIgPSBESVNQX1JFR19EUEkwX1NFTF9JTihkYXRhKTsKPiArCQl2YWx1ZSA9IERJ U1BfUkVHX0RQSTBfU0VMX0lOX1JETUExKGRhdGEpOwo+ICAJfSBlbHNlIGlmIChjdXIgPT0gRERQ X0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMSkgewo+ICAJCSph ZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU47Cj4gIAkJdmFsdWUgPSBEUEkxX1NFTF9J Tl9SRE1BMTsKPiAgCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4 dCA9PSBERFBfQ09NUE9ORU5UX0RTSTApIHsKPiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19E U0lFX1NFTF9JTjsKPiAtCQl2YWx1ZSA9IERTSTBfU0VMX0lOX1JETUExOwo+ICsJCSphZGRyID0g RElTUF9SRUdfRFNJMF9TRUxfSU4oZGF0YSk7Cj4gKwkJdmFsdWUgPSBESVNQX1JFR19EU0kwX1NF TF9JTl9SRE1BMShkYXRhKTsKPiAgCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRN QTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTEpIHsKPiAgCQkqYWRkciA9IERJU1BfUkVH X0NPTkZJR19EU0lPX1NFTF9JTjsKPiAgCQl2YWx1ZSA9IERTSTFfU0VMX0lOX1JETUExOwo+IEBA IC0zOTEsMzcgKzQzMyw0NCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG10a19kZHBfc2VsX2luKGVu dW0gbXRrX2RkcF9jb21wX2lkIGN1ciwKPiAgCXJldHVybiB2YWx1ZTsKPiAgfQo+ICAKPiAtc3Rh dGljIHZvaWQgbXRrX2RkcF9zb3V0X3NlbCh2b2lkIF9faW9tZW0gKmNvbmZpZ19yZWdzLAo+IC0J CQkgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwKPiAtCQkJICAgICBlbnVtIG10a19kZHBf Y29tcF9pZCBuZXh0KQo+ICtzdGF0aWMgdW5zaWduZWQgaW50IG10a19kZHBfc291dF9zZWwoY29u c3Qgc3RydWN0IG10a19tbXN5c19yZWdfZGF0YSAqZGF0YSwKPiArCQkJCSAgICAgZW51bSBtdGtf ZGRwX2NvbXBfaWQgY3VyLAo+ICsJCQkJICAgICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0LAo+ ICsJCQkJICAgICB1bnNpZ25lZCBpbnQgKmFkZHIpCj4gIHsKPiArCXVuc2lnbmVkIGludCB2YWx1 ZTsKPiArCj4gIAlpZiAoY3VyID09IEREUF9DT01QT05FTlRfQkxTICYmIG5leHQgPT0gRERQX0NP TVBPTkVOVF9EU0kwKSB7Cj4gLQkJd3JpdGVsX3JlbGF4ZWQoQkxTX1RPX0RTSV9SRE1BMV9UT19E UEkxLAo+IC0JCQkgICAgICAgY29uZmlnX3JlZ3MgKyBESVNQX1JFR19DT05GSUdfT1VUX1NFTCk7 Cj4gKwkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfT1VUX1NFTDsKPiArCQl2YWx1ZSA9IEJMU19U T19EU0lfUkRNQTFfVE9fRFBJMTsKPiAgCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRf QkxTICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7Cj4gLQkJd3JpdGVsX3JlbGF4ZWQo QkxTX1RPX0RQSV9SRE1BMV9UT19EU0ksCj4gLQkJCSAgICAgICBjb25maWdfcmVncyArIERJU1Bf UkVHX0NPTkZJR19PVVRfU0VMKTsKPiAtCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRf UkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTApIHsKPiAtCQl3cml0ZWxfcmVsYXhl ZChEU0lfU0VMX0lOX1JETUEsCj4gLQkJCSAgICAgICBjb25maWdfcmVncyArIERJU1BfUkVHX0NP TkZJR19EU0lfU0VMKTsKPiArCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19PVVRfU0VMOwo+ICsJ CXZhbHVlID0gQkxTX1RPX0RQSV9SRE1BMV9UT19EU0k7Cj4gKwl9IGVsc2Ugewo+ICsJCXZhbHVl ID0gMDsKPiAgCX0KPiArCj4gKwlyZXR1cm4gdmFsdWU7Cj4gIH0KPiAgCj4gIHZvaWQgbXRrX2Rk cF9hZGRfY29tcF90b19wYXRoKHZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3MsCj4gKwkJCSAgICAg IGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfcmVnX2RhdGEgKnJlZ19kYXRhLAo+ICAJCQkgICAgICBl bnVtIG10a19kZHBfY29tcF9pZCBjdXIsCj4gIAkJCSAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lk IG5leHQpCj4gIHsKPiAgCXVuc2lnbmVkIGludCBhZGRyLCB2YWx1ZSwgcmVnOwo+ICAKPiAtCXZh bHVlID0gbXRrX2RkcF9tb3V0X2VuKGN1ciwgbmV4dCwgJmFkZHIpOwo+ICsJdmFsdWUgPSBtdGtf ZGRwX21vdXRfZW4ocmVnX2RhdGEsIGN1ciwgbmV4dCwgJmFkZHIpOwo+ICAJaWYgKHZhbHVlKSB7 Cj4gIAkJcmVnID0gcmVhZGxfcmVsYXhlZChjb25maWdfcmVncyArIGFkZHIpIHwgdmFsdWU7Cj4g IAkJd3JpdGVsX3JlbGF4ZWQocmVnLCBjb25maWdfcmVncyArIGFkZHIpOwo+ICAJfQo+ICAKPiAt CW10a19kZHBfc291dF9zZWwoY29uZmlnX3JlZ3MsIGN1ciwgbmV4dCk7Cj4gKwl2YWx1ZSA9IG10 a19kZHBfc291dF9zZWwocmVnX2RhdGEsIGN1ciwgbmV4dCwgJmFkZHIpOwo+ICsJaWYgKHZhbHVl KQo+ICsJCXdyaXRlbF9yZWxheGVkKHZhbHVlLCBjb25maWdfcmVncyArIGFkZHIpOwoKSSB0aGlu ayB0aGUgcmVnaXN0ZXIgY291bGQgYmUgd3JpdHRlbiBpbnNpZGUgbXRrX2RkcF9zb3V0X3NlbCgp LCB3aHkgZG8KeW91IG1vdmUgb3V0IG9mIHRoYXQgZnVuY3Rpb24/Cgo+ICAKPiAtCXZhbHVlID0g bXRrX2RkcF9zZWxfaW4oY3VyLCBuZXh0LCAmYWRkcik7Cj4gKwl2YWx1ZSA9IG10a19kZHBfc2Vs X2luKHJlZ19kYXRhLCBjdXIsIG5leHQsICZhZGRyKTsKPiAgCWlmICh2YWx1ZSkgewo+ICAJCXJl ZyA9IHJlYWRsX3JlbGF4ZWQoY29uZmlnX3JlZ3MgKyBhZGRyKSB8IHZhbHVlOwo+ICAJCXdyaXRl bF9yZWxheGVkKHJlZywgY29uZmlnX3JlZ3MgKyBhZGRyKTsKPiBAQCAtNDI5LDE4ICs0NzgsMTkg QEAgdm9pZCBtdGtfZGRwX2FkZF9jb21wX3RvX3BhdGgodm9pZCBfX2lvbWVtICpjb25maWdfcmVn cywKPiAgfQo+ICAKPiAgdm9pZCBtdGtfZGRwX3JlbW92ZV9jb21wX2Zyb21fcGF0aCh2b2lkIF9f aW9tZW0gKmNvbmZpZ19yZWdzLAo+ICsJCQkJICAgY29uc3Qgc3RydWN0IG10a19tbXN5c19yZWdf ZGF0YSAqcmVnX2RhdGEsCj4gIAkJCQkgICBlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsCj4gIAkJ CQkgICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0KQo+ICB7Cj4gIAl1bnNpZ25lZCBpbnQgYWRk ciwgdmFsdWUsIHJlZzsKPiAgCj4gLQl2YWx1ZSA9IG10a19kZHBfbW91dF9lbihjdXIsIG5leHQs ICZhZGRyKTsKPiArCXZhbHVlID0gbXRrX2RkcF9tb3V0X2VuKHJlZ19kYXRhLCBjdXIsIG5leHQs ICZhZGRyKTsKPiAgCWlmICh2YWx1ZSkgewo+ICAJCXJlZyA9IHJlYWRsX3JlbGF4ZWQoY29uZmln X3JlZ3MgKyBhZGRyKSAmIH52YWx1ZTsKPiAgCQl3cml0ZWxfcmVsYXhlZChyZWcsIGNvbmZpZ19y ZWdzICsgYWRkcik7Cj4gIAl9Cj4gIAo+IC0JdmFsdWUgPSBtdGtfZGRwX3NlbF9pbihjdXIsIG5l eHQsICZhZGRyKTsKPiArCXZhbHVlID0gbXRrX2RkcF9zZWxfaW4ocmVnX2RhdGEsIGN1ciwgbmV4 dCwgJmFkZHIpOwo+ICAJaWYgKHZhbHVlKSB7Cj4gIAkJcmVnID0gcmVhZGxfcmVsYXhlZChjb25m aWdfcmVncyArIGFkZHIpICYgfnZhbHVlOwo+ICAJCXdyaXRlbF9yZWxheGVkKHJlZywgY29uZmln X3JlZ3MgKyBhZGRyKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kcm1fZGRwLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHAuaAo+IGlu ZGV4IGY5YTc5OTEuLjQzZGFiYjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kcm1fZGRwLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Ry bV9kZHAuaAo+IEBAIC0xOSwxMSArMTksMTYgQEAKPiAgc3RydWN0IHJlZ21hcDsKPiAgc3RydWN0 IGRldmljZTsKPiAgc3RydWN0IG10a19kaXNwX211dGV4Owo+ICtzdHJ1Y3QgbXRrX21tc3lzX3Jl Z19kYXRhOwo+ICAKPiArZXh0ZXJuIGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfcmVnX2RhdGEgbXQy NzAxX21tc3lzX3JlZ19kYXRhOwo+ICtleHRlcm4gY29uc3Qgc3RydWN0IG10a19tbXN5c19yZWdf ZGF0YSBtdDgxNzNfbW1zeXNfcmVnX2RhdGE7Cj4gIHZvaWQgbXRrX2RkcF9hZGRfY29tcF90b19w YXRoKHZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3MsCj4gKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBt dGtfbW1zeXNfcmVnX2RhdGEgKnJlZ19kYXRhLAo+ICAJCQkgICAgICBlbnVtIG10a19kZHBfY29t cF9pZCBjdXIsCj4gIAkJCSAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQpOwo+ICB2b2lk IG10a19kZHBfcmVtb3ZlX2NvbXBfZnJvbV9wYXRoKHZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3Ms Cj4gKwkJCQkgICBjb25zdCBzdHJ1Y3QgbXRrX21tc3lzX3JlZ19kYXRhICpyZWdfZGF0YSwKPiAg CQkJCSAgIGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwKPiAgCQkJCSAgIGVudW0gbXRrX2RkcF9j b21wX2lkIG5leHQpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYwo+ IGluZGV4IDU3Y2U0NzAuLmYyNjBhYTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9kcnYuYwo+IEBAIC0xOTcsNiArMTk3LDcgQEAgc3RhdGljIGludCBtdGtfYXRvbWljX2Nv bW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+ICAJLm1haW5fbGVuID0gQVJSQVlfU0laRSht dDI3MDFfbXRrX2RkcF9tYWluKSwKPiAgCS5leHRfcGF0aCA9IG10MjcwMV9tdGtfZGRwX2V4dCwK PiAgCS5leHRfbGVuID0gQVJSQVlfU0laRShtdDI3MDFfbXRrX2RkcF9leHQpLAo+ICsJLnJlZ19k YXRhID0gJm10MjcwMV9tbXN5c19yZWdfZGF0YSwKPiAgCS5zaGFkb3dfcmVnaXN0ZXIgPSB0cnVl LAo+ICB9Owo+ICAKPiBAQCAtMjA3LDYgKzIwOCw3IEBAIHN0YXRpYyBpbnQgbXRrX2F0b21pY19j b21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKPiAgCS5leHRfbGVuID0gQVJSQVlfU0laRSht dDI3MTJfbXRrX2RkcF9leHQpLAo+ICAJLnRoaXJkX3BhdGggPSBtdDI3MTJfbXRrX2RkcF90aGly ZCwKPiAgCS50aGlyZF9sZW4gPSBBUlJBWV9TSVpFKG10MjcxMl9tdGtfZGRwX3RoaXJkKSwKPiAr CS5yZWdfZGF0YSA9ICZtdDgxNzNfbW1zeXNfcmVnX2RhdGEsCj4gIH07Cj4gIAo+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSBtdDgxNzNfbW1zeXNfZHJpdmVyX2Rh dGEgPSB7Cj4gQEAgLTIxNCw2ICsyMTYsNyBAQCBzdGF0aWMgaW50IG10a19hdG9taWNfY29tbWl0 KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gIAkubWFpbl9sZW4gPSBBUlJBWV9TSVpFKG10ODE3 M19tdGtfZGRwX21haW4pLAo+ICAJLmV4dF9wYXRoID0gbXQ4MTczX210a19kZHBfZXh0LAo+ICAJ LmV4dF9sZW4gPSBBUlJBWV9TSVpFKG10ODE3M19tdGtfZGRwX2V4dCksCj4gKwkucmVnX2RhdGEg PSAmbXQ4MTczX21tc3lzX3JlZ19kYXRhLAo+ICB9Owo+ICAKPiAgc3RhdGljIGludCBtdGtfZHJt X2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCj4gQEAgLTQ2OCw2ICs0NzEsOCBAQCBz dGF0aWMgaW50IG10a19kcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAg CUlOSVRfV09SSygmcHJpdmF0ZS0+Y29tbWl0LndvcmssIG10a19hdG9taWNfd29yayk7Cj4gIAlw cml2YXRlLT5kYXRhID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7Cj4gIAo+ICsJcHJp dmF0ZS0+cmVnX2RhdGEgPSBwcml2YXRlLT5kYXRhLT5yZWdfZGF0YTsKPiArCj4gIAltZW0gPSBw bGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+ICAJcHJpdmF0 ZS0+Y29uZmlnX3JlZ3MgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCBtZW0pOwo+ICAJaWYg KElTX0VSUihwcml2YXRlLT5jb25maWdfcmVncykpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RybV9kcnYuaAo+IGluZGV4IGVjYzAwY2EuLmI2NTQ0YTIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaAo+IEBAIC0xNSw2ICsxNSw3IEBACj4gICNkZWZpbmUg TVRLX0RSTV9EUlZfSAo+ICAKPiAgI2luY2x1ZGUgPGxpbnV4L2lvLmg+Cj4gKyNpbmNsdWRlICJt dGtfZHJtX2RkcC5oIgo+ICAjaW5jbHVkZSAibXRrX2RybV9kZHBfY29tcC5oIgo+ICAKPiAgI2Rl ZmluZSBNQVhfQ1JUQwkzCj4gQEAgLTM2LDYgKzM3LDggQEAgc3RydWN0IG10a19tbXN5c19kcml2 ZXJfZGF0YSB7Cj4gIAljb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCAqdGhpcmRfcGF0aDsKPiAg CXVuc2lnbmVkIGludCB0aGlyZF9sZW47Cj4gIAo+ICsJY29uc3Qgc3RydWN0IG10a19tbXN5c19y ZWdfZGF0YSAqcmVnX2RhdGE7Cj4gKwo+ICAJYm9vbCBzaGFkb3dfcmVnaXN0ZXI7Cj4gIH07Cj4g IAo+IEBAIC00OCw2ICs1MSw3IEBAIHN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgewo+ICAJc3RydWN0 IGRldmljZV9ub2RlICptdXRleF9ub2RlOwo+ICAJc3RydWN0IGRldmljZSAqbXV0ZXhfZGV2Owo+ ICAJdm9pZCBfX2lvbWVtICpjb25maWdfcmVnczsKPiArCWNvbnN0IHN0cnVjdCBtdGtfbW1zeXNf cmVnX2RhdGEgKnJlZ19kYXRhOwoKVGhpcyBpcyBpZGVudGljYWwgdG8gdGhlIHNhbWUgb25lIGlu IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEsIHNvCnlvdSBuZWVkIG5vdCB0byBjcmVhdGUg dGhpcyBvbmUuCgpSZWdhcmRzLApDSwoKPiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqY29tcF9ub2Rl W0REUF9DT01QT05FTlRfSURfTUFYXTsKPiAgCXN0cnVjdCBtdGtfZGRwX2NvbXAgKmRkcF9jb21w W0REUF9DT01QT05FTlRfSURfTUFYXTsKPiAgCWNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVy X2RhdGEgKmRhdGE7CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVs