From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH v6 1/2] drm/i915/gen9: Fix PCODE polling during CDCLK change notification Date: Thu, 08 Dec 2016 16:18:50 +0200 Message-ID: <1481206730.17555.16.camel@intel.com> References: <1480955258-26311-1-git-send-email-imre.deak@intel.com> <20161208140252.GP4815@nuc-i3427.alporthouse.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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id DFDAD6E7AB for ; Thu, 8 Dec 2016 14:19:15 +0000 (UTC) In-Reply-To: <20161208140252.GP4815@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org, Art Runyan List-Id: intel-gfx@lists.freedesktop.org T24gdG8sIDIwMTYtMTItMDggYXQgMTQ6MDIgKzAwMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBP biBNb24sIERlYyAwNSwgMjAxNiBhdCAwNjoyNzozN1BNICswMjAwLCBJbXJlIERlYWsgd3JvdGU6 Cj4gPiBjb21taXQgODQ4NDk2ZTU5MDI4MzM2MDBmNzk5MmY0ZmFhODJkYzE1NDYwNTFiYQo+ID4g QXV0aG9yOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ ID4gRGF0ZTrCoMKgwqBXZWQgSnVsIDEzIDE2OjMyOjAzIDIwMTYgKzAzMDAKPiA+IAo+ID4gwqDC oMKgwqBkcm0vaTkxNTogV2FpdCB1cCB0byAzbXMgZm9yIHRoZSBwY3UgdG8gYWNrIHRoZSBjZGNs ayBjaGFuZ2UgcmVxdWVzdCBvbiBTS0wKPiA+IAo+ID4gaW5jcmVhc2VkIHRoZSB0aW1lb3V0IHRv IG1hdGNoIHRoZSBzcGVjLCBidXQgd2Ugc3RpbGwgc2VlIGEgdGltZW91dCBvbgo+ID4gYXQgbGVh c3Qgb25lIFNLTC4gQSBDRENMSyBjaGFuZ2UgcmVxdWVzdCBmb2xsb3dpbmcgdGhlIGZhaWxlZCBv bmUgd2lsbAo+ID4gc3VjY2VlZCBuZXZlcnRoZWxlc3MuCj4gPiAKPiA+IEkgY291bGQgcmVwcm9k dWNlIHRoaXMgcHJvYmxlbSBlYXNpbHkgYnkgcnVubmluZyBrbXNfcGlwZV9jcmNfYmFzaWMgaW4g YQo+ID4gbG9vcC4gSW4gYWxsIGZhaWx1cmUgY2FzZXMgX3dhaXRfZm9yKCkgd2FzIHByZS1lbXB0 ZWQgZm9yID4zbXMgYW5kIHNvIGluCj4gPiB0aGUgd29yc3QgY2FzZSAtIHdoZW4gdGhlIHByZS1l bXB0aW9uIGhhcHBlbmVkIHJpZ2h0IGFmdGVyIGNhbGN1bGF0aW5nCj4gPiB0aW1lb3V0X18gaW4g X3dhaXRfZm9yKCkgLSB3ZSBjYWxsZWQgc2tsX2NkY2xrX3dhaXRfZm9yX3BjdV9yZWFkeSgpIG9u bHkKPiA+IG9uY2Ugd2hpY2ggZmFpbGVkIGFuZCBzbyBfd2FpdF9mb3IoKSB0aW1lZCBvdXQuIEFz IG9wcG9zZWQgdG8gdGhpcyB0aGUKPiA+IHNwZWMgc2F5cyB0byBrZWVwIHJldHJ5aW5nIHRoZSBy ZXF1ZXN0IGZvciBhdCBtb3N0IGEgM21zIHBlcmlvZC4KPiA+IAo+ID4gVG8gZml4IHRoaXMgc2Vu ZCB0aGUgZmlyc3QgcmVxdWVzdCBleHBsaWNpdGx5IHRvIGd1YXJhbnRlZSB0aGF0IHRoZXJlIGlz Cj4gPiAzbXMgYmV0d2VlbiB0aGUgZmlyc3QgYW5kIGxhc3QgcmVxdWVzdC4gVGhvdWdoIHRoaXMg bWF0Y2hlcyB0aGUgc3BlYywgSQo+ID4gbm90aWNlZCB0aGF0IGluIHJhcmUgY2FzZXMgdGhpcyBj YW4gc3RpbGwgdGltZSBvdXQgaWYgd2Ugc2VudCBvbmx5IGEgZmV3Cj4gPiByZXF1ZXN0cyAoaW4g dGhlIHdvcnN0IGNhc2UgMikgX2FuZF8gUENPREUgaXMgYnVzeSBmb3Igc29tZSByZWFzb24gZXZl bgo+ID4gYWZ0ZXIgYSBwcmV2aW91cyByZXF1ZXN0IGFuZCBhIDNtcyBkZWxheS4gVG8gd29yayBh cm91bmQgdGhpcyByZXRyeSB0aGUKPiA+IHBvbGxpbmcgd2l0aCBwcmUtZW1wdGlvbiBkaXNhYmxl ZCB0byBtYXhpbWl6ZSB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzLgo+ID4gQWxzbyBpbmNyZWFzZSB0 aGUgdGltZW91dCB0byAxMG1zIHRvIGFjY291bnQgZm9yIGludGVycnVwdHMgdGhhdCBjb3VsZAo+ ID4gcmVkdWNlIHRoZSBudW1iZXIgb2YgcmVxdWVzdHMuIFdpdGggdGhpcyBjaGFuZ2UgSSBjb3Vs ZG4ndCB0cmlnZ2VyCj4gPiB0aGUgcHJvYmxlbS4KPiA+IAo+ID4gdjI6Cj4gPiAtIFVzZSAxbXMg cG9sbCBwZXJpb2QgaW5zdGVhZCBvZiAxMHVzLiAoQ2hyaXMpCj4gPiB2MzoKPiA+IC0gUG9sbCB3 aXRoIHByZS1lbXB0aW9uIGRpc2FibGVkIHRvIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgcmVxdWVz dAo+ID4gwqAgYXR0ZW1wdHMuIChWaWxsZSwgQ2hyaXMpCj4gPiAtIEZhY3RvciBvdXQgYSBoZWxw ZXIgdG8gcG9sbCwgaXQncyBhbHNvIG5lZWRlZCBieSB0aGUgbmV4dCBwYXRjaC4KPiA+IHY0Ogo+ ID4gLSBQYXNzIHJlcGx5X21hc2ssIHJlcGx5IHRvIHNrbF9wY29kZV9yZXF1ZXN0KCksIGluc3Rl YWQgb2YgYXNzdW1pbmcgdGhlCj4gPiDCoCByZXBseSBpcyBnZW5lcmljLiAoVmlsbGUpCj4gPiB2 NToKPiA+IC0gTGlzdCB0aGUgcmVxdWVzdCBzcGVjaWZpYyB0aW1lb3V0IHZhbHVlcyBhcyBjb2Rl IGNvbW1lbnQuIChWaWxsZSkKPiA+IHY2Ogo+ID4gLSBUcnkgdGhlIHBvbGwgZmlyc3Qgd2l0aCBw cmVlbXB0aW9uIGVuYWJsZWQuCj4gPiAtIEFkZCBjb2RlIGNvbW1lbnQgYWJvdXQgZmlyc3QgcmVx dWVzdCBiZWluZyBxdWV1ZWQgYnkgUENPREUuIChBcnQpCj4gPiAtIEFkZCB0aW1lb3V0X2Jhc2Vf bXMgYXJndW1lbnQuIChWaWxsZSkKPiA+IAo+ID4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+Cj4gPiBDYzogQXJ0IFJ1bnlhbiA8YXJ0aHVyLmoucnVueWFuQGludGVs LmNvbT4KPiA+IFJlZmVyZW5jZTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9OTc5MjkKPiA+IFRlc3RjYXNlOiBpZ3Qva21zX3BpcGVfY3JjX2Jhc2ljL3N1c3Bl bmQtcmVhZC1jcmMtcGlwZS1CCj4gPiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVh a0BpbnRlbC5jb20+Cj4gCj4gVGhlIG9ubHkgaXNzdWUgSSBoYXZlIGlzIHRoYXQgYnVyaWVkIHdp dGhpbiBzbmJfcGNvZGVfcmVhZCgpIGlzIGFub3RoZXIKPiB3YWl0X2Zvciwgbm93IGluIGFuIGF0 b21pYyBzZWN0aW9uIGFuZCB3ZSBoYXZlIGJlZW4gdHJ5aW5nIHRvIGVycmFkaWNhdGUKPiB0aG9z ZS4gSXQgc2hvdWxkIGJlIGhhcHB5IGVub3VnaCwganVzdCBhIHBpdGEgdG8gZml4IGxhdGVyIQoK WWVhLCBhZ3JlZWQgd2l0aCB0aGUgcmF0aW9uYWwgZm9yIHRoYXQuIEkgY2FuIHZvbHVudGVlciB0 byByZWZhY3Rvcgp0aGlzIHBhcnQgYXMgYSBmb2xsb3ctdXAsIGFsdGhvdWdoIHBhc3NpbmcgYSBm bGFnIHRvIHNuYl9wY29kZV9yZWFkKCkKd291bGQgYmUgc3RpbGwgdGhlIGNsZWFyZXN0IHRvIG1l LgoKQnR3LCB0aGlzIGlzIGFsc28gZm9yIC1zdGFibGUgaW1vLgoKPiBPdGhlciB0aGFuIHRoYXQg YW5kIGEgbWlub3Igbml0LCBpdCBsb29rcyBsaWtlIGEgcmVhc29uYWJsZSBjb21wcm9taXNlLgo+ IFJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAK PiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgwqDCoMKgwqDCoHzCoMKgMiAr Cj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDMxICsrKysrLS0t LS0tLS0tLQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jwqDCoMKgwqDCoMKg fCA3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+IMKgMyBmaWxlcyBj aGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gPiBpbmRleCBjYTk3ODZjLi5hMjQ2MmJmIDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gQEAgLTM1OTcsNiArMzU5Nyw4IEBAIGV4dGVybiB2b2lk IGludGVsX2Rpc3BsYXlfcHJpbnRfZXJyb3Jfc3RhdGUoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0 YXRlX2J1ZiAqZSwKPiA+IMKgCj4gPiDCoGludCBzYW5keWJyaWRnZV9wY29kZV9yZWFkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIG1ib3gsIHUzMiAqdmFsKTsKPiA+IMKg aW50IHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgdTMyIG1ib3gsIHUzMiB2YWwpOwo+ID4gK2ludCBza2xfcGNvZGVfcmVxdWVzdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBtYm94LCB1MzIgcmVxdWVzdCwKPiA+ ICsJCcKgwqDCoMKgwqDCoHUzMiByZXBseV9tYXNrLCB1MzIgcmVwbHksIGludCB0aW1lb3V0X2Jh c2VfbXMpOwo+ID4gwqAKPiA+IMKgLyogaW50ZWxfc2lkZWJhbmQuYyAqLwo+ID4gwqB1MzIgdmx2 X3B1bml0X3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWRkcik7 Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRleCAxZmFmY2NlLi40 ZWY3MzkyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBA IC02MjgwLDM1ICs2MjgwLDI0IEBAIHNrbF9kcGxsMF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiA+IMKgCWRldl9wcml2LT5jZGNsa19wbGwudmNvID0gMDsKPiA+ IMKgfQo+ID4gwqAKPiA+IC1zdGF0aWMgYm9vbCBza2xfY2RjbGtfcGN1X3JlYWR5KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+IC17Cj4gPiAtCWludCByZXQ7Cj4gPiAtCXUz MiB2YWw7Cj4gPiAtCj4gPiAtCS8qIGluZm9ybSBQQ1Ugd2Ugd2FudCB0byBjaGFuZ2UgQ0RDTEsg Ki8KPiA+IC0JdmFsID0gU0tMX0NEQ0xLX1BSRVBBUkVfRk9SX0NIQU5HRTsKPiA+IC0JbXV0ZXhf bG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiA+IC0JcmV0ID0gc2FuZHlicmlkZ2VfcGNv ZGVfcmVhZChkZXZfcHJpdiwgU0tMX1BDT0RFX0NEQ0xLX0NPTlRST0wsICZ2YWwpOwo+ID4gLQlt dXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gPiAtCj4gPiAtCXJldHVybiBy ZXQgPT0gMCAmJiAodmFsICYgU0tMX0NEQ0xLX1JFQURZX0ZPUl9DSEFOR0UpOwo+ID4gLX0KPiA+ IC0KPiA+IC1zdGF0aWMgYm9vbCBza2xfY2RjbGtfd2FpdF9mb3JfcGN1X3JlYWR5KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+IC17Cj4gPiAtCXJldHVybiBfd2FpdF9mb3Io c2tsX2NkY2xrX3BjdV9yZWFkeShkZXZfcHJpdiksIDMwMDAsIDEwKSA9PSAwOwo+ID4gLX0KPiA+ IC0KPiA+IMKgc3RhdGljIHZvaWQgc2tsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIGludCBjZGNsaywgaW50IHZjbykKPiA+IMKgewo+ID4gwqAJdTMyIGZyZXFf c2VsZWN0LCBwY3VfYWNrOwo+ID4gKwlpbnQgcmV0Owo+ID4gwqAKPiA+IMKgCVdBUk5fT04oKGNk Y2xrID09IDI0MDAwKSAhPSAodmNvID09IDApKTsKPiA+IMKgCj4gPiDCoAlEUk1fREVCVUdfRFJJ VkVSKCJDaGFuZ2luZyBDRENMSyB0byAlZCBrSHogKFZDTyAlZCBrSHopXG4iLCBjZGNsaywgdmNv KTsKPiA+IMKgCj4gPiAtCWlmICghc2tsX2NkY2xrX3dhaXRfZm9yX3BjdV9yZWFkeShkZXZfcHJp dikpIHsKPiA+IC0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGluZm9ybSBQQ1UgYWJvdXQgY2RjbGsg Y2hhbmdlXG4iKTsKPiA+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiA+ ICsJcmV0ID0gc2tsX3Bjb2RlX3JlcXVlc3QoZGV2X3ByaXYsIFNLTF9QQ09ERV9DRENMS19DT05U Uk9MLAo+ID4gKwkJCQlTS0xfQ0RDTEtfUFJFUEFSRV9GT1JfQ0hBTkdFLAo+ID4gKwkJCQlTS0xf Q0RDTEtfUkVBRFlfRk9SX0NIQU5HRSwKPiA+ICsJCQkJU0tMX0NEQ0xLX1JFQURZX0ZPUl9DSEFO R0UsIDMpOwo+ID4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gPiAr CWlmIChyZXQpIHsKPiA+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIGluZm9ybSBQQ1UgYWJvdXQg Y2RjbGsgY2hhbmdlICglZClcbiIsCj4gPiArCQkJwqDCoHJldCk7Cj4gPiDCoAkJcmV0dXJuOwo+ ID4gwqAJfQo+ID4gwqAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gaW5kZXggNTlhODhk ZS4uNmMyZmEzNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+IEBAIC03ODY0 LDYgKzc4NjQsODEgQEAgaW50IHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiA+IMKgCXJldHVybiAwOwo+ID4gwqB9Cj4gPiDCoAo+ID4g K3N0YXRpYyBib29sIHNrbF9wY29kZV90cnlfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIHUzMiBtYm94LAo+ID4gKwkJCQnCoMKgdTMyIHJlcXVlc3QsIHUzMiByZXBs eV9tYXNrLCB1MzIgcmVwbHksCj4gPiArCQkJCcKgwqB1MzIgKnN0YXR1cykKPiA+ICt7Cj4gPiAr CXUzMiB2YWwgPSByZXF1ZXN0Owo+ID4gKwo+ID4gKwkqc3RhdHVzID0gc2FuZHlicmlkZ2VfcGNv ZGVfcmVhZChkZXZfcHJpdiwgbWJveCwgJnZhbCk7Cj4gPiArCj4gPiArCXJldHVybiAqc3RhdHVz IHx8ICgodmFsICYgcmVwbHlfbWFzaykgPT0gcmVwbHkpOwo+ID4gK30KPiA+ICsKPiA+ICsvKioK PiA+ICsgKiBza2xfcGNvZGVfcmVxdWVzdCAtIHNlbmQgUENPREUgcmVxdWVzdCB1bnRpbCBhY2tu b3dsZWRnbWVudAo+ID4gKyAqIEBkZXZfcHJpdjogZGV2aWNlIHByaXZhdGUKPiA+ICsgKiBAbWJv eDogUENPREUgbWFpbGJveCBJRCB0aGUgcmVxdWVzdCBpcyB0YXJnZXRlZCBmb3IKPiA+ICsgKiBA cmVxdWVzdDogcmVxdWVzdCBJRAo+ID4gKyAqIEByZXBseV9tYXNrOiBtYXNrIHVzZWQgdG8gY2hl Y2sgZm9yIHJlcXVlc3QgYWNrbm93bGVkZ21lbnQKPiA+ICsgKiBAcmVwbHk6IHZhbHVlIHVzZWQg dG8gY2hlY2sgZm9yIHJlcXVlc3QgYWNrbm93bGVkZ2VtZW50Cj4gPiArICogQHRpbWVvdXRfYmFz ZV9tczogdGltZW91dCBmb3IgcG9sbGluZyB3aXRoIHByZWVtcHRpb24gZW5hYmxlZAo+ID4gKyAq Cj4gPiArICogS2VlcCByZXNlbmRpbmcgdGhlIEByZXF1ZXN0IHRvIEBtYm94IHVudGlsIFBDT0RF IGFja25vd2xlZGdlcyBpdCwgUENPREUKPiA+ICsgKiByZXBvcnRzIGFuIGVycm9yIG9yIGFuIG92 ZXJhbGwgdGltZW91dCBvZiBAdGltZW91dF9iYXNlX21zKzEwIG1zIGV4cGlyZXMuCj4gPiArICog VGhlIHJlcXVlc3QgaXMgYWNrbm93bGVkZ2VkIG9uY2UgdGhlIFBDT0RFIHJlcGx5IGR3b3JkIGVx dWFscyBAcmVwbHkgYWZ0ZXIKPiA+ICsgKiBhcHBseWluZyBAcmVwbHlfbWFzay4gUG9sbGluZyBp cyBmaXJzdCBhdHRlbXB0ZWQgd2l0aCBwcmVlbXB0aW9uIGVuYWJsZWQKPiA+ICsgKiBmb3IgQHRp bWVvdXRfYmFzZV9tcyBhbmQgaWYgdGhpcyB0aW1lcyBvdXQgZm9yIGFub3RoZXIgMTAgbXMgd2l0 aAo+ID4gKyAqIHByZWVtcHRpb24gZGlzYWJsZWQuCj4gPiArICoKPiA+ICsgKiBSZXR1cm5zIDAg b24gc3VjY2VzcywgJS1FVElNRURPVVQgaW4gY2FzZSBvZiBhIHRpbWVvdXQsIDwwIGluIGNhc2Ug b2Ygc29tZQo+ID4gKyAqIG90aGVyIGVycm9yIGFzIHJlcG9ydGVkIGJ5IFBDT0RFLgo+ID4gKyAq Lwo+ID4gK2ludCBza2xfcGNvZGVfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIHUzMiBtYm94LCB1MzIgcmVxdWVzdCwKPiA+ICsJCcKgwqDCoMKgwqDCoHUzMiByZXBs eV9tYXNrLCB1MzIgcmVwbHksIGludCB0aW1lb3V0X2Jhc2VfbXMpCj4gPiArewo+ID4gKwl1MzIg c3RhdHVzOwo+ID4gKwlpbnQgcmV0Owo+ID4gKwo+ID4gKwlXQVJOX09OKCFtdXRleF9pc19sb2Nr ZWQoJmRldl9wcml2LT5ycHMuaHdfbG9jaykpOwo+ID4gKwo+ID4gKyNkZWZpbmUgQ09ORCBza2xf cGNvZGVfdHJ5X3JlcXVlc3QoZGV2X3ByaXYsIG1ib3gsIHJlcXVlc3QsIHJlcGx5X21hc2ssIHJl cGx5LCBcCj4gPiArCQkJCcKgwqDCoCZzdGF0dXMpCj4gPiArCj4gPiArCS8qCj4gPiArCcKgKiBU aGUgZmlyc3QgcmVxdWVzdCBpcyBxdWV1ZWQgYnkgUENPREUsIHdoaWNoIG5vcm1hbGx5IGd1YXJh bnRlZXMKPiA+ICsJwqAqIHRoYXQgYSBzdWJzZXF1ZW50IHJlcXVlc3QgYXQgbW9zdCBAdGltZW91 dF9iYXNlX21zIGxhdGVyIHN1Y2NlZWRzLgo+ID4gKwnCoCogX3dhaXRfZm9yKCkgZG9lc24ndCBn dWFyYW50ZWUgd2hlbiBpdHMgcGFzc2VkIGNvbmRpdGlvbiBpcyBldmFsdWF0ZWQKPiA+ICsJwqAq IGZpcnN0LCBzbyBzZW5kIHRoZSBmaXJzdCByZXF1ZXN0IGV4cGxpY2l0bHkuCj4gPiArCcKgKi8K PiAKPiBTY3JhdGNoaW5nIG15IGhlYWQgaGVyZS4KPiAKPiAvKiBQcmltZSB0aGUgUENPREUgYnkg ZG9pbmcgYSByZXF1ZXN0IGZpcnN0LiBOb3JtYWxseSBpdCBndWFyYW50ZWVzIHRoYXQKPiDCoCog YSBzdWJzZXF1ZW50IHJlcXVlc3QsIGF0IG1vc3QgQHRpbWVvdXRfYmFzZV9tcyBsYXRlciwgc3Vj Y2VlZHMuCj4gwqAqLwoKUmlnaHQsIHRoaXMgaXMgd2hhdCBJIG1lYW50IChleHBsYWluZWQgdG8g bWUgYnkgQXJ0KS4gSSBjYW4gdXNlIHRoZQphYm92ZSBpbnN0ZWFkLgoKPiBBcyB3aGF0IEkgdGhp bmsgeW91IG1lYW4gaXMgdGhhdCBnaXZlbiBwcmVlbXB0aW9uIHdhaXRfZm9yKCkgZG9lc24ndAo+ IGd1YXJhbnRlZSB0aGF0IGF0IGxlYXN0IHR3byBDT05EcyBhcmUgZXhlY3V0ZWQuIFdoaWNoIGlz IHJlYXNvbmFibGUsIHNvCj4gd2Ugd2FudCB0byB3cml0ZSB0aGUgY29kZSB0byBsb29rIGZvciBh IHJlcGx5IHdpdGhpbiB0aW1lb3V0LgoKWWVwLiBCdHcsIEkgYWxzbyBwb25kZXJlZCBpZiB3ZSBj b3VsZCBqdXN0IG1ha2UgdGhpcyBwYXJ0IG9mCndhaXRfZm9yKCksIGJ1dCBub3Qgc3VyZSBpZiB3 ZSB3YW50IHRoZSBjb3JyZXNwb25kaW5nIGNvZGUgaW5jcmVhc2UKKGFuZCBmb3IgLXN0YWJsZSB3 ZSdkIHdhbnQgYSBtaW5pbWFsIGRpZmYpLiBJdCdzIG5vdCByZXF1aXJlZCBpbiBvdGhlcgpjYXNl cywgYWx0aG91Z2ggaXQgY291bGQgc3BlZWQgdXAgdGhlIHdhaXQgaW4gc29tZSBjYXNlcy4gQUZB SVIgVmlsbGUKZGlkIHNvbWUgbWVhc3VyZW1lbnRzIG9uIHRoaXMuCgotLUltcmUKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==