From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anshuman Gupta Subject: Re: [PATCH v7 3/7] drm/i915/tgl: Enable DC3CO state in "DC Off" power well Date: Wed, 11 Sep 2019 18:12:33 +0530 Message-ID: <20190911124233.GB20243@intel.com> References: <20190907171443.16181-1-anshuman.gupta@intel.com> <20190907171443.16181-4-anshuman.gupta@intel.com> <20190908164435.GA28096@ideak-desk.fi.intel.com> <20190909161917.GA18105@intel.com> <20190911082142.GA943@ideak-desk.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3C89D6E283 for ; Wed, 11 Sep 2019 12:49:06 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190911082142.GA943@ideak-desk.fi.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: jani.nikula@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMjAxOS0wOS0xMSBhdCAxMToyMTo0MiArMDMwMCwgSW1yZSBEZWFrIHdyb3RlOgo+IE9uIE1v biwgU2VwIDA5LCAyMDE5IGF0IDA5OjQ5OjE3UE0gKzA1MzAsIEFuc2h1bWFuIEd1cHRhIHdyb3Rl Ogo+ID4gT24gMjAxOS0wOS0wOCBhdCAxOTo0NDozNSArMDMwMCwgSW1yZSBEZWFrIHdyb3RlOgo+ ID4gPiBPbiBTYXQsIFNlcCAwNywgMjAxOSBhdCAxMDo0NDozOVBNICswNTMwLCBBbnNodW1hbiBH dXB0YSB3cm90ZToKPiA+IEhpIEltcmUsCj4gPiBUaGFua3MgZm9yIHJldmlld2luZyB0aGUgcGFj dGhlcyBpIHdpbGwgcmV3b3JrIHRoZSBwYXRjaGVzLgo+ID4gVGhlcmUgYXJlIGZldyBjb21tZW50 cyBmcm9tIG15IHNpZGUgd2hpY2ggd2lsbCBoZWxwIHRvIHJld29yay4gCj4gPiA+ID4gQWRkIG1h eF9kY19zdGF0ZSBhbmQgdGdsX3NldF90YXJnZXRfZGNfc3RhdGUoKSBBUEkKPiA+ID4gPiBpbiBv cmRlciB0byBlbmFibGUgREMzQ08gc3RhdGUgd2l0aCBleGlzdGluZyBEQyBzdGF0ZXMuCj4gPiA+ ID4gbWF4X2RjX3N0YXRlIHdpbGwgZW5hYmxlL2Rpc2FibGUgdGhlIGRlc2lyZWQgREMgc3RhdGUg aW4KPiA+ID4gPiBEQ19TVEFURV9FTiByZWcgd2hlbiAiREMgT2ZmIiBwb3dlciB3ZWxsIGdldHMg ZGlzYWJsZS9lbmFibGUuCj4gPiA+ID4gCj4gPiA+ID4gdjI6IGNvbW1pdCBsb2cgaW1wcm92ZW1l bnQuCj4gPiA+ID4gdjM6IFVzZWQgaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIgdG8gd2FpdCBmb3Ig REMzQ08gZXhpdC4gW0ltcmVdCj4gPiA+ID4gICAgIFVzZWQgZ2VuOV9zZXRfZGNfc3RhdGUoKSB0 byBhbGxvdy9kaXNhbGxvdyBEQzNDTy4gW0ltcmVdCj4gPiA+ID4gICAgIE1vdmVkIHRyYW5zY29k ZXIgcHNyMiBleGl0IGxpbmUgZW5hYmxlbWVudCBmcm9tIHRnbF9hbGxvd19kYzNjbygpCj4gPiA+ ID4gICAgIHRvIGEgYXBwcm9wcmlhdGUgcGxhY2UgaGFzd2VsbF9jcnRjX2VuYWJsZSgpLiBbSW1y ZV0KPiA+ID4gPiAgICAgQ2hhbmdlZCB0aGUgREMzQ08gcG93ZXIgd2VsbCBlbmFibGVkIGNhbGwg YmFjayBsb2dpYyBhcwo+ID4gPiA+ICAgICByZWNvbW1lbmRlZCBpbiByZXZpZXcgY29tbWVudHMu IFtJbXJlXQo+ID4gPiA+IHY0OiBVc2VkIHdhaXRfZm9yX3VzKCkgaW5zdGVhZCBvZiBpbnRlbF93 YWl0X2Zvcl9yZWcoKS4gW0ltcmUgKElSQyldCj4gPiA+ID4gdjU6IHVzaW5nIHVkZWxheSgpIGlu c3RlYWQgb2Ygd2FpdGluZyBmb3IgREMzQ08gZXhpdCBzdGF0dXMuCj4gPiA+ID4gdjY6IEZpeGVk IG1pbm9yIHVud2FudGVkIGNoYW5nZS4KPiA+ID4gPiB2NzogUmVtb3ZlZCBEQzNDTyBwb3dlcndl bGwgYW5kIFBPV0VSX0RPTUFJTl9WSURFTy4KPiA+ID4gPiAKPiA+ID4gPiBDYzogSmFuaSBOaWt1 bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiA+ID4gPiBDYzogSW1yZSBEZWFrIDxpbXJlLmRl YWtAaW50ZWwuY29tPgo+ID4gPiA+IENjOiBBbmltZXNoIE1hbm5hIDxhbmltZXNoLm1hbm5hQGlu dGVsLmNvbT4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBbnNodW1hbiBHdXB0YSA8YW5zaHVtYW4u Z3VwdGFAaW50ZWwuY29tPgo+ID4gPiA+IC0tLQo+ID4gPiA+ICAuLi4vZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMgICAgfCAxMTEgKysrKysrKysrKysrKystLS0tCj4gPiA+ ID4gIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuaCAgICB8ICAgMyAr Cj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8 ICAgMSArCj4gPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgMjAgZGVs ZXRpb25zKC0pCj4gPiA+ID4gCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKPiA+ID4gPiBpbmRleCA0OTZmYTFiNTNmZmIu LjgzYjEwZjYxZWU0MiAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCj4gPiA+ID4gQEAgLTc3Miw2ICs3 NzIsMjkgQEAgc3RhdGljIHZvaWQgZ2VuOV9zZXRfZGNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCB1MzIgc3RhdGUpCj4gPiA+ID4gIAlkZXZfcHJpdi0+Y3NyLmRjX3N0 YXRlID0gdmFsICYgbWFzazsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiArc3RhdGljIHZv aWQgdGdsX2FsbG93X2RjM2NvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ ID4gCj4gPiA+IFNob3VsZCBiZSB0Z2xfZW5hYmxlX2RjM2NvKCksIHRvIG1hdGNoIHRoZSByZXN0 IG9mIERDIHN0YXRlIGhlbHBlcnMuCj4gPiA+IAo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlpZiAoIWRl dl9wcml2LT5wc3Iuc2lua19wc3IyX3N1cHBvcnQpCj4gPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiAK PiA+ID4gUFNSIGtub3dzIHdoZW4gdG8gZW5hYmxlIERDM2NvLCBzbyBubyBuZWVkIHRvIGRvdWJs ZS1jaGVjayB0aGF0IGhlcmUuCj4gPiA+IAo+ID4gPiA+ICsKPiA+ID4gPiArCWlmIChkZXZfcHJp di0+Y3NyLmFsbG93ZWRfZGNfbWFzayAmIERDX1NUQVRFX0VOX0RDM0NPKQo+ID4gPiAKPiA+ID4g VGhpcyBjaGVjayBpcyBvdXQtb2YtcGxhY2Ugd3J0LiB0aGUgc2FtZSBjaGVja3MgZm9yIG90aGVy IERDIHN0YXRlcy4KPiA+ID4gCj4gPiA+ID4gKwkJZ2VuOV9zZXRfZGNfc3RhdGUoZGV2X3ByaXYs IERDX1NUQVRFX0VOX0RDM0NPKTsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiArc3RhdGlj IHZvaWQgdGdsX2Rpc2FsbG93X2RjM2NvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiA+ID4gPiArewo+ID4gPiA+ICsJdTMyIHZhbDsKPiA+ID4gPiArCj4gPiA+ID4gKwl2YWwg PSBJOTE1X1JFQUQoRENfU1RBVEVfRU4pOwo+ID4gPiA+ICsJdmFsICY9IH5EQ19TVEFURV9EQzND T19TVEFUVVM7Cj4gPiA+ID4gKwlJOTE1X1dSSVRFKERDX1NUQVRFX0VOLCB2YWwpOwo+ID4gPiA+ ICsJZ2VuOV9zZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUpOwo+ID4gPiA+ ICsJLyoKPiA+ID4gPiArCSAqIERlbGF5IG9mIDIwMHVzIERDM0NPIEV4aXQgdGltZSBCLlNwZWMg NDkxOTYKPiA+ID4gPiArCSAqLwo+ID4gPiA+ICsJdWRlbGF5KDIwMCk7Cj4gPiA+ID4gK30KPiA+ ID4gPiArCj4gPiA+ID4gIHN0YXRpYyB2b2lkIGJ4dF9lbmFibGVfZGM5KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4gPiAgewo+ID4gPiA+ICAJYXNzZXJ0X2Nhbl9lbmFi bGVfZGM5KGRldl9wcml2KTsKPiA+ID4gPiBAQCAtOTM5LDcgKzk2Miw4IEBAIHN0YXRpYyB2b2lk IGJ4dF92ZXJpZnlfZGRpX3BoeV9wb3dlcl93ZWxscyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gPiA+ID4gIHN0YXRpYyBib29sIGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfZW5h YmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gIAkJCQkJICAg c3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKPiA+ID4gPiAgewo+ID4gPiA+IC0J cmV0dXJuIChJOTE1X1JFQUQoRENfU1RBVEVfRU4pICYgRENfU1RBVEVfRU5fVVBUT19EQzVfREM2 X01BU0spID09IDA7Cj4gPiA+ID4gKwlyZXR1cm4gKChJOTE1X1JFQUQoRENfU1RBVEVfRU4pICYg RENfU1RBVEVfRU5fREMzQ08pID09IDAgJiYKPiA+ID4gPiArCQkoSTkxNV9SRUFEKERDX1NUQVRF X0VOKSAmIERDX1NUQVRFX0VOX1VQVE9fREM1X0RDNl9NQVNLKSA9PSAwKTsKPiA+ID4gPiAgfQo+ ID4gPiA+ICAKPiA+ID4gPiAgc3RhdGljIHZvaWQgZ2VuOV9hc3NlcnRfZGJ1Zl9lbmFibGVkKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4gPiBAQCAtOTU1LDI0ICs5Nzks MzIgQEAgc3RhdGljIHZvaWQgZ2VuOV9kaXNhYmxlX2RjX3N0YXRlcyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+ID4gIHsKPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9jZGNs a19zdGF0ZSBjZGNsa19zdGF0ZSA9IHt9Owo+ID4gPiA+ICAKPiA+ID4gPiAtCWdlbjlfc2V0X2Rj X3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsKPiA+ID4gPiArCWlmIChkZXZfcHJp di0+Y3NyLm1heF9kY19zdGF0ZSAmIERDX1NUQVRFX0VOX0RDM0NPKSB7Cj4gPiA+ID4gKwkJdGds X2Rpc2FsbG93X2RjM2NvKGRldl9wcml2KTsKPiA+ID4gPiArCX0gZWxzZSB7Cj4gPiA+IAo+ID4g PiBXaXRoIGFuIGVhcmx5IHJldHVybiB5b3UgY2FuIGF2b2lkIHRoZSBleHRyYSBkaWZmIGFuZCBt YWtlIHJldmlld2luZwo+ID4gPiBlYXNpZXIuCj4gPiA+IAo+ID4gPiA+ICsJCWdlbjlfc2V0X2Rj X3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsKPiA+ID4gPiAgCj4gPiA+ID4gLQlk ZXZfcHJpdi0+ZGlzcGxheS5nZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7Cj4gPiA+ ID4gLQkvKiBDYW4ndCByZWFkIG91dCB2b2x0YWdlX2xldmVsIHNvIGNhbid0IHVzZSBpbnRlbF9j ZGNsa19jaGFuZ2VkKCkgKi8KPiA+ID4gPiAtCVdBUk5fT04oaW50ZWxfY2RjbGtfbmVlZHNfbW9k ZXNldCgmZGV2X3ByaXYtPmNkY2xrLmh3LCAmY2RjbGtfc3RhdGUpKTsKPiA+ID4gPiArCQlkZXZf cHJpdi0+ZGlzcGxheS5nZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7Cj4gPiA+ID4g KwkJLyoKPiA+ID4gPiArCQkgKiBDYW4ndCByZWFkIG91dCB2b2x0YWdlX2xldmVsIHNvIGNhbid0 IHVzZQo+ID4gPiA+ICsJCSAqIGludGVsX2NkY2xrX2NoYW5nZWQoKQo+ID4gPiA+ICsJCSAqLwo+ ID4gPiA+ICsJCVdBUk5fT04oaW50ZWxfY2RjbGtfbmVlZHNfbW9kZXNldCgmZGV2X3ByaXYtPmNk Y2xrLmh3LAo+ID4gPiA+ICsJCQkJCQkgICZjZGNsa19zdGF0ZSkpOwo+ID4gPiA+ICAKPiA+ID4g PiAtCWdlbjlfYXNzZXJ0X2RidWZfZW5hYmxlZChkZXZfcHJpdik7Cj4gPiA+ID4gKwkJZ2VuOV9h c3NlcnRfZGJ1Zl9lbmFibGVkKGRldl9wcml2KTsKPiA+ID4gPiAgCj4gPiA+ID4gLQlpZiAoSVNf R0VOOV9MUChkZXZfcHJpdikpCj4gPiA+ID4gLQkJYnh0X3ZlcmlmeV9kZGlfcGh5X3Bvd2VyX3dl bGxzKGRldl9wcml2KTsKPiA+ID4gPiArCQlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCj4gPiA+ ID4gKwkJCWJ4dF92ZXJpZnlfZGRpX3BoeV9wb3dlcl93ZWxscyhkZXZfcHJpdik7Cj4gPiA+ID4g IAo+ID4gPiA+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4gPiA+ID4gLQkJLyoK PiA+ID4gPiAtCQkgKiBETUMgcmV0YWlucyBIVyBjb250ZXh0IG9ubHkgZm9yIHBvcnQgQSwgdGhl IG90aGVyIGNvbWJvCj4gPiA+ID4gLQkJICogUEhZJ3MgSFcgY29udGV4dCBmb3IgcG9ydCBCIGlz IGxvc3QgYWZ0ZXIgREMgdHJhbnNpdGlvbnMsCj4gPiA+ID4gLQkJICogc28gd2UgbmVlZCB0byBy ZXN0b3JlIGl0IG1hbnVhbGx5Lgo+ID4gPiA+IC0JCSAqLwo+ID4gPiA+IC0JCWludGVsX2NvbWJv X3BoeV9pbml0KGRldl9wcml2KTsKPiA+ID4gPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSAxMSkKPiA+ID4gPiArCQkJLyoKPiA+ID4gPiArCQkJICogRE1DIHJldGFpbnMgSFcgY29udGV4 dCBvbmx5IGZvciBwb3J0IEEsIHRoZSBvdGhlcgo+ID4gPiA+ICsJCQkgKiBjb21ibyBQSFkncyBI VyBjb250ZXh0IGZvciBwb3J0IEIgaXMgbG9zdCBhZnRlcgo+ID4gPiA+ICsJCQkgKiBEQyB0cmFu c2l0aW9ucywgc28gd2UgbmVlZCB0byByZXN0b3JlIGl0IG1hbnVhbGx5Lgo+ID4gPiA+ICsJCQkg Ki8KPiA+ID4gPiArCQkJaW50ZWxfY29tYm9fcGh5X2luaXQoZGV2X3ByaXYpOwo+ID4gPiA+ICsJ fQo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+ICBzdGF0aWMgdm9pZCBnZW45X2RjX29mZl9w b3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ ID4gQEAgLTk4NywxMCArMTAxOSw0OCBAQCBzdGF0aWMgdm9pZCBnZW45X2RjX29mZl9wb3dlcl93 ZWxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ICAJ aWYgKCFkZXZfcHJpdi0+Y3NyLmRtY19wYXlsb2FkKQo+ID4gPiA+ICAJCXJldHVybjsKPiA+ID4g PiAgCj4gPiA+ID4gLQlpZiAoZGV2X3ByaXYtPmNzci5hbGxvd2VkX2RjX21hc2sgJiBEQ19TVEFU RV9FTl9VUFRPX0RDNikKPiA+ID4gPiAtCQlza2xfZW5hYmxlX2RjNihkZXZfcHJpdik7Cj4gPiA+ ID4gLQllbHNlIGlmIChkZXZfcHJpdi0+Y3NyLmFsbG93ZWRfZGNfbWFzayAmIERDX1NUQVRFX0VO X1VQVE9fREM1KQo+ID4gPiA+IC0JCWdlbjlfZW5hYmxlX2RjNShkZXZfcHJpdik7Cj4gPiA+ID4g KwlpZiAoZGV2X3ByaXYtPmNzci5tYXhfZGNfc3RhdGUgJiBEQ19TVEFURV9FTl9EQzNDTykgewo+ ID4gPiAKPiA+ID4gdGFyZ2V0X2RjX3N0YXRlIHdvdWxkIGJlIGEgYmV0dGVyIG5hbWUgYW5kIGl0 IHNob2xkIGJlIGFuIGV4YWN0IHN0YXRlCj4gPiA+IGluc3RlYWQgb2YgYSBtYXNrLgo+ID4gPiAK PiA+ID4gPiArCQl0Z2xfYWxsb3dfZGMzY28oZGV2X3ByaXYpOwo+ID4gPiA+ICsJfSBlbHNlIGlm IChkZXZfcHJpdi0+Y3NyLm1heF9kY19zdGF0ZSAmIERDX1NUQVRFX0VOX1VQVE9fREM1X0RDNl9N QVNLKSB7Cj4gPiA+ID4gKwkJaWYgKGRldl9wcml2LT5jc3IuYWxsb3dlZF9kY19tYXNrICYgRENf U1RBVEVfRU5fVVBUT19EQzYpCj4gPiA+IAo+ID4gPiBXZSBzaG91bGQgbWFrZSB0aGVzZSBjaGVj a3MgbW9yZSB1bmlmb3JtLCBieSBjaGVja2luZyBoZXJlIG9ubHkKPiA+ID4gdGFyZ2V0X2RjX3N0 YXRlLgo+ID4gSWYgaSB1bmRlcnN0YW5kIGNvcnJlY3RseSB0aGlzIGNvbW1lbnQgaXMgYWJvdXQg dG8gaGF2ZSBhIHVuaWZvcm0gCj4gPiBjb25kaXRpb24gdGFyZ2V0X2RjX3N0YXRlIGluIG9yZGVy IHRvIGRlY2lkZSB3aGljaCBEQyBzdGF0ZSB3ZSAKPiA+IGludGVyZXN0ZWQuIFRoZW4gd2UgbWF5 IHJlcXVpcmUgdG8gY2hlY2sgYWxsb3dlZF9kY19tYXNrIGFjY29yZGluZ2x5IGluIAo+ID4gdGds X3NldF90YXJnZXRfZGNfc3RhdGUoKSwKPiAKPiBZZXMsIHdlIGNvdWxkIGNoZWNrIGhlcmUgb25s eSB0YXJnZXRfZGNfc3RhdGUsIHNldHRpbmcgdGhhdCBvbmUgb25seSB0bwo+IHZhbHVlcyBwZXJt aXR0ZWQgYnkgYWxsb3dlZF9kY19tYXNrLgpGb3Igb2xkZXIgcGxhdGZvcm0gc2V0dGluZyB0YXJn ZXRfZGNfc3RhdGUgdmFsdWUgcGVybWl0dGVkIGJ5IGFsbG93ZWRfZGNfbWFzawppIGFtIHBsYW5u aW5nIHRvIGhhdmUgYSBhbGxvd2VkX2RjX21hc2tfdG9fdGFyZ2V0X2RjX3N0YXRlKCkgZnVuYywg d2hpY2gKd2lsbCBiZSBjYWxsZWQgZnJvbSBpbnRlbF9wb3dlcl9kb21haW5zX2luaXQsIGFuZCBp bml0aWxpemVzIHRhcmdldF9kY19zdGF0ZS4KZm9yIHRnbCBvbndhcmRzIHRnbF9zZXRfdGFyZ2V0 X2RjX3N0YXRlKCkgd2lsbCBkbyBpdC4KSG9wZSBpdCB3aWxsIGJlIG9rID8gIAo+IAo+ID4gYnV0 IHRoYXQgd291bGQgbm90IGJlIGZpdHRpbmcgZm9yIAo+ID4gb2xkZXIgcGxhdGZvcm1zLgo+ID4g V2hhdCBpcyB5b3VyIGlucHV0IG9uIHRoaXM/IHBsZWFzZSBjb3JyZWN0IG1lIGlmIGkgYW0gd3Jv bmcgaGVyZS4KPiA+ID4gCj4gPiA+ID4gKwkJCXNrbF9lbmFibGVfZGM2KGRldl9wcml2KTsKPiA+ ID4gPiArCQllbHNlIGlmIChkZXZfcHJpdi0+Y3NyLmFsbG93ZWRfZGNfbWFzayAmIERDX1NUQVRF X0VOX1VQVE9fREM1KQo+ID4gPiA+ICsJCQlnZW45X2VuYWJsZV9kYzUoZGV2X3ByaXYpOwo+ID4g PiA+ICsJfQo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICt2b2lkIHRnbF9zZXRfdGFyZ2V0 X2RjX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHN0YXRlLAo+ ID4gPiA+ICsJCQkgICAgIGJvb2wgcHNyMl9kZWVwX3NsZWVwKQo+ID4gPiAKPiA+ID4gcHNyMl9k ZWVwX3NsZWVwIGlzIGEgUFNSIGludGVybmFsIHN0dWZmLCB3aGlsZSBQU1IgaXMgdXNpbmcgdGhl IHBvd2VyCj4gPiA+IGRvbWFpbnMgZnJhbWV3b3JrLCBzbyBsZXQncyBrZWVwIHRoZSBkZWVwIHNs ZWVwIHByb2dyYW1taW5nIGluIHRoZSBQU1IKPiA+ID4gY29kZS4KPiA+IEkgd2FudGVkIG5vdCB0 byBlbmFibGUvZGlzYWJsZSBwc3IyIGRlZXAgc2xlZXAgZm9yIGVhY2ggZmxpcCBmbHVzaCByZXF1 ZXN0Lgo+ID4gVGhvdWdoIFBTUjIgZGVlcCBzbGVlcCBpcyBQU1IgaW50ZXJuYWwgc3R1ZmYgYnV0 IGl0IGlzIEgvVyBoYXMgdGllZCB3aXRoIERDM0NPLgo+ID4gVGhhdCB3YXMgaW50ZW50aW9uIHRv IGtlZXAgcHNyMl9kZWVwIHNsZWVwIGVuYWJsZS9kaWFibGUgaGVyZSAoRG9pbmcgaW4gUGF0Y2gg NikuCj4gPiBJbiBvcmRlciB0byBzd2l0Y2ggYmV0d2VlbiBEQzNDTyBhbmQgREM1IHdlIG5lZWQg dG8gY2FsbCAKPiA+IHRnbF9wc3IyX2RlZXBfc2xlZXBfZGlzYWJsZS9lbmFibGUoKSBmcm9tIG91 dHNpZGUgb2YgUFNSIGNvZGUuCj4gPiBwbGVhc2UgY29ycmVjdCBtZSBpZiBpIGFtIHdyb25nIGhl cmUuCj4gCj4gSSB0aGluayBpdCBzdGlsbCBiZWxvbmdzIHRvIHRoZSBQU1IgY29kZSB3aXRoIG90 aGVyIHN0ZXBzIG5lZWRlZCBmb3IKPiBEQzNjbyBzZXR1cCwgbGlrZSB0aGUgaWRsZSBmcmFtZSBw cm9ncmFtbWluZy4gUFNSIGRlZXAgc2xlZXAgY291bGQgYWxzbwo+IGJlIGVuYWJsZWQvZGlzYWJs ZWQgaW5kZXBlbmRlbnRseSBvZiB0aGUgREMgc3RhdGUgd2UgZW5hYmxlIChmb3IKPiBpbnN0YW5j ZSBlbmFibGUvZGlzYWJsZSBkZWVwIHNsZWVwIHdoZW4gYm90aCBEQzNjbyBhbmQgREM1IGlzCj4g ZGlzYWJsZWQpLiBJdCBhbHNvIG5lZWRzIHRoZSBQU1IgbG9jaywgd2hpY2ggYWdhaW4gaXMgaW50 ZXJuYWwgdG8gdGhlCj4gUFNSIGNvZGUuCj4gCj4gPiBUaGFua3MgLAo+ID4gQW5zaHVtYW4gR3Vw dGEuICAKPiA+ID4gCj4gPiA+ID4gK3sKPiA+ID4gPiArCXN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwg KnBvd2VyX3dlbGw7Cj4gPiA+ID4gKwlib29sIGRjX29mZl9lbmFibGVkOwo+ID4gPiA+ICsJc3Ry dWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJpdi0+cG93ZXJf ZG9tYWluczsKPiA+ID4gPiArCj4gPiA+ID4gKwltdXRleF9sb2NrKCZwb3dlcl9kb21haW5zLT5s b2NrKTsKPiA+ID4gPiArCXBvd2VyX3dlbGwgPSBsb29rdXBfcG93ZXJfd2VsbChkZXZfcHJpdiwg VEdMX0RJU1BfRENfT0ZGKTsKPiA+ID4gPiArCj4gPiA+ID4gKwlpZiAoIXBvd2VyX3dlbGwpCj4g PiA+ID4gKwkJZ290byB1bmxvY2s7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJZGNfb2ZmX2VuYWJsZWQg PSBwb3dlcl93ZWxsLT5kZXNjLT5vcHMtPmlzX2VuYWJsZWQoZGV2X3ByaXYsCj4gPiA+ID4gKwkJ CQkJCQkgICBwb3dlcl93ZWxsKTsKPiA+ID4gPiArCWlmIChzdGF0ZSA9PSBkZXZfcHJpdi0+Y3Ny Lm1heF9kY19zdGF0ZSkKPiA+ID4gPiArCQlnb3RvIHVubG9jazsKPiA+ID4gPiArCj4gPiA+ID4g KwlpZiAoIWRjX29mZl9lbmFibGVkKSB7Cj4gPiA+ID4gKwkJLyoKPiA+ID4gPiArCQkgKiBOZWVk IHRvIGRpc2FibGUgdGhlIERDIG9mZiBwb3dlciB3ZWxsIHRvCj4gPiA+ID4gKwkJICogZWZmZWN0 IHRhcmdldCBEQyBzdGF0ZS4KPiA+ID4gPiArCQkgKi8KPiA+ID4gPiArCQlwb3dlcl93ZWxsLT5k ZXNjLT5vcHMtPmVuYWJsZShkZXZfcHJpdiwgcG93ZXJfd2VsbCk7Cj4gPiA+ID4gKwkJZGV2X3By aXYtPmNzci5tYXhfZGNfc3RhdGUgPSBzdGF0ZTsKPiA+ID4gPiArCQlwb3dlcl93ZWxsLT5kZXNj LT5vcHMtPmRpc2FibGUoZGV2X3ByaXYsIHBvd2VyX3dlbGwpOwo+ID4gPiA+ICsJCWdvdG8gdW5s b2NrOwo+ID4gPiA+ICsJfQo+ID4gPiA+ICsJCWRldl9wcml2LT5jc3IubWF4X2RjX3N0YXRlID0g c3RhdGU7Cj4gPiA+ID4gKwo+ID4gPiA+ICt1bmxvY2s6Cj4gPiA+ID4gKwltdXRleF91bmxvY2so JnBvd2VyX2RvbWFpbnMtPmxvY2spOwo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+ICBzdGF0 aWMgdm9pZCBpOXh4X3Bvd2VyX3dlbGxfc3luY19od19ub29wKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiA+ID4gPiBAQCAtMzYxMCw3ICszNjgwLDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfZGVzYyB0Z2xfcG93ZXJfd2VsbHNbXSA9IHsKPiA+ID4g PiAgCQkubmFtZSA9ICJEQyBvZmYiLAo+ID4gPiA+ICAJCS5kb21haW5zID0gVEdMX0RJU1BMQVlf RENfT0ZGX1BPV0VSX0RPTUFJTlMsCj4gPiA+ID4gIAkJLm9wcyA9ICZnZW45X2RjX29mZl9wb3dl cl93ZWxsX29wcywKPiA+ID4gPiAtCQkuaWQgPSBESVNQX1BXX0lEX05PTkUsCj4gPiA+ID4gKwkJ LmlkID0gVEdMX0RJU1BfRENfT0ZGLAo+ID4gPiAKPiA+ID4gTGV0J3MgYXNzaWduIHRoaXMgSUQg b24gYWxsIHBsYXRmb3JtcyBmb3IgY29uc2lzdGVuY3kuCj4gPiBJTU8gdGhhdCBzaG91bGQgYmUg ZG9uZSBpbiBkaWZmZXJlbnQgcGF0Y2gsIGFzIHRnbF9zZXRfdGFyZ2V0X2RjX3N0YXRlKCkgaXMg Cj4gPiBvbmx5IGNvbnN1bWVyIG9mIHRoaXMgaWQgPwo+ID4gV2hhdCBpcyB5b3VyIG9waW5pb24g b24gdGhpcyA/Cj4gPiA+IAo+ID4gPiA+ICAJfSwKPiA+ID4gPiAgCXsKPiA+ID4gPiAgCQkubmFt ZSA9ICJwb3dlciB3ZWxsIDIiLAo+ID4gPiA+IEBAIC00MDM5LDYgKzQxMDksNyBAQCBpbnQgaW50 ZWxfcG93ZXJfZG9tYWluc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiA+ID4gPiAgCWRldl9wcml2LT5jc3IuYWxsb3dlZF9kY19tYXNrID0KPiA+ID4gPiAgCQlnZXRf YWxsb3dlZF9kY19tYXNrKGRldl9wcml2LCBpOTE1X21vZHBhcmFtcy5lbmFibGVfZGMpOwo+ID4g PiA+ICAKPiA+ID4gPiArCWRldl9wcml2LT5jc3IubWF4X2RjX3N0YXRlID0gRENfU1RBVEVfRU5f VVBUT19EQzVfREM2X01BU0s7Cj4gPiA+ID4gIAlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX05V TSA+IDY0KTsKPiA+ID4gPiAgCj4gPiA+ID4gIAltdXRleF9pbml0KCZwb3dlcl9kb21haW5zLT5s b2NrKTsKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5X3Bvd2VyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfcG93ZXIuaAo+ID4gPiA+IGluZGV4IDczN2I1ZGVmN2ZjNi4uNjllYmRlOTkyMzQy IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV9wb3dlci5oCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmgKPiA+ID4gPiBAQCAtMTAwLDYgKzEwMCw3IEBAIGVudW0g aTkxNV9wb3dlcl93ZWxsX2lkIHsKPiA+ID4gPiAgCVNLTF9ESVNQX1BXX01JU0NfSU8sCj4gPiA+ ID4gIAlTS0xfRElTUF9QV18xLAo+ID4gPiA+ICAJU0tMX0RJU1BfUFdfMiwKPiA+ID4gPiArCVRH TF9ESVNQX0RDX09GRiwKPiA+ID4gPiAgfTsKPiA+ID4gPiAgCj4gPiA+ID4gICNkZWZpbmUgUE9X RVJfRE9NQUlOX1BJUEUocGlwZSkgKChwaXBlKSArIFBPV0VSX0RPTUFJTl9QSVBFX0EpCj4gPiA+ ID4gQEAgLTI1Niw2ICsyNTcsOCBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfc3VzcGVuZF9s YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKPiA+ID4gPiAgdm9pZCBpbnRlbF9k aXNwbGF5X3Bvd2VyX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7 Cj4gPiA+ID4gIHZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9zdXNwZW5kKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KTsKPiA+ID4gPiAgdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3Jlc3Vt ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gPiA+ID4gK3ZvaWQgdGdsX3NldF90 YXJnZXRfZGNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgc3Rh dGUsCj4gPiA+ID4gKwkJCSAgICAgYm9vbCBwc3IyX2RlZXBfc2xlZXApOwo+ID4gPiA+ICAKPiA+ ID4gPiAgY29uc3QgY2hhciAqCj4gPiA+ID4gIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0 cihlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbik7Cj4gPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gPiA+ID4gaW5kZXggZGI3NDgwODMxZTUyLi45OTlkYTVkMmRhMGIg MTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiBAQCAtMzM2 LDYgKzMzNiw3IEBAIHN0cnVjdCBpbnRlbF9jc3Igewo+ID4gPiA+ICAJaTkxNV9yZWdfdCBtbWlv YWRkclsyMF07Cj4gPiA+ID4gIAl1MzIgbW1pb2RhdGFbMjBdOwo+ID4gPiA+ICAJdTMyIGRjX3N0 YXRlOwo+ID4gPiA+ICsJdTMyIG1heF9kY19zdGF0ZTsKPiA+ID4gPiAgCXUzMiBhbGxvd2VkX2Rj X21hc2s7Cj4gPiA+ID4gIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKPiA+ID4gPiAgfTsKPiA+ ID4gPiAtLSAKPiA+ID4gPiAyLjIxLjAKPiA+ID4gPiAKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4