From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 817B6C4363D for ; Thu, 24 Sep 2020 13:27:34 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 32D492076D for ; Thu, 24 Sep 2020 13:27:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 32D492076D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 892026E415; Thu, 24 Sep 2020 13:27:33 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id E574A6E415 for ; Thu, 24 Sep 2020 13:27:31 +0000 (UTC) IronPort-SDR: B5I3iKP7OgjEsU8iaZwac5v3o+vETQGfBkihtEvddHKPO9EVe+TFrgejTOD95/UA8xtZLuThYh d1bTB+5xjYeg== X-IronPort-AV: E=McAfee;i="6000,8403,9753"; a="140650060" X-IronPort-AV: E=Sophos;i="5.77,297,1596524400"; d="scan'208";a="140650060" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Sep 2020 06:27:31 -0700 IronPort-SDR: G8VMp9z6aGHLbHdwnbXwL7B/M17UPro4RVI9Uk4UGXwMP7AHxxLOLG/Lkz1F9D0F8yT8+rhnRJ 8vXjqWP4Ycng== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,297,1596524400"; d="scan'208";a="305816472" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga003.jf.intel.com with ESMTP; 24 Sep 2020 06:27:20 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 24 Sep 2020 06:27:20 -0700 Received: from irsmsx605.ger.corp.intel.com (163.33.146.138) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 24 Sep 2020 06:27:18 -0700 Received: from irsmsx605.ger.corp.intel.com ([163.33.146.138]) by IRSMSX605.ger.corp.intel.com ([163.33.146.138]) with mapi id 15.01.1713.004; Thu, 24 Sep 2020 14:27:17 +0100 From: "Mun, Gwan-gyeong" To: "intel-gfx@lists.freedesktop.org" , "Souza, Jose" Thread-Topic: [PATCH v3 3/3] drm/i915/display: Program PSR2 selective fetch registers Thread-Index: AQHWjVcCcdSp48vA2UmfREQHqN2TQal2KFGAgABEJACAAACvgIABVE6A Date: Thu, 24 Sep 2020 13:27:17 +0000 Message-ID: References: <20200918010245.772724-1-jose.souza@intel.com> <20200918010245.772724-3-jose.souza@intel.com> <3d5c287e563a17b04e27b338532952621e26bef4.camel@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.253.164] Content-ID: MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v3 3/3] drm/i915/display: Program PSR2 selective fetch registers X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCAyMDIwLTA5LTIzIGF0IDEwOjA5IC0wNzAwLCBTb3V6YSwgSm9zZSB3cm90ZToNCj4g T24gV2VkLCAyMDIwLTA5LTIzIGF0IDEwOjEwIC0wNzAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IHdyb3RlOg0KPiA+IE9uIFdlZCwgMjAyMC0wOS0yMyBhdCAxNDowMiArMDEwMCwgTXVuLCBHd2Fu LWd5ZW9uZyB3cm90ZToNCj4gPiA+IE9uIFRodSwgMjAyMC0wOS0xNyBhdCAxODowMiAtMDcwMCwg Sm9zw6kgUm9iZXJ0byBkZSBTb3V6YSB3cm90ZToNCj4gPiA+ID4gQW5vdGhlciBzdGVwIHRvd2Fy ZHMgUFNSMiBzZWxlY3RpdmUgZmV0Y2gsIGhlcmUgcHJvZ3JhbW1pbmcNCj4gPiA+ID4gcGxhbmUN Cj4gPiA+ID4gc2VsZWN0aXZlIGZldGNoIHJlZ2lzdGVycyBhbmQgTUFOX1RSS19DVEwgZW5hYmxp bmcgc2VsZWN0aXZlDQo+ID4gPiA+IGZldGNoDQo+ID4gPiA+IGJ1dA0KPiA+ID4gPiBmb3Igbm93 IGl0IGlzIGZldGNoaW5nIHRoZSB3aG9sZSBhcmVhIG9mIHRoZSBwbGFuZXMuDQo+ID4gPiA+IFRo ZSBkYW1hZ2VkIGFyZWEgY2FsY3VsYXRpb24gd2lsbCBjb21lIGFzIG5leHQgYW5kIGZpbmFsIHN0 ZXAuDQo+ID4gPiA+IA0KPiA+ID4gPiB2MjoNCj4gPiA+ID4gLSByZW1vdmVkIHdhcm4gb24gd2hl biBubyBwbGFuZSBpcyB2aXNpYmxlIGluIHN0YXRlDQo+ID4gPiA+IC0gcmVtb3ZlZCBjYWxjdWxh dGlvbnMgdXNpbmcgcGxhbmUgZGFtYWdlZCBhcmVhIGluDQo+ID4gPiA+IGludGVsX3BzcjJfcHJv Z3JhbV9wbGFuZV9zZWxfZmV0Y2goKQ0KPiA+ID4gPiANCj4gPiA+ID4gdjM6DQo+ID4gPiA+IC0g ZG8gbm90IHNoaWZ0IDE2IHBvc2l0aW9ucyB0aGUgcGxhbmUgZHN0IGNvb3JkaW5hdGVzLCBvbmx5 IHNyYw0KPiA+ID4gPiBpcw0KPiA+ID4gPiBzaGlmdGVkDQo+ID4gPiA+IA0KPiA+ID4gPiBCU3Bl YzogNTUyMjkNCj4gPiA+ID4gQ2M6IEd3YW4tZ3llb25nIE11biA8DQo+ID4gPiA+IGd3YW4tZ3ll b25nLm11bkBpbnRlbC5jb20NCj4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiBDYzogVmlsbGUg U3lyasOkbMOkIDwNCj4gPiA+ID4gdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20NCj4gPiA+ ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNv dXphIDwNCj4gPiA+ID4gam9zZS5zb3V6YUBpbnRlbC5jb20NCj4gPiA+ID4gDQo+ID4gPiA+IA0K PiA+ID4gPiAtLS0NCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheS5jIHwgIDEwICstDQo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3Bzci5jICAgICB8IDEyMA0KPiA+ID4gPiArKysrKysrKysrKysrKysrKystDQo+ID4g PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5oICAgICB8ICAxMCAr LQ0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYyAg fCAgIDMgKw0KPiA+ID4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMzQgaW5zZXJ0aW9ucygrKSwgOSBk ZWxldGlvbnMoLSkNCj4gPiA+ID4gDQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYw0KPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jDQo+ID4gPiA+IGluZGV4IDVhOWQ5MzNlNDI1 YS4uOTZiYzUxNTQ5N2MxIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYw0KPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYw0KPiA+ID4gPiBAQCAtMTE4MTIsNiArMTE4MTIs OSBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9jdXJzb3Ioc3RydWN0DQo+ID4gPiA+IGludGVs X3BsYW5lICpwbGFuZSwNCj4gPiA+ID4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQ0K PiA+ID4gPiAgCQlza2xfd3JpdGVfY3Vyc29yX3dtKHBsYW5lLCBjcnRjX3N0YXRlKTsNCj4gPiA+ ID4gIA0KPiA+ID4gPiArCWlmICghbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSkNCj4gPiA+ID4g KwkJaW50ZWxfcHNyMl9wcm9ncmFtX3BsYW5lX3NlbF9mZXRjaChwbGFuZSwNCj4gPiA+ID4gY3J0 Y19zdGF0ZSwNCj4gPiA+ID4gcGxhbmVfc3RhdGUsIDApOw0KPiA+ID4gPiArDQo+ID4gPiA+ICAJ aWYgKHBsYW5lLT5jdXJzb3IuYmFzZSAhPSBiYXNlIHx8DQo+ID4gPiA+ICAJICAgIHBsYW5lLT5j dXJzb3Iuc2l6ZSAhPSBmYmNfY3RsIHx8DQo+ID4gPiA+ICAJICAgIHBsYW5lLT5jdXJzb3IuY250 bCAhPSBjbnRsKSB7DQo+ID4gPiA+IEBAIC0xMjgyMyw4ICsxMjgyNiwxMSBAQCBzdGF0aWMgaW50 DQo+ID4gPiA+IGludGVsX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdA0KPiA+ID4gPiBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLA0KPiA+ID4gPiAgDQo+ID4gPiA+ICAJfQ0KPiA+ID4gPiAgDQo+ ID4gPiA+IC0JaWYgKCFtb2RlX2NoYW5nZWQpDQo+ID4gPiA+IC0JCWludGVsX3BzcjJfc2VsX2Zl dGNoX3VwZGF0ZShzdGF0ZSwgY3J0Yyk7DQo+ID4gPiA+ICsJaWYgKCFtb2RlX2NoYW5nZWQpIHsN Cj4gPiA+ID4gKwkJcmV0ID0gaW50ZWxfcHNyMl9zZWxfZmV0Y2hfdXBkYXRlKHN0YXRlLCBjcnRj KTsNCj4gPiA+ID4gKwkJaWYgKHJldCkNCj4gPiA+ID4gKwkJCXJldHVybiByZXQ7DQo+ID4gPiA+ ICsJfQ0KPiA+ID4gPiAgDQo+ID4gPiA+ICAJcmV0dXJuIDA7DQo+ID4gPiA+ICB9DQo+ID4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jDQo+ ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYw0KPiA+ID4g PiBpbmRleCAwMmY3NGIwZGRlYzEuLmRlYjA1MjNmOWYyOSAxMDA2NDQNCj4gPiA+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYw0KPiA+ID4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jDQo+ID4gPiA+IEBAIC0xMTY2 LDYgKzExNjYsNDEgQEAgc3RhdGljIHZvaWQNCj4gPiA+ID4gcHNyX2ZvcmNlX2h3X3RyYWNraW5n X2V4aXQoc3RydWN0DQo+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+ID4g PiAgCQlpbnRlbF9wc3JfZXhpdChkZXZfcHJpdik7DQo+ID4gPiA+ICB9DQo+ID4gPiA+ICANCj4g PiA+ID4gK3ZvaWQgaW50ZWxfcHNyMl9wcm9ncmFtX3BsYW5lX3NlbF9mZXRjaChzdHJ1Y3QgaW50 ZWxfcGxhbmUNCj4gPiA+ID4gKnBsYW5lLA0KPiA+ID4gPiArCQkJCQljb25zdCBzdHJ1Y3QNCj4g PiA+ID4gaW50ZWxfY3J0Y19zdGF0ZQ0KPiA+ID4gPiAqY3J0Y19zdGF0ZSwNCj4gPiA+ID4gKwkJ CQkJY29uc3Qgc3RydWN0DQo+ID4gPiA+IGludGVsX3BsYW5lX3N0YXRlDQo+ID4gPiA+ICpwbGFu ZV9zdGF0ZSwNCj4gPiA+ID4gKwkJCQkJaW50IGNvbG9yX3BsYW5lKQ0KPiA+ID4gPiArew0KPiA+ ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUt DQo+ID4gPiA+ID5iYXNlLmRldik7DQo+ID4gPiA+ICsJZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+ cGlwZTsNCj4gPiA+ID4gKwl1MzIgdmFsOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsJaWYgKCFjcnRj X3N0YXRlLT5lbmFibGVfcHNyMl9zZWxfZmV0Y2gpDQo+ID4gPiA+ICsJCXJldHVybjsNCj4gPiA+ ID4gKw0KPiA+ID4gPiArCS8qDQo+ID4gPiA+ICsJICogc2tsX3BsYW5lX2N0bF9jcnRjKCkvaTl4 eF9jdXJzb3JfY3RsX2NydGMoKSByZXR1cm4gMA0KPiA+ID4gPiBmb3INCj4gPiA+ID4gZ2VuMTEr LCBzbw0KPiA+ID4gPiArCSAqIHBsYW5lX3N0YXRlLT5jdGwgaXMgdGhlIHJpZ2h0IHZhbHVlDQo+ ID4gPiA+ICsJICovDQo+ID4gPiA+ICsJdmFsID0gcGxhbmVfc3RhdGUgPyBwbGFuZV9zdGF0ZS0+ Y3RsIDogMDsNCj4gPiA+IA0KPiA+ID4gSU1ITywgc2tsX3BsYW5lX2N0bCgpIG1pZ2h0IHNldCBv dGhlciBjdGwgYml0cywgaXQgd291bGQgYmUNCj4gPiA+IGJldHRlciB0bw0KPiA+ID4gaGF2ZSBz ZXBhcmF0ZWQgY3RsIGJpdCB2YWx1ZSBmb3IgInNlbGVjdGl2ZSBmZXRjaCBjdGwiLg0KPiA+IA0K PiA+IExpa2Ugc2FpZCBhbGwgb3RoZXIgYml0cyBhcmUgc3BhcmVzIHNvIGNhbiBiZSBzZXQgd2l0 aG91dCBpc3N1ZXMNCj4gPiBidXQgb2theSB3aWxsIGEgInBsYW5lX3N0YXRlLT5jdGwgJiBQTEFO RV9TRUxfRkVUQ0hfQ1RMX0VOQUJMRSIuDQo+IA0KPiBQbGVhc2UgdGFrZSBhIGxvb2sgdG8gdGhl IGFuc3dlciBvZiB5b3VyIG90aGVyIGNvbW1lbnQgYmVsbG93LCB3aXRoDQo+IHRoZSBjaGFuZ2Ug YWJvdmUgY2FuIEkgaGF2ZSB5b3VyIHJ2LWI/DQoNClRoZSBwdXJwb3NlIGFuZCBjb21wb3NpdGlv biBvZiBiaXRzIG9mIFJlZ2lzdGVyX1NFTF9GRVRDSF9QTEFORV9DVEwgaXMNCmRpZmZlcmVudCBm cm9tIFJlZ2lzdGVyX1BMQU5FX0NUTC4NCkFuZCB0aGUgU3BhcmVzIGJpdHMgb2YgUmVnaXN0ZXJf U0VMX0ZFVENIX1BMQU5FX0NUTCBtaWdodCBiZSB1c2VkIGZvcg0Kb3RoZXIgcHVycG9zZS4NCihB bmQgd2UgY3VycmVudCBkb24ndCBrbm93IHRoZSBzaWRlIGVmZmVjdCBvZiBzZXR0aW5nIG9mIFNw YXJlcyBiaXQgb2YNClJlZ2lzdGVyX1NFTF9GRVRDSF9QTEFORV9DVEwgKQ0KdGhlcmVmb3IgSSBy ZWNvbW1lbmQgIlJlYWQgYW5kIE1vZGlmeSIgdG8gU0VMX0ZFVENIX1BMQU5FX0NUTC4NCj4gDQo+ ID4gPiA+ICsJaW50ZWxfZGVfd3JpdGVfZncoZGV2X3ByaXYsIFBMQU5FX1NFTF9GRVRDSF9DVEwo cGlwZSwNCj4gPiA+ID4gcGxhbmUtDQo+ID4gPiA+ID4gaWQpLCB2YWwpOw0KPiA+ID4gPiANCj4g PiA+ID4gKwlpZiAoIXZhbCB8fCBwbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SKQ0KPiA+ID4gPiAr CQlyZXR1cm47DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwl2YWwgPSBwbGFuZV9zdGF0ZS0+dWFwaS5k c3QueTEgPDwgMTYgfCBwbGFuZV9zdGF0ZS0NCj4gPiA+ID4gPiB1YXBpLmRzdC54MTsNCj4gPiA+ ID4gDQo+ID4gPiA+ICsJaW50ZWxfZGVfd3JpdGVfZncoZGV2X3ByaXYsIFBMQU5FX1NFTF9GRVRD SF9QT1MocGlwZSwNCj4gPiA+ID4gcGxhbmUtDQo+ID4gPiA+ID4gaWQpLCB2YWwpOw0KPiA+ID4g PiANCj4gPiA+ID4gKw0KPiA+ID4gPiArCXZhbCA9IHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVtj b2xvcl9wbGFuZV0ueSA8PCAxNjsNCj4gPiA+ID4gKwl2YWwgfD0gcGxhbmVfc3RhdGUtPmNvbG9y X3BsYW5lW2NvbG9yX3BsYW5lXS54Ow0KPiA+ID4gPiArCWludGVsX2RlX3dyaXRlX2Z3KGRldl9w cml2LA0KPiA+ID4gPiBQTEFORV9TRUxfRkVUQ0hfT0ZGU0VUKHBpcGUsIHBsYW5lLQ0KPiA+ID4g PiA+IGlkKSwNCj4gPiA+ID4gDQo+ID4gPiA+ICsJCQkgIHZhbCk7DQo+ID4gPiA+ICsNCj4gPiA+ ID4gKwkvKiBTaXplcyBhcmUgMCBiYXNlZCAqLw0KPiA+ID4gPiArCXZhbCA9ICgoZHJtX3JlY3Rf aGVpZ2h0KCZwbGFuZV9zdGF0ZS0+dWFwaS5zcmMpID4+IDE2KQ0KPiA+ID4gPiAtIDEpIDw8DQo+ ID4gPiA+IDE2Ow0KPiA+ID4gPiArCXZhbCB8PSAoZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRl LT51YXBpLnNyYykgPj4gMTYpIC0NCj4gPiA+ID4gMTsNCj4gPiA+ID4gKwlpbnRlbF9kZV93cml0 ZV9mdyhkZXZfcHJpdiwgUExBTkVfU0VMX0ZFVENIX1NJWkUocGlwZSwNCj4gPiA+ID4gcGxhbmUt DQo+ID4gPiA+ID4gaWQpLCB2YWwpOw0KPiA+ID4gPiANCj4gPiA+ID4gK30NCj4gPiA+ID4gKw0K PiA+ID4gPiAgdm9pZCBpbnRlbF9wc3IyX3Byb2dyYW1fdHJhbnNfbWFuX3Rya19jdGwoY29uc3Qg c3RydWN0DQo+ID4gPiA+IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpDQo+ID4gPiA+ICB7 DQo+ID4gPiA+ICAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtDQo+ID4gPiA+ID51YXBpLmNydGMpOw0KPiA+ID4gPiBAQCAtMTE4MCwxNiArMTIxNSw5 MSBAQCB2b2lkDQo+ID4gPiA+IGludGVsX3BzcjJfcHJvZ3JhbV90cmFuc19tYW5fdHJrX2N0bChj b25zdCBzdHJ1Y3QNCj4gPiA+ID4gaW50ZWxfY3J0Y19zdGF0ZQ0KPiA+ID4gPiAqY3J0Y19zdA0K PiA+ID4gPiAgCQkgICAgICAgY3J0Y19zdGF0ZS0+cHNyMl9tYW5fdHJhY2tfY3RsKTsNCj4gPiA+ ID4gIH0NCj4gPiA+ID4gIA0KPiA+ID4gPiAtdm9pZCBpbnRlbF9wc3IyX3NlbF9mZXRjaF91cGRh dGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZQ0KPiA+ID4gPiAqc3RhdGUsDQo+ID4gPiA+IC0J CQkJIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQ0KPiA+ID4gPiArc3RhdGljIHZvaWQgcHNyMl9t YW5fdHJrX2N0bF9jYWxjKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlDQo+ID4gPiA+ICpjcnRjX3N0 YXRlLA0KPiA+ID4gPiArCQkJCSAgc3RydWN0IGRybV9yZWN0ICpjbGlwLCBib29sDQo+ID4gPiA+ IGZ1bGxfdXBkYXRlKQ0KPiA+ID4gPiArew0KPiA+ID4gPiArCXUzMiB2YWwgPSBQU1IyX01BTl9U UktfQ1RMX0VOQUJMRTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCWlmIChmdWxsX3VwZGF0ZSkgew0K PiA+ID4gPiArCQl2YWwgfD0gUFNSMl9NQU5fVFJLX0NUTF9TRl9TSU5HTEVfRlVMTF9GUkFNRTsN Cj4gPiA+ID4gKwkJZ290byBleGl0Ow0KPiA+ID4gPiArCX0NCj4gPiA+ID4gKw0KPiA+ID4gPiAr CWlmIChjbGlwLT55MSA9PSAtMSkNCj4gPiA+ID4gKwkJZ290byBleGl0Ow0KPiA+ID4gPiArDQo+ ID4gPiA+ICsJdmFsIHw9IFBTUjJfTUFOX1RSS19DVExfU0ZfUEFSVElBTF9GUkFNRV9VUERBVEU7 DQo+ID4gPiA+ICsJdmFsIHw9IFBTUjJfTUFOX1RSS19DVExfU1VfUkVHSU9OX1NUQVJUX0FERFIo Y2xpcC0+eTEgLw0KPiA+ID4gPiA0ICsgMSk7DQo+ID4gPiANCj4gPiA+IEkgdGhpbmsgdGhlIHN0 YXJ0IGFkZHJlc3MgYmxvY2sgd291bGQgYmUgbGlrZSB0aGlzIHRvby4NCj4gPiA+IFBTUjJfTUFO X1RSS19DVExfU1VfUkVHSU9OX1NUQVJUX0FERFIoRElWX1JPVU5EX1VQKGNsaXAtPnkxICwNCj4g PiA+IDQpKTsNCj4gPiANCj4gPiBUaGlzIHdvdWxkIG5vdCBtYXRjaCBmb3IgbnVtYmVycyB0aGF0 IGRpdmlkZSBieSA0Lg0KPiA+IHkgcG9zIDAgPSByZWdpb24gMXkgcG9zIDEgPSByZWdpb24gMQ0K PiA+IHkgcG9zIDQgPSByZWdpb24gMg0KPiA+IA0KeWVzLiB5b3UgYXJlIHJpZ2h0Lg0KPiA+IA0K PiA+ID4gPiArCXZhbCB8PQ0KPiA+ID4gPiBQU1IyX01BTl9UUktfQ1RMX1NVX1JFR0lPTl9FTkRf QUREUihESVZfUk9VTkRfVVAoY2xpcC0NCj4gPiA+ID4gPiB5MiwgNCkgKyAxKTsNCj4gPiA+ID4g DQo+ID4gPiA+ICtleGl0Og0KPiA+ID4gPiArCWNydGNfc3RhdGUtPnBzcjJfbWFuX3RyYWNrX2N0 bCA9IHZhbDsNCj4gPiA+ID4gK30NCj4gPiA+ID4gKw0KPiA+ID4gPiArc3RhdGljIHZvaWQgY2xp cF9hcmVhX3VwZGF0ZShzdHJ1Y3QgZHJtX3JlY3QNCj4gPiA+ID4gKm92ZXJsYXBfZGFtYWdlX2Fy ZWEsDQo+ID4gPiA+ICsJCQkgICAgIHN0cnVjdCBkcm1fcmVjdCAqZGFtYWdlX2FyZWEpDQo+ID4g PiA+ICt7DQo+ID4gPiA+ICsJaWYgKG92ZXJsYXBfZGFtYWdlX2FyZWEtPnkxID09IC0xKSB7DQo+ ID4gPiA+ICsJCW92ZXJsYXBfZGFtYWdlX2FyZWEtPnkxID0gZGFtYWdlX2FyZWEtPnkxOw0KPiA+ ID4gPiArCQlvdmVybGFwX2RhbWFnZV9hcmVhLT55MiA9IGRhbWFnZV9hcmVhLT55MjsNCj4gPiA+ ID4gKwkJcmV0dXJuOw0KPiA+ID4gPiArCX0NCj4gPiA+ID4gKw0KPiA+ID4gPiArCWlmIChkYW1h Z2VfYXJlYS0+eTEgPCBvdmVybGFwX2RhbWFnZV9hcmVhLT55MSkNCj4gPiA+ID4gKwkJb3Zlcmxh cF9kYW1hZ2VfYXJlYS0+eTEgPSBkYW1hZ2VfYXJlYS0+eTE7DQo+ID4gPiA+ICsNCj4gPiA+ID4g KwlpZiAoZGFtYWdlX2FyZWEtPnkyID4gb3ZlcmxhcF9kYW1hZ2VfYXJlYS0+eTIpDQo+ID4gPiA+ ICsJCW92ZXJsYXBfZGFtYWdlX2FyZWEtPnkyID0gZGFtYWdlX2FyZWEtPnkyOw0KPiA+ID4gPiAr fQ0KPiA+ID4gPiArDQo+ID4gPiA+ICtpbnQgaW50ZWxfcHNyMl9zZWxfZmV0Y2hfdXBkYXRlKHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUNCj4gPiA+ID4gKnN0YXRlLA0KPiA+ID4gPiArCQkJCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKQ0KPiA+ID4gPiAgew0KPiA+ID4gPiAgCXN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0NCj4gPiA+ID4gaW50ZWxfYXRvbWljX2dldF9uZXdf Y3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7DQo+ID4gPiA+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpuZXdfcGxhbmVfc3RhdGUsDQo+ID4gPiA+ICpvbGRfcGxhbmVfc3RhdGU7DQo+ID4gPiA+ ICsJc3RydWN0IGRybV9yZWN0IHBpcGVfY2xpcCA9IHsgLnkxID0gLTEgfTsNCj4gPiA+ID4gKwlz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOw0KPiA+ID4gPiArCWJvb2wgZnVsbF91cGRhdGUgPSBm YWxzZTsNCj4gPiA+ID4gKwlpbnQgaSwgcmV0Ow0KPiA+ID4gPiAgDQo+ID4gPiA+ICAJaWYgKCFj cnRjX3N0YXRlLT5lbmFibGVfcHNyMl9zZWxfZmV0Y2gpDQo+ID4gPiA+IC0JCXJldHVybjsNCj4g PiA+ID4gKwkJcmV0dXJuIDA7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlyZXQgPSBkcm1fYXRvbWlj X2FkZF9hZmZlY3RlZF9wbGFuZXMoJnN0YXRlLT5iYXNlLA0KPiA+ID4gPiAmY3J0Yy0NCj4gPiA+ ID4gPiBiYXNlKTsNCj4gPiA+ID4gDQo+ID4gPiA+ICsJaWYgKHJldCkNCj4gPiA+ID4gKwkJcmV0 dXJuIHJldDsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCWZvcl9lYWNoX29sZG5ld19pbnRlbF9wbGFu ZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsDQo+ID4gPiA+IG9sZF9wbGFuZV9zdGF0ZSwNCj4gPiA+ ID4gKwkJCQkJICAgICBuZXdfcGxhbmVfc3RhdGUsDQo+ID4gPiA+IGkpIHsNCj4gPiA+ID4gKwkJ c3RydWN0IGRybV9yZWN0IHRlbXA7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwkJaWYgKG5ld19wbGFu ZV9zdGF0ZS0+dWFwaS5jcnRjICE9IGNydGNfc3RhdGUtDQo+ID4gPiA+ID4gdWFwaS5jcnRjKQ0K PiA+ID4gPiANCj4gPiA+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ID4gPiAgDQo+ID4gPiA+IC0JY3J0 Y19zdGF0ZS0+cHNyMl9tYW5fdHJhY2tfY3RsID0NCj4gPiA+ID4gUFNSMl9NQU5fVFJLX0NUTF9F TkFCTEUgfA0KPiA+ID4gPiAtCQkJCQkgUFNSMl9NQU5fVFJLX0NUTF9TRl9TSQ0KPiA+ID4gPiBO R0xFX0ZVTA0KPiA+ID4gPiBMX0ZSQU1FOw0KPiA+ID4gPiArCQkvKg0KPiA+ID4gPiArCQkgKiBU T0RPOiBOb3QgY2xlYXIgaG93IHRvIGhhbmRsZSBwbGFuZXMgd2l0aA0KPiA+ID4gPiBuZWdhdGl2 ZQ0KPiA+ID4gPiBwb3NpdGlvbiwNCj4gPiA+ID4gKwkJICogYWxzbyBwbGFuZXMgYXJlIG5vdCB1 cGRhdGVkIGlmIHRoZXkgaGF2ZSBhDQo+ID4gPiA+IG5lZ2F0aXZlDQo+ID4gPiA+IFgNCj4gPiA+ ID4gKwkJICogcG9zaXRpb24gc28gZm9yIG5vdyBkb2luZyBhIGZ1bGwgdXBkYXRlIGluDQo+ID4g PiA+IHRoaXMNCj4gPiA+ID4gY2FzZXMNCj4gPiA+ID4gKwkJICovDQo+ID4gPiA+ICsJCWlmIChu ZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LnkxIDwgMCB8fA0KPiA+ID4gPiArCQkgICAgbmV3X3Bs YW5lX3N0YXRlLT51YXBpLmRzdC54MSA8IDApIHsNCj4gPiA+ID4gKwkJCWZ1bGxfdXBkYXRlID0g dHJ1ZTsNCj4gPiA+ID4gKwkJCWJyZWFrOw0KPiA+ID4gPiArCQl9DQo+ID4gPiA+ICsNCj4gPiA+ ID4gKwkJaWYgKCFuZXdfcGxhbmVfc3RhdGUtPnVhcGkudmlzaWJsZSkNCj4gPiA+ID4gKwkJCWNv bnRpbnVlOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsJCS8qDQo+ID4gPiA+ICsJCSAqIEZvciBub3cg ZG9pbmcgYSBzZWxlY3RpdmUgZmV0Y2ggaW4gdGhlIHdob2xlDQo+ID4gPiA+IHBsYW5lDQo+ID4g PiA+IGFyZWEsDQo+ID4gPiA+ICsJCSAqIG9wdGltaXphdGlvbnMgd2lsbCBjb21lIGluIHRoZSBm dXR1cmUuDQo+ID4gPiA+ICsJCSAqLw0KPiA+ID4gPiArCQl0ZW1wLnkxID0gbmV3X3BsYW5lX3N0 YXRlLT51YXBpLmRzdC55MTsNCj4gPiA+ID4gKwkJdGVtcC55MiA9IG5ld19wbGFuZV9zdGF0ZS0+ dWFwaS5kc3QueTI7DQo+ID4gPiA+ICsJCWNsaXBfYXJlYV91cGRhdGUoJnBpcGVfY2xpcCwgJnRl bXApOw0KPiA+ID4gPiArCX0NCj4gPiA+ID4gKw0KPiA+ID4gPiArCXBzcjJfbWFuX3Rya19jdGxf Y2FsYyhjcnRjX3N0YXRlLCAmcGlwZV9jbGlwLA0KPiA+ID4gPiBmdWxsX3VwZGF0ZSk7DQo+ID4g PiA+ICsJcmV0dXJuIDA7DQo+ID4gPiA+ICB9DQo+ID4gPiA+ICANCj4gPiA+ID4gIC8qKg0KPiA+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3Iu aA0KPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmgNCj4g PiA+ID4gaW5kZXggNmE4M2M4ZTY4MmU2Li4zZWNhOWRjZWMzYzAgMTAwNjQ0DQo+ID4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmgNCj4gPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuaA0KPiA+ID4gPiBAQCAt MTUsNiArMTUsOCBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZTsNCj4gPiA+ID4gIHN0cnVjdCBp bnRlbF9kcDsNCj4gPiA+ID4gIHN0cnVjdCBpbnRlbF9jcnRjOw0KPiA+ID4gPiAgc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZTsNCj4gPiA+ID4gK3N0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZTsNCj4g PiA+ID4gK3N0cnVjdCBpbnRlbF9wbGFuZTsNCj4gPiA+ID4gIA0KPiA+ID4gPiAgI2RlZmluZSBD QU5fUFNSKGRldl9wcml2KSAoSEFTX1BTUihkZXZfcHJpdikgJiYgZGV2X3ByaXYtDQo+ID4gPiA+ ID4gcHNyLnNpbmtfc3VwcG9ydCkNCj4gPiA+ID4gDQo+ID4gPiA+ICB2b2lkIGludGVsX3Bzcl9p bml0X2RwY2Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7DQo+ID4gPiA+IEBAIC00NSw4ICs0 NywxMiBAQCB2b2lkIGludGVsX3Bzcl9hdG9taWNfY2hlY2soc3RydWN0DQo+ID4gPiA+IGRybV9j b25uZWN0b3INCj4gPiA+ID4gKmNvbm5lY3RvciwNCj4gPiA+ID4gIAkJCSAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZQ0KPiA+ID4gPiAqb2xkX3N0YXRlLA0KPiA+ID4gPiAgCQkJICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlDQo+ID4gPiA+ICpuZXdfc3RhdGUpOw0KPiA+ID4gPiAg dm9pZCBpbnRlbF9wc3Jfc2V0X2ZvcmNlX21vZGVfY2hhbmdlZChzdHJ1Y3QgaW50ZWxfZHANCj4g PiA+ID4gKmludGVsX2RwKTsNCj4gPiA+ID4gLXZvaWQgaW50ZWxfcHNyMl9zZWxfZmV0Y2hfdXBk YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUNCj4gPiA+ID4gKnN0YXRlLA0KPiA+ID4gPiAt CQkJCSBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7DQo+ID4gPiA+ICtpbnQgaW50ZWxfcHNyMl9z ZWxfZmV0Y2hfdXBkYXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUNCj4gPiA+ID4gKnN0YXRl LA0KPiA+ID4gPiArCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsNCj4gPiA+ID4gIHZvaWQg aW50ZWxfcHNyMl9wcm9ncmFtX3RyYW5zX21hbl90cmtfY3RsKGNvbnN0IHN0cnVjdA0KPiA+ID4g PiBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsNCj4gPiA+ID4gK3ZvaWQgaW50ZWxfcHNy Ml9wcm9ncmFtX3BsYW5lX3NlbF9mZXRjaChzdHJ1Y3QgaW50ZWxfcGxhbmUNCj4gPiA+ID4gKnBs YW5lLA0KPiA+ID4gPiArCQkJCQljb25zdCBzdHJ1Y3QNCj4gPiA+ID4gaW50ZWxfY3J0Y19zdGF0 ZQ0KPiA+ID4gPiAqY3J0Y19zdGF0ZSwNCj4gPiA+ID4gKwkJCQkJY29uc3Qgc3RydWN0DQo+ID4g PiA+IGludGVsX3BsYW5lX3N0YXRlDQo+ID4gPiA+ICpwbGFuZV9zdGF0ZSwNCj4gPiA+ID4gKwkJ CQkJaW50IGNvbG9yX3BsYW5lKTsNCj4gPiA+ID4gIA0KPiA+ID4gPiAgI2VuZGlmIC8qIF9fSU5U RUxfUFNSX0hfXyAqLw0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9zcHJpdGUuYw0KPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfc3ByaXRlLmMNCj4gPiA+ID4gaW5kZXggNjMwNDBjYjBkNGUxLi5mMTI0MjVi OTA2MDcgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfc3ByaXRlLmMNCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9zcHJpdGUuYw0KPiA+ID4gPiBAQCAtNjkwLDYgKzY5MCw5IEBAIHNrbF9wcm9ncmFt X3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZQ0KPiA+ID4gPiAqcGxhbmUsDQo+ID4gPiA+ICAJCWlu dGVsX2RlX3dyaXRlX2Z3KGRldl9wcml2LA0KPiA+ID4gPiBQTEFORV9BVVhfT0ZGU0VUKHBpcGUs DQo+ID4gPiA+IHBsYW5lX2lkKSwNCj4gPiA+ID4gIAkJCQkgIChwbGFuZV9zdGF0ZS0NCj4gPiA+ ID4gPmNvbG9yX3BsYW5lWzFdLnkgPDwgMTYpDQo+ID4gPiA+ID4gcGxhbmVfc3RhdGUtPmNvbG9y X3BsYW5lWzFdLngpOw0KPiA+ID4gPiANCj4gPiA+ID4gIA0KPiA+ID4gPiArCWlmICghZHJtX2F0 b21pY19jcnRjX25lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUtPnVhcGkpKQ0KPiA+ID4gPiArCQlp bnRlbF9wc3IyX3Byb2dyYW1fcGxhbmVfc2VsX2ZldGNoKHBsYW5lLA0KPiA+ID4gPiBjcnRjX3N0 YXRlLA0KPiA+ID4gPiBwbGFuZV9zdGF0ZSwgY29sb3JfcGxhbmUpOw0KPiA+ID4gPiArDQo+ID4g PiA+ICAJLyoNCj4gPiA+ID4gIAkgKiBUaGUgY29udHJvbCByZWdpc3RlciBzZWxmLWFybXMgaWYg dGhlIHBsYW5lIHdhcw0KPiA+ID4gPiBwcmV2aW91c2x5DQo+ID4gPiA+ICAJICogZGlzYWJsZWQu IFRyeSB0byBtYWtlIHRoZSBwbGFuZSBlbmFibGUgYXRvbWljIGJ5DQo+ID4gPiA+IHdyaXRpbmcN Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=