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: Wed, 16 Sep 2015 23:10:07 +0300 Message-ID: <20150916201007.GK26517@intel.com> References: <1441972522-31367-1-git-send-email-patrik.jakobsson@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 0DEDD6E57E for ; Wed, 16 Sep 2015 13:10:11 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1441972522-31367-1-git-send-email-patrik.jakobsson@linux.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 T24gRnJpLCBTZXAgMTEsIDIwMTUgYXQgMDE6NTU6MjJQTSArMDIwMCwgUGF0cmlrIEpha29ic3Nv biB3cm90ZToKPiBXZSBuZWVkIHRvIGJlIGFibGUgdG8gY29udHJvbCBpZiBEQzYgaXMgYWxsb3dl ZCBvciBub3QuIE11Y2ggbGlrZQo+IHJlcXVlc3RpbmcgcG93ZXIgdG8gYSBzcGVjaWZpYyBwaWVj ZSBvZiB0aGUgaGFyZHdhcmUgd2UgbmVlZCB0byBiZSBhYmxlCj4gdG8gcmVxdWVzdCB0aGF0IHdl IGRvbid0IGVudGVyIERDNiBkdXJpbmcgY2VydGFpbiBodyBhY2Nlc3MuCj4gCj4gVG8gc29sdmUg dGhpcyB3aXRob3V0IGludHJvZHVjaW5nIHRvbyBtdWNoIGluZnJhc3RydWN0dXJlIEknbSBob29r aW5nCj4gaW50byB0aGUgcG93ZXIgd2VsbCAvIHBvd2VyIGRvbWFpbiBmcmFtZXdvcmsuIERDNiBw cmV2ZW50aW9uIGlzIG1vZGVsZWQKPiBtdWNoIGxpa2UgYW4gZW5hYmxlZCBwb3dlciB3ZWxsLiBU aHVzIEknbSB1c2luZyB0aGUgdGVybWlub2xvZ3kgb24vb2ZmCj4gZm9yIERDIHN0YXRlcyBpbnN0 ZWFkIG9mIGVuYWJsZS9kaXNhYmxlLgo+IAo+IFRoZSBwcm9ibGVtIHRoYXQgc3RhcnRlZCB0aGlz IHdvcmsgaXMgdGhlIG5lZWQgZm9yIERDNiB0byBiZSBkaXNhYmxlZAo+IHdoZW4gYWNjZXNzaW5n IERQX0FVWF9BIGR1cmluZyBDUlRDIG9uL29mZi4gVGhhdCBpcyBhbHNvIGZpeGVkIGluIHRoaXMK PiBwYXRjaC4KPiAKPiBUaGlzIGlzIHBvc3RlZCBhcyBhbiBSRkMgc2luY2UgRE1DIGFuZCBEQyBz dGF0ZSBoYW5kbGluZyBpcyBiZWluZwo+IHJld29ya2VkIGFuZCB3aWxsIHBvc3NpYmx5IGFmZmVj dCB0aGUgb3V0Y29tZSBvZiB0aGlzIHBhdGNoLiBUaGUgcGF0Y2gKPiBoYXMga25vd24gd2Fybmlu Z3MuCj4gCj4gU2lnbmVkLW9mZi1ieTogUGF0cmlrIEpha29ic3NvbiA8cGF0cmlrLmpha29ic3Nv bkBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jICAgICAgICB8ICA5ICsrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o ICAgICAgICB8ICAyICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5j IHwgNjkgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gIDMgZmlsZXMgY2hhbmdl ZCwgNjQgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmMKPiBpbmRleCA0ODIzMTg0Li5jMmMxYWQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmMKPiBAQCAtMjI4OCw2ICsyMjg4LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3By ZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4gIAlpZiAodHlw ZSA9PSBJTlRFTF9PVVRQVVRfRElTUExBWVBPUlQgfHwgdHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQ KSB7Cj4gIAkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNv ZGVyKTsKPiAgCj4gKwkJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIFBPV0VSX0RP TUFJTl9BVVhfQSk7Cj4gKwoKVGhlc2UgSSB0aGluayBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5IHdp dGggbXkKaW50ZWxfZGlzcGxheV9wb3J0X2F1eF9wb3dlcl9kb21haW4oKSBzdHVmZiBzaW5jZSBp bnRlbF9kcF9hdXhfY2goKSB3aWxsCml0c2VsZiBncmFiIHRoZSBhcHByb3ByaWF0ZSBwb3dlciBk b21haW4uCgpUaGF0J3Mgb2YgY291cnNlIGFzc3VtaW5nIHRoYXQgQVVYIGlzIHRoZSBvbmx5IHJl YXNvbiB3aHkgd2UgbmVlZCB0bwprZWVwIERDNiBkaXNhYmxlZCBoZXJlLgoKPiAgCQlpbnRlbF9k cF9zZXRfbGlua19wYXJhbXMoaW50ZWxfZHAsIGNydGMtPmNvbmZpZyk7Cj4gIAo+ICAJCWludGVs X2RkaV9pbml0X2RwX2J1Zl9yZWcoaW50ZWxfZW5jb2Rlcik7Cj4gQEAgLTIyOTcsNiArMjI5OSw4 IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyKQo+ICAJCWludGVsX2RwX2NvbXBsZXRlX2xpbmtfdHJhaW4oaW50ZWxf ZHApOwo+ICAJCWlmIChwb3J0ICE9IFBPUlRfQSB8fCBJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5 KQo+ICAJCQlpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ICsKPiArCQlpbnRl bF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0FVWF9BKTsKPiAgCX0g ZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewo+ICAJCXN0cnVjdCBpbnRlbF9o ZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoZW5jb2Rlcik7Cj4gIAo+IEBAIC0y MzM5LDkgKzIzNDMsMTQgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgCj4gIAlpZiAodHlwZSA9PSBJTlRF TF9PVVRQVVRfRElTUExBWVBPUlQgfHwgdHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4gIAkJ c3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKPiAr Cj4gKwkJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9BVVhf QSk7Cj4gKwo+ICAJCWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01PREVfRFBNU19P RkYpOwo+ICAJCWludGVsX2VkcF9wYW5lbF92ZGRfb24oaW50ZWxfZHApOwo+ICAJCWludGVsX2Vk cF9wYW5lbF9vZmYoaW50ZWxfZHApOwo+ICsKPiArCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChk ZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0FVWF9BKTsKPiAgCX0KPiAgCj4gIAlpZiAoSVNfU0tZTEFL RShkZXYpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNDY0ODRlNC4uODI0ODlh ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTEzNjcsNiArMTM2Nyw4IEBA IHZvaWQgY2h2X3BoeV9wb3dlcmdhdGVfbGFuZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gIAkJCSAgICAgYm9vbCBvdmVycmlkZSwgdW5zaWduZWQgaW50IG1hc2spOwo+ICBib29s IGNodl9waHlfcG93ZXJnYXRlX2NoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg ZW51bSBkcGlvX3BoeSBwaHksCj4gIAkJCSAgZW51bSBkcGlvX2NoYW5uZWwgY2gsIGJvb2wgb3Zl cnJpZGUpOwo+ICt2b2lkIHNrbF9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gK3ZvaWQgc2tsX2Rpc2FibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7Cj4gIAo+ICAKPiAgLyogaW50ZWxfcG0uYyAqLwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiBpbmRleCAzZjY4MmExLi5lMzBjOWE2IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IEBAIC0zMzUsNiArMzM1LDEw IEBAIHN0YXRpYyB2b2lkIGhzd19zZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gIAlTS0xfRElTUExBWV9QT1dFUldFTExfMV9QT1dFUl9ET01BSU5TIHwJ CVwKPiAgCUJJVChQT1dFUl9ET01BSU5fUExMUykgfAkJCVwKPiAgCUJJVChQT1dFUl9ET01BSU5f SU5JVCkpCj4gKyNkZWZpbmUgU0tMX0RJU1BMQVlfREM2X09GRl9QT1dFUl9ET01BSU5TICgJCVwK PiArCVNLTF9ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMgfAkJXAo+ICsJQklUKFBP V0VSX0RPTUFJTl9BVVhfQSkpCj4gKwo+ICAjZGVmaW5lIFNLTF9ESVNQTEFZX0FMV0FZU19PTl9Q T1dFUl9ET01BSU5TICgJCVwKPiAgCShQT1dFUl9ET01BSU5fTUFTSyAmIH4oU0tMX0RJU1BMQVlf UE9XRVJXRUxMXzFfUE9XRVJfRE9NQUlOUyB8CVwKPiAgCVNLTF9ESVNQTEFZX1BPV0VSV0VMTF8y X1BPV0VSX0RPTUFJTlMgfAkJXAo+IEBAIC01NTAsNyArNTU0LDcgQEAgc3RhdGljIHZvaWQgYXNz ZXJ0X2Nhbl9kaXNhYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g IAkJIkRDNiBhbHJlYWR5IHByb2dyYW1tZWQgdG8gYmUgZGlzYWJsZWQuXG4iKTsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgc2tsX2VuYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICt2b2lkIHNrbF9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgewo+ICAJdWludDMyX3QgdmFsOwo+ICAKPiBAQCAtNTY3LDcgKzU3MSw3IEBA IHN0YXRpYyB2b2lkIHNrbF9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgCVBPU1RJTkdfUkVBRChEQ19TVEFURV9FTik7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2 b2lkIHNrbF9kaXNhYmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g K3ZvaWQgc2tsX2Rpc2FibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgewo+ICAJdWludDMyX3QgdmFsOwo+ICAKPiBAQCAtNjI4LDEwICs2MzIsOCBAQCBzdGF0aWMg dm9pZCBza2xfc2V0X3Bvd2VyX3dlbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJCQkJIUk5MTVfUkVBRChIU1dfUFdSX1dFTExfQklPUyksCj4gIAkJCQkiSW52YWxpZCBm b3IgcG93ZXIgd2VsbCBzdGF0dXMgdG8gYmUgZW5hYmxlZCwgdW5sZXNzIGRvbmUgYnkgdGhlIEJJ T1MsIFwKPiAgCQkJCXdoZW4gcmVxdWVzdCBpcyB0byBkaXNhYmxlIVxuIik7Cj4gLQkJCWlmICgo R0VOOV9FTkFCTEVfREM1KGRldikgfHwgU0tMX0VOQUJMRV9EQzYoZGV2KSkgJiYKPiAtCQkJCXBv d2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikgewo+ICsJCQlpZiAocG93ZXJfd2VsbC0+ ZGF0YSA9PSBTS0xfRElTUF9QV18yKSB7Cj4gIAkJCQlpZiAoU0tMX0VOQUJMRV9EQzYoZGV2KSkg ewo+IC0JCQkJCXNrbF9kaXNhYmxlX2RjNihkZXZfcHJpdik7CgpIbW0uIFNvIHRoZSBvcmRlcmlu ZyBuZWVkcyB0byBiZSAKZGlzYWJsZSBkYzYgLT4gZW5hYmxlIHB3MgoKPiAgCQkJCQkvKgo+ICAJ CQkJCSAqIERESSBidWZmZXIgcHJvZ3JhbW1pbmcgdW5uZWNlc3NhcnkgZHVyaW5nIGRyaXZlci1s b2FkL3Jlc3VtZQo+ICAJCQkJCSAqIGFzIGl0J3MgYWxyZWFkeSBkb25lIGR1cmluZyBtb2Rlc2V0 IGluaXRpYWxpemF0aW9uIHRoZW4uCj4gQEAgLTYzOSwxMCArNjQxLDkgQEAgc3RhdGljIHZvaWQg c2tsX3NldF9wb3dlcl93ZWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg CQkJCQkgKi8KPiAgCQkJCQlpZiAoIWRldl9wcml2LT5wb3dlcl9kb21haW5zLmluaXRpYWxpemlu ZykKPiAgCQkJCQkJaW50ZWxfcHJlcGFyZV9kZGkoZGV2KTsKPiAtCQkJCX0gZWxzZSB7Cj4gLQkJ CQkJZ2VuOV9kaXNhYmxlX2RjNShkZXZfcHJpdik7Cj4gIAkJCQl9Cj4gIAkJCX0KPiArCj4gIAkJ CUk5MTVfV1JJVEUoSFNXX1BXUl9XRUxMX0RSSVZFUiwgdG1wIHwgcmVxX21hc2spOwo+ICAJCX0K PiAgCj4gQEAgLTY2MCw4ICs2NjEsNyBAQCBzdGF0aWMgdm9pZCBza2xfc2V0X3Bvd2VyX3dlbGwo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQlQT1NUSU5HX1JFQUQoSFNX X1BXUl9XRUxMX0RSSVZFUik7Cj4gIAkJCURSTV9ERUJVR19LTVMoIkRpc2FibGluZyAlc1xuIiwg cG93ZXJfd2VsbC0+bmFtZSk7Cj4gIAo+IC0JCQlpZiAoKEdFTjlfRU5BQkxFX0RDNShkZXYpIHx8 IFNLTF9FTkFCTEVfREM2KGRldikpICYmCj4gLQkJCQlwb3dlcl93ZWxsLT5kYXRhID09IFNLTF9E SVNQX1BXXzIpIHsKPiArCQkJaWYgKHBvd2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikg ewo+ICAJCQkJZW51bSBjc3Jfc3RhdGUgc3RhdGU7Cj4gIAkJCQkvKiBUT0RPOiB3YWl0IGZvciBh IGNvbXBsZXRpb24gZXZlbnQgb3IKPiAgCQkJCSAqIHNpbWlsYXIgaGVyZSBpbnN0ZWFkIG9mIGJ1 c3kKPiBAQCAtNjY5LDE0ICs2NjksMTAgQEAgc3RhdGljIHZvaWQgc2tsX3NldF9wb3dlcl93ZWxs KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJCSAqLwo+ICAJCQkJd2Fp dF9mb3IoKHN0YXRlID0gaW50ZWxfY3NyX2xvYWRfc3RhdHVzX2dldChkZXZfcHJpdikpICE9Cj4g IAkJCQkJCUZXX1VOSU5JVElBTElaRUQsIDEwMDApOwo+IC0JCQkJaWYgKHN0YXRlICE9IEZXX0xP QURFRCkKPiArCQkJCWlmIChzdGF0ZSAhPSBGV19MT0FERUQpIHsKPiAgCQkJCQlEUk1fRVJST1Io IkNTUiBmaXJtd2FyZSBub3QgcmVhZHkgKCVkKVxuIiwKPiAtCQkJCQkJCXN0YXRlKTsKPiAtCQkJ CWVsc2UKPiAtCQkJCQlpZiAoU0tMX0VOQUJMRV9EQzYoZGV2KSkKPiAtCQkJCQkJc2tsX2VuYWJs ZV9kYzYoZGV2X3ByaXYpOwo+IC0JCQkJCWVsc2UKPiAtCQkJCQkJZ2VuOV9lbmFibGVfZGM1KGRl dl9wcml2KTsKPiArCQkJCQkJICBzdGF0ZSk7Cj4gKwkJCQl9CgphbmQgaGVyZSB3ZSBuZWVkIApk aXNhYmxlIHB3MiAtPiBlbmFibGUgZGM2CgpUaGF0J3Mgc3ltbWV0cmljIHdoaWNoIGlzIGdyZWF0 IGZvciB1c2luZyBwb3dlciB3ZWxscyBoZXJlIHNpbmNlIHdlIHdhbGsKdGhlIHBvd2VyIHdlbGxz IGFycmF5IGZvcndhcmQgd2hlbiBlbmFibGluZywgYW5kIGJhY2t3YXJkcyB3aGVuCmRpc2FibGlu Zy4KCkknbSB0aGlua2luZyB0aGF0IHdlIGNvdWxkIGFsc28gbW92ZSB0aGUgZGM1IHN0dWZmIGlu dG8gYSBwb3dlciB3ZWxsLgpXb3VsZCByZWR1Y2UgdGhlIGNsdXR0ZXIgaW4gc2tsX3NldF9wb3dl cl93ZWxsKCkgYXQgbGVhc3QuIEknbSBub3Qgc3VyZQp3aGF0IHRoZSByZXF1aXJlbWVudHMgd3J0 LiBkYzUgYXJlLiBJZiB0aGV5IGFyZSB0aGUgc2FtZSBhcyBmb3IgZGM2LAp0aGVuIGEgc2luZ2xl IGRjIHBvd2VyIHdlbGwgd291bGQgZG8sIG90aGVyd2lzZSB3ZSB3b3VsZCBuZWVkIHR3bywgZWFj aAp3aXRoIGl0cyBvd24gZG9tYWlucy4KCj4gIAkJCX0KPiAgCQl9Cj4gIAl9Cj4gQEAgLTc1Miw2 ICs3NDgsMzQgQEAgc3RhdGljIHZvaWQgc2tsX3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlza2xfc2V0X3Bvd2VyX3dlbGwoZGV2X3ByaXYs IHBvd2VyX3dlbGwsIGZhbHNlKTsKPiAgfQo+ICAKPiArc3RhdGljIGJvb2wgc2tsX2RjNl9zdGF0 ZV9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSAgc3Ry dWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKPiArewo+ICsJLyogUmV0dXJuIHRydWUg aWYgZGlzYWJsaW5nIG9mIERDNiBpcyBlbmFibGVkICovCj4gKwlyZXR1cm4gIShJOTE1X1JFQUQo RENfU1RBVEVfRU4pICYgRENfU1RBVEVfRU5fVVBUT19EQzYpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBza2xfZGM2X3N0YXRlX29uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiArCQkJICAgICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsKQo+ICt7Cj4gKwlz a2xfZW5hYmxlX2RjNihkZXZfcHJpdik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNrbF9kYzZf c3RhdGVfb2ZmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJICAgICAg c3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKPiArewo+ICsJc2tsX2Rpc2FibGVf ZGM2KGRldl9wcml2KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgc2tsX2RjNl9zeW5jX2h3KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJICAgIHN0cnVjdCBpOTE1X3Bv d2VyX3dlbGwgKnBvd2VyX3dlbGwpCj4gK3sKPiArCWlmIChwb3dlcl93ZWxsLT5jb3VudCA+IDAp Cj4gKwkJc2tsX2Rpc2FibGVfZGM2KGRldl9wcml2KTsKPiArCWVsc2UKPiArCQlza2xfZW5hYmxl X2RjNihkZXZfcHJpdik7Cj4gK30KCk5pdDogTG9va3MgbGlrZSB3ZSB1c3VhbGwgaGF2ZSB0aGVz ZSBpbiB0aGUgZm9sbG93aW5nIG9yZGVyCnN5bmNfaHcKZW5hYmxlCmRpc2FibGUKCidlbmFibGVk JyBpcyBhIGJpdCBhbGwgb3ZlciB0aGUgcGxhY2UgdXN1YWxseS4gSSBndWVzcyBiZWZvcmUgb3Ig YWZ0ZXIgdGhlCnJlc3QgaXMgZmluZS4KCkknbSBub3QgcmVhbGx5IHN1cmUgaG93IEkgd291bGQg bmFtZSB0aGVzZS4gVGhlIGN1cnJlbnQgbmFtaW5nIGRvZXNuJ3QKcmVhbGx5IHRlbGwgbWUgdGhl eSdyZSBwb3dlciB3ZWxsIG9wcy4gTWF5YmUKc2tsX2RjNl9vZmZfcG93ZXJfd2VsbF97ZW5hYmxl LGRpc2FibGUsc3luY19odyxlbmFibGVkfSgpID8KCj4gKwo+ICBzdGF0aWMgdm9pZCBpOXh4X2Fs d2F5c19vbl9wb3dlcl93ZWxsX25vb3Aoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJCQkJCSAgIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCj4gIHsKPiBA QCAtMTU0Niw2ICsxNTcwLDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxs X29wcyBza2xfcG93ZXJfd2VsbF9vcHMgPSB7Cj4gIAkuaXNfZW5hYmxlZCA9IHNrbF9wb3dlcl93 ZWxsX2VuYWJsZWQsCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJf d2VsbF9vcHMgc2tsX2RjX3N0YXRlX29wcyA9IHsKCl9kYzZfLCBhbmQgbmFtaW5nIHRvIG1hdGNo IGhvdyB0aGUgZnVuY3Rpb24gYXJlIGZpbmFsbHkgbmFtZWQgb2YKY291cnNlLgoKPiArCS5zeW5j X2h3ID0gc2tsX2RjNl9zeW5jX2h3LAo+ICsJLyogVG8gZW5hYmxlIHBvd2VyIHdlIHR1cm4gdGhl IERDIHN0YXRlIG9mZiAqLwo+ICsJLmVuYWJsZSA9IHNrbF9kYzZfc3RhdGVfb2ZmLAo+ICsJLmRp c2FibGUgPSBza2xfZGM2X3N0YXRlX29uLAo+ICsJLmlzX2VuYWJsZWQgPSBza2xfZGM2X3N0YXRl X2VuYWJsZWQsCj4gK307Cj4gKwo+ICBzdGF0aWMgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCBoc3df cG93ZXJfd2VsbHNbXSA9IHsKPiAgCXsKPiAgCQkubmFtZSA9ICJhbHdheXMtb24iLAo+IEBAIC0x NzQ1LDYgKzE3NzcsMTEgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgc2tsX3Bvd2Vy X3dlbGxzW10gPSB7Cj4gIAkJLm9wcyA9ICZza2xfcG93ZXJfd2VsbF9vcHMsCj4gIAkJLmRhdGEg PSBTS0xfRElTUF9QV19ERElfRCwKPiAgCX0sCj4gKwl7Cj4gKwkJLm5hbWUgPSAiREM2IHN0YXRl IG9mZiIsCgpKdXN0ICJEQzYgb2ZmIiBwZXJoYXBzPwoKSSB3YXNuJ3QgYWJsZSB0byB0aGluayBv ZiBhIG5pY2Ugd2F5IHRvIG5hbWUgdGhpcyBzbyB0aGF0IGl0IHdvdWxkIG1ha2UKbW9yZSBzZW5z ZSBpbiB0aGUgbG9ncy4gV2l0aCB0aGlzIHdlIHdvdWxkIGdldCAKJ2VuYWJsaW5nIERDNiBvZmYn IGFuZCAnZGlzYWJsaW5nIERDNiBvZmYnIHdoaWNoIGlzIGEgYml0IGNvbmZ1c2luZy4KTWF5YmUg d2Ugc2hvdWxkIGF0IGxlYXN0IHB1dCBxdW90ZXMgYXJvdW5kIHRoZSBwb3dlciB3ZWxsIG5hbWUg aW4gdGhlCmRlYnVnIG1lc3NhZ2UgdG8gbWFrZSBpdCBhIGJpdCBsZXNzIGZ1bmt5PyBQcm9iYWJs eSBub3Qgd29ydGggaXQgdG8KYWRkIHN1cHBvcnQgZm9yIHN1bGx5IGN1c3RvbWl6ZWQgZW5hYmxl L2Rpc2FibGUgbG9nIG1lc3NhZ2UuCgo+ICsJCS5kb21haW5zID0gU0tMX0RJU1BMQVlfREM2X09G Rl9QT1dFUl9ET01BSU5TLAo+ICsJCS5vcHMgPSAmc2tsX3Bvd2VyX3dlbGxfb3BzLAoKU3VyZWx5 IHlvdSB3YW50IHRvIHVzZSB0aGUgbmV3IG9wcyB5b3UgY3JlYXRlZD8gOikKCkFuZCBoZXJlIHdl IG5lZWQgdG8gYmUgY2FyZWZ1bCB3aGVyZSBpbiB0aGUgbGlzdCB3ZSBpbnNlcnQgdGhlIHBvd2Vy CndlbGwuIEJhc2VkIG9uIHdoYXQgd2Ugc2F3IGVhcmxpZXIsIHRoZSByaWdodCBwbGFjZSBzaG91 bGQgYmUganVzdApiZWZvcmUgUFcyLiBUaGF0IHdheSBEQzYgZ2V0cyBkaXNhYmxlZCBiZWZvcmUg UFcyIGlzIGVuYWJsZWQsIGFuZApQVzIgZ2V0cyBkaXNhYmxlZCBiZWZvcmUgREM2IGdldHMgZW5h YmxlZC4KCj4gKwl9LAo+ICB9Owo+ICAKPiAgc3RhdGljIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwg Ynh0X3Bvd2VyX3dlbGxzW10gPSB7Cj4gLS0gCj4gMi4xLjQKPiAKPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJ bnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK