From mboxrd@z Thu Jan 1 00:00:00 1970 From: Clint Taylor Subject: Re: [PATCH V11] drm/i915/skl: SKL CDCLK change on modeset tracking VCO Date: Thu, 17 Mar 2016 14:38:15 -0700 Message-ID: <56EB23C7.4070402@intel.com> References: <1449620105-32754-1-git-send-email-clinton.a.taylor@intel.com> <1458077645-12657-1-git-send-email-clinton.a.taylor@intel.com> <20160316072718.GM14170@phenom.ffwll.local> <56E9EC2C.8070702@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id B7F366EAF1 for ; Thu, 17 Mar 2016 21:42:28 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi , Daniel Vetter , =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMDMvMTcvMjAxNiAwMjoxOCBQTSwgUm9kcmlnbyBWaXZpIHdyb3RlOgo+Cj4KPiBPbiBXZWQs IE1hciAxNiwgMjAxNiBhdCA0OjMzIFBNIENsaW50IFRheWxvciA8Y2xpbnRvbi5hLnRheWxvckBp bnRlbC5jb20KPiA8bWFpbHRvOmNsaW50b24uYS50YXlsb3JAaW50ZWwuY29tPj4gd3JvdGU6Cj4K PiAgICAgT24gMDMvMTYvMjAxNiAxMjoyNyBBTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiAgICAg ID4gT24gVHVlLCBNYXIgMTUsIDIwMTYgYXQgMDI6MzQ6MDVQTSAtMDcwMCwKPiAgICAgY2xpbnRv bi5hLnRheWxvckBpbnRlbC5jb20gPG1haWx0bzpjbGludG9uLmEudGF5bG9yQGludGVsLmNvbT4g d3JvdGU6Cj4gICAgICA+PiBGcm9tOiBDbGludCBUYXlsb3IgPGNsaW50b24uYS50YXlsb3JAaW50 ZWwuY29tCj4gICAgIDxtYWlsdG86Y2xpbnRvbi5hLnRheWxvckBpbnRlbC5jb20+Pgo+ICAgICAg Pj4KPiAgICAgID4+IFdBUk5JTkc6IFVzaW5nIENocm9tZU9TIHdpdGggYW4gZURQIHBhbmVsIGFu ZCBhIDRLQDYwIERQIG1vbml0b3IKPiAgICAgY29ubmVjdGVkCj4gICAgICA+PiB0byBEREkxIHRo ZSBzeXN0ZW0gd2lsbCBoYXJkIGhhbmcgZHVyaW5nIGEgY29sZCBib290LiBPY2N1cnMKPiAgICAg d2hlbiBEREkxCj4gICAgICA+PiBpcyBlbmFibGVkIHdoZW4gdGhlIGNkY2xrIGlzIGxlc3MgdGhl biByZXF1aXJlZC4gRFAgY29ubmVjdGVkIHRvCj4gICAgIERESTIKPiAgICAgID4+IGFuZCBIUEQg b24gZWl0aGVyIHBvcnQgd29ya3MgY29ycmVjdGx5Lgo+ICAgICAgPgo+ICAgICAgPiBTbyB0aGlz IHBhdGNoIGhhcmQtaGFuZ3MgbWFjaGluZXM/Cj4KPiAgICAgVGhlIGhhcmQtaGFuZyBvbmx5IG9j Y3VycyBpbiBkZXZlbG9wZXIgbW9kZSBDaHJvbWVPUyB3aXRoIENvcmVib290IChGU1AKPiAgICAg dmVyc2lvbiA8IDEuOSkgdXNpbmcgRFAgb24gRERJMSB1c2luZyBhIFVTQi1DLT5EUCBjb252ZXJ0 ZXIuCj4KPiAgICAgV2UgaGF2ZSBub3QgYmVlbiBhYmxlIHRvIHJlcHJvZHVjZSB0aGlzIGlzc3Vl IHNpbmNlIHVwZGF0aW5nIHRvIEZTUCAxLjkKPiAgICAgYW5kIHdhcyBuZXZlciBhYmxlIHRvIHJl cGxpY2F0ZSB0aGUgaXNzdWUgd2l0aCBVRUZJIGFuZCBTS0wgUlZQLiBUaGUKPiAgICAgd2Fybmlu ZyB3YXMgYWRkZWQgdG8gdGhlIGNvbW1pdCBtZXNzYWdlIGR1cmluZyBkZXZlbG9wbWVudCB0byBt YWtlCj4gICAgIGV2ZXJ5b25lIGF3YXJlIG9mIHRoZSBpc3N1ZS4KPgo+Cj4gV2hhdCBkb2VzIHRo aXMgZGV2ZWxvcGVyIG1vZGUgaGFzIHNwZWNpYWwvZGlmZmVyZW50PwoKRGV2ZWxvcGVyIG1vZGUg aW5pdGlhbGl6ZXMgZURQIGFuZCBkaXNwbGF5IGEgYm9vdCBtZXNzYWdlLCB0aGUgYm9vdCAKbWVz c2FnZSBzdGF5cyBlbmFibGVkIHVudGlsIHRoZSBrZXJuZWwgdGFrZXMgb3Zlci4gTm9ybWFsIG1v ZGUgZG9lcyBub3QgCmluaXRpYWxpemUgdGhlIGRpc3BsYXkgaGFyZHdhcmUuCgo+IFdoYXQgYXJl IHRoZSByaXNrcyBvZiBnZXR0aW5nIHRoaXMgaW4gb3RoZXIgcGxhdGZvcm0gb3V0IHRoZXJlIG5v biBjaHJvbWU/CkZTUCAxLjggYW5kIGVhcmxpZXIgYXJlIG9ubHkgdXNlZCBpbiBjb3JlYm9vdCBm b3IgQ2hyb21lT1MgaW4gCm5vbi1zaGlwcGluZyBwbGF0Zm9ybXMuIE9mIGNvdXJzZSB0aGVyZSBp cyBhIHJpc2sgc2luY2UgY2RjbGsgaXMgc28gCmltcG9ydGFudCB0byB0aGUgZGlzcGxheSBzdWJz eXN0ZW0gYW5kIHdlIGhhdmVuJ3QgZm91bmQgZXhhY3RseSB3aHkgCmNkY2xrIHdhcyBub3QgYmVp bmcgY29tcHV0ZWQgY29ycmVjdGx5IGZvciBEREkxLgoKLUNsaW50Cgo+Cj4KPiAgICAgID4KPiAg ICAgID4+Cj4gICAgICA+PiBTZXQgY2RjbGsgYmFzZWQgb24gdGhlIG1heCByZXF1aXJlZCBwaXhl bCBjbG9jayBiYXNlZCBvbiBWQ08KPiAgICAgID4+IHNlbGVjdGVkLiBUcmFjayBib290IHZjbyBp bnN0ZWFkIG9mIGJvb3QgY2RjbGsuCj4gICAgICA+Pgo+ICAgICAgPj4gVGhlIHZjbyBpcyBub3cg dHJhY2tlZCBhdCB0aGUgYXRvbWljIGxldmVsIGFuZCBhbGwgQ1JUQ3MgdXBkYXRlZCBpZgo+ICAg ICAgPj4gdGhlIHJlcXVpcmVkIHZjbyBpcyBjaGFuZ2VkLiBOb3QgdGVzdGVkIHdpdGggZURQIHYx LjQgcGFuZWxzIHRoYXQKPiAgICAgID4+IHJlcXVpcmUgODY0MCB2Y28gZHVlIHRvIGF2YWlsYWJp bGl0eS4KPiAgICAgID4+Cj4gICAgICA+PiBWMTogaW5pdGlhbCB2ZXJzaW9uCj4gICAgICA+PiBW MjogYWRkIHZjbyB0cmFja2luZyBpbiBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZygpLCByZW5hbWUK PiAgICAgID4+IHNrbF9ib290X2NkY2xrLgo+ICAgICAgPj4gVjM6IHJlYmFzZSwgVjIgZmVlZGJh Y2sgbm90IHBvc3NpYmxlIGFzIGVuY29kZXJzIGFyZSBub3QgYXdhcmUgb2YKPiAgICAgID4+IGF0 b21pYy4KPiAgICAgID4+IFY0OiB0cmFjayB0YXJnZXQgdmNvIGlzIGF0b21pYyBzdGF0ZS4gbW9k ZXNldCBhbGwgQ1JUQ3MgaWYgdmNvCj4gICAgIGNoYW5nZXMKPiAgICAgID4+IFY1OiByZW5hbWUg YXRvbWljIHZhcmlhYmxlLCBjbGVhbmVyIGlmL2Vsc2UgbG9naWMsIHVzZSBleGlzdGluZwo+ICAg ICB2Y28gaWYKPiAgICAgID4+ICAgICAgICBlbmNvZGVyIGRvZXMgbm90IHJldHVybiBhIG5ldyB2 Y28gdmFsdWUuIGNoZWNrX3BhdGNoLnBsCj4gICAgIDxodHRwOi8vY2hlY2tfcGF0Y2gucGw+IGNs ZWFudXAKPiAgICAgID4+IFY2OiBzaW1wbGlmeSBsb2dpYyBpbiBpbnRlbF9tb2Rlc2V0X2NoZWNr cy4KPiAgICAgID4+IFY3OiByZW9yZGVyIGFuIElGIGZvciByZWFkYWJpbGl0eSBhbmQgd2hpdGVz cGFjZSBmaXguCj4gICAgICA+PiBWODogdXNlIGRldl9jZGNsayBmb3IgdHJhY2tpbmcgbmV3IGNk Y2xrIGR1cmluZyBhdG9taWMKPiAgICAgID4+IFY5OiBjb3JyZWN0bHkgaGFuZGxlIHZjbyA4NjQw IHdoZW4gY3J0Y3M9PTAKPiAgICAgID4+IFYxMDogQ2xlYW4gdXAgaWYgZWxzZSBpbiBjcnRjcz09 MAo+ICAgICAgPj4gVjExOiBSZWJhc2UgZm9yIG5ldyBpbnRlbF9kcGxsX21nci5jCj4gICAgICA+ Pgo+ICAgICAgPj4gUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20KPiAgICAgPG1haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4+Cj4gICAgICA+Cj4gICAgICA+IElzIHRoZSByLWIgZnJvbSBWaWxsZSByZWFsbHkgZm9yIHYx MT8KPgo+ICAgICByLWIgaXMgZnJvbSBwYXRjaCBWOSBhbmQgb25seSBoaXMgVjggY29tbWVudCBj aGFuZ2UgYW5kIGEgcmViYXNlIGhhcwo+ICAgICBvY2N1cmVkIHNpbmNlLiBJIHdpbGwgc3VibWl0 IGEgVjEyIHdpdGggdGhlIHdhcm5pbmcgYW5kIHItYiByZW1vdmVkIGlmCj4gICAgIG5lY2Vzc2Fy eS4KPgo+Cj4gVmlsbGU/Cj4KPgo+ICAgICAgPiAtRGFuaWVsCj4gICAgICA+Cj4gICAgICA+PiBT aWduZWQtb2ZmLWJ5OiBDbGludCBUYXlsb3IgPGNsaW50b24uYS50YXlsb3JAaW50ZWwuY29tCj4g ICAgIDxtYWlsdG86Y2xpbnRvbi5hLnRheWxvckBpbnRlbC5jb20+Pgo+ICAgICAgPj4gLS0tCj4g ICAgICA+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgfCAgICAyICst Cj4gICAgICA+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgfCAgMTEx Cj4gICAgICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ICAgICAgPj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIHwgICAgOSArLS0KPiAgICAgID4+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICB8ICAgIDUgKysKPiAgICAgID4+ ICAgNCBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCj4g ICAgICA+Pgo+ICAgICAgPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiAgICAgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gICAgICA+PiBp bmRleCA4MGIxNGYxLi5iZjg3ZTYyIDEwMDY0NAo+ICAgICAgPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICAgICAgPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+ICAgICAgPj4gQEAgLTE3NTksNyArMTc1OSw3IEBAIHN0cnVjdCBkcm1faTkx NV9wcml2YXRlIHsKPiAgICAgID4+ICAgICAgaW50IG51bV9mZW5jZV9yZWdzOyAvKiA4IG9uIHBy ZS05NjUsIDE2IG90aGVyd2lzZSAqLwo+ICAgICAgPj4KPiAgICAgID4+ICAgICAgdW5zaWduZWQg aW50IGZzYl9mcmVxLCBtZW1fZnJlcSwgaXNfZGRyMzsKPiAgICAgID4+IC0gICAgdW5zaWduZWQg aW50IHNrbF9ib290X2NkY2xrOwo+ICAgICAgPj4gKyAgICB1bnNpZ25lZCBpbnQgc2tsX3Zjb19m cmVxOwo+ICAgICAgPj4gICAgICB1bnNpZ25lZCBpbnQgY2RjbGtfZnJlcSwgbWF4X2NkY2xrX2Zy ZXEsIGF0b21pY19jZGNsa19mcmVxOwo+ICAgICAgPj4gICAgICB1bnNpZ25lZCBpbnQgbWF4X2Rv dGNsa19mcmVxOwo+ICAgICAgPj4gICAgICB1bnNpZ25lZCBpbnQgcmF3Y2xrX2ZyZXE7Cj4gICAg ICA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g ICAgIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gICAgICA+PiBpbmRl eCBjZTU1ZjBiLi5mYzUyNjhjIDEwMDY0NAo+ICAgICAgPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gICAgICA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiAgICAgID4+IEBAIC01NTg0LDcgKzU1ODQsNyBAQCBzdGF0aWMg dW5zaWduZWQgaW50Cj4gICAgIHNrbF9jZGNsa19kZWNpbWFsKHVuc2lnbmVkIGludCBmcmVxKQo+ ICAgICAgPj4gICAgICByZXR1cm4gKGZyZXEgLSAxMDAwKSAvIDUwMDsKPiAgICAgID4+ICAgfQo+ ICAgICAgPj4KPiAgICAgID4+IC1zdGF0aWMgdW5zaWduZWQgaW50IHNrbF9jZGNsa19nZXRfdmNv KHVuc2lnbmVkIGludCBmcmVxKQo+ICAgICAgPj4gK3Vuc2lnbmVkIGludCBza2xfY2RjbGtfZ2V0 X3Zjbyh1bnNpZ25lZCBpbnQgZnJlcSkKPiAgICAgID4+ICAgewo+ICAgICAgPj4gICAgICB1bnNp Z25lZCBpbnQgaTsKPiAgICAgID4+Cj4gICAgICA+PiBAQCAtNTc0MiwxNyArNTc0MiwyMSBAQCB2 b2lkIHNrbF91bmluaXRfY2RjbGsoc3RydWN0Cj4gICAgIGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICAgICAgPj4KPiAgICAgID4+ICAgdm9pZCBza2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAgICA+PiAgIHsKPiAgICAgID4+IC0gICAgdW5z aWduZWQgaW50IHJlcXVpcmVkX3ZjbzsKPiAgICAgID4+ICsgICAgdW5zaWduZWQgaW50IGNkY2xr Owo+ICAgICAgPj4KPiAgICAgID4+ICAgICAgLyogRFBMTDAgbm90IGVuYWJsZWQgKGhhcHBlbnMg b24gZWFybHkgQklPUyB2ZXJzaW9ucykgKi8KPiAgICAgID4+ICAgICAgaWYgKCEoSTkxNV9SRUFE KExDUExMMV9DVEwpICYgTENQTExfUExMX0VOQUJMRSkpIHsKPiAgICAgID4+ICAgICAgICAgICAg ICAvKiBlbmFibGUgRFBMTDAgKi8KPiAgICAgID4+IC0gICAgICAgICAgICByZXF1aXJlZF92Y28g PQo+ICAgICBza2xfY2RjbGtfZ2V0X3ZjbyhkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGspOwo+ICAg ICAgPj4gLSAgICAgICAgICAgIHNrbF9kcGxsMF9lbmFibGUoZGV2X3ByaXYsIHJlcXVpcmVkX3Zj byk7Cj4gICAgICA+PiArICAgICAgICAgICAgaWYgKGRldl9wcml2LT5za2xfdmNvX2ZyZXEgIT0g ODY0MCkKPiAgICAgID4+ICsgICAgICAgICAgICAgICAgICAgIGRldl9wcml2LT5za2xfdmNvX2Zy ZXEgPSA4MTAwOwo+ICAgICAgPj4gKyAgICAgICAgICAgIHNrbF9kcGxsMF9lbmFibGUoZGV2X3By aXYsIGRldl9wcml2LT5za2xfdmNvX2ZyZXEpOwo+ICAgICAgPj4gKyAgICAgICAgICAgIGNkY2xr ID0gKChkZXZfcHJpdi0+c2tsX3Zjb19mcmVxID09IDgxMDApID8gMzM3NTAwCj4gICAgIDogMzA4 NTcwKTsKPiAgICAgID4+ICsgICAgfSBlbHNlIHsKPiAgICAgID4+ICsgICAgICAgICAgICBjZGNs ayA9IGRldl9wcml2LT5jZGNsa19mcmVxOwo+ICAgICAgPj4gICAgICB9Cj4gICAgICA+Pgo+ICAg ICAgPj4gLSAgICAvKiBzZXQgQ0RDTEsgdG8gdGhlIGZyZXF1ZW5jeSB0aGUgQklPUyBjaG9zZSAq Lwo+ICAgICAgPj4gLSAgICBza2xfc2V0X2NkY2xrKGRldl9wcml2LCBkZXZfcHJpdi0+c2tsX2Jv b3RfY2RjbGspOwo+ICAgICAgPj4gKyAgICAvKiBzZXQgQ0RDTEsgdG8gdGhlIGxvd2VzdCBmcmVx dWVuY3ksIE1vZGVzZXQgZm9sbG93cyAqLwo+ICAgICAgPj4gKyAgICBza2xfc2V0X2NkY2xrKGRl dl9wcml2LCBjZGNsayk7Cj4gICAgICA+Pgo+ICAgICAgPj4gICAgICAvKiBlbmFibGUgREJVRiBw b3dlciAqLwo+ICAgICAgPj4gICAgICBJOTE1X1dSSVRFKERCVUZfQ1RMLCBJOTE1X1JFQUQoREJV Rl9DVEwpIHwgREJVRl9QT1dFUl9SRVFVRVNUKTsKPiAgICAgID4+IEBAIC01NzY4LDcgKzU3NzIs NyBAQCBpbnQgc2tsX3Nhbml0aXplX2NkY2xrKHN0cnVjdAo+ICAgICBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgICAgID4+ICAgewo+ICAgICAgPj4gICAgICB1aW50MzJfdCBsY3BsbDEg PSBJOTE1X1JFQUQoTENQTEwxX0NUTCk7Cj4gICAgICA+PiAgICAgIHVpbnQzMl90IGNkY3RsID0g STkxNV9SRUFEKENEQ0xLX0NUTCk7Cj4gICAgICA+PiAtICAgIGludCBmcmVxID0gZGV2X3ByaXYt PnNrbF9ib290X2NkY2xrOwo+ICAgICAgPj4gKyAgICBpbnQgZnJlcSA9IGRldl9wcml2LT5jZGNs a19mcmVxOwo+ICAgICAgPj4KPiAgICAgID4+ICAgICAgLyoKPiAgICAgID4+ICAgICAgICogY2hl Y2sgaWYgdGhlIHByZS1vcyBpbnRpYWxpemVkIHRoZSBkaXNwbGF5Cj4gICAgICA+PiBAQCAtNTc5 MiwxMSArNTc5Niw3IEBAIGludCBza2xfc2FuaXRpemVfY2RjbGsoc3RydWN0Cj4gICAgIGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgICAgPj4gICAgICAgICAgICAgIC8qIEFsbCB3ZWxs OyBub3RoaW5nIHRvIHNhbml0aXplICovCj4gICAgICA+PiAgICAgICAgICAgICAgcmV0dXJuIGZh bHNlOwo+ICAgICAgPj4gICBzYW5pdGl6ZToKPiAgICAgID4+IC0gICAgLyoKPiAgICAgID4+IC0g ICAgICogQXMgb2Ygbm93IGluaXRpYWxpemUgd2l0aCBtYXggY2RjbGsgdGlsbAo+ICAgICAgPj4g LSAgICAgKiB3ZSBnZXQgZHluYW1pYyBjZGNsayBzdXBwb3J0Cj4gICAgICA+PiAtICAgICAqICov Cj4gICAgICA+PiAtICAgIGRldl9wcml2LT5za2xfYm9vdF9jZGNsayA9IGRldl9wcml2LT5tYXhf Y2RjbGtfZnJlcTsKPiAgICAgID4+ICsKPiAgICAgID4+ICAgICAgc2tsX2luaXRfY2RjbGsoZGV2 X3ByaXYpOwo+ICAgICAgPj4KPiAgICAgID4+ICAgICAgLyogd2UgZGlkIGhhdmUgdG8gc2FuaXRp emUgKi8KPiAgICAgID4+IEBAIC05NzUzLDYgKzk3NTMsNzMgQEAgc3RhdGljIHZvaWQKPiAgICAg YnJvYWR3ZWxsX21vZGVzZXRfY29tbWl0X2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpv bGRfc3RhdGUpCj4gICAgICA+PiAgICAgIGJyb2Fkd2VsbF9zZXRfY2RjbGsoZGV2LCByZXFfY2Rj bGspOwo+ICAgICAgPj4gICB9Cj4gICAgICA+Pgo+ICAgICAgPj4gK3N0YXRpYyBpbnQgc2tsX21v ZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gICAgICA+ PiArewo+ICAgICAgPj4gKyAgICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0 ZSA9Cj4gICAgIHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4gICAgICA+PiArICAgIHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7Cj4g ICAgICA+PiArICAgIGNvbnN0IGludCBtYXhfcGl4Y2xrID0gaWxrX21heF9waXhlbF9yYXRlKHN0 YXRlKTsKPiAgICAgID4+ICsgICAgaW50IGNkY2xrOwo+ICAgICAgPj4gKwo+ICAgICAgPj4gKyAg ICAvKgo+ICAgICAgPj4gKyAgICAgKiBGSVhNRSBzaG91bGQgYWxzbyBhY2NvdW50IGZvciBwbGFu ZSByYXRpbwo+ICAgICAgPj4gKyAgICAgKiBvbmNlIDY0YnBwIHBpeGVsIGZvcm1hdHMgYXJlIHN1 cHBvcnRlZC4KPiAgICAgID4+ICsgICAgICovCj4gICAgICA+PiArCj4gICAgICA+PiArICAgIGlm IChpbnRlbF9zdGF0ZS0+Y2RjbGtfcGxsX3ZjbyA9PSA4NjQwKSB7Cj4gICAgICA+PiArICAgICAg ICAgICAgLyogdmNvIDg2NDAgKi8KPiAgICAgID4+ICsgICAgICAgICAgICBpZiAobWF4X3BpeGNs ayA+IDU0MDAwMCkKPiAgICAgID4+ICsgICAgICAgICAgICAgICAgICAgIGNkY2xrID0gNjE3MTQw Owo+ICAgICAgPj4gKyAgICAgICAgICAgIGVsc2UgaWYgKG1heF9waXhjbGsgPiA0MzIwMDApCj4g ICAgICA+PiArICAgICAgICAgICAgICAgICAgICBjZGNsayA9IDU0MDAwMDsKPiAgICAgID4+ICsg ICAgICAgICAgICBlbHNlIGlmIChtYXhfcGl4Y2xrID4gMzA4NTcwKQo+ICAgICAgPj4gKyAgICAg ICAgICAgICAgICAgICAgY2RjbGsgPSA0MzIwMDA7Cj4gICAgICA+PiArICAgICAgICAgICAgZWxz ZQo+ICAgICAgPj4gKyAgICAgICAgICAgICAgICAgICAgY2RjbGsgPSAzMDg1NzA7Cj4gICAgICA+ PiArICAgIH0gZWxzZSB7Cj4gICAgICA+PiArICAgICAgICAgICAgLyogVkNPIDgxMDAgKi8KPiAg ICAgID4+ICsgICAgICAgICAgICBpZiAobWF4X3BpeGNsayA+IDU0MDAwMCkKPiAgICAgID4+ICsg ICAgICAgICAgICAgICAgICAgIGNkY2xrID0gNjc1MDAwOwo+ICAgICAgPj4gKyAgICAgICAgICAg IGVsc2UgaWYgKG1heF9waXhjbGsgPiA0NTAwMDApCj4gICAgICA+PiArICAgICAgICAgICAgICAg ICAgICBjZGNsayA9IDU0MDAwMDsKPiAgICAgID4+ICsgICAgICAgICAgICBlbHNlIGlmIChtYXhf cGl4Y2xrID4gMzM3NTAwKQo+ICAgICAgPj4gKyAgICAgICAgICAgICAgICAgICAgY2RjbGsgPSA0 NTAwMDA7Cj4gICAgICA+PiArICAgICAgICAgICAgZWxzZQo+ICAgICAgPj4gKyAgICAgICAgICAg ICAgICAgICAgY2RjbGsgPSAzMzc1MDA7Cj4gICAgICA+PiArICAgIH0KPiAgICAgID4+ICsKPiAg ICAgID4+ICsgICAgLyoKPiAgICAgID4+ICsgICAgICogRklYTUUgbW92ZSB0aGUgY2RjbGsgY2Fj bHVsYXRpb24gdG8KPiAgICAgID4+ICsgICAgICogY29tcHV0ZV9jb25maWcoKSBzbyB3ZSBjYW4g ZmFpbCBncmFjZWd1bGx5Lgo+ICAgICAgPj4gKyAgICAgKi8KPiAgICAgID4+ICsgICAgaWYgKGNk Y2xrID4gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7Cj4gICAgICA+PiArICAgICAgICAgICAg RFJNX0VSUk9SKCJyZXF1ZXN0ZWQgY2RjbGsgKCVkIGtIeikgZXhjZWVkcyBtYXggKCVkCj4gICAg IGtIeilcbiIsCj4gICAgICA+PiArICAgICAgICAgICAgICAgICAgICAgIGNkY2xrLCBkZXZfcHJp di0+bWF4X2NkY2xrX2ZyZXEpOwo+ICAgICAgPj4gKyAgICAgICAgICAgIGNkY2xrID0gZGV2X3By aXYtPm1heF9jZGNsa19mcmVxOwo+ICAgICAgPj4gKyAgICB9Cj4gICAgICA+PiArCj4gICAgICA+ PiArICAgIGludGVsX3N0YXRlLT5jZGNsayA9IGludGVsX3N0YXRlLT5kZXZfY2RjbGsgPSBjZGNs azsKPiAgICAgID4+ICsgICAgaWYgKCFpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzKQo+ICAgICAg Pj4gKyAgICAgICAgICAgIGludGVsX3N0YXRlLT5kZXZfY2RjbGsgPQo+ICAgICAoKGludGVsX3N0 YXRlLT5jZGNsa19wbGxfdmNvID09IDg2NDApID8KPiAgICAgID4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAzMDg1NzAgOiAzMzc1MDApOwo+ICAgICAgPj4gKwo+ICAg ICAgPj4gKwo+ICAgICAgPj4gKyAgICByZXR1cm4gMDsKPiAgICAgID4+ICt9Cj4gICAgICA+PiAr Cj4gICAgICA+PiArc3RhdGljIHZvaWQgc2tsX21vZGVzZXRfY29tbWl0X2NkY2xrKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlCj4gICAgICpvbGRfc3RhdGUpCj4gICAgICA+PiArewo+ICAgICAgPj4g KyAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2xkX3N0YXRlLT5kZXY7Cj4gICAgICA+PiAr ICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gICAgICA+PiArICAgIHVuc2lnbmVkIGludCByZXFfY2RjbGsgPQo+ICAgICB0b19pbnRlbF9h dG9taWNfc3RhdGUob2xkX3N0YXRlKS0+ZGV2X2NkY2xrOwo+ICAgICAgPj4gKwo+ICAgICAgPj4g KyAgICAvKgo+ICAgICAgPj4gKyAgICAgKiBGSVhNRSBkaXNhYmxlL2VuYWJsZSBQTEwgc2hvdWxk IHdyYXAgc2V0X2NkY2xrKCkKPiAgICAgID4+ICsgICAgICovCj4gICAgICA+PiArICAgIHNrbF9z ZXRfY2RjbGsoZGV2X3ByaXYsIHJlcV9jZGNsayk7Cj4gICAgICA+PiArCj4gICAgICA+PiArICAg IGRldl9wcml2LT5za2xfdmNvX2ZyZXEgPQo+ICAgICB0b19pbnRlbF9hdG9taWNfc3RhdGUob2xk X3N0YXRlKS0+Y2RjbGtfcGxsX3ZjbzsKPiAgICAgID4+ICt9Cj4gICAgICA+PiArCj4gICAgICA+ PiAgIHN0YXRpYyBpbnQgaGFzd2VsbF9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVsX2Ny dGMgKmNydGMsCj4gICAgICA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gICAgICpjcnRjX3N0YXRlKQo+ICAgICAgPj4gICB7Cj4g ICAgICA+PiBAQCAtMTMyMTQsOSArMTMyODEsMTUgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0 X2NoZWNrcyhzdHJ1Y3QKPiAgICAgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gICAgICA+PiAg ICAgICAqIGFkanVzdGVkX21vZGUgYml0cyBpbiB0aGUgY3J0YyBkaXJlY3RseS4KPiAgICAgID4+ ICAgICAgICovCj4gICAgICA+PiAgICAgIGlmIChkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2Nh bGNfY2RjbGspIHsKPiAgICAgID4+ICsgICAgICAgICAgICBpZiAoIWludGVsX3N0YXRlLT5jZGNs a19wbGxfdmNvKQo+ICAgICAgPj4gKyAgICAgICAgICAgICAgICAgICAgaW50ZWxfc3RhdGUtPmNk Y2xrX3BsbF92Y28gPQo+ICAgICBkZXZfcHJpdi0+c2tsX3Zjb19mcmVxOwo+ICAgICAgPj4gKwo+ ICAgICAgPj4gICAgICAgICAgICAgIHJldCA9IGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2Fs Y19jZGNsayhzdGF0ZSk7Cj4gICAgICA+PiArICAgICAgICAgICAgaWYgKHJldCA8IDApCj4gICAg ICA+PiArICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ICAgICAgPj4KPiAgICAgID4+ IC0gICAgICAgICAgICBpZiAoIXJldCAmJiBpbnRlbF9zdGF0ZS0+ZGV2X2NkY2xrICE9Cj4gICAg IGRldl9wcml2LT5jZGNsa19mcmVxKQo+ICAgICAgPj4gKyAgICAgICAgICAgIGlmIChpbnRlbF9z dGF0ZS0+ZGV2X2NkY2xrICE9IGRldl9wcml2LT5jZGNsa19mcmVxIHx8Cj4gICAgICA+PiArICAg ICAgICAgICAgICAgIGludGVsX3N0YXRlLT5jZGNsa19wbGxfdmNvICE9Cj4gICAgIGRldl9wcml2 LT5za2xfdmNvX2ZyZXEpCj4gICAgICA+PiAgICAgICAgICAgICAgICAgICAgICByZXQgPSBpbnRl bF9tb2Rlc2V0X2FsbF9waXBlcyhzdGF0ZSk7Cj4gICAgICA+Pgo+ICAgICAgPj4gICAgICAgICAg ICAgIGlmIChyZXQgPCAwKQo+ICAgICAgPj4gQEAgLTEzNTg4LDcgKzEzNjYxLDggQEAgc3RhdGlj IGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdAo+ICAgICBkcm1fZGV2aWNlICpkZXYsCj4g ICAgICA+Pgo+ICAgICBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3Rh dGUoc3RhdGUtPmRldiwgc3RhdGUpOwo+ICAgICAgPj4KPiAgICAgID4+ICAgICAgICAgICAgICBp ZiAoZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jb21taXRfY2RjbGsgJiYKPiAgICAgID4+IC0g ICAgICAgICAgICAgICAgaW50ZWxfc3RhdGUtPmRldl9jZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtf ZnJlcSkKPiAgICAgID4+ICsgICAgICAgICAgICAgICAgKGludGVsX3N0YXRlLT5kZXZfY2RjbGsg IT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEgfHwKPiAgICAgID4+ICsgICAgICAgICAgICAgICAgaW50 ZWxfc3RhdGUtPmNkY2xrX3BsbF92Y28gIT0KPiAgICAgZGV2X3ByaXYtPnNrbF92Y29fZnJlcSkp Cj4gICAgICA+PiAgICAgICAgICAgICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0 X2NvbW1pdF9jZGNsayhzdGF0ZSk7Cj4gICAgICA+PiAgICAgIH0KPiAgICAgID4+Cj4gICAgICA+ PiBAQCAtMTQ5NjQsOCArMTUwMzgsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5 KHN0cnVjdAo+ICAgICBkcm1fZGV2aWNlICpkZXYpCj4gICAgICA+PiAgICAgICAgICAgICAgICAg ICAgICBicm94dG9uX21vZGVzZXRfY29tbWl0X2NkY2xrOwo+ICAgICAgPj4gICAgICAgICAgICAg IGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9Cj4gICAgICA+PiAgICAgICAg ICAgICAgICAgICAgICBicm94dG9uX21vZGVzZXRfY2FsY19jZGNsazsKPiAgICAgID4+ICsgICAg fSBlbHNlIGlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgewo+ICAgICAg Pj4gKyAgICAgICAgICAgIGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY29tbWl0X2NkY2xrID0K PiAgICAgID4+ICsgICAgICAgICAgICAgICAgICAgIHNrbF9tb2Rlc2V0X2NvbW1pdF9jZGNsazsK PiAgICAgID4+ICsgICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2Rj bGsgPQo+ICAgICAgPj4gKyAgICAgICAgICAgICAgICAgICAgc2tsX21vZGVzZXRfY2FsY19jZGNs azsKPiAgICAgID4+ICAgICAgfQo+ICAgICAgPj4gLQo+ICAgICAgPj4gICAgICBzd2l0Y2ggKElO VEVMX0lORk8oZGV2KS0+Z2VuKSB7Cj4gICAgICA+PiAgICAgIGNhc2UgMjoKPiAgICAgID4+ICAg ICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5xdWV1ZV9mbGlwID0gaW50ZWxfZ2VuMl9xdWV1 ZV9mbGlwOwo+ICAgICAgPj4gQEAgLTE1NjcyLDcgKzE1NzUwLDggQEAgc3RhdGljIHZvaWQKPiAg ICAgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gICAgICA+PiAgICAgICAgICAgICAgaWYgKGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKSB7Cj4g ICAgICA+PiAgICAgICAgICAgICAgICAgICAgICBkZXZfcHJpdi0+YWN0aXZlX2NydGNzIHw9IDEg PDwgY3J0Yy0+cGlwZTsKPiAgICAgID4+Cj4gICAgICA+PiAtICAgICAgICAgICAgICAgICAgICBp ZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+ICAgICAgPj4gKyAgICAgICAgICAgICAgICAg ICAgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwKPiAgICAgSVNfU0tZTEFLRShkZXZfcHJp dikgfHwKPiAgICAgID4+ICsgICAgICAgICAgICAgICAgICAgICAgICBJU19LQUJZTEFLRShkZXZf cHJpdikpIHsKPiAgICAgID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4Y2xrID0K PiAgICAgaWxrX3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKPiAgICAgID4+Cj4gICAgICA+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBpeGVsIHJhdGUgbXVzdG4ndCBleGNl ZWQgOTUlIG9mCj4gICAgIGNkY2xrIHdpdGggSVBTIG9uIEJEVyAqLwo+ICAgICAgPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKPiAgICAgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4gICAgICA+PiBpbmRleCA0YjYzNmM0 Li5hNTY0MmIxIDEwMDY0NAo+ICAgICAgPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHBsbF9tZ3IuYwo+ICAgICAgPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBsbF9tZ3IuYwo+ICAgICAgPj4gQEAgLTExODMsNiArMTE4Myw3IEBAIHNrbF9nZXRfZHBsbChz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCj4gICAgICA+PiAgICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ ICAgICAgPj4gICAgICB1aW50MzJfdCBjdHJsMSwgY2ZnY3IxLCBjZmdjcjI7Cj4gICAgICA+PiAg ICAgIGludCBjbG9jayA9IGNydGNfc3RhdGUtPnBvcnRfY2xvY2s7Cj4gICAgICA+PiArICAgIHVp bnQzMl90IHZjbyA9IDgxMDA7Cj4gICAgICA+Pgo+ICAgICAgPj4gICAgICAvKgo+ICAgICAgPj4g ICAgICAgKiBTZWUgY29tbWVudCBpbiBpbnRlbF9kcGxsX2h3X3N0YXRlIHRvIHVuZGVyc3RhbmQg d2h5IHdlCj4gICAgIGFsd2F5cyB1c2UgMAo+ICAgICAgPj4gQEAgLTEyMjUsMTcgKzEyMjYsMTcg QEAgc2tsX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgICAgID4+ICAgICAgICAgICAgICBjYXNlIDE2 MjAwMDoKPiAgICAgID4+ICAgICAgICAgICAgICAgICAgICAgIGN0cmwxIHw9Cj4gICAgIERQTExf Q1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFfTElOS19SQVRFXzE2MjAsIDApOwo+ICAgICAgPj4g ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICA+PiAtICAgICAgICAgICAgLyogVEJE OiBGb3IgRFAgbGluayByYXRlcyAyLjE2IEdIeiBhbmQgNC4zMiBHSHosCj4gICAgIFZDTyBpcyA4 NjQwIHdoaWNoCj4gICAgICA+PiAtICAgICAgICAgICAgcmVzdWx0cyBpbiBDRENMSyBjaGFuZ2Uu IE5lZWQgdG8gaGFuZGxlIHRoZSBjaGFuZ2UKPiAgICAgb2YgQ0RDTEsgYnkKPiAgICAgID4+IC0g ICAgICAgICAgICBkaXNhYmxpbmcgcGlwZXMgYW5kIHJlLWVuYWJsaW5nIHRoZW0gKi8KPiAgICAg ID4+ICAgICAgICAgICAgICBjYXNlIDEwODAwMDoKPiAgICAgID4+ICAgICAgICAgICAgICAgICAg ICAgIGN0cmwxIHw9Cj4gICAgIERQTExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFfTElOS19S QVRFXzEwODAsIDApOwo+ICAgICAgPj4gKyAgICAgICAgICAgICAgICAgICAgdmNvID0gODY0MDsK PiAgICAgID4+ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgPj4gICAgICAgICAg ICAgIGNhc2UgMjE2MDAwOgo+ICAgICAgPj4gICAgICAgICAgICAgICAgICAgICAgY3RybDEgfD0K PiAgICAgRFBMTF9DVFJMMV9MSU5LX1JBVEUoRFBMTF9DVFJMMV9MSU5LX1JBVEVfMjE2MCwgMCk7 Cj4gICAgICA+PiArICAgICAgICAgICAgICAgICAgICB2Y28gPSA4NjQwOwo+ICAgICAgPj4gICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICA+PiAgICAgICAgICAgICAgfQo+ICAgICAg Pj4KPiAgICAgID4+ICsKPiAgICAgdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJh c2Uuc3RhdGUpLT5jZGNsa19wbGxfdmNvID0gdmNvOwo+ICAgICAgPj4gICAgICAgICAgICAgIGNm Z2NyMSA9IGNmZ2NyMiA9IDA7Cj4gICAgICA+PiAgICAgIH0gZWxzZSB7Cj4gICAgICA+PiAgICAg ICAgICAgICAgcmV0dXJuIE5VTEw7Cj4gICAgICA+PiBAQCAtMTYyOCw3ICsxNjI5LDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZGRpX3BsbF9pbml0KHN0cnVjdAo+ICAgICBkcm1fZGV2aWNlICpkZXYp Cj4gICAgICA+PiAgICAgICAgICAgICAgaW50IGNkY2xrX2ZyZXE7Cj4gICAgICA+Pgo+ICAgICAg Pj4gICAgICAgICAgICAgIGNkY2xrX2ZyZXEgPQo+ICAgICBkZXZfcHJpdi0+ZGlzcGxheS5nZXRf ZGlzcGxheV9jbG9ja19zcGVlZChkZXYpOwo+ICAgICAgPj4gLSAgICAgICAgICAgIGRldl9wcml2 LT5za2xfYm9vdF9jZGNsayA9IGNkY2xrX2ZyZXE7Cj4gICAgICA+PiArICAgICAgICAgICAgZGV2 X3ByaXYtPnNrbF92Y29fZnJlcSA9IHNrbF9jZGNsa19nZXRfdmNvKGNkY2xrX2ZyZXEpOwo+ICAg ICAgPj4gICAgICAgICAgICAgIGlmIChza2xfc2FuaXRpemVfY2RjbGsoZGV2X3ByaXYpKQo+ICAg ICAgPj4gICAgICAgICAgICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygiU2FuaXRpemVkIGNkY2xr IHByb2dyYW1tZWQKPiAgICAgYnkgcHJlLW9zXG4iKTsKPiAgICAgID4+ICAgICAgICAgICAgICBp ZiAoIShJOTE1X1JFQUQoTENQTEwxX0NUTCkgJiBMQ1BMTF9QTExfRU5BQkxFKSkKPiAgICAgID4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICAgICBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gICAgICA+PiBpbmRleCAwMmIzZDIyLi5i MjNiMTI5IDEwMDY0NAo+ICAgICAgPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiAgICAgID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g ICAgICA+PiBAQCAtMzAxLDYgKzMwMSwxMCBAQCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlIHsK PiAgICAgID4+ICAgICAgICogZG9uJ3QgYm90aGVyIGNhbGN1bGF0aW5nIGludGVybWVkaWF0ZSB3 YXRlcm1hcmtzLgo+ICAgICAgPj4gICAgICAgKi8KPiAgICAgID4+ICAgICAgYm9vbCBza2lwX2lu dGVybWVkaWF0ZV93bTsKPiAgICAgID4+ICsKPiAgICAgID4+ICsgICAgLyogU0tML0tCTCBPbmx5 ICovCj4gICAgICA+PiArICAgIHVuc2lnbmVkIGludCBjZGNsa19wbGxfdmNvOwo+ICAgICAgPj4g Kwo+ICAgICAgPj4gICB9Owo+ICAgICAgPj4KPiAgICAgID4+ICAgc3RydWN0IGludGVsX3BsYW5l X3N0YXRlIHsKPiAgICAgID4+IEBAIC0xMjM5LDYgKzEyNDMsNyBAQCB2b2lkIGJ4dF9kaXNhYmxl X2RjOShzdHJ1Y3QKPiAgICAgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAgICAgPj4g ICB2b2lkIHNrbF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 Cj4gICAgICA+PiAgIGludCBza2xfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPiAgICAgID4+ICAgdm9pZCBza2xfdW5pbml0X2NkY2xrKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gICAgICA+PiArdW5zaWduZWQgaW50IHNrbF9j ZGNsa19nZXRfdmNvKHVuc2lnbmVkIGludCBmcmVxKTsKPiAgICAgID4+ICAgdm9pZCBza2xfZW5h YmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAgICAgPj4gICB2 b2lkIHNrbF9kaXNhYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ ICAgICAgPj4gICB2b2lkIGludGVsX2RwX2dldF9tX24oc3RydWN0IGludGVsX2NydGMgKmNydGMs Cj4gICAgICA+PiAtLQo+ICAgICAgPj4gMS43LjkuNQo+ICAgICAgPj4KPiAgICAgID4+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gICAgICA+PiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gICAgICA+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gICAgIDxtYWlsdG86SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4KPiAgICAg ID4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cj4gICAgICA+Cj4KPiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiAgICAgSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ICAgICBJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnIDxtYWlsdG86SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZz4KPiAgICAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==