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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 92776C433F5 for ; Fri, 25 Mar 2022 14:46:32 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3633010E67D; Fri, 25 Mar 2022 14:46:32 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2EAEC10E67D for ; Fri, 25 Mar 2022 14:46:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1648219591; x=1679755591; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=gxhziK8M8QiIMnKPfnRXbXEuTOI8vRtbvrKcHmLsX+w=; b=NPNtd/Hm2GlTDJSs5vlaS7QV+8i6f3XxA6EuoIUrjoGdWqio6hESZr0t qYzprMMK6GtQ08d48Za5kbAwrotpTvEP/S7/nLueA9YQHGm5EbPk/tiwN 6N17LvPeYyv7foBKuy0J9xZW3bglsSqnqd/+l5uRy3UO78Odp629XiKCd dRED3gSUxfIk6iwzqq3L++aP5ZrSndlaJMjAvOLmjzFntIyZjsx4wsXt6 +p4zop2x/krx6+FcFSR39T6h25C5eN9K5Nqy7fAqvqw/6o2sl2dCWz7ge ZHSf4dh1ZGOWTT4EfLvrigzESdfHYd3puH1dWEvB+Ief1E2FyvFsxwLrm Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10296"; a="239247945" X-IronPort-AV: E=Sophos;i="5.90,209,1643702400"; d="scan'208";a="239247945" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2022 07:46:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,209,1643702400"; d="scan'208";a="516562776" Received: from irsmsx604.ger.corp.intel.com ([163.33.146.137]) by orsmga002.jf.intel.com with ESMTP; 25 Mar 2022 07:46:19 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by IRSMSX604.ger.corp.intel.com (163.33.146.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Fri, 25 Mar 2022 14:46:18 +0000 Received: from fmsmsx612.amr.corp.intel.com ([10.18.126.92]) by fmsmsx612.amr.corp.intel.com ([10.18.126.92]) with mapi id 15.01.2308.027; Fri, 25 Mar 2022 07:46:16 -0700 From: "Souza, Jose" To: "intel-gfx@lists.freedesktop.org" , "Hogander, Jouni" Thread-Topic: [PATCH 2/2] drm/i915/display/psr: Use continuos full frame to handle frontbuffer invalidations Thread-Index: AQHYP6rCOFoJvlbFHEyeiqR7IxvEdKzQnTOAgAAHUoA= Date: Fri, 25 Mar 2022 14:46:16 +0000 Message-ID: <5d67a3bbfa7d669361e016cca444364274e19315.camel@intel.com> References: <20220324181347.129378-1-jose.souza@intel.com> <20220324181347.129378-2-jose.souza@intel.com> <05e19d47486bb5356fe50ee48fcc285140bc486a.camel@intel.com> In-Reply-To: <05e19d47486bb5356fe50ee48fcc285140bc486a.camel@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.1.200.100] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 2/2] drm/i915/display/psr: Use continuos full frame to handle frontbuffer invalidations 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: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gRnJpLCAyMDIyLTAzLTI1IGF0IDE0OjIxICswMDAwLCBIb2dhbmRlciwgSm91bmkgd3JvdGU6 DQo+IEhlbGxvIEpvc2UsDQo+IA0KPiBTZWUgbXkgY29tbWVudHMgYmVsb3cuDQo+IA0KPiBPbiBU aHUsIDIwMjItMDMtMjQgYXQgMTE6MTMgLTA3MDAsIEpvc8OpIFJvYmVydG8gZGUgU291emEgd3Jv dGU6DQo+ID4gSW5zdGVhZCBvZiBleGl0IFBTUiB3aGVuIGEgZnJvbnRidWZmZXIgaW52YWxpZGF0 aW9uIGhhcHBlbnMsIHdlIGNhbg0KPiA+IGVuYWJsZSB0aGUgUFNSMiBzZWxlY3RpdmUgZmV0Y2gg Y29udGludW91cyBmdWxsIGZyYW1lLCB0aGF0IHdpbGwga2VlcA0KPiA+IHRoZSBwYW5lbCB1cGRh dGVkIGxpa2UgUFNSIHdhcyBkaXNhYmxlZCBidXQgd2l0aG91dCBrZWVwaW5nIFBTUg0KPiA+IGFj dGl2ZS4NCj4gDQo+IHdpdGgga2VlcGluZyBQU1IgYWN0aXZlPyBJIGRvbid0IHRoaW5rIGl0J3Mg bGlrZSBQU1Igd2FzIGRpc2FibGVkLiBOZXcNCj4gZnVsbCBmcmFtZSBpcyB1cGRhdGVkIG9ubHkg dmlhIGF0b21pYyBjb21taXQuIEhhdmluZyBQU1IgZGlzYWJsZWQgbmV3DQo+IGZ1bGwgZnJhbWUg aXMgdXBkYXRlZCBhbGwgdGhlIHRpbWUgYXMgUFNSIHdhc24ndCBleGlzdGluZyBhdCBhbGwuDQo+ IA0KPiA+IA0KPiA+IFNvIGFzIHNvb24gYXMgdGhlIGZyb250YnVmZmVyIGZsdXNoIGhhcHBlbnMg d2UgY2FuIGRpc2FibGUgdGhlDQo+ID4gY29udGludW91cyBmdWxsIGZyYW1lIGFuZCBzdGFydCB0 byBkbyBzZWxlY3RpdmUgZmV0Y2hlcyBtdWNoIHF1aWNrZXINCj4gPiB0aGFuIHRoZSBwYXRoIHRo YXQgd291bGQgZW5hYmxlIFBTUiwgdGhhdCB3aWxsIHdhaXQgYSBmZXcgZnJhbWVzDQo+ID4gdG8g YWN0dWFsbHkgYWN0aXZhdGUgUFNSLg0KPiA+IA0KPiA+IEFsc28gdGhpcyBhcHByb2FjaCBoYXMg cHJvdmVuIHRvIGZpeCBzb21lIGdsaXRjaGVzIGZvdW5kIGluDQo+ID4gQWxkZXJsYWtlLVANCj4g PiB3aGVuIHRoZXJlIGFyZSBhIGxvdCBvZiBpbnZhbGlkYXRpb25zIGhhcHBlbmluZyB0b2dldGhl ciB3aXRoIHBhZ2UNCj4gPiBmbGlwcy4NCj4gPiANCj4gPiBTb21lIG1heSBhc2sgd2h5IGl0IGlz IHdyaXRpbmcgdG8gQ1VSU1VSRkxJVkUoKSwgaXQgaXMgYmVjYXVzZQ0KPiA+IHRoYXQgaXMgdGhl IHdheSB0aGF0IGhhcmR3YXJlIHRlYW0gcHJvdmlkZWQgdXMgdG8gcG9rZSBkaXNwbGF5IHRvDQo+ ID4gaGFuZGxlIFBTUiB1cGRhdGVzLCBhbmQgaXQgaXMgYmVpbmcgdXNlZCBzaW5jZSBkaXNwbGF5 IDkuDQo+IA0KPiBHZW5lcmljIGNvbW1lbnRzOg0KPiANCj4gQ3VycmVudCBsb2dpYyBpcyB0byBk aXNhYmxlIHBzcjIgaW4gaW52YWxpZGF0ZSBjYWxsYmFjayBhbmQgc3RhcnQNCj4gc2VuZGluZyBm dWxsZnJhbWUgdXBkYXRlcyBvbiBldmVyeSB2YmxhbmsgcGVyaW9kLiBUaGlzIGlzIGRvbmUgdW50 aWwNCj4gZmx1c2ggY2FsbGJhY2sgd2hlcmUgcHNyMiBpcyByZS1lbmFibGVkLiBJbnRlbnRpb24g aXMgdG8gdXBkYXRlDQo+IHBvc3NpYmxlIGZyb250YnVmZmVyIHdyaXRlcyBiZXR3ZWVuIGludmFs aWRhdGUvZmx1c2ggaW5zdGFudGx5Lg0KPiANCj4gTm93IHlvdSBhcmUgY2hhbmdpbmcgdGhlIGxv Z2ljIHRvIHVwZGF0ZSBvbmUgZnVsbCBmcmFtZSB3aGVuDQoNCkl0IGlzIG5vdCBlbmFibGluZyB0 aGUgb25lIGZ1bGwgZnJhbWUsIGl0IGlzIGVuYWJsaW5nIHRoZSBjb250aW51b3VzIGZ1bGwgZnJh bWUgc28gYXQgZXZlcnkgdmJsYW5rIHBhbmVsIHdpbGwgYmUgdXBkYXRlZCB1bnRpbCB0aGlzIGJp dCBjbGVhcmVkLg0KDQo+IGZyb250YnVmZmVyIHdyaXRlIHN0YXJ0cyAoX3Bzcl9pbnZhbGlkYXRl X2hhbmRsZSkgYW5kIGFub3RoZXIgb25lIHdoZW4NCj4gaXQgc3RvcHMgKF9wc3JfZmx1c2hfaGFu ZGxlKSB3aXRob3V0IGRpc2FibGluZyBwc3IgYXQgYWxsLiBIYXZlIEkNCj4gdW5kZXJzdG9vZCB5 b3VyIHBhdGNoIGNvcnJlY3RseT8NCj4gDQo+IFByb3BhYmx5IHdlIHdvbnQgbm90aWNlIHRoaXMg Y2hhbmdlIGFzIHdlIGhhdmUgdGhlc2UgaW52YWxpZGF0ZS9mbHVzaA0KPiBjYWxscyBzY2F0dGVy ZWQgYXJvdW5kIGluIHRoZSBjb2RlLiBBbHNvIHBhcmFsbGVsIGF0b21pYyBjb21taXRzIGFyZQ0K PiB0cmlnZ2VyaW5nIHVwZGF0ZXMuIEluIHRoZW9yeSB3ZSBjb3VsZCBvYnNlcnZlIGxhdGVuY3kg aW4gdXBkYXRlcw0KPiBiZXR3ZWVuIGludmFsaWRhdGUvZmx1c2g/IERvIHdlIGNhcmU/IFdoYXQg ZG8geW91IHRoaW5rPw0KPiANCj4gRG8gd2UgbmVlZCB0byBzZW5kIHVwZGF0ZSBpbiBpbnZhbGlk YXRlIGF0IGFsbD8gSXNuJ3QgdGhhdCB1c3VhbGx5DQo+IGNhbGxlZCBiZWZvcmUgZG9pbmcgYW55 IGZyb250YnVmZmVyIHdyaXRpbmc/IEkuZS4gd2Ugd291bGQgYmUgc2VuZGluZw0KPiBmcmFtZSB0 aGF0IGlzIGFscmVhZHkgaW4gUkZCPw0KPiANCj4gPiANCj4gPiBDYzogS2hhbGVkIEFsbWFoYWxs YXd5IDxraGFsZWQuYWxtYWhhbGxhd3lAaW50ZWwuY29tPg0KPiA+IENjOiBTaGF3biBDIExlZSA8 c2hhd24uYy5sZWVAaW50ZWwuY29tPg0KPiA+IENjOiBKb3VuaSBIw7ZnYW5kZXIgPGpvdW5pLmhv Z2FuZGVyQGludGVsLmNvbT4NCj4gPiBDYzogTWlrYSBLYWhvbGEgPG1pa2Eua2Fob2xhQGludGVs LmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNv dXphQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9wc3IuYyB8IDEwOSArKysrKysrKysrKysrKysrKysrKy0NCj4gPiAtLQ0KPiA+ICAx IGZpbGUgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pDQo+ID4gDQo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMN Cj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMNCj4gPiBpbmRl eCBkODdiMzU3ODA2YzkxLi5mN2I3YjM3NDM3NGIxIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jDQo+ID4gQEAgLTE0NTAsNiArMTQ1MCwyMiBAQCBz dGF0aWMgaW5saW5lIHUzMg0KPiA+IG1hbl90cmtfY3RsX3BhcnRpYWxfZnJhbWVfYml0X2dldChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2DQo+ID4gICAgICAgICAgICAgIFBTUjJfTUFOX1RS S19DVExfU0ZfUEFSVElBTF9GUkFNRV9VUERBVEU7DQo+ID4gIH0NCj4gPiANCj4gPiArc3RhdGlj IGlubGluZSB1MzIgbWFuX3Rya19jdGxfY29udGludW9zX2Z1bGxfZnJhbWUoc3RydWN0DQo+ID4g ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4gK3sNCj4gPiArICAgICByZXR1cm4gSVNf QUxERVJMQUtFX1AoZGV2X3ByaXYpID8NCj4gPiArICAgICAgICAgICAgQURMUF9QU1IyX01BTl9U UktfQ1RMX1NGX0NPTlRJTlVPU19GVUxMX0ZSQU1FIDoNCj4gPiArICAgICAgICAgICAgUFNSMl9N QU5fVFJLX0NUTF9TRl9DT05USU5VT1NfRlVMTF9GUkFNRTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr c3RhdGljIGlubGluZSB1MzIgbWFuX3Rya19jdGxfc3VfcmVnaW9uX3N0YXJ0X2VuZF9tYXNrKHN0 cnVjdA0KPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+ICt7DQo+ID4gKyAgICAg aWYgKElTX0FMREVSTEFLRV9QKGRldl9wcml2KSkNCj4gPiArICAgICAgICAgICAgIHJldHVybiBB RExQX1BTUjJfTUFOX1RSS19DVExfU1VfUkVHSU9OX1NUQVJUX0FERFJfTUFTSw0KPiA+ID4gDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgQURMUF9QU1IyX01BTl9UUktfQ1RMX1NVX1JFR0lPTl9F TkRfQUREUl9NQVNLOw0KPiA+ICsgICAgIHJldHVybiBQU1IyX01BTl9UUktfQ1RMX1NVX1JFR0lP Tl9TVEFSVF9BRERSX01BU0sgfA0KPiA+ICsgICAgICAgICAgICBQU1IyX01BTl9UUktfQ1RMX1NV X1JFR0lPTl9FTkRfQUREUl9NQVNLOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0aWMgdm9pZCBw c3JfZm9yY2VfaHdfdHJhY2tpbmdfZXhpdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiA+ ICB7DQo+ID4gICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9f aTkxNShpbnRlbF9kcCk7DQo+ID4gQEAgLTE1NDYsOCArMTU2Miw5IEBAIHZvaWQgaW50ZWxfcHNy Ml9wcm9ncmFtX3RyYW5zX21hbl90cmtfY3RsKGNvbnN0DQo+ID4gc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3QNCj4gPiAgICAgICBpZiAoIWNydGNfc3RhdGUtPmVuYWJsZV9wc3IyX3Nl bF9mZXRjaCkNCj4gPiAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiANCj4gPiAtICAgICBpbnRl bF9kZV93cml0ZShkZXZfcHJpdiwgUFNSMl9NQU5fVFJLX0NUTChjcnRjX3N0YXRlLQ0KPiA+ID4g Y3B1X3RyYW5zY29kZXIpLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgIGNydGNfc3RhdGUtPnBz cjJfbWFuX3RyYWNrX2N0bCk7DQo+ID4gKyAgICAgaW50ZWxfZGVfcm13KGRldl9wcml2LCBQU1Iy X01BTl9UUktfQ1RMKGNydGNfc3RhdGUtDQo+ID4gPiBjcHVfdHJhbnNjb2RlciksDQo+ID4gKyAg ICAgICAgICAgICAgICAgIG1hbl90cmtfY3RsX3N1X3JlZ2lvbl9zdGFydF9lbmRfbWFzayhkZXZf cHJpdiksDQo+ID4gKyAgICAgICAgICAgICAgICAgIGNydGNfc3RhdGUtPnBzcjJfbWFuX3RyYWNr X2N0bCk7DQo+IA0KPiBTaG91bGQgd2UgYWN0dWFsbHkgbm93IGNvbnNpZGVyIHRha2luZyBwc3It PmxvY2sgaGVyZT8NCg0KSSBkb24ndCB0aGluayB3ZSBuZWVkLiBtbWlvIHdyaXRlcyBhcmUgc3lu Y3Jvbml6ZWQsIHRoaXMgd2lsbCBuZXZlciBzZXQgY29udGludW91cyBmdWxsIGZyYW1lIGFuZCB3 aWxsIG9ubHkgY2xlYXIgc3UgcmVnaW9uIHN0YXJ0IGFuZCBlbmQuDQpBbHNvIHRoaXMgZnVuY3Rp b24gaXMgY2FsbGVkIGZyb20gYSB0aW1lIHNlbnNpdGl2ZSBzZWN0aW9uIGlmIHdlIHNwZW5kIHRv byBtdWNoIHRpbWUgaGVyZSBpdCB3aWxsIGNhdXNlIHZibGFuayBldmFzaW9uIHdhcm5pbmdzLg0K DQo+IA0KPiA+ICB9DQo+ID4gDQo+ID4gIHN0YXRpYyB2b2lkIHBzcjJfbWFuX3Rya19jdGxfY2Fs YyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQ0KPiA+ICpjcnRjX3N0YXRlLA0KPiA+IEBAIC0yMTI3 LDYgKzIxNDQsMjYgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX3dvcmsoc3RydWN0IHdvcmtfc3Ry dWN0DQo+ID4gKndvcmspDQo+ID4gICAgICAgbXV0ZXhfdW5sb2NrKCZpbnRlbF9kcC0+cHNyLmxv Y2spOw0KPiA+ICB9DQo+ID4gDQo+ID4gK3N0YXRpYyB2b2lkIF9wc3JfaW52YWxpZGF0ZV9oYW5k bGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQNCj4gPiBwcmV2X2J1c3lfZnJvbnRidWZmZXJfYml0cykN Cj4gPiArew0KPiA+ICsgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRw X3RvX2k5MTUoaW50ZWxfZHApOw0KPiA+ICsNCj4gPiArICAgICBpZiAoaW50ZWxfZHAtPnBzci5w c3IyX3NlbF9mZXRjaF9lbmFibGVkKSB7DQo+ID4gKyAgICAgICAgICAgICB1MzIgdmFsID0gbWFu X3Rya19jdGxfY29udGludW9zX2Z1bGxfZnJhbWUoZGV2X3ByaXYpIHwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBtYW5fdHJrX2N0bF9wYXJ0aWFsX2ZyYW1lX2JpdF9nZXQoZGV2X3ByaXYp Ow0KPiA+ICsNCj4gPiArICAgICAgICAgICAgIC8qIGNvbnRpbnVvcyBmdWxsIGZyYW1lIGlzIGFs cmVhZHkgZW5hYmxlZCAqLw0KPiA+ICsgICAgICAgICAgICAgaWYgKHByZXZfYnVzeV9mcm9udGJ1 ZmZlcl9iaXRzKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQo+IA0KPiBTaG91 bGQgd2Ugc3RpbGwgdHJpZ2dlciB0aGUgdXBkYXRlIHVzaW5nIENVUlNVUkZMSVZFPyBPciBkbyB3 ZSBuZWVkDQo+IHRoYXQgYXQgYWxsIGluIHRoZSBmaXJzdCBwbGFjZT8NCg0KKmNvbnRpbnVvcyBm dWxsIGZyYW1lKg0KDQo+IA0KPiA+ICsNCj4gPiArICAgICAgICAgICAgIGludGVsX2RlX3Jtdyhk ZXZfcHJpdiwgUFNSMl9NQU5fVFJLX0NUTChpbnRlbF9kcC0NCj4gPiA+IHBzci50cmFuc2NvZGVy KSwgMCwgdmFsKTsNCj4gPiArICAgICAgICAgICAgIGludGVsX2RlX3dyaXRlKGRldl9wcml2LCBD VVJTVVJGTElWRShpbnRlbF9kcC0NCj4gPiA+IHBzci5waXBlKSwgMCk7DQo+IA0KPiBTbyB0aGVz ZSB0d28gcmVnaXN0ZXIgd3JpdGVzIGhlcmUgYXJlIHRyaWdnZXJpbmcgb25lIGZ1bGwgZnJhbWUg dXBkYXRlLg0KPiBhbmQgbGVhdmluZyBmdWxsIGZyYW1lIHVwZGF0ZSBiaXQgc2V0IHNvIHRoYXQg Y29taW5nIHVwZGF0ZXMgYXJlIGFsc28NCj4gZnVsbCBmcmFtZS4gRGlkIEkgdW5kZXJzdG9vZCBp dCBjb3JyZWN0bHk/DQoNCipjb250aW51b3MgZnVsbCBmcmFtZSoNCg0KPiANCj4gQXMgaW52YWxp ZGF0ZSBpcyBjYWxsZWQgYmVmb3JlIGZyb250YnVmZmVyIGlzIHdyaXRlbjogSXNuJ3QgaXQgYWN0 dWFsbHkNCj4gcmUtdXBkYXRpbmcgc2FtZSBmcmFtZSB3aGljaCBpcyBhbHJlYWR5IHN1cHBvc2Vk IHRvIGJlIGluIHBhbmVsIFJGQj8NCj4gDQo+ID4gKyAgICAgfSBlbHNlIHsNCj4gPiArICAgICAg ICAgICAgIGludGVsX3Bzcl9leGl0KGludGVsX2RwKTsNCj4gPiArICAgICB9DQo+ID4gK30NCj4g PiArDQo+ID4gIC8qKg0KPiA+ICAgKiBpbnRlbF9wc3JfaW52YWxpZGF0ZSAtIEludmFsaWRhZGUg UFNSDQo+ID4gICAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UNCj4gPiBAQCAtMjE1MSw2ICsyMTg4 LDcgQEAgdm9pZCBpbnRlbF9wc3JfaW52YWxpZGF0ZShzdHJ1Y3QNCj4gPiBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwNCj4gPiAgICAgICBmb3JfZWFjaF9pbnRlbF9lbmNvZGVyX3dpdGhfcHNy KCZkZXZfcHJpdi0+ZHJtLCBlbmNvZGVyKSB7DQo+ID4gICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgcGlwZV9mcm9udGJ1ZmZlcl9iaXRzID0gZnJvbnRidWZmZXJfYml0czsNCj4gPiAgICAgICAg ICAgICAgIHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rl cik7DQo+ID4gKyAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcHJldl9idXN5X2Zyb250YnVmZmVy X2JpdHM7DQo+ID4gDQo+ID4gICAgICAgICAgICAgICBtdXRleF9sb2NrKCZpbnRlbF9kcC0+cHNy LmxvY2spOw0KPiA+ICAgICAgICAgICAgICAgaWYgKCFpbnRlbF9kcC0+cHNyLmVuYWJsZWQpIHsN Cj4gPiBAQCAtMjE1OCwxMiArMjE5NiwxMyBAQCB2b2lkIGludGVsX3Bzcl9pbnZhbGlkYXRlKHN0 cnVjdA0KPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiA+ICAgICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsNCj4gPiAgICAgICAgICAgICAgIH0NCj4gPiANCj4gPiArICAgICAg ICAgICAgIHByZXZfYnVzeV9mcm9udGJ1ZmZlcl9iaXRzID0gaW50ZWxfZHAtDQo+ID4gPiBwc3Iu YnVzeV9mcm9udGJ1ZmZlcl9iaXRzOw0KPiA+ICAgICAgICAgICAgICAgcGlwZV9mcm9udGJ1ZmZl cl9iaXRzICY9DQo+ID4gICAgICAgICAgICAgICAgICAgICAgIElOVEVMX0ZST05UQlVGRkVSX0FM TF9NQVNLKGludGVsX2RwLT5wc3IucGlwZSk7DQo+ID4gICAgICAgICAgICAgICBpbnRlbF9kcC0+ cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0cyB8PQ0KPiA+IHBpcGVfZnJvbnRidWZmZXJfYml0czsN Cj4gPiANCj4gPiAgICAgICAgICAgICAgIGlmIChwaXBlX2Zyb250YnVmZmVyX2JpdHMpDQo+ID4g LSAgICAgICAgICAgICAgICAgICAgIGludGVsX3Bzcl9leGl0KGludGVsX2RwKTsNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgX3Bzcl9pbnZhbGlkYXRlX2hhbmRsZShpbnRlbF9kcCwNCj4gPiBw cmV2X2J1c3lfZnJvbnRidWZmZXJfYml0cyk7DQo+ID4gDQo+ID4gICAgICAgICAgICAgICBtdXRl eF91bmxvY2soJmludGVsX2RwLT5wc3IubG9jayk7DQo+ID4gICAgICAgfQ0KPiA+IEBAIC0yMTk1 LDYgKzIyMzQsNDkgQEAgdGdsX2RjM2NvX2ZsdXNoX2xvY2tlZChzdHJ1Y3QgaW50ZWxfZHANCj4g PiAqaW50ZWxfZHAsIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLA0KPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgaW50ZWxfZHAtPnBzci5kYzNjb19leGl0X2RlbGF5KTsNCj4gPiAgfQ0K PiA+IA0KPiA+ICtzdGF0aWMgdm9pZCBfcHNyX2ZsdXNoX2hhbmRsZShzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg cHJldl9idXN5X2Zyb250YnVmZmVyX2JpdHMpDQo+ID4gK3sNCj4gPiArICAgICBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsNCj4gPiArDQo+ ID4gKyAgICAgaWYgKGludGVsX2RwLT5wc3IucHNyMl9zZWxfZmV0Y2hfZW5hYmxlZCkgew0KPiA+ ICsgICAgICAgICAgICAgLyogaXMgY29udGludW9zIGZ1bGwgZnJhbWUgZW5hYmxlZD8gKi8NCj4g PiArICAgICAgICAgICAgIGlmIChwcmV2X2J1c3lfZnJvbnRidWZmZXJfYml0cykgew0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAvKiBpdCBpcywgY2FuIHdlIHR1cm4gaXQgb2ZmPyAqLw0KPiAN Cj4gQXMgeW91IGFyZSB1c2luZyB0aGlzIHByZXZfYnVzeV9mcm9udGJ1ZmZlcl9iaXRzIG9ubHkg dG8gY2hlY2sgaWYNCj4gImNvbnRpbnVvcyBmdWxsIGZyYW1lIiBpcyBlbmFibGVkIGFuZCBub3Ro aW5nIGVsc2U6IE1heWJlIHlvdSBjb3VsZA0KPiBqdXN0IG5hbWUgaXQgYXMgaXQgaXMgZS5nLiBi b29sIGNmZl9lbmFibGVkIG9yIGJvb2wNCj4gY29udGludW91c19mdWxsX2ZyYW1lIG9yLi4uc2Ft ZSBjb21tZW50IGluIF9wc3JfaW52YWxpZGF0ZV9oYW5kbGUuIFRoaXMNCj4gd291bGQgYWxsb3cg eW91IHRvIGRyb3AgY291cGxlIG9mIGNvbW1lbnRzLg0KDQpwcmV2X2J1c3lfZnJvbnRidWZmZXJf Yml0cyBvciBhIGJvb2wgYW55d2F5IHdvcmtzIGZvciBtZSwgaWYgeW91IHRoaW5rIGlzIGVhc2ll ciB0byB1bmRlcnN0YW5kIEkgY2FuIGNoYW5nZSB0byBib29sLg0KDQo+IA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICBpZiAoaW50ZWxfZHAtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMgPT0g MCkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBjbGVhciA9DQo+ID4g bWFuX3Rya19jdGxfY29udGludW9zX2Z1bGxfZnJhbWUoZGV2X3ByaXYpOw0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHUzMiBzZXQgPQ0KPiA+IG1hbl90cmtfY3RsX3NpbmdsZV9m dWxsX2ZyYW1lX2JpdF9nZXQoZGV2X3ByaXYpIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWFuX3Rya19jdGxfcGFydGlhbF9mcmFtZV9iaXQNCj4gPiBfZ2V0 KGRldl9wcml2KTsNCj4gDQo+IA0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHR1cm4gY29udGlu dW9zIGZ1bGwgZnJhbWUgb2ZmIGFuZCBkbw0KPiA+IGEgc2luZ2xlDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICogZnVsbCBmcmFtZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqLw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVsX2Rl X3JtdyhkZXZfcHJpdiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUFNSMl9NQU5fVFJLX0NUTChpbnRlbF9kcC0NCj4gPiA+IHBzci50cmFuc2NvZGVyKSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXIsIHNl dCk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfZGVfd3JpdGUoZGV2 X3ByaXYsDQo+ID4gQ1VSU1VSRkxJVkUoaW50ZWxfZHAtPnBzci5waXBlKSwgMCk7DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgIH0NCj4gPiArICAgICAgICAgICAgIH0gZWxzZSB7DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgIC8qDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAqIGNvbnRp bnVvcyBmdWxsIGZyYW1lIGlzIGRpc2FibGVkLCBvbmx5IGENCj4gPiBzaW5nbGUgZnVsbA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgKiBmcmFtZSBpcyByZXF1aXJlZA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgKi8NCj4gPiArICAgICAgICAgICAgICAgICAgICAgcHNyX2ZvcmNlX2h3 X3RyYWNraW5nX2V4aXQoaW50ZWxfZHApOw0KPiA+ICsgICAgICAgICAgICAgfQ0KPiA+ICsgICAg IH0gZWxzZSB7DQo+ID4gKyAgICAgICAgICAgICAvKg0KPiA+ICsgICAgICAgICAgICAgICogaWYg cHJldl9idXN5X2Zyb250YnVmZmVyX2JpdHMgaXMgc2V0LCBpdCBtZWFucyB0aGF0DQo+ID4gUFNS IGlzDQo+ID4gKyAgICAgICAgICAgICAgKiBpbmFjdGl2ZQ0KPiA+ICsgICAgICAgICAgICAgICov DQo+ID4gKyAgICAgICAgICAgICBpZiAocHJldl9idXN5X2Zyb250YnVmZmVyX2JpdHMgPT0gMCkN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgcHNyX2ZvcmNlX2h3X3RyYWNraW5nX2V4aXQoaW50 ZWxfZHApOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgIGlmICghaW50ZWxfZHAtPnBzci5hY3Rp dmUgJiYgIWludGVsX2RwLQ0KPiA+ID4gcHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0cykNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVfd29yaygmaW50ZWxfZHAtPnBzci53b3JrKTsN Cj4gPiArICAgICB9DQo+ID4gK30NCj4gPiArDQo+ID4gIC8qKg0KPiA+ICAgKiBpbnRlbF9wc3Jf Zmx1c2ggLSBGbHVzaCBQU1INCj4gPiAgICogQGRldl9wcml2OiBpOTE1IGRldmljZQ0KPiA+IEBA IC0yMjE2LDYgKzIyOTgsNyBAQCB2b2lkIGludGVsX3Bzcl9mbHVzaChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZQ0KPiA+ICpkZXZfcHJpdiwNCj4gPiAgICAgICBmb3JfZWFjaF9pbnRlbF9lbmNvZGVy X3dpdGhfcHNyKCZkZXZfcHJpdi0+ZHJtLCBlbmNvZGVyKSB7DQo+ID4gICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgcGlwZV9mcm9udGJ1ZmZlcl9iaXRzID0gZnJvbnRidWZmZXJfYml0czsNCj4g PiAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxf ZHAoZW5jb2Rlcik7DQo+ID4gKyAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcHJldl9idXN5X2Zy b250YnVmZmVyX2JpdHM7DQo+ID4gDQo+ID4gICAgICAgICAgICAgICBtdXRleF9sb2NrKCZpbnRl bF9kcC0+cHNyLmxvY2spOw0KPiA+ICAgICAgICAgICAgICAgaWYgKCFpbnRlbF9kcC0+cHNyLmVu YWJsZWQpIHsNCj4gPiBAQCAtMjIyMyw2ICsyMzA2LDcgQEAgdm9pZCBpbnRlbF9wc3JfZmx1c2go c3RydWN0IGRybV9pOTE1X3ByaXZhdGUNCj4gPiAqZGV2X3ByaXYsDQo+ID4gICAgICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICAgICAgICAgICAgICAgfQ0KPiA+IA0KPiA+ICsgICAg ICAgICAgICAgcHJldl9idXN5X2Zyb250YnVmZmVyX2JpdHMgPSBpbnRlbF9kcC0NCj4gPiA+IHBz ci5idXN5X2Zyb250YnVmZmVyX2JpdHM7DQo+ID4gICAgICAgICAgICAgICBwaXBlX2Zyb250YnVm ZmVyX2JpdHMgJj0NCj4gPiAgICAgICAgICAgICAgICAgICAgICAgSU5URUxfRlJPTlRCVUZGRVJf QUxMX01BU0soaW50ZWxfZHAtPnBzci5waXBlKTsNCj4gPiAgICAgICAgICAgICAgIGludGVsX2Rw LT5wc3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzICY9DQo+ID4gfnBpcGVfZnJvbnRidWZmZXJfYml0 czsNCj4gPiBAQCAtMjIzMiwyNSArMjMxNiwyMiBAQCB2b2lkIGludGVsX3Bzcl9mbHVzaChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZQ0KPiA+ICpkZXZfcHJpdiwNCj4gPiAgICAgICAgICAgICAgICAq IHdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIFBTUiBpcyBub3QgYWN0aXZhdGVkDQo+ID4gdW50 aWwNCj4gPiAgICAgICAgICAgICAgICAqIGludGVsX3Bzcl9yZXN1bWUoKSBpcyBjYWxsZWQuDQo+ ID4gICAgICAgICAgICAgICAgKi8NCj4gPiAtICAgICAgICAgICAgIGlmIChpbnRlbF9kcC0+cHNy LnBhdXNlZCkgew0KPiA+IC0gICAgICAgICAgICAgICAgICAgICBtdXRleF91bmxvY2soJmludGVs X2RwLT5wc3IubG9jayk7DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ IC0gICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgaWYgKGludGVsX2RwLT5wc3IucGF1 c2VkKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7DQo+ID4gDQo+ID4gICAg ICAgICAgICAgICBpZiAob3JpZ2luID09IE9SSUdJTl9GTElQIHx8DQo+ID4gICAgICAgICAgICAg ICAgICAgKG9yaWdpbiA9PSBPUklHSU5fQ1VSU09SX1VQREFURSAmJg0KPiA+ICAgICAgICAgICAg ICAgICAgICAhaW50ZWxfZHAtPnBzci5wc3IyX3NlbF9mZXRjaF9lbmFibGVkKSkgew0KPiA+ICAg ICAgICAgICAgICAgICAgICAgICB0Z2xfZGMzY29fZmx1c2hfbG9ja2VkKGludGVsX2RwLA0KPiA+ IGZyb250YnVmZmVyX2JpdHMsIG9yaWdpbik7DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgIG11 dGV4X3VubG9jaygmaW50ZWxfZHAtPnBzci5sb2NrKTsNCj4gPiAtICAgICAgICAgICAgICAgICAg ICAgY29udGludWU7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsNCj4gPiAg ICAgICAgICAgICAgIH0NCj4gPiANCj4gPiAtICAgICAgICAgICAgIC8qIEJ5IGRlZmluaXRpb24g Zmx1c2ggPSBpbnZhbGlkYXRlICsgZmx1c2ggKi8NCj4gPiAtICAgICAgICAgICAgIGlmIChwaXBl X2Zyb250YnVmZmVyX2JpdHMpDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgIHBzcl9mb3JjZV9o d190cmFja2luZ19leGl0KGludGVsX2RwKTsNCj4gPiArICAgICAgICAgICAgIGlmIChwaXBlX2Zy b250YnVmZmVyX2JpdHMgPT0gMCkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgZ290byBleGl0 Ow0KPiA+IA0KPiA+IC0gICAgICAgICAgICAgaWYgKCFpbnRlbF9kcC0+cHNyLmFjdGl2ZSAmJiAh aW50ZWxfZHAtDQo+ID4gPiBwc3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzKQ0KPiA+IC0gICAgICAg ICAgICAgICAgICAgICBzY2hlZHVsZV93b3JrKCZpbnRlbF9kcC0+cHNyLndvcmspOw0KPiA+ICsg ICAgICAgICAgICAgLyogQnkgZGVmaW5pdGlvbiBmbHVzaCA9IGludmFsaWRhdGUgKyBmbHVzaCAq Lw0KPiA+ICsgICAgICAgICAgICAgX3Bzcl9mbHVzaF9oYW5kbGUoaW50ZWxfZHAsDQo+ID4gcHJl dl9idXN5X2Zyb250YnVmZmVyX2JpdHMpOw0KPiA+ICtleGl0Og0KPiANCj4gSSB0aGluayB5b3Ug c2hvdWxkIG5hbWUgaXQgYXMgdW5sb2NrLg0KPiANCj4gPiAgICAgICAgICAgICAgIG11dGV4X3Vu bG9jaygmaW50ZWxfZHAtPnBzci5sb2NrKTsNCj4gPiAgICAgICB9DQo+ID4gIH0NCj4gDQo+IEJS LA0KPiANCj4gSm91bmkgSMO2Z2FuZGVyDQo+IA0KDQo=