From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH v9 6/7] drm/i915/tgl: switch between dc3co and dc5 based on display idleness Date: Fri, 27 Sep 2019 19:18:13 +0300 Message-ID: <20190927161813.GF29139@ideak-desk.fi.intel.com> References: <20190926145621.9090-1-anshuman.gupta@intel.com> <20190926145621.9090-7-anshuman.gupta@intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 659C16E123 for ; Fri, 27 Sep 2019 16:19:17 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190926145621.9090-7-anshuman.gupta@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Anshuman Gupta Cc: jani.nikula@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMjYsIDIwMTkgYXQgMDg6MjY6MjBQTSArMDUzMCwgQW5zaHVtYW4gR3VwdGEg d3JvdGU6Cj4gREMzQ08gaXMgdXNlZnVsIHBvd2VyIHN0YXRlLCB3aGVuIERNQyBkZXRlY3RzIFBT UjIgaWRsZSBmcmFtZQo+IHdoaWxlIGFuIGFjdGl2ZSB2aWRlbyBwbGF5YmFjaywgcGxheWluZyAz MGZwcyB2aWRlbyBvbiA2MGh6IHBhbmVsCj4gaXMgdGhlIGNsYXNzaWMgZXhhbXBsZSBvZiB0aGlz IHVzZSBjYXNlLgo+IAo+IEIuU3BlY3M6NDkxOTYgaGFzIGEgcmVzdHJpY3Rpb24gdG8gZW5hYmxl IERDM0NPIG9ubHkgZm9yIFZpZGVvIFBsYXliYWNrLgo+IEl0IHdpbGwgYmUgd29ydGh5IHRvIGVu YWJsZSBEQzNDTyBhZnRlciBjb21wbGV0aW9uIG9mIGVhY2ggcGFnZWZsaXAKPiBhbmQgc3dpdGNo IGJhY2sgdG8gREM1IHdoZW4gZGlzcGxheSBpcyBpZGxlIGJlY2F1c2UgZHJpdmVyIGRvZXNuJ3QK PiBkaWZmZXJlbnRpYXRlIGJldHdlZW4gdmlkZW8gcGxheWJhY2sgYW5kIGEgbm9ybWFsIHBhZ2Vm bGlwLgo+IFdlIHdpbGwgdXNlIEZyb250YnVmZmVyIGZsdXNoIGNhbGwgdGdsX2RjM2NvX2ZsdXNo KCkgdG8gZW5hYmxlIERDM0NPCj4gc3RhdGUgb25seSBmb3IgT1JJR0lOX0ZMSVAgZmx1c2ggY2Fs bCwgYmVjYXVzZSBEQzNDTyBzdGF0ZSBoYXMgcHJpbWFyaWx5Cj4gdGFyZ2V0ZWQgZm9yIFZQQiB1 c2UgY2FzZS4gV2UgYXJlIG5vdCBpbnRlcmVzdGVkIGhlcmUgZm9yIGZyb250YnVmZmVyCj4gaW52 YWxpZGF0ZXMgY2FsbHMgYmVjYXVzZSB0aGF0IHRyaWdnZXJzIFBTUjIgZXhpdCwgd2hpY2ggd2ls bAo+IGV4cGxpY2l0bHkgZGlzYWJsZSBEQzNDTy4KPiAKPiBEQzUgYW5kIERDNiBzYXZlcyBtb3Jl IHBvd2VyLCBidXQgY2FuJ3QgYmUgZW50ZXJlZCBkdXJpbmcgdmlkZW8KPiBwbGF5YmFjayBiZWNh dXNlIHRoZXJlIGFyZSBub3QgZW5vdWdoIGlkbGUgZnJhbWVzIGluIGEgcm93IHRvIG1lZXQKPiBt b3N0IFBTUjIgcGFuZWwgZGVlcCBzbGVlcCBlbnRyeSByZXF1aXJlbWVudCB0eXBpY2FsbHkgNCBm cmFtZXMuCj4gQXMgUFNSMiBleGlzdGluZyBpbXBsZW1lbnRhdGlvbiBpcyB1c2luZyBtaW5pbXVt IDYgaWRsZSBmcmFtZXMgZm9yCj4gZGVlcCBzbGVlcCwgaXQgaXMgc2FmZXIgdG8gZW5hYmxlIERD NS82IGFmdGVyIDYgaWRsZSBmcmFtZXMKPiAoQnkgc2NoZWR1bGluZyBhIGRlbGF5ZWQgd29yayBv ZiA2IGlkbGUgZnJhbWVzLCBvbmNlIERDM0NPIGhhcyBiZWVuCj4gZW5hYmxlZCBhZnRlciBhIHBh Z2VmbGlwKS4KPiAKPiBBZnRlciBtYW51YWxseSB3YWl0aW5nIGZvciA2IGlkbGUgZnJhbWVzIERD NS82IHdpbGwgYmUgZW5hYmxlZCBhbmQKPiBQU1IyIGRlZXAgc2xlZXAgaWRsZSBmcmFtZXMgd2ls bCBiZSByZXN0b3JlZCB0byA2IGlkbGUgZnJhbWVzLCBhdCB0aGlzCj4gcG9pbnQgRE1DIHdpbGwg dHJpZ2dlcnMgREM1LzYgb25jZSBQU1IyIGVudGVycyB0byBkZWVwIHNsZWVwIGFmdGVyCj4gNiBp ZGxlIGZyYW1lcy4KPiBJbiBmdXR1cmUgd2hlbiB3ZSB3aWxsIGVuYWJsZSBTL1cgUFNSMiB0cmFj a2luZywgd2UgY2FuIGNoYW5nZSB0aGUKPiBQU1IyIHJlcXVpcmVkIGRlZXAgc2xlZXAgaWRsZSBm cmFtZXMgdG8gMSBzbyBETUMgY2FuIHRyaWdnZXIgdGhlCj4gREM1LzYgaW1tZWRpYXRlbHkgYWZ0 ZXIgUy9XIG1hbnVhbCB3YWl0aW5nIG9mIDYgaWRsZSBmcmFtZXMgZ2V0Cj4gY29tcGxldGUuCj4g Cj4gdjI6IGNhbGN1bGF0ZWQgcy93IHN0YXRlIHRvIHN3aXRjaCBvdmVyIGRjM2NvIHdoZW4gdGhl cmUgaXMgYW4KPiAgICAgdXBkYXRlLiBbSW1yZV0KPiAgICAgVXNlZCBjYW5jZWxfZGVsYXllZF93 b3JrX3N5bmMoKSBpbiBvcmRlciB0byBhdm9pZCBhbnkgcmFjZQo+ICAgICB3aXRoIGFscmVhZHkg c2NoZWR1bGVkIGRlbGF5ZWQgd29yay4gW0ltcmVdCj4gdjM6IENhbmNlbF9kZWxheWVkX3dvcmtf c3luYygpIG1heSBibG9ja2VkIHRoZSBjb21taXQgd29yay4KPiAgICAgaGVuY2UgZHJvcHBpbmcg aXQsIGRjNV9pZGxlX3RocmVhZCgpIGNoZWNrcyB0aGUgdmFsaWQgd2FrZXJlZiBiZWZvcmUKPiAg ICAgcHV0dGluZyB0aGUgcmVmZXJlbmNlIGNvdW50LCB3aGljaCBhdm9pZHMgYW55IGNoYW5jZXMg b2YgZHJvcHBpbmcKPiAgICAgYSB6ZXJvIHdha2VyZWYuIFtJbXJlIChJUkMpXQo+IHY0OiBVc2Vk IGZyb250YnVmZmVyIGZsdXNoIG1lY2hhbmlzbS4gW0ltcmVdCj4gdjU6IFVzZWQgcHNyLnBpcGUg dG8gZXh0cmFjdCBmcm9udGJ1ZmZlciBidXN5IGJpdHMuIFtJbXJlXQo+ICAgICBVc2VkIGNhbmNl bF9kZWxheWVkX3dvcmtfc3luYygpIGluIGVuY29kZXIgZGlzYWJsZSBwYXRoLiBbSW1yZV0KPiAg ICAgVXNlZCBtb2RfZGVsYXllZF93b3JrKCkgaW5zdGVhZCBvZiBjYW5jZWxsaW5nIGFuZCBzY2hl ZHVsaW5nIGEKPiAgICAgZGVsYXllZCB3b3JrLiBbSW1yZV0KPiAgICAgVXNlZCBwc3IubG9jayBp biB0Z2xfZGM1X2lkbGVfdGhyZWFkKCkgdG8gZW5hYmxlIHBzcjIgZGVlcAo+ICAgICBzbGVlcC4g W0ltcmVdCj4gICAgIFJlbW92ZWQgREM1X1JFUV9JRExFX0ZSQU1FUyBtYWNyby4gW0ltcmVdCj4g djY6IEluaXRlZCB0aGUgYnVzeV9mcm9udGJ1ZmZlcl9iaXRzLCB1c2VkIGRjM2NvX2V4aXRsaW5l IGNoZWNrIGluc3RlYWQKPiAgICAgb2YgVEdMIGFuZCBkYzNjbyBhbGxvd2VkX2RjX21hc2sgY2hl Y2tzLCB1c2VkIGRlbGF5ZWRfd29ya19wZW5kaW5nCj4gICAgIHdpdGggdGhlIHBzciBsb2NrIGFu ZCByZW1vdmVkIHRoZSBwc3IyX2RlZXBfc2xwX2Rpc2FibGVkIGZsYWcuIFtJbXJlXQo+IAo+IENj OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+IENjOiBJbXJlIERlYWsgPGlt cmUuZGVha0BpbnRlbC5jb20+Cj4gQ2M6IEFuaW1lc2ggTWFubmEgPGFuaW1lc2gubWFubmFAaW50 ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEFuc2h1bWFuIEd1cHRhIDxhbnNodW1hbi5ndXB0YUBp bnRlbC5jb20+Cj4gLS0tCj4gIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93 ZXIuYyAgICB8IDg0ICsrKysrKysrKysrKysrKysrKysKPiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV9wb3dlci5oICAgIHwgIDQgKwo+ICAuLi4vZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZnJvbnRidWZmZXIuYyAgfCAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfcHNyLmMgICAgICB8IDM0ICsrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmggICAgICB8ICAyICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwgIDEgKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDEy NiBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKPiBpbmRleCA4NGU0Y2ZkOTViNDMuLjAwYmI4MmU2YTE4 ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXlfcG93ZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheV9wb3dlci5jCj4gQEAgLTIwLDYgKzIwLDcgQEAKPiAgI2luY2x1ZGUgImludGVsX3NpZGVi YW5kLmgiCj4gICNpbmNsdWRlICJpbnRlbF90Yy5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfcG0uaCIK PiArI2luY2x1ZGUgImludGVsX3Bzci5oIgo+ICAKPiAgYm9vbCBpbnRlbF9kaXNwbGF5X3Bvd2Vy X3dlbGxfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJ CQkJIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHBvd2VyX3dlbGxfaWQpOwo+IEBAIC03OTcsNiAr Nzk4LDkgQEAgdm9pZCB0Z2xfY2xlYXJfcHNyMl90cmFuc2NvZGVyX2V4aXRsaW5lKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCj4gIAl2YWwgPSBJOTE1X1JFQUQoRVhJVExJ TkUoY3N0YXRlLT5jcHVfdHJhbnNjb2RlcikpOwo+ICAJdmFsICY9IH4oRVhJVExJTkVfTUFTSyB8 IEVYSVRMSU5FX0VOQUJMRSk7Cj4gIAlJOTE1X1dSSVRFKEVYSVRMSU5FKGNzdGF0ZS0+Y3B1X3Ry YW5zY29kZXIpLCB2YWwpOwo+ICsKPiArCS8qIEFzIHBzcjIgZW5jb2RlciBoYXMgZGlzYWJsZWQs IGNhbmNlbCB0aGUgZGM1IGlkbGUgZGVsYXllZCB3b3JrICovCj4gKwljYW5jZWxfZGVsYXllZF93 b3JrX3N5bmMoJmRldl9wcml2LT5jc3IuaWRsZV93b3JrKTsKCkxldCdzIG1vdmUgdGhpcyB0byBp bnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQoKSwgZm9yIHN5bW1ldHJ5IHdpdGggdGhlCmNhbmNlbF93 b3JrIGluIGludGVsX3Bzcl9leGl0KCkuCgo+ICB9Cj4gIAo+ICB2b2lkIHRnbF9zZXRfcHNyMl90 cmFuc2NvZGVyX2V4aXRsaW5lKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUp Cj4gQEAgLTgxNiw2ICs4MjAsMTkgQEAgdm9pZCB0Z2xfc2V0X3BzcjJfdHJhbnNjb2Rlcl9leGl0 bGluZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ICAJSTkxNV9XUklU RShFWElUTElORShjc3RhdGUtPmNwdV90cmFuc2NvZGVyKSwgdmFsKTsKPiAgfQo+ICAKPiArc3Rh dGljIHUzMiBpbnRlbF9nZXRfZnJhbWVfdGltZV91cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3N0YXRlKQo+ICt7Cj4gKwl1MzIgZnJhbWV0aW1lX3VzOwo+ICsKPiArCWlmICghY3N0 YXRlIHx8ICFjc3RhdGUtPmJhc2UuYWN0aXZlKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWZyYW1l dGltZV91cyA9IERJVl9ST1VORF9VUCgxMDAwKjEwMDAsCj4gKwkJCQkgICAgZHJtX21vZGVfdnJl ZnJlc2goJmNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlKSk7CgpKdXN0IHJldHVybiB0aGUgdmFs dWUgZGlyZWN0bHksIGFuZCBsZWF2ZSBzcGFjZXMgYXJvdW5kIG9wZXJhdG9ycyAoc2VlCkRvY3Vt ZW50YXRpb24vcHJvY2Vzcy9jb2Rpbmctc3R5bGUucnN0IDMuMSkuIExldCdzIG1vdmUgdGhlIGhl bHBlciB3aGVyZQppdCdsbCBiZSB1c2VkIChpbnRlbF9kZGkuYykuCgo+ICsKPiArCXJldHVybiBm cmFtZXRpbWVfdXM7Cj4gK30KPiArCj4gIC8qCj4gICAqIERDM0NPIHJlcXVpcmVzIHRvIGVuYWJs ZSBleGl0bGluZSBhbmQgcHJvZ3JhbSBEQzNDTyByZXF1aXJlcwo+ICAgKiBleGl0IHNjYW5saW5l cyB0byBUUkFOU19FWElUTElORSByZWdpc3Rlciwgd2hpY2ggc2hvdWxkIG9ubHkKPiBAQCAtODcy LDYgKzg4OSw3MiBAQCB2b2lkIHRnbF9kYzNjb19leGl0bGluZV9nZXRfY29uZmlnKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJCWNydGNfc3RhdGUtPmRjM2NvX2V4aXRs aW5lID0gdmFsICYgRVhJVExJTkVfTUFTSzsKPiAgfQo+ICAKPiArLyoKPiArICogV2hlbiB3ZSB3 aWxsIGVuYWJsZSBtYW51YWwgUFNSMiBTL1cgdHJhY2tpbmcgaW4gZnV0dXJlCj4gKyAqIHdlIHdp bGwgaW1wbGVtZW50IHRoaXMgZW50aXJlIERDM0NPIGZsdXNoIGxvZ2ljIGluCj4gKyAqIGludGVs X3Bzcl9mbHVzaCgpLgo+ICsgKi8KPiArdm9pZCB0Z2xfZGMzY29fZmx1c2goc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCSAgICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVy X2JpdHMsIGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbikKPiArewo+ICsJc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNzdGF0ZTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwo+ICsJdTMyIGRl bGF5Owo+ICsKPiArCWlmICghQ0FOX1BTUihkZXZfcHJpdikpCj4gKwkJcmV0dXJuOwo+ICsKPiAr CWlmIChvcmlnaW4gIT0gT1JJR0lOX0ZMSVApCj4gKwkJcmV0dXJuOwo+ICsKPiArCW11dGV4X2xv Y2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gKwo+ICsJaWYgKCFkZXZfcHJpdi0+cHNyLmRjM2Nv X2V4aXRsaW5lKQo+ICsJCWdvdG8gdW5sb2NrOwo+ICsKPiArCWNydGMgPSBpbnRlbF9nZXRfY3J0 Y19mb3JfcGlwZShkZXZfcHJpdiwgZGV2X3ByaXYtPnBzci5waXBlKTsKPiArCWNzdGF0ZSA9IHRv X2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7CgpVc2luZyBjcnRjLT5zdGF0ZSBp cyB2ZXJib3RlbiBpbiBnZW5lcmFsIChleGNlcHQgZm9yIHRoZSBhdG9taWMgY29kZQp0aGF0IHVz ZXMgaXQgYXMgYSBzdGFydGluZyBwb2ludCBvZiBhIG5ldyBjb21taXQpLiBTbyBsZXQncyBjb21w dXRlIHRoZQpmcmFtZSB0aW1lIHRvbyBpbiB0aGUgY29tcHV0ZSBob29rIGFsb25nIHdpdGggZXhp dGxpbmUgYW5kIHN0b3JlIGl0IGluCmRldi0+cHNyLgoKPiArCj4gKwlpZiAoIWRldl9wcml2LT5w c3IucHNyMl9lbmFibGVkIHx8ICFkZXZfcHJpdi0+cHNyLmFjdGl2ZSkKPiArCQlnb3RvIHVubG9j azsKPiArCj4gKwkvKgo+ICsJICogQXQgZXZlcnkgZmxpcCBmcm9udGJ1ZmZlciBmbHVzaCBtb2Rp ZmllZCBkZWxheSBvZiBkZWxheWVkIHdvcmssCj4gKwkgKiB3aGVuIGRlbGF5ZWQgc2NoZWR1bGVz IHRoYXQgbWVhbnMgZGlzcGxheSBoYXMgYmVlbiBpZGxlLgo+ICsJICovCgpXZSBvbmx5IHdhbnQg dG8gYWN0IG9uIHRoZSBmbGlwIGV2ZW50IGlmIGl0IGhhcHBlbmVkIG9uIHBzci5waXBlLiBTbwoK CWlmICghKGZyb250YnVmZmVyX2JpdHMgJgoJICAgICAgSU5URUxfRlJPTlRCVUZGRVJfQUxMX01B U0soZGV2X3ByaXYtPnBzci5waXBlKSkpCgkgICAgICBnb3RvIHVubG9jazsKCQoKPiArCXRnbF9w c3IyX2RlZXBfc2xlZXBfZGlzYWJsZShkZXZfcHJpdik7Cj4gKwl0Z2xfc2V0X3RhcmdldF9kY19z dGF0ZShkZXZfcHJpdiwgRENfU1RBVEVfRU5fREMzQ08pOwo+ICsJLyogREM1L0RDNiByZXF1aXJl ZCBpZGxlIGZyYW1lcyA9IDYgKi8KPiArCWRlbGF5ID0gNiAqIGludGVsX2dldF9mcmFtZV90aW1l X3VzKGNzdGF0ZSk7Cj4gKwltb2RfZGVsYXllZF93b3JrKHN5c3RlbV93cSwgJmRldl9wcml2LT5j c3IuaWRsZV93b3JrLAo+ICsJCQkgdXNlY3NfdG9famlmZmllcyhkZWxheSkpOwo+ICsKPiArdW5s b2NrOgo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ICt9Cj4gKwo+ICt2 b2lkIHRnbF9lbmFibGVfcHNyMl9kZWVwX3NsZWVwX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gK3sKPiArCXRnbF9zZXRfdGFyZ2V0X2RjX3N0YXRlKGRldl9wcml2LCBE Q19TVEFURV9FTl9VUFRPX0RDNik7Cj4gKwl0Z2xfcHNyMl9kZWVwX3NsZWVwX2VuYWJsZShkZXZf cHJpdik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHRnbF9kYzVfaWRsZV90aHJlYWQoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPQo+ICsJCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmRldl9wcml2KSwgY3NyLmlk bGVfd29yay53b3JrKTsKPiArCj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ ICsJLyogSWYgZGVsYXllZCB3b3JrIGlzIHBlbmRpbmcsIGl0IGlzIG5vdCBpZGxlICovCj4gKwlp ZiAoZGVsYXllZF93b3JrX3BlbmRpbmcoJmRldl9wcml2LT5jc3IuaWRsZV93b3JrKSkKPiArCQln b3RvIHVubG9jazsKPiArCj4gKwlEUk1fREVCVUdfS01TKCJEQzUvNiBpZGxlIHRocmVhZFxuIik7 Cj4gKwl0Z2xfZW5hYmxlX3BzcjJfZGVlcF9zbGVlcF9kYzYoZGV2X3ByaXYpOwo+ICt1bmxvY2s6 Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gK30KPiArCj4gIHN0YXRp YyB2b2lkCj4gIGFsbG93ZWRfZGNfbWFza190b190YXJnZXRfZGNfc3RhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gQEAgLTQyNDEsNiArNDMyNCw3IEBAIGludCBp bnRlbF9wb3dlcl9kb21haW5zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ICAKPiAgCUlOSVRfREVMQVlFRF9XT1JLKCZwb3dlcl9kb21haW5zLT5hc3luY19wdXRfd29y aywKPiAgCQkJICBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dF9hc3luY193b3JrKTsKPiArCUlOSVRf REVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+Y3NyLmlkbGVfd29yaywgdGdsX2RjNV9pZGxlX3RocmVh ZCk7CgpMZXQncyBtb3ZlIGNzci5pZGxlX3dvcmsgdG8gcHNyLmlkbGVfd29yayBhbmQgYWxsIHRo ZSBhYm92ZQpmdW5jcy9jaGFuZ2VzIHlvdSBhZGRlZCBub3cgaW4gaW50ZWxfZGlzcGxheV9wb3dl ci5jIHRvIGludGVsX3Bzci5jLCBhcwphbGwgb2YgaXQgaXMgcHNyIHNwZWNpZmljLgoKPiAgCj4g IAkvKgo+ICAJICogVGhlIGVuYWJsaW5nIG9yZGVyIHdpbGwgYmUgZnJvbSBsb3dlciB0byBoaWdo ZXIgaW5kZXhlZCB3ZWxscywKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXlfcG93ZXIuaAo+IGluZGV4IDRlNzZmOTNiYmVlNS4uMGViZGVhYjI2ZDhl IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxh eV9wb3dlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5X3Bvd2VyLmgKPiBAQCAtMTAsNiArMTAsNyBAQAo+ICAjaW5jbHVkZSAiaW50ZWxfcnVudGlt ZV9wbS5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfc3ByaXRlLmgiCj4gICNpbmNsdWRlICJpOTE1X3Jl Zy5oIgo+ICsjaW5jbHVkZSAiaW50ZWxfZnJvbnRidWZmZXIuaCIKPiAgCj4gIHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlOwo+ICBzdHJ1Y3QgaW50ZWxfZW5jb2RlcjsKPiBAQCAtMjY2LDYgKzI2Nyw5 IEBAIHZvaWQgdGdsX2RjM2NvX2V4aXRsaW5lX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICB2b2lkIHRnbF9kYzNjb19leGl0bGluZV9nZXRfY29uZmlnKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgdm9pZCB0Z2xfY2xlYXJfcHNy Ml90cmFuc2NvZGVyX2V4aXRsaW5lKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0 ZSk7Cj4gIHZvaWQgdGdsX3NldF9wc3IyX3RyYW5zY29kZXJfZXhpdGxpbmUoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnN0YXRlKTsKPiArdm9pZCB0Z2xfZGMzY29fZmx1c2goc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCSAgICAgdW5zaWduZWQgaW50IGZyb250 YnVmZmVyX2JpdHMsIGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbik7Cj4gK3ZvaWQgdGdsX2VuYWJs ZV9wc3IyX2RlZXBfc2xlZXBfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 Cj4gIAo+ICBjb25zdCBjaGFyICoKPiAgaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKGVu dW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mcm9udGJ1ZmZlci5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mcm9udGJ1ZmZlci5jCj4gaW5kZXggZmM0MGRjMWZk YmNjLi5jM2IxMGY2ZTQzODIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9mcm9udGJ1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9mcm9udGJ1ZmZlci5jCj4gQEAgLTkwLDYgKzkwLDcgQEAgc3RhdGljIHZvaWQg ZnJvbnRidWZmZXJfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gIAltaWdo dF9zbGVlcCgpOwo+ICAJaW50ZWxfZWRwX2RycnNfZmx1c2goaTkxNSwgZnJvbnRidWZmZXJfYml0 cyk7Cj4gIAlpbnRlbF9wc3JfZmx1c2goaTkxNSwgZnJvbnRidWZmZXJfYml0cywgb3JpZ2luKTsK PiArCXRnbF9kYzNjb19mbHVzaChpOTE1LCBmcm9udGJ1ZmZlcl9iaXRzLCBvcmlnaW4pOwoKTGV0 J3MgY2FsbCB0aGUgYWJvdmUgZnJvbSBpbnRlbF9wc3JfZmx1c2goKSBpbnN0ZWFkIG9mIGhhdmlu ZyB0byBleHBvcnQKaXQuCgo+ICAJaW50ZWxfZmJjX2ZsdXNoKGk5MTUsIGZyb250YnVmZmVyX2Jp dHMsIG9yaWdpbik7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3Bzci5jCj4gaW5kZXggYmYwYjc0MWQzMjQzLi41ZmFhZjM1YmE0ZmYgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKPiBAQCAtNTM0LDEwICs1MzQsNDQgQEAg dHJhbnNjb2Rlcl9oYXNfcHNyMihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVu dW0gdHJhbnNjb2RlciB0cmFucykKPiAgCQlyZXR1cm4gdHJhbnMgPT0gVFJBTlNDT0RFUl9FRFA7 Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIHBzcjJfcHJvZ3JhbV9pZGxlX2ZyYW1lcyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCQkgICAgIHUzMiBpZGxlX2ZyYW1lcykK PiArewo+ICsJdTMyIHZhbDsKPiArCj4gKwlpZGxlX2ZyYW1lcyA8PD0gIEVEUF9QU1IyX0lETEVf RlJBTUVfU0hJRlQ7Cj4gKwl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUjJfQ1RMKGRldl9wcml2LT5w c3IudHJhbnNjb2RlcikpOwo+ICsJdmFsICY9IH5FRFBfUFNSMl9JRExFX0ZSQU1FX01BU0s7Cj4g Kwl2YWwgfD0gaWRsZV9mcmFtZXM7Cj4gKwlJOTE1X1dSSVRFKEVEUF9QU1IyX0NUTChkZXZfcHJp di0+cHNyLnRyYW5zY29kZXIpLCB2YWwpOwo+ICt9Cj4gKwo+ICt2b2lkIHRnbF9wc3IyX2RlZXBf c2xlZXBfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiAr CXBzcjJfcHJvZ3JhbV9pZGxlX2ZyYW1lcyhkZXZfcHJpdiwgMCk7Cj4gK30KPiArCj4gK3ZvaWQg dGdsX3BzcjJfZGVlcF9zbGVlcF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICt7Cj4gKwlpbnQgaWRsZV9mcmFtZXM7Cj4gKwo+ICsJLyoKPiArCSAqIExldCdzIHVz ZSA2IGFzIHRoZSBtaW5pbXVtIHRvIGNvdmVyIGFsbCBrbm93biBjYXNlcyBpbmNsdWRpbmcgdGhl Cj4gKwkgKiBvZmYtYnktb25lIGlzc3VlIHRoYXQgSFcgaGFzIGluIHNvbWUgY2FzZXMuCj4gKwkg Ki8KPiArCWlkbGVfZnJhbWVzID0gbWF4KDYsIGRldl9wcml2LT52YnQucHNyLmlkbGVfZnJhbWVz KTsKPiArCWlkbGVfZnJhbWVzID0gbWF4KGlkbGVfZnJhbWVzLCBkZXZfcHJpdi0+cHNyLnNpbmtf c3luY19sYXRlbmN5ICsgMSk7Cj4gKwlwc3IyX3Byb2dyYW1faWRsZV9mcmFtZXMoZGV2X3ByaXYs IGlkbGVfZnJhbWVzKTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgdGdsX2Rpc2FsbG93X2RjM2Nv X29uX3BzcjJfZXhpdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAg CWlmICghZGV2X3ByaXYtPnBzci5kYzNjb19leGl0bGluZSkKPiAgCQlyZXR1cm47Cj4gKwo+ICsJ Y2FuY2VsX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPmNzci5pZGxlX3dvcmspOwo+ICsJLyogQmVm b3JlIFBTUjIgZXhpdCBkaXNhbGxvdyBkYzNjbyovCj4gKwl0Z2xfZW5hYmxlX3BzcjJfZGVlcF9z bGVlcF9kYzYoZGV2X3ByaXYpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgYm9vbCBpbnRlbF9wc3IyX2Nv bmZpZ192YWxpZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9wc3IuaAo+IGluZGV4IDQ2ZTRkZThiOGNkNS4uNzVhOTg2MmYzNmZk IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5oCj4gQEAgLTM1 LDUgKzM1LDcgQEAgdm9pZCBpbnRlbF9wc3Jfc2hvcnRfcHVsc2Uoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCk7Cj4gIGludCBpbnRlbF9wc3Jfd2FpdF9mb3JfaWRsZShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUsCj4gIAkJCSAgICB1MzIgKm91dF92YWx1ZSk7 Cj4gIGJvb2wgaW50ZWxfcHNyX2VuYWJsZWQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4g K3ZvaWQgdGdsX3BzcjJfZGVlcF9zbGVlcF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7Cj4gK3ZvaWQgdGdsX3BzcjJfZGVlcF9zbGVlcF9lbmFibGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgCj4gICNlbmRpZiAvKiBfX0lOVEVMX1BTUl9I X18gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBjM2FiYTA3ODI2MmYuLmVkM2Rk NDc1N2Y3MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0zNDAsNiArMzQwLDcg QEAgc3RydWN0IGludGVsX2NzciB7Cj4gIAl1MzIgZGNfc3RhdGU7Cj4gIAl1MzIgdGFyZ2V0X2Rj X3N0YXRlOwo+ICAJdTMyIGFsbG93ZWRfZGNfbWFzazsKPiArCXN0cnVjdCBkZWxheWVkX3dvcmsg aWRsZV93b3JrOwo+ICAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Cj4gIH07Cj4gIAo+IC0tIAo+ IDIuMjEuMAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=