From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 2/8] drm/i915: Introduce mode for asynchronous capture of OA counters Date: Mon, 22 Jun 2015 17:59:51 +0200 Message-ID: <20150622155951.GD25769@phenom.ffwll.local> References: <1434966619-3979-1-git-send-email-sourab.gupta@intel.com> <1434966619-3979-3-git-send-email-sourab.gupta@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f49.google.com (mail-wg0-f49.google.com [74.125.82.49]) by gabe.freedesktop.org (Postfix) with ESMTP id 387EA72021 for ; Mon, 22 Jun 2015 08:57:04 -0700 (PDT) Received: by wgck11 with SMTP id k11so18117139wgc.0 for ; Mon, 22 Jun 2015 08:57:03 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1434966619-3979-3-git-send-email-sourab.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: sourab.gupta@intel.com Cc: intel-gfx@lists.freedesktop.org, Insoo Woo , Peter Zijlstra , Jabin Wu List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMjIsIDIwMTUgYXQgMDM6MjA6MTNQTSArMDUzMCwgc291cmFiLmd1cHRhQGlu dGVsLmNvbSB3cm90ZToKPiBGcm9tOiBTb3VyYWIgR3VwdGEgPHNvdXJhYi5ndXB0YUBpbnRlbC5j b20+Cj4gCj4gVGhlIHBlcmYgZXZlbnQgZnJhbWV3b3JrIHN1cHBvcnRzIHBlcmlvZGljIGNhcHR1 cmUgb2YgT0EgY291bnRlciBzbmFwc2hvdHMuIFRoZQo+IHJhdyBPQSByZXBvcnRzIGdlbmVyYXRl ZCBieSBIVyBhcmUgZm9yd2FyZGVkIHRvIHVzZXJzcGFjZSB1c2luZyBwZXJmIGFwaXMuIFRoaXMK PiBwYXRjaCBsb29rcyB0byBleHRlbmQgdGhlIHBlcmYgcG11IGludHJvZHVjZWQgZWFybGllciB0 byBzdXBwb3J0IHRoZSBjYXB0dXJlIG9mCj4gYXN5bmNocm9ub3VzIE9BIHNuYXBzaG90cyAoaW4g YWRkaXRpb24gdG8gcGVyaW9kaWMgc25hcHNob3RzKS4gVGhlc2UKPiBhc3luY2hyb25vdXMgc25h cHNob3RzIHdpbGwgYmUgZm9yd2FyZGVkIGJ5IHRoZSBwZXJmIHBtdSB0byB1c2Vyc3BhY2UgYWxv bmdzaWRlCj4gcGVyaW9kaWMgc25hcHNob3RzIGluIHRoZSBzYW1lIHBlcmYgcmluZ2J1ZmZlci4K PiBUaGlzIHBhdGNoIGludHJvZHVjZXMgZmllbGRzIGZvciBlbmFibGluZyB0aGUgYXN5bmNocm9u b3VzIGNhcHR1cmUgbW9kZSBvZiBPQQo+IGNvdW50ZXIgc25hcHNob3RzLgo+IAo+IFRoZXJlIG1h eSBiZSB1c2VjYXNlcyB3aGVyZWluIHdlIG5lZWQgbW9yZSB0aGFuIHBlcmlvZGljIE9BIGNhcHR1 cmUgbW9kZSB3aGljaAo+IGlzIHN1cHBvcnRlZCBieSBwZXJmX2V2ZW50IGN1cnJlbnRseS4gV2Ug bWF5IG5lZWQgdG8gaW5zZXJ0IHRoZSBjb21tYW5kcyBpbnRvCj4gdGhlIHJpbmcgdG8gZHVtcCB0 aGUgT0EgY291bnRlciBzbmFwc2hvdHMgYXQgc29tZSBhc3luY2hyb25vdXMgcG9pbnRzIGR1cmlu Zwo+IHdvcmtsb2FkIGV4ZWN1dGlvbi4KPiBUaGlzIG1vZGUgaXMgcHJpbWFyaWx5IHVzZWQgZm9y IHR3byB1c2VjYXNlczoKPiAgICAgLSBBYmlsaXR5IHRvIGNhcHR1cmUgc3lzdGVtIHdpZGUgbWV0 cmljcy4gVGhlIHJlcG9ydHMgY2FwdHVyZWQgc2hvdWxkIGJlCj4gICAgICAgYWJsZSB0byBiZSBt YXBwZWQgYmFjayB0byBpbmRpdmlkdWFsIGNvbnRleHRzLgo+ICAgICAtIEFiaWxpdHkgdG8gaW5q ZWN0IHRhZ3MgZm9yIHdvcmssIGludG8gdGhlIHJlcG9ydHMuIFRoaXMgcHJvdmlkZXMKPiAgICAg ICB2aXNpYmlsaXR5IGludG8gdGhlIG11bHRpcGxlIHN0YWdlcyBvZiB3b3JrIHdpdGhpbiBzaW5n bGUgY29udGV4dC4KPiAKPiBUaGUgYXN5bmNocm9ub3VzIHJlcG9ydHMgZ2VuZXJhdGVkIGluIHRo aXMgd2F5ICh1c2luZyBNSV9SRVBPUlRfUEVSRl9DT1VOVAo+IGNvbW1hbmRzKSwgd2lsbCBiZSBm b3J3YXJkZWQgdG8gdXNlcnNwYWNlIGFmdGVyIGFwcGVuZGluZyBhIGZvb3Rlciwgd2hpY2ggd2ls bAo+IGhhdmUgdGhpcyBtZXRhZGF0YSBpbmZvcm1hdGlvbi4gVGhpcyB3aWxsIGVuYWJsZSB0aGUg dXNlY2FzZXMgbWVudGlvbmVkIGFib3ZlLgo+IAo+IFRoaXMgbWF5IGFsc28gYmUgc2VlbiBhcyBh IHdheSB0byBvdmVyY29tZSBhIGxpbWl0YXRpb24gb2YgSGFzd2VsbCwgd2hpY2gKPiBkb2Vzbid0 IHdyaXRlIG91dCBhIGNvbnRleHQgSUQgd2l0aCByZXBvcnRzIGFuZCBoYW5kbGluZyB0aGlzIGlu IHRoZSBrZXJuZWwKPiBtYWtlcyBzZW5zZSB3aGVuIHdlIHBsYW4gZm9yIGNvbXBhdGliaWxpdHkg d2l0aCBCcm9hZHdlbGwgd2hpY2ggZG9lc24ndCBpbmNsdWRlCj4gY29udGV4dCBpZCBpbiByZXBv cnRzLgo+IAo+IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhbiBhZGRpdGlvbmFsIGZpZWxkIGluIHRo ZSBvYSBhdHRyIHN0cnVjdHVyZQo+IGZvciBzdXBwb3J0aW5nIHRoaXMgdHlwZSBvZiBjYXB0dXJl LiBUaGUgZGF0YSB0aHVzIGNhcHR1cmVkIG5lZWRzIHRvIGJlIHN0b3JlZAo+IGluIGEgc2VwYXJh dGUgYnVmZmVyLCB3aGljaCB3aWxsIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBidWZmZXIgdXNlZCBv dGhlcndpc2UgZm9yCj4gcGVyaW9kaWMgT0EgY2FwdHVyZSBtb2RlLiBBZ2FpbiB0aGlzIGJ1ZmZl ciBhZGRyZXNzIHdpbGwgbm90IG5lZWQgdG8gYmUgbWFwcGVkIHRvCj4gT0EgdW5pdCByZWdpc3Rl ciBhZGRyZXNzZXMgc3VjaCBhcyBPQVNUQVRVUzEsIE9BU1RBVFVTMiBhbmQgT0FCVUZGRVIuCj4g Cj4gVGhlIHN1YnNlcXVlbnQgcGF0Y2hlcyBpbiB0aGUgc2VyaWVzIGludHJvZHVjZSB0aGUgZGF0 YSBzdHJ1Y3R1cmVzIGFuZCBtZWNoYW5pc20KPiBmb3IgZm9yd2FyZGluZyByZXBvcnRzIHRvIHVz ZXJzcGFjZSwgYW5kIG1lY2hhbmlzbSBmb3IgaW5zZXJ0aW5nIGNvcnJlc3BvbmRpbmcKPiBjb21t YW5kcyBpbnRvIHRoZSByaW5nYnVmZmVyLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNvdXJhYiBHdXB0 YSA8c291cmFiLmd1cHRhQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgfCAgMTEgKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29h X3BlcmYuYyB8IDEyMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KPiAgaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgfCAgIDQgKy0KPiAgMyBmaWxlcyBjaGFu Z2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gaW5kZXggYmFhMDIzNC4uZWU0YTVkMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+IEBAIC0xOTMzLDYgKzE5MzMsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7 Cj4gIAkJdTMyIHBlcmlvZF9leHBvbmVudDsKPiAgCj4gIAkJdTMyIG1ldHJpY3Nfc2V0Owo+ICsJ CWJvb2wgYXN5bmNfc2FtcGxlX21vZGU7Cj4gIAo+ICAJCXN0cnVjdCB7Cj4gIAkJCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gQEAgLTE5NDQsNiArMTk0NSwxNiBAQCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gIAkJCWludCBmb3JtYXRfc2l6ZTsKPiAgCQkJc3BpbmxvY2tf dCBmbHVzaF9sb2NrOwo+ICAJCX0gb2FfYnVmZmVyOwo+ICsKPiArCQkvKiBGaWVsZHMgZm9yIGFz eW5jaHJvbm91cyBPQSBzbmFwc2hvdCBjYXB0dXJlICovCj4gKwkJc3RydWN0IHsKPiArCQkJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiArCQkJdTggKmFkZHI7Cj4gKwkJCXUzMiBo ZWFkOwo+ICsJCQl1MzIgdGFpbDsKPiArCQkJaW50IGZvcm1hdDsKPiArCQkJaW50IGZvcm1hdF9z aXplOwo+ICsJCX0gb2FfYXN5bmNfYnVmZmVyOwo+ICAJfSBvYV9wbXU7Cj4gICNlbmRpZgo+ICAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9wZXJmLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3BlcmYuYwo+IGluZGV4IGU3ZTBiMmIuLjQxOWI2YTUg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9wZXJmLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3BlcmYuYwo+IEBAIC0xNjYsNiArMTY2LDIw IEBAIHN0YXRpYyB2b2lkIGZsdXNoX29hX3NuYXBzaG90cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gK29hX2FzeW5jX2J1ZmZlcl9k ZXN0cm95KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICt7Cj4gKwltdXRleF9sb2Nr KCZpOTE1LT5kZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwo+ICsJdnVubWFwKGk5MTUtPm9hX3BtdS5v YV9hc3luY19idWZmZXIuYWRkcik7Cj4gKwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihpOTE1 LT5vYV9wbXUub2FfYXN5bmNfYnVmZmVyLm9iaik7Cj4gKwlkcm1fZ2VtX29iamVjdF91bnJlZmVy ZW5jZSgmaTkxNS0+b2FfcG11Lm9hX2FzeW5jX2J1ZmZlci5vYmotPmJhc2UpOwo+ICsKPiArCWk5 MTUtPm9hX3BtdS5vYV9hc3luY19idWZmZXIub2JqID0gTlVMTDsKPiArCWk5MTUtPm9hX3BtdS5v YV9hc3luY19idWZmZXIuYWRkciA9IE5VTEw7CgpQbGVhc2UgZG9uJ3QgcmV1c2UgZGV2LT5zdHJ1 Y3RfbXV0ZXggdG8gcHJvdGVjdCBPQSBzdGF0ZSwgYnV0IGluc3RlYWQKY3JlYXRlIGEgbmV3IGxv Y2suIFllcyB5b3UgbmVlZCBkZXYtPnN0cnVjdF9tdXRleCBoZXJlIGZvciBoYW5kbGluZyB0aGUK Z2VtIGJ1ZmZlcnMsIGJ1dCB0aGF0IHNob3VsZCBvbmx5IGJlIHRha2VuIHJpZ2h0IGFyb3VuZCB0 aGUgcmVsZXZhbnQKZnVuY3Rpb24gY2FsbHMuCgpkZXYtPnN0cnVjdF9tdXRleCBpcyBfcmVhbGx5 XyBjb21wbGV4IGFuZCBhbGwgb3ZlciB0aGUgcGxhY2UgYW5kIHRoZXJlZm9yZQpvbmUgb2YgdGhl IGxhcmdlc3QgcGllY2VzIG9mIHRlY2huaWNhbCBkZWJ0IHdlIGhhdmUgaW4gaTkxNS4gQW55IHBp ZWNlIG9mCmNvZGUgdGhhdCBleHRlbmRzIHRoZSBjb3ZlcmFnZSBvZiBkZXYtPnN0cnVjdF9tdXRl eCBpcyBwcmV0dHkgbXVjaApndWFyYW50ZWVkIHRvIGdldCByZWplY3RlZCB0aGVyZWZvcmUuCi1E YW5pZWwKCj4gKwltdXRleF91bmxvY2soJmk5MTUtPmRldi0+c3RydWN0X211dGV4KTsKPiArfQo+ ICsKPiArc3RhdGljIHZvaWQKPiAgb2FfYnVmZmVyX2Rlc3Ryb3koc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUpCj4gIHsKPiAgCW11dGV4X2xvY2soJmk5MTUtPmRldi0+c3RydWN0X211dGV4 KTsKPiBAQCAtMjA3LDYgKzIyMSw5IEBAIHN0YXRpYyB2b2lkIGk5MTVfb2FfZXZlbnRfZGVzdHJv eShzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCj4gIAlJOTE1X1dSSVRFKEdEVF9DSElDS0VOX0JJ VFMsIChJOTE1X1JFQUQoR0RUX0NISUNLRU5fQklUUykgJgo+ICAJCQkJICAgICAgfkdUX05PQV9F TkFCTEUpKTsKPiAgCj4gKwlpZiAoZGV2X3ByaXYtPm9hX3BtdS5hc3luY19zYW1wbGVfbW9kZSkK PiArCQlvYV9hc3luY19idWZmZXJfZGVzdHJveShkZXZfcHJpdik7Cj4gKwo+ICAJb2FfYnVmZmVy X2Rlc3Ryb3koZGV2X3ByaXYpOwo+ICAKPiAgCUJVR19PTihkZXZfcHJpdi0+b2FfcG11LmV4Y2x1 c2l2ZV9ldmVudCAhPSBldmVudCk7Cj4gQEAgLTI0NywyMSArMjY0LDExIEBAIGZpbmlzaDoKPiAg CXJldHVybiBhZGRyOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGluaXRfb2FfYnVmZmVyKHN0cnVj dCBwZXJmX2V2ZW50ICpldmVudCkKPiArc3RhdGljIGludCBhbGxvY19vYV9vYmooc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKipvYmopCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4g LQkJY29udGFpbmVyX29mKGV2ZW50LT5wbXUsIHR5cGVvZigqZGV2X3ByaXYpLCBvYV9wbXUucG11 KTsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpibzsKPiAtCWludCByZXQ7Cj4gLQo+ IC0JQlVHX09OKCFJU19IQVNXRUxMKGRldl9wcml2LT5kZXYpKTsKPiAtCUJVR19PTihkZXZfcHJp di0+b2FfcG11Lm9hX2J1ZmZlci5vYmopOwo+IC0KPiAtCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19p bnRlcnJ1cHRpYmxlKGRldl9wcml2LT5kZXYpOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0 Owo+IC0KPiAtCXNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+b2FfcG11Lm9hX2J1ZmZlci5mbHVz aF9sb2NrKTsKPiArCWludCByZXQgPSAwOwo+ICAKPiAgCS8qIE5COiBXZSBvdmVyIGFsbG9jYXRl IHRoZSBPQSBidWZmZXIgZHVlIHRvIHRoZSB3YXkgcmF3IHNhbXBsZSBkYXRhCj4gIAkgKiBnZXRz IGNvcGllZCBmcm9tIHRoZSBncHUgbWFwcGVkIGNpcmN1bGFyIGJ1ZmZlciBpbnRvIHRoZSBwZXJm Cj4gQEAgLTI3NywxMyArMjg0LDEzIEBAIHN0YXRpYyBpbnQgaW5pdF9vYV9idWZmZXIoc3RydWN0 IHBlcmZfZXZlbnQgKmV2ZW50KQo+ICAJICogd2hlbiBhIHJlcG9ydCBpcyBhdCB0aGUgZW5kIG9m IHRoZSBncHUgbWFwcGVkIGJ1ZmZlciB3ZSBuZWVkIHRvCj4gIAkgKiByZWFkIDQgYnl0ZXMgcGFz dCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCj4gIAkgKi8KPiArCWludGVsX3J1bnRpbWVfcG1fZ2V0 KGRldl9wcml2KTsKPiAgCWJvID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldl9wcml2LT5kZXYs IE9BX0JVRkZFUl9TSVpFICsgUEFHRV9TSVpFKTsKPiAgCWlmIChibyA9PSBOVUxMKSB7Cj4gIAkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgT0EgYnVmZmVyXG4iKTsKPiAgCQlyZXQgPSAt RU5PTUVNOwo+IC0JCWdvdG8gdW5sb2NrOwo+ICsJCWdvdG8gb3V0Owo+ICAJfQo+IC0JZGV2X3By aXYtPm9hX3BtdS5vYV9idWZmZXIub2JqID0gYm87Cj4gIAo+ICAJcmV0ID0gaTkxNV9nZW1fb2Jq ZWN0X3NldF9jYWNoZV9sZXZlbChibywgSTkxNV9DQUNIRV9MTEMpOwo+ICAJaWYgKHJldCkKPiBA QCAtMjk0LDYgKzMwMSwzOCBAQCBzdGF0aWMgaW50IGluaXRfb2FfYnVmZmVyKHN0cnVjdCBwZXJm X2V2ZW50ICpldmVudCkKPiAgCWlmIChyZXQpCj4gIAkJZ290byBlcnJfdW5yZWY7Cj4gIAo+ICsJ Km9iaiA9IGJvOwo+ICsJZ290byBvdXQ7Cj4gKwo+ICtlcnJfdW5yZWY6Cj4gKwlkcm1fZ2VtX29i amVjdF91bnJlZmVyZW5jZV91bmxvY2tlZCgmYm8tPmJhc2UpOwo+ICtvdXQ6Cj4gKwlpbnRlbF9y dW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0 aWMgaW50IGluaXRfb2FfYnVmZmVyKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKPiArewo+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiArCQljb250YWluZXJfb2YoZXZl bnQtPnBtdSwgdHlwZW9mKCpkZXZfcHJpdiksIG9hX3BtdS5wbXUpOwo+ICsJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKmJvOwo+ICsJaW50IHJldDsKPiArCj4gKwlCVUdfT04oIUlTX0hBU1dF TEwoZGV2X3ByaXYtPmRldikpOwo+ICsJQlVHX09OKGRldl9wcml2LT5vYV9wbXUub2FfYnVmZmVy Lm9iaik7Cj4gKwo+ICsJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoZGV2X3By aXYtPmRldik7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJc3Bpbl9sb2Nr X2luaXQoJmRldl9wcml2LT5vYV9wbXUub2FfYnVmZmVyLmZsdXNoX2xvY2spOwo+ICsKPiArCXJl dCA9IGFsbG9jX29hX29iaihkZXZfcHJpdiwgJmJvKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byB1 bmxvY2s7Cj4gKwo+ICsJZGV2X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIub2JqID0gYm87Cj4gKwo+ ICAJZGV2X3ByaXYtPm9hX3BtdS5vYV9idWZmZXIuZ3R0X29mZnNldCA9IGk5MTVfZ2VtX29ial9n Z3R0X29mZnNldChibyk7Cj4gIAlkZXZfcHJpdi0+b2FfcG11Lm9hX2J1ZmZlci5hZGRyID0gdm1h cF9vYV9idWZmZXIoYm8pOwo+ICAKPiBAQCAtMzA5LDEwICszNDgsMzUgQEAgc3RhdGljIGludCBp bml0X29hX2J1ZmZlcihzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCj4gIAkJCSBkZXZfcHJpdi0+ b2FfcG11Lm9hX2J1ZmZlci5ndHRfb2Zmc2V0LAo+ICAJCQkgZGV2X3ByaXYtPm9hX3BtdS5vYV9i dWZmZXIuYWRkcik7Cj4gIAo+IC0JZ290byB1bmxvY2s7Cj4gK3VubG9jazoKPiArCW11dGV4X3Vu bG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKPiArCXJldHVybiByZXQ7Cj4gK30K PiAgCj4gLWVycl91bnJlZjoKPiAtCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZiby0+YmFz ZSk7Cj4gK3N0YXRpYyBpbnQgaW5pdF9hc3luY19vYV9idWZmZXIoc3RydWN0IHBlcmZfZXZlbnQg KmV2ZW50KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+ICsJ CWNvbnRhaW5lcl9vZihldmVudC0+cG11LCB0eXBlb2YoKmRldl9wcml2KSwgb2FfcG11LnBtdSk7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqYm87Cj4gKwlpbnQgcmV0Owo+ICsKPiAr CUJVR19PTighSVNfSEFTV0VMTChkZXZfcHJpdi0+ZGV2KSk7Cj4gKwlCVUdfT04oZGV2X3ByaXYt Pm9hX3BtdS5vYV9hc3luY19idWZmZXIub2JqKTsKPiArCj4gKwlyZXQgPSBpOTE1X211dGV4X2xv Y2tfaW50ZXJydXB0aWJsZShkZXZfcHJpdi0+ZGV2KTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJu IHJldDsKPiArCj4gKwlyZXQgPSBhbGxvY19vYV9vYmooZGV2X3ByaXYsICZibyk7Cj4gKwlpZiAo cmV0KQo+ICsJCWdvdG8gdW5sb2NrOwo+ICsKPiArCWRldl9wcml2LT5vYV9wbXUub2FfYXN5bmNf YnVmZmVyLm9iaiA9IGJvOwo+ICsKPiArCWRldl9wcml2LT5vYV9wbXUub2FfYXN5bmNfYnVmZmVy LmFkZHIgPSB2bWFwX29hX2J1ZmZlcihibyk7Cj4gKwo+ICsJRFJNX0RFQlVHX0RSSVZFUigiT0Eg QXN5bmMgQnVmZmVyIGluaXRpYWxpemVkLCB2YWRkciA9ICVwIiwKPiArCQkJIGRldl9wcml2LT5v YV9wbXUub2FfYXN5bmNfYnVmZmVyLmFkZHIpOwo+ICAKPiAgdW5sb2NrOgo+ICAJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IEBAIC00NDQsNiArNTA4LDkgQEAg c3RhdGljIGludCBpOTE1X29hX2V2ZW50X2luaXQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50KQo+ ICAKPiAgCXJlcG9ydF9mb3JtYXQgPSBvYV9hdHRyLmZvcm1hdDsKPiAgCWRldl9wcml2LT5vYV9w bXUub2FfYnVmZmVyLmZvcm1hdCA9IHJlcG9ydF9mb3JtYXQ7Cj4gKwlpZiAob2FfYXR0ci5iYXRj aF9idWZmZXJfc2FtcGxlKQo+ICsJCWRldl9wcml2LT5vYV9wbXUub2FfYXN5bmNfYnVmZmVyLmZv cm1hdCA9IHJlcG9ydF9mb3JtYXQ7Cj4gKwo+ICAJZGV2X3ByaXYtPm9hX3BtdS5tZXRyaWNzX3Nl dCA9IG9hX2F0dHIubWV0cmljc19zZXQ7Cj4gIAo+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYt PmRldikpIHsKPiBAQCAtNDU3LDYgKzUyNCw5IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9ldmVudF9p bml0KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+ ICAJCWRldl9wcml2LT5vYV9wbXUub2FfYnVmZmVyLmZvcm1hdF9zaXplID0gc25hcHNob3Rfc2l6 ZTsKPiArCQlpZiAob2FfYXR0ci5iYXRjaF9idWZmZXJfc2FtcGxlKQo+ICsJCQlkZXZfcHJpdi0+ b2FfcG11Lm9hX2FzeW5jX2J1ZmZlci5mb3JtYXRfc2l6ZSA9Cj4gKwkJCQlzbmFwc2hvdF9zaXpl Owo+ICAKPiAgCQlpZiAob2FfYXR0ci5tZXRyaWNzX3NldCA+IEk5MTVfT0FfTUVUUklDU19TRVRf TUFYKQo+ICAJCQlyZXR1cm4gLUVJTlZBTDsKPiBAQCAtNDY1LDYgKzUzNSwxNiBAQCBzdGF0aWMg aW50IGk5MTVfb2FfZXZlbnRfaW5pdChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCj4gIAkJcmV0 dXJuIC1FTk9ERVY7Cj4gIAl9Cj4gIAo+ICsJLyoKPiArCSAqIEluIGNhc2Ugb2YgcGVyIGJhdGNo IGJ1ZmZlciBzYW1wbGluZywgd2UgbmVlZCB0byBjaGVjayBmb3IKPiArCSAqIENBUF9TWVNfQURN SU4gY2FwYWJpbGl0eSBhcyB3ZSBwcm9maWxlIGFsbCB0aGUgcnVubmluZyBjb250ZXh0cwo+ICsJ ICovCj4gKwlpZiAob2FfYXR0ci5iYXRjaF9idWZmZXJfc2FtcGxlKSB7Cj4gKwkJaWYgKCFjYXBh YmxlKENBUF9TWVNfQURNSU4pKQo+ICsJCQlyZXR1cm4gLUVBQ0NFUzsKPiArCQlkZXZfcHJpdi0+ b2FfcG11LmFzeW5jX3NhbXBsZV9tb2RlID0gdHJ1ZTsKPiArCX0KPiArCj4gIAkvKiBTaW5jZSB3 ZSBhcmUgbGltaXRlZCB0byBhbiBleHBvbmVudGlhbCBzY2FsZSBmb3IKPiAgCSAqIHByb2dyYW1t aW5nIHRoZSBPQSBzYW1wbGluZyBwZXJpb2Qgd2UgZG9uJ3QgYWxsb3cgdXNlcnNwYWNlCj4gIAkg KiB0byBwYXNzIGEgcHJlY2lzZSBhdHRyLnNhbXBsZV9wZXJpb2QuICovCj4gQEAgLTUyOCw2ICs2 MDgsMTIgQEAgc3RhdGljIGludCBpOTE1X29hX2V2ZW50X2luaXQoc3RydWN0IHBlcmZfZXZlbnQg KmV2ZW50KQo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiArCWlmIChvYV9hdHRy LmJhdGNoX2J1ZmZlcl9zYW1wbGUpIHsKPiArCQlyZXQgPSBpbml0X2FzeW5jX29hX2J1ZmZlcihl dmVudCk7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gIAlCVUdf T04oZGV2X3ByaXYtPm9hX3BtdS5leGNsdXNpdmVfZXZlbnQpOwo+ICAJZGV2X3ByaXYtPm9hX3Bt dS5leGNsdXNpdmVfZXZlbnQgPSBldmVudDsKPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+IGluZGV4IDk5 MmUxZTkuLjM1NGRjM2EgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5o Cj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gQEAgLTkyLDcgKzkyLDkgQEAg dHlwZWRlZiBzdHJ1Y3QgX2RybV9pOTE1X29hX2F0dHIgewo+ICAJX191MzIgY3R4X2lkOwo+ICAK PiAgCV9fdTY0IHNpbmdsZV9jb250ZXh0IDogMSwKPiAtCSAgICAgIF9fcmVzZXJ2ZWRfMSA6IDYz Owo+ICsJX19yZXNlcnZlZF8xIDogMzE7Cj4gKwlfX3UzMiBiYXRjaF9idWZmZXJfc2FtcGxlOjEs Cj4gKwlfX3Jlc2VydmVkXzI6MzE7Cj4gIH0gZHJtX2k5MTVfb2FfYXR0cl90Owo+ICAKPiAgLyog SGVhZGVyIGZvciBQRVJGX1JFQ09SRF9ERVZJQ0UgdHlwZSBldmVudHMgKi8KPiAtLSAKPiAxLjgu NS4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y Zwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=