From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH v10 5/6] drm/i915/tgl: Switch between dc3co and dc5 based on display idleness Date: Tue, 1 Oct 2019 12:54:28 +0300 Message-ID: <20191001095428.GC21284@ideak-desk.fi.intel.com> References: <20190930174137.15233-1-anshuman.gupta@intel.com> <20190930174137.15233-6-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 mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id B4ABC6E5B6 for ; Tue, 1 Oct 2019 09:55:35 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190930174137.15233-6-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 T24gTW9uLCBTZXAgMzAsIDIwMTkgYXQgMTE6MTE6MzZQTSArMDUzMCwgQW5zaHVtYW4gR3VwdGEg 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 djY6IFVzZWQgZGMzY29fZXhpdGxpbmUgY2hlY2sgaW5zdGVhZCBvZiBUR0wgYW5kIGRjM2NvIGFs bG93ZWRfZGNfbWFzawo+ICAgICBjaGVja3MsIHVzZWQgZGVsYXllZF93b3JrX3BlbmRpbmcgd2l0 aCB0aGUgcHNyIGxvY2sgYW5kIHJlbW92ZWQgdGhlCj4gICAgIHBzcjJfZGVlcF9zbHBfZGlzYWJs ZWQgZmxhZy4gW0ltcmVdCj4gdjc6IENvZGUgcmVmYWN0b3JpbmcgbW92ZWQgdGhlIG1vc3Qgb2Yg ZnVuY3Rpb25hbCBjb2RlIHRvIGludGVfcHNyLmMgW0ltcmVdCj4gICAgIFVzaW5nIGZyb250YnVm ZmVyX2JpdHMgb24gcHNyLnBpcGUgY2hlY2sgaW5zdGVhZCBvZgo+ICAgICBidXN5X2Zyb250YnVm ZmVyX2JpdHMuIFtJbXJlXQo+IAo+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwu Y29tPgo+IENjOiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+Cj4gQ2M6IEFuaW1lc2gg TWFubmEgPGFuaW1lc2gubWFubmFAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEFuc2h1bWFu IEd1cHRhIDxhbnNodW1hbi5ndXB0YUBpbnRlbC5jb20+Cj4gLS0tCj4gIC4uLi9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYyAgICB8ICA0NSArKysrKysrKwo+ICAuLi4vZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmggICAgfCAgIDIgKwo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jICAgICAgfCAxMDkgKysrKysrKysrKysr KysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8 ICAgMiArCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTU3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5X3Bvd2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXlfcG93ZXIuYwo+IGluZGV4IDY3YmE5MmRkODM2Ni4uOWZkZGViZmRhMTY5IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMK PiBAQCAtODg2LDYgKzg4Niw1MSBAQCBsb29rdXBfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlyZXR1cm4gJmRldl9wcml2LT5wb3dlcl9kb21haW5zLnBv d2VyX3dlbGxzWzBdOwo+ICB9Cj4gIAo+ICsvKioKPiArICogaW50ZWxfZGlzcGxheV9wb3dlcl9z ZXRfdGFyZ2V0X2RjX3N0YXRlIC0gU2V0IHRhcmdldCBkYyBzdGF0ZS4KPiArICogQGRldl9wcml2 OiBpOTE1IGRldmljZQo+ICsgKiBAc3RhdGU6IHN0YXRlIHdoaWNoIG5lZWRzIHRvIGJlIHNldCBh cyB0YXJnZXRfZGNfc3RhdGUuCj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gc2V0IHRoZSAiREMg b2ZmIiBwb3dlciB3ZWxsIHRhcmdldF9kY19zdGF0ZSwKPiArICogYmFzZWQgdXBvbiB0aGlzIHRh cmdldF9kY19zdHN0ZSwgIkRDIG9mZiIgcG93ZXIgd2VsbCB3aWxsCj4gKyAqIGVuYWJsZSBkZXNp cmVkIERDIHN0YXRlLgo+ICsgKi8KPiArdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3NldF90YXJn ZXRfZGNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkJCSAg ICAgdTMyIHN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxs Owo+ICsJYm9vbCBkY19vZmZfZW5hYmxlZDsKPiArCXN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMg KnBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7Cj4gKwo+ICsJbXV0ZXhf bG9jaygmcG93ZXJfZG9tYWlucy0+bG9jayk7Cj4gKwlwb3dlcl93ZWxsID0gbG9va3VwX3Bvd2Vy X3dlbGwoZGV2X3ByaXYsIFNLTF9ESVNQX0RDX09GRik7Cj4gKwo+ICsJaWYgKFdBUk5fT04oIXBv d2VyX3dlbGwpKQo+ICsJCWdvdG8gdW5sb2NrOwo+ICsKPiArCXN0YXRlID0gc2FuaXRpemVfdGFy Z2V0X2RjX3N0YXRlKGRldl9wcml2LCBzdGF0ZSk7Cj4gKwo+ICsJaWYgKHN0YXRlID09IGRldl9w cml2LT5jc3IudGFyZ2V0X2RjX3N0YXRlKQo+ICsJCWdvdG8gdW5sb2NrOwo+ICsKPiArCWRjX29m Zl9lbmFibGVkID0gcG93ZXJfd2VsbC0+ZGVzYy0+b3BzLT5pc19lbmFibGVkKGRldl9wcml2LAo+ ICsJCQkJCQkJICAgcG93ZXJfd2VsbCk7Cj4gKwkvKgo+ICsJICogSWYgREMgb2ZmIHBvd2VyIHdl bGwgaXMgZGlzYWJsZWQsIG5lZWQgdG8gZW5hYmxlIGFuZCBkaXNhYmxlIHRoZQo+ICsJICogREMg b2ZmIHBvd2VyIHdlbGwgdG8gZWZmZWN0IHRhcmdldCBEQyBzdGF0ZS4KPiArCSAqLwo+ICsJaWYg KCFkY19vZmZfZW5hYmxlZCkKPiArCQlwb3dlcl93ZWxsLT5kZXNjLT5vcHMtPmVuYWJsZShkZXZf cHJpdiwgcG93ZXJfd2VsbCk7Cj4gKwo+ICsJZGV2X3ByaXYtPmNzci50YXJnZXRfZGNfc3RhdGUg PSBzdGF0ZTsKPiArCj4gKwlpZiAoIWRjX29mZl9lbmFibGVkKQo+ICsJCXBvd2VyX3dlbGwtPmRl c2MtPm9wcy0+ZGlzYWJsZShkZXZfcHJpdiwgcG93ZXJfd2VsbCk7Cj4gKwo+ICt1bmxvY2s6Cj4g KwltdXRleF91bmxvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwo+ICt9Cj4gKwo+ICBzdGF0aWMg dm9pZCBhc3NlcnRfY2FuX2VuYWJsZV9kYzUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICB7Cj4gIAlib29sIHBnMl9lbmFibGVkID0gaW50ZWxfZGlzcGxheV9wb3dlcl93ZWxs X2lzX2VuYWJsZWQoZGV2X3ByaXYsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmgKPiBpbmRleCA3ZDcyZmFmNDc0YjIuLjFkYTA0ZjNl MGZiMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXlfcG93ZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV9wb3dlci5oCj4gQEAgLTI1Nyw2ICsyNTcsOCBAQCB2b2lkIGludGVsX2Rpc3BsYXlf cG93ZXJfc3VzcGVuZF9sYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKPiAgdm9p ZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSk7Cj4gIHZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9zdXNwZW5kKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KTsKPiAgdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3Jlc3VtZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gK3ZvaWQgaW50ZWxfZGlzcGxheV9wb3dl cl9zZXRfdGFyZ2V0X2RjX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiArCQkJCQkgICAgIHUzMiBzdGF0ZSk7Cj4gIAo+ICBjb25zdCBjaGFyICoKPiAgaW50ZWxfZGlz cGxheV9wb3dlcl9kb21haW5fc3RyKGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9t YWluKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9w c3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKPiBpbmRleCBi M2M3ZWVmNTNiZjMuLjZhNmYxMDMxZDI5YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9wc3IuYwo+IEBAIC01MzQsNiArNTM0LDY4IEBAIHRyYW5zY29kZXJfaGFzX3Bz cjIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHRyYW5zY29kZXIgdHJh bnMpCj4gIAkJcmV0dXJuIHRyYW5zID09IFRSQU5TQ09ERVJfRURQOwo+ICB9Cj4gIAo+ICtzdGF0 aWMgdm9pZCBwc3IyX3Byb2dyYW1faWRsZV9mcmFtZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICsJCQkJICAgICB1MzIgaWRsZV9mcmFtZXMpCj4gK3sKPiArCXUzMiB2YWw7 Cj4gKwo+ICsJaWRsZV9mcmFtZXMgPDw9ICBFRFBfUFNSMl9JRExFX0ZSQU1FX1NISUZUOwo+ICsJ dmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpKTsK PiArCXZhbCAmPSB+RURQX1BTUjJfSURMRV9GUkFNRV9NQVNLOwo+ICsJdmFsIHw9IGlkbGVfZnJh bWVzOwo+ICsJSTkxNV9XUklURShFRFBfUFNSMl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVy KSwgdmFsKTsKPiArfQoKU29tZSBtaW5vciBpc3N1ZXMsIGNvdWxkIGJlIGFsc28gYWRkcmVzc2Vk IGFzIGEgZm9sbG93LXVwOgoKPiArCj4gK3N0YXRpYyB2b2lkIHRnbF9wc3IyX2RlZXBfc2xlZXBf ZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKClRoaXMgaXMg YmV0dGVyIG5hbWVkIHRnbF9wc3IyX2VuYWJsZV9kYzNjbygpLCBtb3ZpbmcgdGhlCmludGVsX2Rp c3BsYXlfcG93ZXJfc2V0X3RhcmdldF9kY19zdGF0ZShkZXZfcHJpdiwgRENfU1RBVEVfRU5fREMz Q08pOwpjYWxsIHRvIHRoaXMgZnVuY3Rpb24gdG9vLgoKPiArCXBzcjJfcHJvZ3JhbV9pZGxlX2Zy YW1lcyhkZXZfcHJpdiwgMCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHRnbF9wc3IyX2RlZXBf c2xlZXBfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJ aW50IGlkbGVfZnJhbWVzOwo+ICsKPiArCS8qCj4gKwkgKiBMZXQncyB1c2UgNiBhcyB0aGUgbWlu aW11bSB0byBjb3ZlciBhbGwga25vd24gY2FzZXMgaW5jbHVkaW5nIHRoZQo+ICsJICogb2ZmLWJ5 LW9uZSBpc3N1ZSB0aGF0IEhXIGhhcyBpbiBzb21lIGNhc2VzLgo+ICsJICovCj4gKwlpZGxlX2Zy YW1lcyA9IG1heCg2LCBkZXZfcHJpdi0+dmJ0LnBzci5pZGxlX2ZyYW1lcyk7Cj4gKwlpZGxlX2Zy YW1lcyA9IG1heChpZGxlX2ZyYW1lcywgZGV2X3ByaXYtPnBzci5zaW5rX3N5bmNfbGF0ZW5jeSAr IDEpOwo+ICsJcHNyMl9wcm9ncmFtX2lkbGVfZnJhbWVzKGRldl9wcml2LCBpZGxlX2ZyYW1lcyk7 Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHRnbF9lbmFibGVfcHNyMl9kZWVwX3NsZWVwX2RjNihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKClRoaXMgaXMgYmV0dGVyIG5h bWVkIHRnbF9wc3IyX2Rpc2FibGVfZGMzY28oKS4KCj4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3Nl dF90YXJnZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0VOX1VQVE9fREM2KTsKPiArCXRn bF9wc3IyX2RlZXBfc2xlZXBfZW5hYmxlKGRldl9wcml2KTsKCnRnbF9wc3IyX2RlZXBfc2xlZXBf ZW5hYmxlKCkgY291bGQgYmUgaW5saW5lZCBoZXJlLCBzaW5jZSB0aGVyZSBpcyBubwpvdGhlciB1 c2VyIGZvciBpdC4gVGhhdCB3b3VsZCBtYWtlIHRoZSBmdW5jdGlvbiBtb3JlIHN5bW1ldHJpYyB3 aXRoCnRnbF9wc3IyX2VuYWJsZV9kYzNjbygpLgoKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdGds X2RjNV9pZGxlX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gK3sKPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gKwkJY29udGFpbmVyX29mKHdvcmssIHR5 cGVvZigqZGV2X3ByaXYpLCBwc3IuaWRsZV93b3JrLndvcmspOwo+ICsKPiArCW11dGV4X2xvY2so JmRldl9wcml2LT5wc3IubG9jayk7Cj4gKwkvKiBJZiBkZWxheWVkIHdvcmsgaXMgcGVuZGluZywg aXQgaXMgbm90IGlkbGUgKi8KPiArCWlmIChkZWxheWVkX3dvcmtfcGVuZGluZygmZGV2X3ByaXYt PnBzci5pZGxlX3dvcmspKQo+ICsJCWdvdG8gdW5sb2NrOwo+ICsKPiArCURSTV9ERUJVR19LTVMo IkRDNS82IGlkbGUgdGhyZWFkXG4iKTsKPiArCXRnbF9lbmFibGVfcHNyMl9kZWVwX3NsZWVwX2Rj NihkZXZfcHJpdik7Cj4gK3VubG9jazoKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBzci5s b2NrKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdGdsX2Rpc2FsbG93X2RjM2NvX29uX3BzcjJf ZXhpdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCWlmICghZGV2 X3ByaXYtPnBzci5kYzNjb19leGl0bGluZSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJY2FuY2VsX2Rl bGF5ZWRfd29yaygmZGV2X3ByaXYtPnBzci5pZGxlX3dvcmspOwo+ICsJLyogQmVmb3JlIFBTUjIg ZXhpdCBkaXNhbGxvdyBkYzNjbyovCj4gKwl0Z2xfZW5hYmxlX3BzcjJfZGVlcF9zbGVlcF9kYzYo ZGV2X3ByaXYpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgYm9vbCBpbnRlbF9wc3IyX2NvbmZpZ192YWxp ZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gQEAgLTc0Niw2ICs4MDgsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gIAlkZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxlZCA9IGludGVsX3BzcjJfZW5hYmxlZChk ZXZfcHJpdiwgY3J0Y19zdGF0ZSk7Cj4gIAlkZXZfcHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJf Yml0cyA9IDA7Cj4gIAlkZXZfcHJpdi0+cHNyLnBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0YyktPnBpcGU7Cj4gKwlkZXZfcHJpdi0+cHNyLmRjM2NvX2V4aXRsaW5lID0g Y3J0Y19zdGF0ZS0+ZGMzY29fZXhpdGxpbmU7Cj4gIAlkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIg PSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiAgCj4gIAkvKgo+IEBAIC04MjksNiArODky LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2V4aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICAJfQo+ICAKPiAgCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxlZCkg ewo+ICsJCXRnbF9kaXNhbGxvd19kYzNjb19vbl9wc3IyX2V4aXQoZGV2X3ByaXYpOwo+ICAJCXZh bCA9IEk5MTVfUkVBRChFRFBfUFNSMl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7Cj4g IAkJV0FSTl9PTighKHZhbCAmIEVEUF9QU1IyX0VOQUJMRSkpOwo+ICAJCXZhbCAmPSB+RURQX1BT UjJfRU5BQkxFOwo+IEBAIC05MDEsNiArOTY1LDcgQEAgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZShz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAKPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PnBzci5sb2NrKTsKPiAgCWNhbmNlbF93b3JrX3N5bmMoJmRldl9wcml2LT5wc3Iud29yayk7Cj4g KwljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmRldl9wcml2LT5wc3IuaWRsZV93b3JrKTsKPiAg fQo+ICAKPiAgc3RhdGljIHZvaWQgcHNyX2ZvcmNlX2h3X3RyYWNraW5nX2V4aXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IEBAIC0xMjA4LDYgKzEyNzMsNDUgQEAgdm9pZCBp bnRlbF9wc3JfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g IAltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gIH0KPiAgCj4gKy8qCj4gKyAq IFdoZW4gd2Ugd2lsbCBiZSBjb21wbGV0ZWx5IHJlbHkgb24gUFNSMiBTL1cgdHJhY2tpbmcgaW4g ZnV0dXJlLAo+ICsgKiBpbnRlbF9wc3JfZmx1c2goKSB3aWxsIGludmFsaWRhdGUgYW5kIGZsdXNo IHRoZSBQU1IgZm9yIE9SSUdJTl9GTElQCj4gKyAqIGV2ZW50IGFsc28gdGhlcmVmb3JlIHRnbF9k YzNjb19mbHVzaCgpIHJlcXVpcmUgdG8gYmUgY2hhbmdlZAo+ICsgKiBhY2Nyb2RpbmdseSBpbiBm dXR1cmUuCj4gKyAqLwo+ICtzdGF0aWMgdm9pZAo+ICt0Z2xfZGMzY29fZmx1c2goc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCXVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9i aXRzLCBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pCj4gK3sKPiArCXUzMiBkZWxheTsKPiArCj4g KwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ICsKPiArCWlmICghZGV2X3ByaXYt PnBzci5kYzNjb19leGl0bGluZSkKPiArCQlnb3RvIHVubG9jazsKPiArCj4gKwlpZiAoIWRldl9w cml2LT5wc3IucHNyMl9lbmFibGVkIHx8ICFkZXZfcHJpdi0+cHNyLmFjdGl2ZSkKPiArCQlnb3Rv IHVubG9jazsKPiArCj4gKwkvKgo+ICsJICogQXQgZXZlcnkgZnJvbnRidWZmZXIgZmx1c2ggZmxp cCBldmVudCBtb2RpZmllZCBkZWxheSBvZiBkZWxheWVkIHdvcmssCj4gKwkgKiB3aGVuIGRlbGF5 ZWQgd29yayBzY2hlZHVsZXMgdGhhdCBtZWFucyBkaXNwbGF5IGhhcyBiZWVuIGlkbGUuCj4gKwkg Ki8KPiArCWlmICghKGZyb250YnVmZmVyX2JpdHMgJgo+ICsJICAgIElOVEVMX0ZST05UQlVGRkVS X0FMTF9NQVNLKGRldl9wcml2LT5wc3IucGlwZSkpKQo+ICsJCWdvdG8gdW5sb2NrOwo+ICsKPiAr CXRnbF9wc3IyX2RlZXBfc2xlZXBfZGlzYWJsZShkZXZfcHJpdik7Cj4gKwlpbnRlbF9kaXNwbGF5 X3Bvd2VyX3NldF90YXJnZXRfZGNfc3RhdGUoZGV2X3ByaXYsIERDX1NUQVRFX0VOX0RDM0NPKTsK PiArCS8qIERDNS9EQzYgcmVxdWlyZWQgaWRsZSBmcmFtZXMgPSA2ICovCj4gKwlkZWxheSA9IDYg KiBkZXZfcHJpdi0+cHNyLmRjM2NvX2ZyYW1lX3RpbWVfdXM7Cj4gKwltb2RfZGVsYXllZF93b3Jr KHN5c3RlbV93cSwgJmRldl9wcml2LT5wc3IuaWRsZV93b3JrLAo+ICsJCQkgdXNlY3NfdG9famlm ZmllcyhkZWxheSkpOwo+ICsKPiArdW5sb2NrOgo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ cHNyLmxvY2spOwo+ICt9Cj4gKwo+ICAvKioKPiAgICogaW50ZWxfcHNyX2ZsdXNoIC0gRmx1c2gg UFNSCj4gICAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UKPiBAQCAtMTIyNyw4ICsxMzMxLDEwIEBA IHZvaWQgaW50ZWxfcHNyX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAgCWlmICghQ0FOX1BTUihkZXZfcHJpdikpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWlmIChvcmln aW4gPT0gT1JJR0lOX0ZMSVApCj4gKwlpZiAob3JpZ2luID09IE9SSUdJTl9GTElQKSB7Cj4gKwkJ dGdsX2RjM2NvX2ZsdXNoKGRldl9wcml2LCBmcm9udGJ1ZmZlcl9iaXRzLCBvcmlnaW4pOwo+ICAJ CXJldHVybjsKPiArCX0KPiAgCj4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ ICAJaWYgKCFkZXZfcHJpdi0+cHNyLmVuYWJsZWQpIHsKPiBAQCAtMTI4NCw2ICsxMzkwLDcgQEAg dm9pZCBpbnRlbF9wc3JfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g IAkJZGV2X3ByaXYtPnBzci5saW5rX3N0YW5kYnkgPSBkZXZfcHJpdi0+dmJ0LnBzci5mdWxsX2xp bms7Cj4gIAo+ICAJSU5JVF9XT1JLKCZkZXZfcHJpdi0+cHNyLndvcmssIGludGVsX3Bzcl93b3Jr KTsKPiArCUlOSVRfREVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+cHNyLmlkbGVfd29yaywgdGdsX2Rj NV9pZGxlX3RocmVhZCk7Cj4gIAltdXRleF9pbml0KCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ICB9 Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDdiMjMxOGM1YzdhMC4uOTgwYWYw NmEwNjA3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTUwMiw2ICs1MDIsOCBA QCBzdHJ1Y3QgaTkxNV9wc3Igewo+ICAJYm9vbCBzaW5rX25vdF9yZWxpYWJsZTsKPiAgCWJvb2wg aXJxX2F1eF9lcnJvcjsKPiAgCXUxNiBzdV94X2dyYW51bGFyaXR5Owo+ICsJdTMyIGRjM2NvX2V4 aXRsaW5lOwo+ICsJc3RydWN0IGRlbGF5ZWRfd29yayBpZGxlX3dvcms7Cj4gIH07Cj4gIAo+ICAj ZGVmaW5lIFFVSVJLX0xWRFNfU1NDX0RJU0FCTEUgKDE8PDEpCj4gLS0gCj4gMi4yMS4wCj4gCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==