From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Stuebner Subject: Re: [PATCH v6 1/8] clk: rockchip: add new clock-type for the ddrclk Date: Fri, 19 Aug 2016 13:33:35 +0200 Message-ID: <3728841.DF2sM403rc@phil> References: <1471386989-9541-1-git-send-email-hl@rock-chips.com> <1471386989-9541-2-git-send-email-hl@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1471386989-9541-2-git-send-email-hl@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lin Huang Cc: tixy@linaro.org, mark.rutland@arm.com, dbasehore@chromium.org, cw00.choi@samsung.com, mturquette@baylibre.com, typ@rock-chips.com, sboyd@codeaurora.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, dianders@chromium.org, linux-rockchip@lists.infradead.org, kyungmin.park@samsung.com, myungjoo.ham@samsung.com, sudeep.holla@arm.com, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-Id: linux-pm@vger.kernel.org SGkgTGluLAoKQW0gTWl0dHdvY2gsIDE3LiBBdWd1c3QgMjAxNiwgMDY6MzY6MjIgQ0VTVCBzY2hy aWViIExpbiBIdWFuZzoKPiBPbiBuZXcgcm9ja2NoaXAgcGxhdGZvcm0ocmszMzk5IGV0YyksIHRo ZXJlIGhhdmUgZGNmIGNvbnRyb2xsZXIgdG8KPiBkbyBkZHIgZnJlcXVlbmN5IHNjYWxpbmcsIGFu ZCB0aGlzIGNvbnRyb2xsZXIgd2lsbCBpbXBsZW1lbnQgaW4KPiBhcm0tdHJ1c3QtZmlybXdhcmUu IFdlIGFkZCBhIHNwZWNpYWwgY2xvY2stdHlwZSB0byBoYW5kbGUgdGhhdC4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBMaW4gSHVhbmcgPGhsQHJvY2stY2hpcHMuY29tPgo+IC0tLQo+IENoYW5nZXMgaW4g djY6Cj4gLSBub25lCj4gCj4gQ2hhbmdlcyBpbiB2NToKPiAtIGRlbGV0ZSB1bnVzZSBtdXhfZmxh Zwo+IC0gdXNlIGRpdl9mbGFnIHRvIGRpc3Rpbmd1aXNoIHNpcCBjYWxsIGFuZCBvdGhlciBvcGVy YXRlCj4gCj4gQ2hhbmdlcyBpbiB2NDoKPiAtIHVzZSBhcm1fc21jY2Nfc21jKCkgdG8gc2V0L3Jl YWQgZGRyIHJhdGUKPiAKPiBDaGFuZ2VzIGluIHYzOgo+IC0gdXNlIHNpcCBjYWxsIHRvIHNldC9y ZWFkIGRkciByYXRlCj4gCj4gQ2hhbmdlcyBpbiB2MjoKPiAtIHVzZSBHRU5NQVNLIGluc3RlYWQg dmFsX21hc2sKPiAtIHVzZSBkaXZpZGVyX3JlY2FsY19yYXRlKCkgaW5zdGVhZCBESVZfUk9VTkRf VVBfVUxMCj4gLSBjbGVhbnVwIGNvZGUKPiAKPiBDaGFuZ2VzIGluIHYxOgo+IC0gbm9uZQo+IAo+ ICBkcml2ZXJzL2Nsay9yb2NrY2hpcC9NYWtlZmlsZSAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMv Y2xrL3JvY2tjaGlwL2Nsay1kZHIuYyAgICAgIHwgMTUwCj4gKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrIGRyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay5jICAgICAgICAgIHwgCj4g IDkgKysrCj4gIGRyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay5oICAgICAgICAgIHwgIDMzICsrKysr KysrCj4gIGluY2x1ZGUvc29jL3JvY2tjaGlwL3JvY2tjaGlwX3NpcC5oIHwgIDI3ICsrKysrKysK PiAgNSBmaWxlcyBjaGFuZ2VkLCAyMjAgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLWRkci5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBp bmNsdWRlL3NvYy9yb2NrY2hpcC9yb2NrY2hpcF9zaXAuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2Nsay9yb2NrY2hpcC9NYWtlZmlsZSBiL2RyaXZlcnMvY2xrL3JvY2tjaGlwL01ha2VmaWxl Cj4gaW5kZXggZjQ3YTJmYS4uYjVmMmM4ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2Nsay9yb2Nr Y2hpcC9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvY2xrL3JvY2tjaGlwL01ha2VmaWxlCj4gQEAg LTgsNiArOCw3IEBAIG9iai15CSs9IGNsay1wbGwubwo+ICBvYmoteQkrPSBjbGstY3B1Lm8KPiAg b2JqLXkJKz0gY2xrLWludmVydGVyLm8KPiAgb2JqLXkJKz0gY2xrLW1tYy1waGFzZS5vCj4gK29i ai15CSs9IGNsay1kZHIubwo+ICBvYmotJChDT05GSUdfUkVTRVRfQ09OVFJPTExFUikJKz0gc29m dHJzdC5vCj4gCj4gIG9iai15CSs9IGNsay1yazMwMzYubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2Nsay9yb2NrY2hpcC9jbGstZGRyLmMgYi9kcml2ZXJzL2Nsay9yb2NrY2hpcC9jbGstZGRyLmMK PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjdkYmU4YmZmCj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay1kZHIuYwo+IEBAIC0wLDAg KzEsMTUwIEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCAoYykgMjAxNiBSb2NrY2hpcCBFbGVjdHJv bmljcyBDby4gTHRkLgo+ICsgKiBBdXRob3I6IExpbiBIdWFuZyA8aGxAcm9jay1jaGlwcy5jb20+ Cj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4gKyAqIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y Cj4gKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAqCj4gKyAqIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAo+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCj4gKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2FybS1z bWNjYy5oPgo+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9jbGst cHJvdmlkZXIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2lvLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9v Zi5oPgo+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ICsjaW5jbHVkZSA8c29jL3JvY2tjaGlw L3JvY2tjaGlwX3NpcC5oPgo+ICsKPiArI2luY2x1ZGUgImNsay5oIgo+ICsKPiArc3RydWN0IHJv Y2tjaGlwX2RkcmNsayB7Cj4gKwlzdHJ1Y3QgY2xrX2h3CWh3Owo+ICsJdm9pZCBfX2lvbWVtCSpy ZWdfYmFzZTsKPiArCWludAkJbXV4X29mZnNldDsKPiArCWludAkJbXV4X3NoaWZ0Owo+ICsJaW50 CQltdXhfd2lkdGg7Cj4gKwlpbnQJCWRpdl9zaGlmdDsKPiArCWludAkJZGl2X3dpZHRoOwo+ICsJ aW50CQlkZHJfZmxhZzsKPiArCXNwaW5sb2NrX3QJKmxvY2s7Cj4gK307Cj4gKwo+ICsjZGVmaW5l IHRvX3JvY2tjaGlwX2RkcmNsa19odyhodykgY29udGFpbmVyX29mKGh3LCBzdHJ1Y3Qgcm9ja2No aXBfZGRyY2xrLAo+IGh3KSArCj4gK3N0YXRpYyBpbnQgcm9ja2NoaXBfZGRyY2xrX3NldF9yYXRl KHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIGRyYXRlLAo+ICsJCQkJICAgIHVuc2ln bmVkIGxvbmcgcHJhdGUpCj4gK3sKPiArCXN0cnVjdCByb2NrY2hpcF9kZHJjbGsgKmRkcmNsayA9 IHRvX3JvY2tjaGlwX2RkcmNsa19odyhodyk7Cj4gKwl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICsJ c3RydWN0IGFybV9zbWNjY19yZXMgcmVzOwo+ICsKPiArCXNwaW5fbG9ja19pcnFzYXZlKGRkcmNs ay0+bG9jaywgZmxhZ3MpOwo+ICsJaWYgKGRkcmNsay0+ZGRyX2ZsYWcgPT0gUk9DS0NISVBfRERS Q0xLX1NJUCkgewo+ICsJCWFybV9zbWNjY19zbWMoU0lQX0RSQU1fRlJFUSwgZHJhdGUsIDAsIENP TkZJR19EUkFNX1NFVF9SQVRFLAo+ICsJCQkgICAgICAwLCAwLCAwLCAwLCAmcmVzKTsKPiArCQly ZXR1cm4gcmVzLmEwOwo+ICsJfQo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShkZHJjbGstPmxv Y2ssIGZsYWdzKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHVuc2lnbmVk IGxvbmcKPiArcm9ja2NoaXBfZGRyY2xrX3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAo+ ICsJCQkgICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKPiArewo+ICsJc3RydWN0IHJvY2tj aGlwX2RkcmNsayAqZGRyY2xrID0gdG9fcm9ja2NoaXBfZGRyY2xrX2h3KGh3KTsKPiArCXN0cnVj dCBhcm1fc21jY2NfcmVzIHJlczsKPiArCj4gKwlpZiAoZGRyY2xrLT5kZHJfZmxhZyA9PSBST0NL Q0hJUF9ERFJDTEtfU0lQKSB7Cj4gKwkJYXJtX3NtY2NjX3NtYyhTSVBfRFJBTV9GUkVRLCAwLCAw LCBDT05GSUdfRFJBTV9HRVRfUkFURSwKPiArCQkJICAgICAgMCwgMCwgMCwgMCwgJnJlcyk7Cj4g KwkJcmV0dXJuIHJlcy5hMDsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIGxvbmcgY2xrX2RkcmNsa19yb3VuZF9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25l ZCBsb25nIHJhdGUsCgptaXNzaW5nIGEgUm9ja2NoaXAgcHJlZml4CgpjYW4ndCB5b3UgYWxzbyBp bnRyb2R1Y2UgYSBTSVAgbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgcm91bmRlZCByYXRlIC0gYWth IHRoZSAKQVRGIHRlbGxpbmcgeW91IHdoaWNoIHJhdGUgd2lsbCBiZSBhY3R1YWxseSBzZXQsIHNv IHRoYXQgeW91IGNhbiByZXR1cm4gYSByZWFsIApyb3VuZF9yYXRlIHZhbHVlPwoKCj4gKwkJCQkg IHVuc2lnbmVkIGxvbmcgKnByYXRlKQo+ICt7Cj4gKwlyZXR1cm4gcmF0ZTsKPiArfQo+ICsKPiAr c3RhdGljIHU4IHJvY2tjaGlwX2RkcmNsa19nZXRfcGFyZW50KHN0cnVjdCBjbGtfaHcgKmh3KQo+ ICt7Cj4gKwlzdHJ1Y3Qgcm9ja2NoaXBfZGRyY2xrICpkZHJjbGsgPSB0b19yb2NrY2hpcF9kZHJj bGtfaHcoaHcpOwo+ICsJaW50IG51bV9wYXJlbnRzID0gY2xrX2h3X2dldF9udW1fcGFyZW50cyho dyk7Cj4gKwl1MzIgdmFsOwo+ICsKPiArCXZhbCA9IGNsa19yZWFkbChkZHJjbGstPnJlZ19iYXNl ICsKPiArCQkJZGRyY2xrLT5tdXhfb2Zmc2V0KSA+PiBkZHJjbGstPm11eF9zaGlmdDsKPiArCXZh bCAmPSBHRU5NQVNLKGRkcmNsay0+bXV4X3dpZHRoIC0gMSwgMCk7Cj4gKwo+ICsJaWYgKHZhbCA+ PSBudW1fcGFyZW50cykKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlyZXR1cm4gdmFsOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgcm9ja2NoaXBfZGRyY2xrX29w cyA9IHsKPiArCS5yZWNhbGNfcmF0ZSA9IHJvY2tjaGlwX2RkcmNsa19yZWNhbGNfcmF0ZSwKPiAr CS5zZXRfcmF0ZSA9IHJvY2tjaGlwX2RkcmNsa19zZXRfcmF0ZSwKPiArCS5yb3VuZF9yYXRlID0g Y2xrX2RkcmNsa19yb3VuZF9yYXRlLAo+ICsJLmdldF9wYXJlbnQgPSByb2NrY2hpcF9kZHJjbGtf Z2V0X3BhcmVudCwKPiArfTsKCnBsZWFzZSBtYWtlIG1ldGhvZC1zcGVjaWZpYyBjbG9jayBvcHMs IGxpa2UKCnN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyByb2NrY2hpcF9kZHJjbGtfc2lwX29w cyA9IHsKCS5yZWNhbGNfcmF0ZSA9IHJvY2tjaGlwX2RkcmNsa19zaXBfcmVjYWxjX3JhdGUsCgku c2V0X3JhdGUgPSByb2NrY2hpcF9kZHJjbGtfc2lwX3NldF9yYXRlLAoJLnJvdW5kX3JhdGUgPSBj bGtfZGRyY2xrX3JvdW5kX3JhdGUsCgkuZ2V0X3BhcmVudCA9IHJvY2tjaGlwX2RkcmNsa19nZXRf cGFyZW50LAp9OwoKYW5kIGluIHJvY2tjaGlwX2Nsa19yZWdpc3Rlcl9kZHJjbGsgc2ltcGx5IGRv CgouLi4Kc3dpdGNoKGRkcl9mbGFnKSB7CmNhc2UgUk9DS0NISVBfRERSQ0xLX1NJUDoKCWluaXQu b3BzID0gJnJvY2tjaGlwX2RkcmNsa19zaXBfb3BzOwoJYnJlYWs7CmRlZmF1bHQ6Cglwcl9lcnIo IiVzOiB1bnN1cHBvcnRlZCBkZHJjbGsgdHlwZSAlZFxuIiwgX19mdW5jX18sIGRkcl9mbGFnKTsK CXJldHVybiBFUlJfUFRSKCItRUlOVkFMKTsKfQouLi4KClRoYXQgd2F5IHlvdSBzYXZlIGFsbCB0 aGUgaWZzIGluIHRoZSBmdW5jdGlvbnMgLi4uIGVzc2VudGlhbGx5IGhvdyB0aGUgcGxscyAKYWxz byBoYW5kbGUgdGhlIGRpZmZlcmVudCB0eXBlcy4KCj4gK3N0cnVjdCBjbGsgKnJvY2tjaGlwX2Ns a19yZWdpc3Rlcl9kZHJjbGsoY29uc3QgY2hhciAqbmFtZSwgaW50IGZsYWdzLAo+ICsJCQkJCSBj b25zdCBjaGFyICpjb25zdCAqcGFyZW50X25hbWVzLAo+ICsJCQkJCSB1OCBudW1fcGFyZW50cywg aW50IG11eF9vZmZzZXQsCj4gKwkJCQkJIGludCBtdXhfc2hpZnQsIGludCBtdXhfd2lkdGgsCj4g KwkJCQkJIGludCBkaXZfc2hpZnQsIGludCBkaXZfd2lkdGgsCj4gKwkJCQkJIGludCBkZHJfZmxh Zywgdm9pZCBfX2lvbWVtICpyZWdfYmFzZSwKPiArCQkJCQkgc3BpbmxvY2tfdCAqbG9jaykKPiAr ewo+ICsJc3RydWN0IHJvY2tjaGlwX2RkcmNsayAqZGRyY2xrOwo+ICsJc3RydWN0IGNsa19pbml0 X2RhdGEgaW5pdDsKPiArCXN0cnVjdCBjbGsgKmNsazsKPiArCj4gKwlkZHJjbGsgPSBremFsbG9j KHNpemVvZigqZGRyY2xrKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWRkcmNsaykKPiArCQlyZXR1 cm4gRVJSX1BUUigtRU5PTUVNKTsKPiArCj4gKwlpbml0Lm5hbWUgPSBuYW1lOwo+ICsJaW5pdC5w YXJlbnRfbmFtZXMgPSBwYXJlbnRfbmFtZXM7Cj4gKwlpbml0Lm51bV9wYXJlbnRzID0gbnVtX3Bh cmVudHM7Cj4gKwlpbml0Lm9wcyA9ICZyb2NrY2hpcF9kZHJjbGtfb3BzOwo+ICsKPiArCWluaXQu ZmxhZ3MgPSBmbGFnczsKPiArCWluaXQuZmxhZ3MgfD0gQ0xLX1NFVF9SQVRFX05PX1JFUEFSRU5U Owo+ICsJaW5pdC5mbGFncyB8PSBDTEtfR0VUX1JBVEVfTk9DQUNIRTsKPiArCj4gKwlkZHJjbGst PnJlZ19iYXNlID0gcmVnX2Jhc2U7Cj4gKwlkZHJjbGstPmxvY2sgPSBsb2NrOwo+ICsJZGRyY2xr LT5ody5pbml0ID0gJmluaXQ7Cj4gKwlkZHJjbGstPm11eF9vZmZzZXQgPSBtdXhfb2Zmc2V0Owo+ ICsJZGRyY2xrLT5tdXhfc2hpZnQgPSBtdXhfc2hpZnQ7Cj4gKwlkZHJjbGstPm11eF93aWR0aCA9 IG11eF93aWR0aDsKPiArCWRkcmNsay0+ZGl2X3NoaWZ0ID0gZGl2X3NoaWZ0Owo+ICsJZGRyY2xr LT5kaXZfd2lkdGggPSBkaXZfd2lkdGg7Cj4gKwlkZHJjbGstPmRkcl9mbGFnID0gZGRyX2ZsYWc7 Cj4gKwo+ICsJY2xrID0gY2xrX3JlZ2lzdGVyKE5VTEwsICZkZHJjbGstPmh3KTsKPiArCWlmIChJ U19FUlIoY2xrKSkgewo+ICsJCXByX2VycigiJXM6IGNvdWxkIG5vdCByZWdpc3RlciBkZHJjbGsg JXNcbiIsIF9fZnVuY19fLAluYW1lKTsKPiArCQlnb3RvIGZyZWVfZGRyY2xrOwo+ICsJfQo+ICsK PiArCXJldHVybiBjbGs7Cj4gKwo+ICtmcmVlX2RkcmNsazoKPiArCWtmcmVlKGRkcmNsayk7Cj4g Kwo+ICsJcmV0dXJuIE5VTEw7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcm9ja2No aXAvY2xrLmMgYi9kcml2ZXJzL2Nsay9yb2NrY2hpcC9jbGsuYwo+IGluZGV4IDFmMWM3NGYuLjk5 YmFhNWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLmMKPiArKysgYi9k cml2ZXJzL2Nsay9yb2NrY2hpcC9jbGsuYwo+IEBAIC00ODQsNiArNDg0LDE1IEBAIHZvaWQgX19p bml0IHJvY2tjaGlwX2Nsa19yZWdpc3Rlcl9icmFuY2hlcygKPiAgCQkJCWxpc3QtPmdhdGVfb2Zm c2V0LCBsaXN0LT5nYXRlX3NoaWZ0LAo+ICAJCQkJbGlzdC0+Z2F0ZV9mbGFncywgZmxhZ3MsICZj dHgtPmxvY2spOwo+ICAJCQlicmVhazsKPiArCQljYXNlIGJyYW5jaF9kZHJjOgo+ICsJCQljbGsg PSByb2NrY2hpcF9jbGtfcmVnaXN0ZXJfZGRyY2xrKAo+ICsJCQkJbGlzdC0+bmFtZSwgbGlzdC0+ ZmxhZ3MsCj4gKwkJCQlsaXN0LT5wYXJlbnRfbmFtZXMsIGxpc3QtPm51bV9wYXJlbnRzLAo+ICsJ CQkJbGlzdC0+bXV4ZGl2X29mZnNldCwgbGlzdC0+bXV4X3NoaWZ0LAo+ICsJCQkJbGlzdC0+bXV4 X3dpZHRoLCBsaXN0LT5kaXZfc2hpZnQsCj4gKwkJCQlsaXN0LT5kaXZfd2lkdGgsIGxpc3QtPmRp dl9mbGFncywKPiArCQkJCWN0eC0+cmVnX2Jhc2UsICZjdHgtPmxvY2spOwo+ICsJCQlicmVhazsK PiAgCQl9Cj4gCj4gIAkJLyogbm9uZSBvZiB0aGUgY2FzZXMgYWJvdmUgbWF0Y2hlZCAqLwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9yb2NrY2hpcC9jbGsuaCBiL2RyaXZlcnMvY2xrL3JvY2tj aGlwL2Nsay5oCj4gaW5kZXggMzc0N2RlNS4uNjJjNjdmMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2Nsay9yb2NrY2hpcC9jbGsuaAo+ICsrKyBiL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay5oCj4g QEAgLTExMiw2ICsxMTIsMTIgQEAgc3RydWN0IGNsazsKPiAgI2RlZmluZSBSSzMzOTlfUE1VX0NM S0dBVEVfQ09OKHgpCSgoeCkgKiAweDQgKyAweDEwMCkKPiAgI2RlZmluZSBSSzMzOTlfUE1VX1NP RlRSU1RfQ09OKHgpCSgoeCkgKiAweDQgKyAweDExMCkKPiAKPiArLyoKPiArICogZm9yIENPTVBP U0lURV9ERFJDTEsgZGl2X2ZsYWcKPiArICogaXQgbWVhbnMgc2V0IHVzZSBzaXAgY2FsbCB0byBz ZXQgZGRyIGNsb2NrIGluIGJsMzEKPiArICovCgpwbGVhc2Ugc2hvcnRlbiB0aGF0IGNvbW1lbnQg YSBiaXQsIGxpa2UKLyogdXNlIFNJUCBjYWxsIHRvIGZpcm13YXJlIHRvIGNoYW5nZSBkZHJjbGsg cmF0ZSAqLwoKPiArI2RlZmluZSBST0NLQ0hJUF9ERFJDTEtfU0lQCQkweDAxCj4gKwo+ICBlbnVt IHJvY2tjaGlwX3BsbF90eXBlIHsKPiAgCXBsbF9yazMwMzYsCj4gIAlwbGxfcmszMDY2LAo+IEBA IC0yODEsNiArMjg3LDE0IEBAIHN0cnVjdCBjbGsgKnJvY2tjaGlwX2Nsa19yZWdpc3Rlcl9tbWMo Y29uc3QgY2hhciAqbmFtZSwKPiBjb25zdCBjaGFyICpjb25zdCAqcGFyZW50X25hbWVzLCB1OCBu dW1fcGFyZW50cywKPiAgCQkJCXZvaWQgX19pb21lbSAqcmVnLCBpbnQgc2hpZnQpOwo+IAoKYW5k IG1vdmUgdGhhdCBjb25zdGFudCBoZXJlIHBsZWFzZQoKPiArc3RydWN0IGNsayAqcm9ja2NoaXBf Y2xrX3JlZ2lzdGVyX2RkcmNsayhjb25zdCBjaGFyICpuYW1lLCBpbnQgZmxhZ3MsCj4gKwkJCQkJ IGNvbnN0IGNoYXIgKmNvbnN0ICpwYXJlbnRfbmFtZXMsCj4gKwkJCQkJIHU4IG51bV9wYXJlbnRz LCBpbnQgbXV4X29mZnNldCwKPiArCQkJCQkgaW50IG11eF9zaGlmdCwgaW50IG11eF93aWR0aCwK PiArCQkJCQkgaW50IGRpdl9zaGlmdCwgaW50IGRpdl93aWR0aCwKPiArCQkJCQkgaW50IGRkcl9m bGFncywgdm9pZCBfX2lvbWVtICpyZWdfYmFzZSwKPiArCQkJCQkgc3BpbmxvY2tfdCAqbG9jayk7 Cj4gKwo+ICAjZGVmaW5lIFJPQ0tDSElQX0lOVkVSVEVSX0hJV09SRF9NQVNLCUJJVCgwKQo+IAo+ ICBzdHJ1Y3QgY2xrICpyb2NrY2hpcF9jbGtfcmVnaXN0ZXJfaW52ZXJ0ZXIoY29uc3QgY2hhciAq bmFtZSwKPiBAQCAtMjk5LDYgKzMxMyw3IEBAIGVudW0gcm9ja2NoaXBfY2xrX2JyYW5jaF90eXBl IHsKPiAgCWJyYW5jaF9tbWMsCj4gIAlicmFuY2hfaW52ZXJ0ZXIsCj4gIAlicmFuY2hfZmFjdG9y LAo+ICsJYnJhbmNoX2RkcmMsCj4gIH07Cj4gCj4gIHN0cnVjdCByb2NrY2hpcF9jbGtfYnJhbmNo IHsKPiBAQCAtNDg4LDYgKzUwMywyNCBAQCBzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5jaCB7Cj4g IAkJLmNoaWxkCQk9IGNoLAkJCQlcCj4gIAl9Cj4gCj4gKyNkZWZpbmUgQ09NUE9TSVRFX0REUkNM SyhfaWQsIGNuYW1lLCBwbmFtZXMsIGYsIG1vLCBtcywgbXcsCVwKPiArCQkJIGRzLCBkdywgZGYp CQkJCVwKPiArCXsJCQkJCQkJXAo+ICsJCS5pZAkJPSBfaWQsCQkJCVwKPiArCQkuYnJhbmNoX3R5 cGUJPSBicmFuY2hfZGRyYywJCQlcCj4gKwkJLm5hbWUJCT0gY25hbWUsCQkJXAo+ICsJCS5wYXJl bnRfbmFtZXMJPSBwbmFtZXMsCQkJXAo+ICsJCS5udW1fcGFyZW50cwk9IEFSUkFZX1NJWkUocG5h bWVzKSwJCVwKPiArCQkuZmxhZ3MJCT0gZiwJCQkJXAo+ICsJCS5tdXhkaXZfb2Zmc2V0ICA9IG1v LCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArCQkubXV4X3NoaWZ0ICAgICAgPSBtcywg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKwkJLm11eF93aWR0aCAgICAgID0gbXcsICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsJCS5kaXZfc2hpZnQgICAgICA9IGRzLCAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiArCQkuZGl2X3dpZHRoICAgICAgPSBkdywgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCj4gKwkJLmRpdl9mbGFncwk9IGRmLAkJCQlcCj4gKwkJLmdh dGVfb2Zmc2V0ICAgID0gLTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsJfQo+ICsK PiAgI2RlZmluZSBNVVgoX2lkLCBjbmFtZSwgcG5hbWVzLCBmLCBvLCBzLCB3LCBtZikJCQlcCj4g IAl7CQkJCQkJCVwKPiAgCQkuaWQJCT0gX2lkLAkJCQlcCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv c29jL3JvY2tjaGlwL3JvY2tjaGlwX3NpcC5oCj4gYi9pbmNsdWRlL3NvYy9yb2NrY2hpcC9yb2Nr Y2hpcF9zaXAuaCBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjQyMmVhMzYK PiAtLS0gL2Rldi9udWxsCj4gKysrIGIvaW5jbHVkZS9zb2Mvcm9ja2NoaXAvcm9ja2NoaXBfc2lw LmgKPiBAQCAtMCwwICsxLDI3IEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCAoYykgMjAxNiwgRnV6 aG91IFJvY2tjaGlwIEVsZWN0cm9uaWNzIENvLiwgTHRkCj4gKyAqIEF1dGhvcjogTGluIEh1YW5n IDxobEByb2NrLWNoaXBzLmNvbT4KPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKPiArICogdW5k ZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSwKPiArICogdmVyc2lvbiAyLCBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbi4KPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAo+ICsgKiBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IK PiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCj4gZm9yICsgKiBtb3JlIGRldGFpbHMuCj4gKyAqLwo+ICsjaWZu ZGVmIF9fU09DX1JPQ0tDSElQX1NJUF9ICj4gKyNkZWZpbmUgX19TT0NfUk9DS0NISVBfU0lQX0gK PiArCj4gKyNkZWZpbmUgU0lQX0RSQU1fRlJFUQkJMHg4MjAwMDAwOAo+ICsjZGVmaW5lIENPTkZJ R19EUkFNX0lOSVQJMHgwMAo+ICsjZGVmaW5lIENPTkZJR19EUkFNX1NFVF9SQVRFCTB4MDEKPiAr I2RlZmluZSBDT05GSUdfRFJBTV9ST1VORF9SQVRFCTB4MDIKPiArI2RlZmluZSBDT05GSUdfRFJB TV9TRVRfQVRfU1IJMHgwMwo+ICsjZGVmaW5lIENPTkZJR19EUkFNX0dFVF9CVwkweDA0Cj4gKyNk ZWZpbmUgQ09ORklHX0RSQU1fR0VUX1JBVEUJMHgwNQo+ICsjZGVmaW5lIENPTkZJR19EUkFNX0NM Ul9JUlEJMHgwNgo+ICsjZGVmaW5lIENPTkZJR19EUkFNX1NFVF9QQVJBTQkweDA3Cgp0aGlzIGlz IGEgcHVibGljIGhlYWRlciwgc28gcGxlYXNlIGdpdmUgdGhlIGNvbnN0YW50cyBhIG1vcmUgc3Bl Y2lmaWMgbmFtZSAKKFJPQ0tDSElQX1NJUF8qLCBST0NLQ0hJUF9TSVBfQ09ORklHXyopIHNvIHRo YXQgaXQgZG9lc24ndCBwcm9kdWNlIGNvbGxpc2lvbnMgCmxhdGVyIG9uLgoKCkFwYXJ0IGZyb20g dGhhdCBzdHVmZiBhYm92ZSwgdGhpcyBsb29rcyByZWFsbHkgbmljZSBub3cuCgpIZWlrbwpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK