From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [RFC PATCH] drm/i915/skl: Add DC6 disabling as a power well Date: Thu, 17 Sep 2015 14:14:37 +0300 Message-ID: <20150917111437.GM26517@intel.com> References: <1441972522-31367-1-git-send-email-patrik.jakobsson@linux.intel.com> <20150916201007.GK26517@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 5BE496E676 for ; Thu, 17 Sep 2015 04:14:41 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150916201007.GK26517@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Patrik Jakobsson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBTZXAgMTYsIDIwMTUgYXQgMTE6MTA6MDdQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIEZyaSwgU2VwIDExLCAyMDE1IGF0IDAxOjU1OjIyUE0gKzAyMDAsIFBhdHJp ayBKYWtvYnNzb24gd3JvdGU6Cj4gPiBXZSBuZWVkIHRvIGJlIGFibGUgdG8gY29udHJvbCBpZiBE QzYgaXMgYWxsb3dlZCBvciBub3QuIE11Y2ggbGlrZQo+ID4gcmVxdWVzdGluZyBwb3dlciB0byBh IHNwZWNpZmljIHBpZWNlIG9mIHRoZSBoYXJkd2FyZSB3ZSBuZWVkIHRvIGJlIGFibGUKPiA+IHRv IHJlcXVlc3QgdGhhdCB3ZSBkb24ndCBlbnRlciBEQzYgZHVyaW5nIGNlcnRhaW4gaHcgYWNjZXNz Lgo+ID4gCj4gPiBUbyBzb2x2ZSB0aGlzIHdpdGhvdXQgaW50cm9kdWNpbmcgdG9vIG11Y2ggaW5m cmFzdHJ1Y3R1cmUgSSdtIGhvb2tpbmcKPiA+IGludG8gdGhlIHBvd2VyIHdlbGwgLyBwb3dlciBk b21haW4gZnJhbWV3b3JrLiBEQzYgcHJldmVudGlvbiBpcyBtb2RlbGVkCj4gPiBtdWNoIGxpa2Ug YW4gZW5hYmxlZCBwb3dlciB3ZWxsLiBUaHVzIEknbSB1c2luZyB0aGUgdGVybWlub2xvZ3kgb24v b2ZmCj4gPiBmb3IgREMgc3RhdGVzIGluc3RlYWQgb2YgZW5hYmxlL2Rpc2FibGUuCj4gPiAKPiA+ IFRoZSBwcm9ibGVtIHRoYXQgc3RhcnRlZCB0aGlzIHdvcmsgaXMgdGhlIG5lZWQgZm9yIERDNiB0 byBiZSBkaXNhYmxlZAo+ID4gd2hlbiBhY2Nlc3NpbmcgRFBfQVVYX0EgZHVyaW5nIENSVEMgb24v b2ZmLiBUaGF0IGlzIGFsc28gZml4ZWQgaW4gdGhpcwo+ID4gcGF0Y2guCj4gPiAKPiA+IFRoaXMg aXMgcG9zdGVkIGFzIGFuIFJGQyBzaW5jZSBETUMgYW5kIERDIHN0YXRlIGhhbmRsaW5nIGlzIGJl aW5nCj4gPiByZXdvcmtlZCBhbmQgd2lsbCBwb3NzaWJseSBhZmZlY3QgdGhlIG91dGNvbWUgb2Yg dGhpcyBwYXRjaC4gVGhlIHBhdGNoCj4gPiBoYXMga25vd24gd2FybmluZ3MuCj4gPiAKPiA+IFNp Z25lZC1vZmYtYnk6IFBhdHJpayBKYWtvYnNzb24gPHBhdHJpay5qYWtvYnNzb25AbGludXguaW50 ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAg ICAgIHwgIDkgKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAg ICAgfCAgMiArCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwg NjkgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gPiAgMyBmaWxlcyBjaGFuZ2Vk LCA2NCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGRpLmMKPiA+IGluZGV4IDQ4MjMxODQuLmMyYzFhZDIgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiA+IEBAIC0yMjg4LDYgKzIyODgsOCBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikK PiA+ICAJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0RJU1BMQVlQT1JUIHx8IHR5cGUgPT0gSU5U RUxfT1VUUFVUX0VEUCkgewo+ID4gIAkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190 b19pbnRlbF9kcChlbmNvZGVyKTsKPiA+ICAKPiA+ICsJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0 KGRldl9wcml2LCBQT1dFUl9ET01BSU5fQVVYX0EpOwo+ID4gKwo+IAo+IFRoZXNlIEkgdGhpbmsg c2hvdWxkbid0IGJlIG5lY2Vzc2FyeSB3aXRoIG15Cj4gaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9w b3dlcl9kb21haW4oKSBzdHVmZiBzaW5jZSBpbnRlbF9kcF9hdXhfY2goKSB3aWxsCj4gaXRzZWxm IGdyYWIgdGhlIGFwcHJvcHJpYXRlIHBvd2VyIGRvbWFpbi4KPiAKPiBUaGF0J3Mgb2YgY291cnNl IGFzc3VtaW5nIHRoYXQgQVVYIGlzIHRoZSBvbmx5IHJlYXNvbiB3aHkgd2UgbmVlZCB0bwo+IGtl ZXAgREM2IGRpc2FibGVkIGhlcmUuCj4gCj4gPiAgCQlpbnRlbF9kcF9zZXRfbGlua19wYXJhbXMo aW50ZWxfZHAsIGNydGMtPmNvbmZpZyk7Cj4gPiAgCj4gPiAgCQlpbnRlbF9kZGlfaW5pdF9kcF9i dWZfcmVnKGludGVsX2VuY29kZXIpOwo+ID4gQEAgLTIyOTcsNiArMjI5OSw4IEBAIHN0YXRpYyB2 b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyKQo+ID4gIAkJaW50ZWxfZHBfY29tcGxldGVfbGlua190cmFpbihpbnRlbF9kcCk7Cj4gPiAg CQlpZiAocG9ydCAhPSBQT1JUX0EgfHwgSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKPiA+ICAJ CQlpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ID4gKwo+ID4gKwkJaW50ZWxf ZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9BVVhfQSk7Cj4gPiAgCX0g ZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewo+ID4gIAkJc3RydWN0IGludGVs X2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaShlbmNvZGVyKTsKPiA+ICAKPiA+ IEBAIC0yMzM5LDkgKzIzNDMsMTQgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlzYWJs ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ICAKPiA+ICAJaWYgKHR5 cGUgPT0gSU5URUxfT1VUUFVUX0RJU1BMQVlQT1JUIHx8IHR5cGUgPT0gSU5URUxfT1VUUFVUX0VE UCkgewo+ID4gIAkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChl bmNvZGVyKTsKPiA+ICsKPiA+ICsJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQ T1dFUl9ET01BSU5fQVVYX0EpOwo+ID4gKwo+ID4gIAkJaW50ZWxfZHBfc2lua19kcG1zKGludGVs X2RwLCBEUk1fTU9ERV9EUE1TX09GRik7Cj4gPiAgCQlpbnRlbF9lZHBfcGFuZWxfdmRkX29uKGlu dGVsX2RwKTsKPiA+ICAJCWludGVsX2VkcF9wYW5lbF9vZmYoaW50ZWxfZHApOwo+ID4gKwo+ID4g KwkJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9BVVhfQSk7 Cj4gPiAgCX0KPiA+ICAKPiA+ICAJaWYgKElTX1NLWUxBS0UoZGV2KSkKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gPiBpbmRleCA0NjQ4NGU0Li44MjQ4OWFkIDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtMTM2Nyw2ICsxMzY3LDggQEAgdm9pZCBjaHZfcGh5 X3Bvd2VyZ2F0ZV9sYW5lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQkg ICAgIGJvb2wgb3ZlcnJpZGUsIHVuc2lnbmVkIGludCBtYXNrKTsKPiA+ICBib29sIGNodl9waHlf cG93ZXJnYXRlX2NoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBkcGlv X3BoeSBwaHksCj4gPiAgCQkJICBlbnVtIGRwaW9fY2hhbm5lbCBjaCwgYm9vbCBvdmVycmlkZSk7 Cj4gPiArdm9pZCBza2xfZW5hYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+ID4gK3ZvaWQgc2tsX2Rpc2FibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gPiAgCj4gPiAgCj4gPiAgLyogaW50ZWxfcG0uYyAqLwo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ID4gaW5kZXggM2Y2ODJhMS4uZTMwYzlhNiAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gPiBAQCAt MzM1LDYgKzMzNSwxMCBAQCBzdGF0aWMgdm9pZCBoc3dfc2V0X3Bvd2VyX3dlbGwoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAlTS0xfRElTUExBWV9QT1dFUldFTExfMV9Q T1dFUl9ET01BSU5TIHwJCVwKPiA+ICAJQklUKFBPV0VSX0RPTUFJTl9QTExTKSB8CQkJXAo+ID4g IAlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQo+ID4gKyNkZWZpbmUgU0tMX0RJU1BMQVlfREM2X09G Rl9QT1dFUl9ET01BSU5TICgJCVwKPiA+ICsJU0tMX0RJU1BMQVlfUE9XRVJXRUxMXzJfUE9XRVJf RE9NQUlOUyB8CQlcCj4gPiArCUJJVChQT1dFUl9ET01BSU5fQVVYX0EpKQo+ID4gKwo+ID4gICNk ZWZpbmUgU0tMX0RJU1BMQVlfQUxXQVlTX09OX1BPV0VSX0RPTUFJTlMgKAkJXAo+ID4gIAkoUE9X RVJfRE9NQUlOX01BU0sgJiB+KFNLTF9ESVNQTEFZX1BPV0VSV0VMTF8xX1BPV0VSX0RPTUFJTlMg fAlcCj4gPiAgCVNLTF9ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMgfAkJXAo+ID4g QEAgLTU1MCw3ICs1NTQsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfY2FuX2Rpc2FibGVfZGM2KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAJCSJEQzYgYWxyZWFkeSBwcm9n cmFtbWVkIHRvIGJlIGRpc2FibGVkLlxuIik7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyB2b2lk IHNrbF9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICt2 b2lkIHNrbF9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ ICB7Cj4gPiAgCXVpbnQzMl90IHZhbDsKPiA+ICAKPiA+IEBAIC01NjcsNyArNTcxLDcgQEAgc3Rh dGljIHZvaWQgc2tsX2VuYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ID4gIAlQT1NUSU5HX1JFQUQoRENfU1RBVEVfRU4pOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0 aWMgdm9pZCBza2xfZGlzYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ID4gK3ZvaWQgc2tsX2Rpc2FibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiA+ICB7Cj4gPiAgCXVpbnQzMl90IHZhbDsKPiA+ICAKPiA+IEBAIC02MjgsMTAgKzYz Miw4IEBAIHN0YXRpYyB2b2lkIHNrbF9zZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gPiAgCQkJCSFJOTE1X1JFQUQoSFNXX1BXUl9XRUxMX0JJT1MpLAo+ ID4gIAkJCQkiSW52YWxpZCBmb3IgcG93ZXIgd2VsbCBzdGF0dXMgdG8gYmUgZW5hYmxlZCwgdW5s ZXNzIGRvbmUgYnkgdGhlIEJJT1MsIFwKPiA+ICAJCQkJd2hlbiByZXF1ZXN0IGlzIHRvIGRpc2Fi bGUhXG4iKTsKPiA+IC0JCQlpZiAoKEdFTjlfRU5BQkxFX0RDNShkZXYpIHx8IFNLTF9FTkFCTEVf REM2KGRldikpICYmCj4gPiAtCQkJCXBvd2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikg ewo+ID4gKwkJCWlmIChwb3dlcl93ZWxsLT5kYXRhID09IFNLTF9ESVNQX1BXXzIpIHsKPiA+ICAJ CQkJaWYgKFNLTF9FTkFCTEVfREM2KGRldikpIHsKPiA+IC0JCQkJCXNrbF9kaXNhYmxlX2RjNihk ZXZfcHJpdik7Cj4gCj4gSG1tLiBTbyB0aGUgb3JkZXJpbmcgbmVlZHMgdG8gYmUgCj4gZGlzYWJs ZSBkYzYgLT4gZW5hYmxlIHB3Mgo+IAo+ID4gIAkJCQkJLyoKPiA+ICAJCQkJCSAqIERESSBidWZm ZXIgcHJvZ3JhbW1pbmcgdW5uZWNlc3NhcnkgZHVyaW5nIGRyaXZlci1sb2FkL3Jlc3VtZQo+ID4g IAkJCQkJICogYXMgaXQncyBhbHJlYWR5IGRvbmUgZHVyaW5nIG1vZGVzZXQgaW5pdGlhbGl6YXRp b24gdGhlbi4KPiA+IEBAIC02MzksMTAgKzY0MSw5IEBAIHN0YXRpYyB2b2lkIHNrbF9zZXRfcG93 ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCQkJCQkgKi8K PiA+ICAJCQkJCWlmICghZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnMuaW5pdGlhbGl6aW5nKQo+ID4g IAkJCQkJCWludGVsX3ByZXBhcmVfZGRpKGRldik7Cj4gPiAtCQkJCX0gZWxzZSB7Cj4gPiAtCQkJ CQlnZW45X2Rpc2FibGVfZGM1KGRldl9wcml2KTsKPiA+ICAJCQkJfQo+ID4gIAkJCX0KPiA+ICsK PiA+ICAJCQlJOTE1X1dSSVRFKEhTV19QV1JfV0VMTF9EUklWRVIsIHRtcCB8IHJlcV9tYXNrKTsK PiA+ICAJCX0KPiA+ICAKPiA+IEBAIC02NjAsOCArNjYxLDcgQEAgc3RhdGljIHZvaWQgc2tsX3Nl dF9wb3dlcl93ZWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJCQlQ T1NUSU5HX1JFQUQoSFNXX1BXUl9XRUxMX0RSSVZFUik7Cj4gPiAgCQkJRFJNX0RFQlVHX0tNUygi RGlzYWJsaW5nICVzXG4iLCBwb3dlcl93ZWxsLT5uYW1lKTsKPiA+ICAKPiA+IC0JCQlpZiAoKEdF TjlfRU5BQkxFX0RDNShkZXYpIHx8IFNLTF9FTkFCTEVfREM2KGRldikpICYmCj4gPiAtCQkJCXBv d2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikgewo+ID4gKwkJCWlmIChwb3dlcl93ZWxs LT5kYXRhID09IFNLTF9ESVNQX1BXXzIpIHsKPiA+ICAJCQkJZW51bSBjc3Jfc3RhdGUgc3RhdGU7 Cj4gPiAgCQkJCS8qIFRPRE86IHdhaXQgZm9yIGEgY29tcGxldGlvbiBldmVudCBvcgo+ID4gIAkJ CQkgKiBzaW1pbGFyIGhlcmUgaW5zdGVhZCBvZiBidXN5Cj4gPiBAQCAtNjY5LDE0ICs2NjksMTAg QEAgc3RhdGljIHZvaWQgc2tsX3NldF9wb3dlcl93ZWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiA+ICAJCQkJICovCj4gPiAgCQkJCXdhaXRfZm9yKChzdGF0ZSA9IGludGVs X2Nzcl9sb2FkX3N0YXR1c19nZXQoZGV2X3ByaXYpKSAhPQo+ID4gIAkJCQkJCUZXX1VOSU5JVElB TElaRUQsIDEwMDApOwo+ID4gLQkJCQlpZiAoc3RhdGUgIT0gRldfTE9BREVEKQo+ID4gKwkJCQlp ZiAoc3RhdGUgIT0gRldfTE9BREVEKSB7Cj4gPiAgCQkJCQlEUk1fRVJST1IoIkNTUiBmaXJtd2Fy ZSBub3QgcmVhZHkgKCVkKVxuIiwKPiA+IC0JCQkJCQkJc3RhdGUpOwo+ID4gLQkJCQllbHNlCj4g PiAtCQkJCQlpZiAoU0tMX0VOQUJMRV9EQzYoZGV2KSkKPiA+IC0JCQkJCQlza2xfZW5hYmxlX2Rj NihkZXZfcHJpdik7Cj4gPiAtCQkJCQllbHNlCj4gPiAtCQkJCQkJZ2VuOV9lbmFibGVfZGM1KGRl dl9wcml2KTsKPiA+ICsJCQkJCQkgIHN0YXRlKTsKPiA+ICsJCQkJfQo+IAo+IGFuZCBoZXJlIHdl IG5lZWQgCj4gZGlzYWJsZSBwdzIgLT4gZW5hYmxlIGRjNgo+IAo+IFRoYXQncyBzeW1tZXRyaWMg d2hpY2ggaXMgZ3JlYXQgZm9yIHVzaW5nIHBvd2VyIHdlbGxzIGhlcmUgc2luY2Ugd2Ugd2Fsawo+ IHRoZSBwb3dlciB3ZWxscyBhcnJheSBmb3J3YXJkIHdoZW4gZW5hYmxpbmcsIGFuZCBiYWNrd2Fy ZHMgd2hlbgo+IGRpc2FibGluZy4KPiAKPiBJJ20gdGhpbmtpbmcgdGhhdCB3ZSBjb3VsZCBhbHNv IG1vdmUgdGhlIGRjNSBzdHVmZiBpbnRvIGEgcG93ZXIgd2VsbC4KPiBXb3VsZCByZWR1Y2UgdGhl IGNsdXR0ZXIgaW4gc2tsX3NldF9wb3dlcl93ZWxsKCkgYXQgbGVhc3QuIEknbSBub3Qgc3VyZQo+ IHdoYXQgdGhlIHJlcXVpcmVtZW50cyB3cnQuIGRjNSBhcmUuIElmIHRoZXkgYXJlIHRoZSBzYW1l IGFzIGZvciBkYzYsCj4gdGhlbiBhIHNpbmdsZSBkYyBwb3dlciB3ZWxsIHdvdWxkIGRvLCBvdGhl cndpc2Ugd2Ugd291bGQgbmVlZCB0d28sIGVhY2gKPiB3aXRoIGl0cyBvd24gZG9tYWlucy4KCkJU VyBhZnRlciBhIGJpdCBtb3JlIGxvb2ssIEkgdGhpbmsgd2UgY291bGQgcHJvYmFibHkgc2ltcGxp ZnkgdGhpbmdzCnF1aXRlIGEgYml0IHdpdGggdGhpcyBtb3ZlLiBXZSBjb3VsZCBwZXJoYXBzIHRo ZW4gc2V0IHBvd2VyX3dlbGwtPmRhdGEKdG8gRENfU1RBVEVfRU5fVVBUT19EQzUgb3IgRENfU1RB VEVfRU5fVVBUT19EQzYgZm9yIGVhY2ggd2VsbCwgYW5kCmNvbnZlcnQgdGhlIGVuYWJsZS9kaXNh YmxlIGRjNS82IGludG8gc29tZWh0aW5nIGxpa2U6CgpnZW45X2VuYWJsZV9kY19zdGF0ZShkZXZf cHJpdiwgdWludDMyX3Qgc3RhdGUpCnsKCS8vIGNzciB3YWl0IGFuZCB0aGUgZGVidWdtYXNrIHRo aW5nIGNvdWxkIGdvIGhlcmUKCgl2YWwgPSBJOTE1X1JFQUQoRENfU1RBVEVfRU4pOwoJdmFsICY9 IH5EQ19TVEFURV9FTl9VUFRPX0RDNV9EQzZfTUFTSzsKCXZhbCB8PSBzdGF0ZTsKCUk5MTVfV1JJ VEUoRENfU1RBVEVfRU4sIHZhbCk7CglQT1NUSU5HX1JFQUQoRENfU1RBVEVfRU4pOwp9CgpnZW45 X2Rpc2FibGVfZGNfc3RhdGUoZGV2X3ByaXYsIHVpbnQzMl90IHZhbCkKewoJdWludDMyX3QgdmFs OwoKCXZhbCA9IEk5MTVfUkVBRChEQ19TVEFURV9FTik7Cgl2YWwgJj0gfnN0YXRlOwoJSTkxNV9X UklURShEQ19TVEFURV9FTiwgdmFsKTsKCVBPU1RJTkdfUkVBRChEQ19TVEFURV9FTik7Cn0KCldl IGNvdWxkIGV2ZW4gcHV0IHRoZXNlIGRpcmVjdGx5IGluIHRoZSBwb3dlciB3ZWxsIGhvb2tzLCBh bmQgc2hhcmUKdGhvc2UgZm9yIERDNSBhbmQgREM2LiBCdXQgdGhhdCB3b3VsZCBwZXJoYXBzIG1l YW4gbG9zaW5nIHRoZQpjYW5fZW5hYmxlX2Rpc2FibGVfZGM1LzYgYXNzZXJ0cyBvciB3ZSdkIG5l ZWQgc29tZSBpZnMgZm9yIHRob3NlLgpCdXQgcGVyaGFwcyBpdCB3b3VsZCBiZSBjbGVhbmVycyB0 byBoYXZlIHNlcGFyYXRlIHBvd2VyIHdlbGwgb3BzIGZvciBkYzUKYW5kIGRjNiwgYW5kIGVhY2gg d291bGQganVzdCBjYWxsIHRoZSBwcm9wb3NlZCBnZW45X2VuYWJsZS9kaXNhYmxlX2RjX3N0YXRl KCkKZnVuY3Rpb25zLiBPaCBhbmQgd2UgYWxzbyBoYXZlIHRoZSBHRU45X0VOQUJMRV9EQzUgYW5k IFNLTF9FTkFCTEVfREM2Cm1hY3JvcyB3aGljaCBJIHN1cHBvc2VkIHdlJ2QgbmVlZCB0byBjaGVj ayBpbiB0aGUgcG93ZXIgd2VsbCBob29rcy4KCkJ1dCB0aGlzIHVuaWZpY2F0aW9uIGNvdWxkIGJl IGEgc2VwYXJhdGUgcGF0Y2guIEZpcnN0IHdlIGNhbiBqdXN0CmludHJvZHVjZSB0aGUgbmV3IHBv d2VyIHdlbGxzIHVzaW5nIHRoZSBleGlzdGluZyBkYzUvZGM2IGVuYWJsZS9kaXNhYmxlCmZ1bmN0 aW9ucyB3ZSBoYXZlLgoKSSBkaWRuJ3QgbG9vayBhdCB0aGUgZGM5IHN0dWZmIHlldCwgc28gbm90 IHN1cmUgaWYgdGhhdCBjb3VsZCBiZSBoYW5kbGVkCmluIGEgc2ltaWxhciBmYXNoaW9uLgoKQWxz byBJIHRoaW5rIGN1cnJlbnRseSB3ZSBqdXN0IGRpc2FibGUgcnVudGltZSBQTSB3aGVuIHRoZSBm aXJtd2FyZQpoYXNuJ3QgeWV0IGJlZW4gbG9hZGVkLiBCdXQgSSB0aGluayB3ZSB3b3VsZCBuZWVk IHRvIGNoYW5nZSB0aGF0IHRvIGhvbGQKYSBEQzUvREM1IHJlZmVyZW5jZXMuIEkgZ3Vlc3MgdG8g ZG8gdGhpcyBwcm9wZXJseSB3ZSBzaG91bGQgYSBuZXcgcG93ZXIKZG9tYWluIGZvciB0aGlzIHB1 cnBvc2UsIGJ1dCBJJ20gbm90IHN1cmUgdGhhdCdzIHJlYWxseSB3b3J0aCBpdCBmb3IgYQpzaW5n bGUgdXNlciB1c2UgY2FzZS4KCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==