From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [RFC PATCH] drm/i915/skl: Add DC6 disabling as a power well Date: Mon, 21 Sep 2015 11:26:06 +0300 Message-ID: <871tds9o0x.fsf@intel.com> References: <1441972522-31367-1-git-send-email-patrik.jakobsson@linux.intel.com> <20150916201007.GK26517@intel.com> <20150921080045.GA2249@patrik-desktop.isw.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 834DB6E377 for ; Mon, 21 Sep 2015 01:28:55 -0700 (PDT) In-Reply-To: <20150921080045.GA2249@patrik-desktop.isw.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 , Ville =?utf-8?B?U3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMSBTZXAgMjAxNSwgUGF0cmlrIEpha29ic3NvbiA8cGF0cmlrLmpha29ic3NvbkBs aW51eC5pbnRlbC5jb20+IHdyb3RlOgo+IE9uIFdlZCwgU2VwIDE2LCAyMDE1IGF0IDExOjEwOjA3 UE0gKzAzMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPj4gT24gRnJpLCBTZXAgMTEsIDIwMTUg YXQgMDE6NTU6MjJQTSArMDIwMCwgUGF0cmlrIEpha29ic3NvbiB3cm90ZToKPj4gPiBXZSBuZWVk IHRvIGJlIGFibGUgdG8gY29udHJvbCBpZiBEQzYgaXMgYWxsb3dlZCBvciBub3QuIE11Y2ggbGlr ZQo+PiA+IHJlcXVlc3RpbmcgcG93ZXIgdG8gYSBzcGVjaWZpYyBwaWVjZSBvZiB0aGUgaGFyZHdh cmUgd2UgbmVlZCB0byBiZSBhYmxlCj4+ID4gdG8gcmVxdWVzdCB0aGF0IHdlIGRvbid0IGVudGVy IERDNiBkdXJpbmcgY2VydGFpbiBodyBhY2Nlc3MuCj4+ID4gCj4+ID4gVG8gc29sdmUgdGhpcyB3 aXRob3V0IGludHJvZHVjaW5nIHRvbyBtdWNoIGluZnJhc3RydWN0dXJlIEknbSBob29raW5nCj4+ ID4gaW50byB0aGUgcG93ZXIgd2VsbCAvIHBvd2VyIGRvbWFpbiBmcmFtZXdvcmsuIERDNiBwcmV2 ZW50aW9uIGlzIG1vZGVsZWQKPj4gPiBtdWNoIGxpa2UgYW4gZW5hYmxlZCBwb3dlciB3ZWxsLiBU aHVzIEknbSB1c2luZyB0aGUgdGVybWlub2xvZ3kgb24vb2ZmCj4+ID4gZm9yIERDIHN0YXRlcyBp bnN0ZWFkIG9mIGVuYWJsZS9kaXNhYmxlLgo+PiA+IAo+PiA+IFRoZSBwcm9ibGVtIHRoYXQgc3Rh cnRlZCB0aGlzIHdvcmsgaXMgdGhlIG5lZWQgZm9yIERDNiB0byBiZSBkaXNhYmxlZAo+PiA+IHdo ZW4gYWNjZXNzaW5nIERQX0FVWF9BIGR1cmluZyBDUlRDIG9uL29mZi4gVGhhdCBpcyBhbHNvIGZp eGVkIGluIHRoaXMKPj4gPiBwYXRjaC4KPj4gPiAKPj4gPiBUaGlzIGlzIHBvc3RlZCBhcyBhbiBS RkMgc2luY2UgRE1DIGFuZCBEQyBzdGF0ZSBoYW5kbGluZyBpcyBiZWluZwo+PiA+IHJld29ya2Vk IGFuZCB3aWxsIHBvc3NpYmx5IGFmZmVjdCB0aGUgb3V0Y29tZSBvZiB0aGlzIHBhdGNoLiBUaGUg cGF0Y2gKPj4gPiBoYXMga25vd24gd2FybmluZ3MuCj4+ID4gCj4+ID4gU2lnbmVkLW9mZi1ieTog UGF0cmlrIEpha29ic3NvbiA8cGF0cmlrLmpha29ic3NvbkBsaW51eC5pbnRlbC5jb20+Cj4+ID4g LS0tCj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICAgICB8ICA5ICsr KysrCj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICB8ICAyICsK Pj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgNjkgKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNjQgaW5z ZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCj4+ID4gCj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGRpLmMKPj4gPiBpbmRleCA0ODIzMTg0Li5jMmMxYWQyIDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMKPj4gPiBAQCAtMjI4OCw2ICsyMjg4LDggQEAgc3RhdGljIHZvaWQgaW50 ZWxfZGRpX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4+ ID4gIAlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRElTUExBWVBPUlQgfHwgdHlwZSA9PSBJTlRF TF9PVVRQVVRfRURQKSB7Cj4+ID4gIAkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190 b19pbnRlbF9kcChlbmNvZGVyKTsKPj4gPiAgCj4+ID4gKwkJaW50ZWxfZGlzcGxheV9wb3dlcl9n ZXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9BVVhfQSk7Cj4+ID4gKwo+PiAKPj4gVGhlc2UgSSB0 aGluayBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5IHdpdGggbXkKPj4gaW50ZWxfZGlzcGxheV9wb3J0 X2F1eF9wb3dlcl9kb21haW4oKSBzdHVmZiBzaW5jZSBpbnRlbF9kcF9hdXhfY2goKSB3aWxsCj4+ IGl0c2VsZiBncmFiIHRoZSBhcHByb3ByaWF0ZSBwb3dlciBkb21haW4uCgpBcmUgeW91IHJlZmVy cmluZyB0byBzdHVmZiB0aGF0IGlzIG1lcmdlZD8gQW0gSSBtaXNzaW5nIHNvbWV0aGluZz8KCj4+ IAo+PiBUaGF0J3Mgb2YgY291cnNlIGFzc3VtaW5nIHRoYXQgQVVYIGlzIHRoZSBvbmx5IHJlYXNv biB3aHkgd2UgbmVlZCB0bwo+PiBrZWVwIERDNiBkaXNhYmxlZCBoZXJlLgo+PiAKPgo+IFRoZSB1 cHNpZGUgd2l0aCBoYXZpbmcgZ2V0L3B1dCBhcm91bmQgYmlnZ2VyIGF1eCB0cmFuc2ZlcnMgaXMg dGhhdCB3ZQo+IGRvbid0IGdldCB0b25zIG9mIGVuYWJsZS9kaXNhYmxlIGxpbmVzIGluIHRoZSBs b2cuIE15IHZvdGUgaXMgdGhhdCB3ZQo+IGtlZXAgdGhpcyBidXQgYWxzbyBoYXZlIHlvdXIgZmlu ZS1ncmFpbmVkIGdldC9wdXRzLgoKSWYgaXQgd29ya3Mgd2l0aG91dCAoYW5kIGV2ZXJ5dGhpbmcg VmlsbGUgaXMgcmVmZXJyaW5nIHRvIGFib3ZlIGlzCm1lcmdlZCksIEknZCBzcGxpdCB0aGVzZSB0 byBhIHNlcGFyYXRlIHBhdGNoLCBhbmQgd2UgY2FuIGp1ZGdlIHRoZQppbXByb3ZlbWVudCBvbiBp dHMgb3duLgoKQlIsCkphbmkuCgoKPgo+IFdlIGFsc28gaGF2ZSBhbiBleHRyYSBlbmFibGUgZGlz YWJsZSBwcmludCBpbiBza2xfZGlzYWJsZV9kYzYoKSAvCj4gc2tsX2VuYWJsZV9kYzYoKSB3aGlj aCBJIHRoaW5rIHNob3VsZCBiZSByZW1vdmVkIHVubGVzcyB2YXJpb3VzIERDIG9uL29mZiBoYWNr cwo+IGFyZSByZXF1aXJlZCBvdXRzaWRlIG9mIHRoZSBwb3dlciB3ZWxscyBmcmFtZXdvcmsuCj4K Pj4gPiAgCQlpbnRlbF9kcF9zZXRfbGlua19wYXJhbXMoaW50ZWxfZHAsIGNydGMtPmNvbmZpZyk7 Cj4+ID4gIAo+PiA+ICAJCWludGVsX2RkaV9pbml0X2RwX2J1Zl9yZWcoaW50ZWxfZW5jb2Rlcik7 Cj4+ID4gQEAgLTIyOTcsNiArMjI5OSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5h YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+PiA+ICAJCWludGVsX2Rw X2NvbXBsZXRlX2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+PiA+ICAJCWlmIChwb3J0ICE9IFBPUlRf QSB8fCBJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KQo+PiA+ICAJCQlpbnRlbF9kcF9zdG9wX2xp bmtfdHJhaW4oaW50ZWxfZHApOwo+PiA+ICsKPj4gPiArCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1 dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0FVWF9BKTsKPj4gPiAgCX0gZWxzZSBpZiAodHlwZSA9 PSBJTlRFTF9PVVRQVVRfSERNSSkgewo+PiA+ICAJCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9o ZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoZW5jb2Rlcik7Cj4+ID4gIAo+PiA+IEBAIC0yMzM5LDkg KzIzNDMsMTQgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPj4gPiAgCj4+ID4gIAlpZiAodHlwZSA9PSBJTlRF TF9PVVRQVVRfRElTUExBWVBPUlQgfHwgdHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4+ID4g IAkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsK Pj4gPiArCj4+ID4gKwkJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIFBPV0VSX0RP TUFJTl9BVVhfQSk7Cj4+ID4gKwo+PiA+ICAJCWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwg RFJNX01PREVfRFBNU19PRkYpOwo+PiA+ICAJCWludGVsX2VkcF9wYW5lbF92ZGRfb24oaW50ZWxf ZHApOwo+PiA+ICAJCWludGVsX2VkcF9wYW5lbF9vZmYoaW50ZWxfZHApOwo+PiA+ICsKPj4gPiAr CQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0FVWF9BKTsK Pj4gPiAgCX0KPj4gPiAgCj4+ID4gIAlpZiAoSVNfU0tZTEFLRShkZXYpKQo+PiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4+ID4gaW5kZXggNDY0ODRlNC4uODI0ODlhZCAxMDA2NDQKPj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ID4gQEAgLTEzNjcsNiArMTM2Nyw4IEBAIHZvaWQg Y2h2X3BoeV9wb3dlcmdhdGVfbGFuZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ ID4gIAkJCSAgICAgYm9vbCBvdmVycmlkZSwgdW5zaWduZWQgaW50IG1hc2spOwo+PiA+ICBib29s IGNodl9waHlfcG93ZXJnYXRlX2NoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg ZW51bSBkcGlvX3BoeSBwaHksCj4+ID4gIAkJCSAgZW51bSBkcGlvX2NoYW5uZWwgY2gsIGJvb2wg b3ZlcnJpZGUpOwo+PiA+ICt2b2lkIHNrbF9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7Cj4+ID4gK3ZvaWQgc2tsX2Rpc2FibGVfZGM2KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Cj4+ID4gIAo+PiA+ICAKPj4gPiAgLyogaW50ZWxfcG0uYyAq Lwo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3Bt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPj4gPiBpbmRleCAz ZjY4MmExLi5lMzBjOWE2IDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3J1bnRpbWVfcG0uYwo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1 bnRpbWVfcG0uYwo+PiA+IEBAIC0zMzUsNiArMzM1LDEwIEBAIHN0YXRpYyB2b2lkIGhzd19zZXRf cG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ID4gIAlTS0xf RElTUExBWV9QT1dFUldFTExfMV9QT1dFUl9ET01BSU5TIHwJCVwKPj4gPiAgCUJJVChQT1dFUl9E T01BSU5fUExMUykgfAkJCVwKPj4gPiAgCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCj4+ID4gKyNk ZWZpbmUgU0tMX0RJU1BMQVlfREM2X09GRl9QT1dFUl9ET01BSU5TICgJCVwKPj4gPiArCVNLTF9E SVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMgfAkJXAo+PiA+ICsJQklUKFBPV0VSX0RP TUFJTl9BVVhfQSkpCj4+ID4gKwo+PiA+ICAjZGVmaW5lIFNLTF9ESVNQTEFZX0FMV0FZU19PTl9Q T1dFUl9ET01BSU5TICgJCVwKPj4gPiAgCShQT1dFUl9ET01BSU5fTUFTSyAmIH4oU0tMX0RJU1BM QVlfUE9XRVJXRUxMXzFfUE9XRVJfRE9NQUlOUyB8CVwKPj4gPiAgCVNLTF9ESVNQTEFZX1BPV0VS V0VMTF8yX1BPV0VSX0RPTUFJTlMgfAkJXAo+PiA+IEBAIC01NTAsNyArNTU0LDcgQEAgc3RhdGlj IHZvaWQgYXNzZXJ0X2Nhbl9kaXNhYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4+ID4gIAkJIkRDNiBhbHJlYWR5IHByb2dyYW1tZWQgdG8gYmUgZGlzYWJsZWQuXG4i KTsKPj4gPiAgfQo+PiA+ICAKPj4gPiAtc3RhdGljIHZvaWQgc2tsX2VuYWJsZV9kYzYoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiA+ICt2b2lkIHNrbF9lbmFibGVfZGM2KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gPiAgewo+PiA+ICAJdWludDMyX3Qg dmFsOwo+PiA+ICAKPj4gPiBAQCAtNTY3LDcgKzU3MSw3IEBAIHN0YXRpYyB2b2lkIHNrbF9lbmFi bGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gPiAgCVBPU1RJTkdf UkVBRChEQ19TVEFURV9FTik7Cj4+ID4gIH0KPj4gPiAgCj4+ID4gLXN0YXRpYyB2b2lkIHNrbF9k aXNhYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ID4gK3ZvaWQg c2tsX2Rpc2FibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gPiAg ewo+PiA+ICAJdWludDMyX3QgdmFsOwo+PiA+ICAKPj4gPiBAQCAtNjI4LDEwICs2MzIsOCBAQCBz dGF0aWMgdm9pZCBza2xfc2V0X3Bvd2VyX3dlbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+PiA+ICAJCQkJIUk5MTVfUkVBRChIU1dfUFdSX1dFTExfQklPUyksCj4+ID4gIAkJ CQkiSW52YWxpZCBmb3IgcG93ZXIgd2VsbCBzdGF0dXMgdG8gYmUgZW5hYmxlZCwgdW5sZXNzIGRv bmUgYnkgdGhlIEJJT1MsIFwKPj4gPiAgCQkJCXdoZW4gcmVxdWVzdCBpcyB0byBkaXNhYmxlIVxu Iik7Cj4+ID4gLQkJCWlmICgoR0VOOV9FTkFCTEVfREM1KGRldikgfHwgU0tMX0VOQUJMRV9EQzYo ZGV2KSkgJiYKPj4gPiAtCQkJCXBvd2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikgewo+ PiA+ICsJCQlpZiAocG93ZXJfd2VsbC0+ZGF0YSA9PSBTS0xfRElTUF9QV18yKSB7Cj4+ID4gIAkJ CQlpZiAoU0tMX0VOQUJMRV9EQzYoZGV2KSkgewo+PiA+IC0JCQkJCXNrbF9kaXNhYmxlX2RjNihk ZXZfcHJpdik7Cj4+IAo+PiBIbW0uIFNvIHRoZSBvcmRlcmluZyBuZWVkcyB0byBiZSAKPj4gZGlz YWJsZSBkYzYgLT4gZW5hYmxlIHB3Mgo+Cj4gSSBkb24ndCBrbm93IHdoeSBEQzYgaXMgcmVxdWly ZWQgZm9yIFBXMiBhbmQgYXQgdGhpcyBwb2ludCBJIGRvbid0IHNlZSB3aHkgdGhlCj4gb3JkZXJp bmcgc2hvdWxkIG1hdHRlci4gQ291bGQgeW91IHBsZWFzZSBleHBsYWluPwo+Cj4+ID4gIAkJCQkJ LyoKPj4gPiAgCQkJCQkgKiBEREkgYnVmZmVyIHByb2dyYW1taW5nIHVubmVjZXNzYXJ5IGR1cmlu ZyBkcml2ZXItbG9hZC9yZXN1bWUKPj4gPiAgCQkJCQkgKiBhcyBpdCdzIGFscmVhZHkgZG9uZSBk dXJpbmcgbW9kZXNldCBpbml0aWFsaXphdGlvbiB0aGVuLgo+PiA+IEBAIC02MzksMTAgKzY0MSw5 IEBAIHN0YXRpYyB2b2lkIHNrbF9zZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4+ID4gIAkJCQkJICovCj4+ID4gIAkJCQkJaWYgKCFkZXZfcHJpdi0+cG93 ZXJfZG9tYWlucy5pbml0aWFsaXppbmcpCj4+ID4gIAkJCQkJCWludGVsX3ByZXBhcmVfZGRpKGRl dik7Cj4+ID4gLQkJCQl9IGVsc2Ugewo+PiA+IC0JCQkJCWdlbjlfZGlzYWJsZV9kYzUoZGV2X3By aXYpOwo+PiA+ICAJCQkJfQo+PiA+ICAJCQl9Cj4+ID4gKwo+PiA+ICAJCQlJOTE1X1dSSVRFKEhT V19QV1JfV0VMTF9EUklWRVIsIHRtcCB8IHJlcV9tYXNrKTsKPj4gPiAgCQl9Cj4+ID4gIAo+PiA+ IEBAIC02NjAsOCArNjYxLDcgQEAgc3RhdGljIHZvaWQgc2tsX3NldF9wb3dlcl93ZWxsKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gPiAgCQkJUE9TVElOR19SRUFEKEhTV19Q V1JfV0VMTF9EUklWRVIpOwo+PiA+ICAJCQlEUk1fREVCVUdfS01TKCJEaXNhYmxpbmcgJXNcbiIs IHBvd2VyX3dlbGwtPm5hbWUpOwo+PiA+ICAKPj4gPiAtCQkJaWYgKChHRU45X0VOQUJMRV9EQzUo ZGV2KSB8fCBTS0xfRU5BQkxFX0RDNihkZXYpKSAmJgo+PiA+IC0JCQkJcG93ZXJfd2VsbC0+ZGF0 YSA9PSBTS0xfRElTUF9QV18yKSB7Cj4+ID4gKwkJCWlmIChwb3dlcl93ZWxsLT5kYXRhID09IFNL TF9ESVNQX1BXXzIpIHsKPj4gPiAgCQkJCWVudW0gY3NyX3N0YXRlIHN0YXRlOwo+PiA+ICAJCQkJ LyogVE9ETzogd2FpdCBmb3IgYSBjb21wbGV0aW9uIGV2ZW50IG9yCj4+ID4gIAkJCQkgKiBzaW1p bGFyIGhlcmUgaW5zdGVhZCBvZiBidXN5Cj4+ID4gQEAgLTY2OSwxNCArNjY5LDEwIEBAIHN0YXRp YyB2b2lkIHNrbF9zZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4+ID4gIAkJCQkgKi8KPj4gPiAgCQkJCXdhaXRfZm9yKChzdGF0ZSA9IGludGVsX2Nzcl9s b2FkX3N0YXR1c19nZXQoZGV2X3ByaXYpKSAhPQo+PiA+ICAJCQkJCQlGV19VTklOSVRJQUxJWkVE LCAxMDAwKTsKPj4gPiAtCQkJCWlmIChzdGF0ZSAhPSBGV19MT0FERUQpCj4+ID4gKwkJCQlpZiAo c3RhdGUgIT0gRldfTE9BREVEKSB7Cj4+ID4gIAkJCQkJRFJNX0VSUk9SKCJDU1IgZmlybXdhcmUg bm90IHJlYWR5ICglZClcbiIsCj4+ID4gLQkJCQkJCQlzdGF0ZSk7Cj4+ID4gLQkJCQllbHNlCj4+ ID4gLQkJCQkJaWYgKFNLTF9FTkFCTEVfREM2KGRldikpCj4+ID4gLQkJCQkJCXNrbF9lbmFibGVf ZGM2KGRldl9wcml2KTsKPj4gPiAtCQkJCQllbHNlCj4+ID4gLQkJCQkJCWdlbjlfZW5hYmxlX2Rj NShkZXZfcHJpdik7Cj4+ID4gKwkJCQkJCSAgc3RhdGUpOwo+PiA+ICsJCQkJfQo+PiAKPj4gYW5k IGhlcmUgd2UgbmVlZCAKPj4gZGlzYWJsZSBwdzIgLT4gZW5hYmxlIGRjNgo+PiAKPj4gVGhhdCdz IHN5bW1ldHJpYyB3aGljaCBpcyBncmVhdCBmb3IgdXNpbmcgcG93ZXIgd2VsbHMgaGVyZSBzaW5j ZSB3ZSB3YWxrCj4+IHRoZSBwb3dlciB3ZWxscyBhcnJheSBmb3J3YXJkIHdoZW4gZW5hYmxpbmcs IGFuZCBiYWNrd2FyZHMgd2hlbgo+PiBkaXNhYmxpbmcuCj4+IAo+PiBJJ20gdGhpbmtpbmcgdGhh dCB3ZSBjb3VsZCBhbHNvIG1vdmUgdGhlIGRjNSBzdHVmZiBpbnRvIGEgcG93ZXIgd2VsbC4KPj4g V291bGQgcmVkdWNlIHRoZSBjbHV0dGVyIGluIHNrbF9zZXRfcG93ZXJfd2VsbCgpIGF0IGxlYXN0 LiBJJ20gbm90IHN1cmUKPj4gd2hhdCB0aGUgcmVxdWlyZW1lbnRzIHdydC4gZGM1IGFyZS4gSWYg dGhleSBhcmUgdGhlIHNhbWUgYXMgZm9yIGRjNiwKPj4gdGhlbiBhIHNpbmdsZSBkYyBwb3dlciB3 ZWxsIHdvdWxkIGRvLCBvdGhlcndpc2Ugd2Ugd291bGQgbmVlZCB0d28sIGVhY2gKPj4gd2l0aCBp dHMgb3duIGRvbWFpbnMuCj4KPiBGcm9tIHdoYXQgSSd2ZSBoZWFyZCB3ZSBkb24ndCBuZWVkIHRv IGNhcmUgYWJvdXQgREM1IGF0bS4gQnV0IEkgYWxzbyB0aGluayB0aGF0Cj4gYSBwb3dlciB3ZWxs IGZvciBEQzUgaXMgdGhlIHdheSB0byBnby4gTmVlZCB0byBjaGVjayB3aXRoIERhbWllbiB3aGF0 IHRoZQo+IHJlcXVpcmVtZW50cyBmb3IgREM1IGFyZS4KPgo+PiA+ICAJCQl9Cj4+ID4gIAkJfQo+ PiA+ICAJfQo+PiA+IEBAIC03NTIsNiArNzQ4LDM0IEBAIHN0YXRpYyB2b2lkIHNrbF9wb3dlcl93 ZWxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiA+ICAJc2ts X3NldF9wb3dlcl93ZWxsKGRldl9wcml2LCBwb3dlcl93ZWxsLCBmYWxzZSk7Cj4+ID4gIH0KPj4g PiAgCj4+ID4gK3N0YXRpYyBib29sIHNrbF9kYzZfc3RhdGVfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ID4gKwkJCQkgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwg KnBvd2VyX3dlbGwpCj4+ID4gK3sKPj4gPiArCS8qIFJldHVybiB0cnVlIGlmIGRpc2FibGluZyBv ZiBEQzYgaXMgZW5hYmxlZCAqLwo+PiA+ICsJcmV0dXJuICEoSTkxNV9SRUFEKERDX1NUQVRFX0VO KSAmIERDX1NUQVRFX0VOX1VQVE9fREM2KTsKPj4gPiArfQo+PiA+ICsKPj4gPiArc3RhdGljIHZv aWQgc2tsX2RjNl9zdGF0ZV9vbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ ID4gKwkJCSAgICAgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKPj4gPiArewo+ PiA+ICsJc2tsX2VuYWJsZV9kYzYoZGV2X3ByaXYpOwo+PiA+ICt9Cj4+ID4gKwo+PiA+ICtzdGF0 aWMgdm9pZCBza2xfZGM2X3N0YXRlX29mZihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4+ID4gKwkJCSAgICAgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCj4+ ID4gK3sKPj4gPiArCXNrbF9kaXNhYmxlX2RjNihkZXZfcHJpdik7Cj4+ID4gK30KPj4gPiArCj4+ ID4gK3N0YXRpYyB2b2lkIHNrbF9kYzZfc3luY19odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4+ID4gKwkJCSAgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxs KQo+PiA+ICt7Cj4+ID4gKwlpZiAocG93ZXJfd2VsbC0+Y291bnQgPiAwKQo+PiA+ICsJCXNrbF9k aXNhYmxlX2RjNihkZXZfcHJpdik7Cj4+ID4gKwllbHNlCj4+ID4gKwkJc2tsX2VuYWJsZV9kYzYo ZGV2X3ByaXYpOwo+PiA+ICt9Cj4+IAo+PiBOaXQ6IExvb2tzIGxpa2Ugd2UgdXN1YWxsIGhhdmUg dGhlc2UgaW4gdGhlIGZvbGxvd2luZyBvcmRlcgo+PiBzeW5jX2h3Cj4+IGVuYWJsZQo+PiBkaXNh YmxlCj4+IAo+PiAnZW5hYmxlZCcgaXMgYSBiaXQgYWxsIG92ZXIgdGhlIHBsYWNlIHVzdWFsbHku IEkgZ3Vlc3MgYmVmb3JlIG9yIGFmdGVyIHRoZQo+PiByZXN0IGlzIGZpbmUuCj4KPiBZZXMsIGJl dHRlciBrZWVwIHRoZSBjdXJyZW50IG9yZGVyLgo+Cj4+IEknbSBub3QgcmVhbGx5IHN1cmUgaG93 IEkgd291bGQgbmFtZSB0aGVzZS4gVGhlIGN1cnJlbnQgbmFtaW5nIGRvZXNuJ3QKPj4gcmVhbGx5 IHRlbGwgbWUgdGhleSdyZSBwb3dlciB3ZWxsIG9wcy4gTWF5YmUKPj4gc2tsX2RjNl9vZmZfcG93 ZXJfd2VsbF97ZW5hYmxlLGRpc2FibGUsc3luY19odyxlbmFibGVkfSgpID8KPgo+IEkgYWdyZWUs IGJldHRlciBtYWtlIGl0IGNsZWFyIHRoYXQgdGhleSBhcmUgcHcgb3BzLgo+Cj4+ID4gKwo+PiA+ ICBzdGF0aWMgdm9pZCBpOXh4X2Fsd2F5c19vbl9wb3dlcl93ZWxsX25vb3Aoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiA+ICAJCQkJCSAgIHN0cnVjdCBpOTE1X3Bvd2VyX3dl bGwgKnBvd2VyX3dlbGwpCj4+ID4gIHsKPj4gPiBAQCAtMTU0Niw2ICsxNTcwLDE0IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX29wcyBza2xfcG93ZXJfd2VsbF9vcHMgPSB7 Cj4+ID4gIAkuaXNfZW5hYmxlZCA9IHNrbF9wb3dlcl93ZWxsX2VuYWJsZWQsCj4+ID4gIH07Cj4+ ID4gIAo+PiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMgc2tsX2Rj X3N0YXRlX29wcyA9IHsKPj4gCj4+IF9kYzZfLCBhbmQgbmFtaW5nIHRvIG1hdGNoIGhvdyB0aGUg ZnVuY3Rpb24gYXJlIGZpbmFsbHkgbmFtZWQgb2YKPj4gY291cnNlLgo+PiAKPj4gPiArCS5zeW5j X2h3ID0gc2tsX2RjNl9zeW5jX2h3LAo+PiA+ICsJLyogVG8gZW5hYmxlIHBvd2VyIHdlIHR1cm4g dGhlIERDIHN0YXRlIG9mZiAqLwo+PiA+ICsJLmVuYWJsZSA9IHNrbF9kYzZfc3RhdGVfb2ZmLAo+ PiA+ICsJLmRpc2FibGUgPSBza2xfZGM2X3N0YXRlX29uLAo+PiA+ICsJLmlzX2VuYWJsZWQgPSBz a2xfZGM2X3N0YXRlX2VuYWJsZWQsCj4+ID4gK307Cj4+ID4gKwo+PiA+ICBzdGF0aWMgc3RydWN0 IGk5MTVfcG93ZXJfd2VsbCBoc3dfcG93ZXJfd2VsbHNbXSA9IHsKPj4gPiAgCXsKPj4gPiAgCQku bmFtZSA9ICJhbHdheXMtb24iLAo+PiA+IEBAIC0xNzQ1LDYgKzE3NzcsMTEgQEAgc3RhdGljIHN0 cnVjdCBpOTE1X3Bvd2VyX3dlbGwgc2tsX3Bvd2VyX3dlbGxzW10gPSB7Cj4+ID4gIAkJLm9wcyA9 ICZza2xfcG93ZXJfd2VsbF9vcHMsCj4+ID4gIAkJLmRhdGEgPSBTS0xfRElTUF9QV19ERElfRCwK Pj4gPiAgCX0sCj4+ID4gKwl7Cj4+ID4gKwkJLm5hbWUgPSAiREM2IHN0YXRlIG9mZiIsCj4+IAo+ PiBKdXN0ICJEQzYgb2ZmIiBwZXJoYXBzPwo+PiAKPj4gSSB3YXNuJ3QgYWJsZSB0byB0aGluayBv ZiBhIG5pY2Ugd2F5IHRvIG5hbWUgdGhpcyBzbyB0aGF0IGl0IHdvdWxkIG1ha2UKPj4gbW9yZSBz ZW5zZSBpbiB0aGUgbG9ncy4gV2l0aCB0aGlzIHdlIHdvdWxkIGdldCAKPj4gJ2VuYWJsaW5nIERD NiBvZmYnIGFuZCAnZGlzYWJsaW5nIERDNiBvZmYnIHdoaWNoIGlzIGEgYml0IGNvbmZ1c2luZy4K Pj4gTWF5YmUgd2Ugc2hvdWxkIGF0IGxlYXN0IHB1dCBxdW90ZXMgYXJvdW5kIHRoZSBwb3dlciB3 ZWxsIG5hbWUgaW4gdGhlCj4+IGRlYnVnIG1lc3NhZ2UgdG8gbWFrZSBpdCBhIGJpdCBsZXNzIGZ1 bmt5PyBQcm9iYWJseSBub3Qgd29ydGggaXQgdG8KPj4gYWRkIHN1cHBvcnQgZm9yIHN1bGx5IGN1 c3RvbWl6ZWQgZW5hYmxlL2Rpc2FibGUgbG9nIG1lc3NhZ2UuCj4KPiBBZ3JlZWQKPgo+PiA+ICsJ CS5kb21haW5zID0gU0tMX0RJU1BMQVlfREM2X09GRl9QT1dFUl9ET01BSU5TLAo+PiA+ICsJCS5v cHMgPSAmc2tsX3Bvd2VyX3dlbGxfb3BzLAo+PiAKPj4gU3VyZWx5IHlvdSB3YW50IHRvIHVzZSB0 aGUgbmV3IG9wcyB5b3UgY3JlYXRlZD8gOikKPgo+IE9vcHMgOikKPgo+PiBBbmQgaGVyZSB3ZSBu ZWVkIHRvIGJlIGNhcmVmdWwgd2hlcmUgaW4gdGhlIGxpc3Qgd2UgaW5zZXJ0IHRoZSBwb3dlcgo+ PiB3ZWxsLiBCYXNlZCBvbiB3aGF0IHdlIHNhdyBlYXJsaWVyLCB0aGUgcmlnaHQgcGxhY2Ugc2hv dWxkIGJlIGp1c3QKPj4gYmVmb3JlIFBXMi4gVGhhdCB3YXkgREM2IGdldHMgZGlzYWJsZWQgYmVm b3JlIFBXMiBpcyBlbmFibGVkLCBhbmQKPj4gUFcyIGdldHMgZGlzYWJsZWQgYmVmb3JlIERDNiBn ZXRzIGVuYWJsZWQuCj4KPiBZZXMsIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyaW5nIHJlcXVpcmVt ZW50cyBpdCBtYWtlcyBzZW5zZSB0byBtb3ZlIGl0IHVwLgo+Cj4gVGhhbmtzIGZvciBoYXZpbmcg YSBsb29rCj4gLVBhdHJpawo+Cj4+ID4gKwl9LAo+PiA+ICB9Owo+PiA+ICAKPj4gPiAgc3RhdGlj IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgYnh0X3Bvd2VyX3dlbGxzW10gPSB7Cj4+ID4gLS0gCj4+ ID4gMi4xLjQKPj4gPiAKPj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+PiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4gPiBJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+PiAKPj4gLS0gCj4+IFZpbGxlIFN5cmrDpGzDpAo+PiBJ bnRlbCBPVEMKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRl cgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=