From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH v4 2/3] drm/i915/gen9: Fix PCODE polling during CDCLK change notification Date: Mon, 28 Nov 2016 18:12:51 +0200 Message-ID: <1480349571.24456.68.camel@intel.com> References: <1480346969-16121-1-git-send-email-imre.deak@intel.com> <1480346969-16121-2-git-send-email-imre.deak@intel.com> <20161128155826.GE31595@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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id B7B046E41F for ; Mon, 28 Nov 2016 16:12:53 +0000 (UTC) In-Reply-To: <20161128155826.GE31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gbWEsIDIwMTYtMTEtMjggYXQgMTc6NTggKzAyMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToK PiBPbiBNb24sIE5vdiAyOCwgMjAxNiBhdCAwNToyOToyOFBNICswMjAwLCBJbXJlIERlYWsgd3Jv dGU6Cj4gPiBjb21taXQgODQ4NDk2ZTU5MDI4MzM2MDBmNzk5MmY0ZmFhODJkYzE1NDYwNTFiYQo+ ID4gQXV0aG9yOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+ID4gRGF0ZTrCoMKgwqBXZWQgSnVsIDEzIDE2OjMyOjAzIDIwMTYgKzAzMDAKPiA+IAo+ID4g wqDCoMKgwqBkcm0vaTkxNTogV2FpdCB1cCB0byAzbXMgZm9yIHRoZSBwY3UgdG8gYWNrIHRoZSBj ZGNsayBjaGFuZ2UgcmVxdWVzdCBvbiBTS0wKPiA+IAo+ID4gaW5jcmVhc2VkIHRoZSB0aW1lb3V0 IHRvIG1hdGNoIHRoZSBzcGVjLCBidXQgd2Ugc3RpbGwgc2VlIGEgdGltZW91dCBvbgo+ID4gYXQg bGVhc3Qgb25lIFNLTC4gQSBDRENMSyBjaGFuZ2UgcmVxdWVzdCBmb2xsb3dpbmcgdGhlIGZhaWxl ZCBvbmUgd2lsbAo+ID4gc3VjY2VlZCBuZXZlcnRoZWxlc3MuCj4gPiAKPiA+IEkgY291bGQgcmVw cm9kdWNlIHRoaXMgcHJvYmxlbSBlYXNpbHkgYnkgcnVubmluZyBrbXNfcGlwZV9jcmNfYmFzaWMg aW4gYQo+ID4gbG9vcC4gSW4gYWxsIGZhaWx1cmUgY2FzZXMgX3dhaXRfZm9yKCkgd2FzIHByZS1l bXB0ZWQgZm9yID4zbXMgYW5kIHNvIGluCj4gPiB0aGUgd29yc3QgY2FzZSAtIHdoZW4gdGhlIHBy ZS1lbXB0aW9uIGhhcHBlbmVkIHJpZ2h0IGFmdGVyIGNhbGN1bGF0aW5nCj4gPiB0aW1lb3V0X18g aW4gX3dhaXRfZm9yKCkgLSB3ZSBjYWxsZWQgc2tsX2NkY2xrX3dhaXRfZm9yX3BjdV9yZWFkeSgp IG9ubHkKPiA+IG9uY2Ugd2hpY2ggZmFpbGVkIGFuZCBzbyBfd2FpdF9mb3IoKSB0aW1lZCBvdXQu IEFzIG9wcG9zZWQgdG8gdGhpcyB0aGUKPiA+IHNwZWMgc2F5cyB0byBrZWVwIHJldHJ5aW5nIHRo ZSByZXF1ZXN0IGZvciBhdCBtb3N0IGEgM21zIHBlcmlvZC4KPiA+IAo+ID4gVG8gZml4IHRoaXMg ZGlzYWJsZSBwcmUtZW1wdGlvbiB0byBtYXhpbWl6ZSB0aGUgbnVtYmVyIG9mIHRpbWVzIHdlIHJl dHJ5Cj4gPiB0aGUgcmVxdWVzdC4gQWxzbyBpbmNyZWFzZSB0aGUgdGltZW91dCB0byAxMG1zIHRv IGFjY291bnQgZm9yIGludGVycnVwdHMKPiA+IHRoYXQgY291bGQgcmVkdWNlIHRoZSBudW1iZXIg b2YgdGhlc2UgYXR0ZW1wdHMuIFdpdGggdGhpcyBjaGFuZ2UgSQo+ID4gY291bGRuJ3QgdHJpZ2dl ciB0aGUgcHJvYmxlbS4KPiA+IAo+ID4gdjI6Cj4gPiAtIFVzZSAxbXMgcG9sbCBwZXJpb2QgaW5z dGVhZCBvZiAxMHVzLiAoQ2hyaXMpCj4gPiB2MzoKPiA+IC0gUG9sbCB3aXRoIHByZS1lbXB0aW9u IGRpc2FibGVkIHRvIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgcmVxdWVzdAo+ID4gwqAgYXR0ZW1w dHMuIChWaWxsZSwgQ2hyaXMpCj4gPiAtIEZhY3RvciBvdXQgYSBoZWxwZXIgdG8gcG9sbCwgaXQn cyBhbHNvIG5lZWRlZCBieSB0aGUgbmV4dCBwYXRjaC4KPiA+IHY0Ogo+ID4gLSBQYXNzIHJlcGx5 X21hc2ssIHJlcGx5IHRvIHNrbF9wY29kZV9yZXF1ZXN0KCksIGluc3RlYWQgb2YgYXNzdW1pbmcg dGhlCj4gPiDCoCByZXBseSBpcyBnZW5lcmljLiAoVmlsbGUpCj4gPiAKPiA+IENjOiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gQ2M6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4gUmVmZXJlbmNlOiBodHRwczovL2J1 Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05NzkyOQo+ID4gVGVzdGNhc2U6IGln dC9rbXNfcGlwZV9jcmNfYmFzaWMvc3VzcGVuZC1yZWFkLWNyYy1waXBlLUIKPiA+IFNpZ25lZC1v ZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gwqBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5owqDCoMKgwqDCoMKgfMKgwqAyICsrCj4gPiDCoGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDMxICsrKysrKysrLS0tLS0tLS0t LS0tLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmPCoMKgwqDCoMKgwqB8 IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gwqAzIGZpbGVzIGNo YW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiA+IGluZGV4IDAxZjUwNjcuLjFiZTViYWIgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAtMzU5Myw2ICszNTkzLDggQEAgZXh0ZXJuIHZvaWQg aW50ZWxfZGlzcGxheV9wcmludF9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3Rh dGVfYnVmICplLAo+ID4gwqAKPiA+IMKgaW50IHNhbmR5YnJpZGdlX3Bjb2RlX3JlYWQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgbWJveCwgdTMyICp2YWwpOwo+ID4gwqBp bnQgc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1MzIgbWJveCwgdTMyIHZhbCk7Cj4gPiAraW50IHNrbF9wY29kZV9yZXF1ZXN0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIG1ib3gsIHUzMiByZXF1ZXN0LAo+ID4g KwkJwqDCoMKgwqDCoMKgdTMyIHJlcGx5X21hc2ssIHUzMiByZXBseSk7Cj4gPiDCoAo+ID4gwqAv KiBpbnRlbF9zaWRlYmFuZC5jICovCj4gPiDCoHUzMiB2bHZfcHVuaXRfcmVhZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBhZGRyKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiA+IGluZGV4IDVkMTEwMDIuLjNkMjIwZGEgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTYyNDUsMzUgKzYyNDUsMjQgQEAg c2tsX2RwbGwwX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4g wqAJZGV2X3ByaXYtPmNkY2xrX3BsbC52Y28gPSAwOwo+ID4gwqB9Cj4gPiDCoAo+ID4gLXN0YXRp YyBib29sIHNrbF9jZGNsa19wY3VfcmVhZHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ID4gLXsKPiA+IC0JaW50IHJldDsKPiA+IC0JdTMyIHZhbDsKPiA+IC0KPiA+IC0JLyog aW5mb3JtIFBDVSB3ZSB3YW50IHRvIGNoYW5nZSBDRENMSyAqLwo+ID4gLQl2YWwgPSBTS0xfQ0RD TEtfUFJFUEFSRV9GT1JfQ0hBTkdFOwo+ID4gLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3 X2xvY2spOwo+ID4gLQlyZXQgPSBzYW5keWJyaWRnZV9wY29kZV9yZWFkKGRldl9wcml2LCBTS0xf UENPREVfQ0RDTEtfQ09OVFJPTCwgJnZhbCk7Cj4gPiAtCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PnJwcy5od19sb2NrKTsKPiA+IC0KPiA+IC0JcmV0dXJuIHJldCA9PSAwICYmICh2YWwgJiBTS0xf Q0RDTEtfUkVBRFlfRk9SX0NIQU5HRSk7Cj4gPiAtfQo+ID4gLQo+ID4gLXN0YXRpYyBib29sIHNr bF9jZGNsa193YWl0X2Zvcl9wY3VfcmVhZHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ID4gLXsKPiA+IC0JcmV0dXJuIF93YWl0X2Zvcihza2xfY2RjbGtfcGN1X3JlYWR5KGRl dl9wcml2KSwgMzAwMCwgMTApID09IDA7Cj4gPiAtfQo+ID4gLQo+ID4gwqBzdGF0aWMgdm9pZCBz a2xfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGNkY2xr LCBpbnQgdmNvKQo+ID4gwqB7Cj4gPiDCoAl1MzIgZnJlcV9zZWxlY3QsIHBjdV9hY2s7Cj4gPiAr CWludCByZXQ7Cj4gPiDCoAo+ID4gwqAJV0FSTl9PTigoY2RjbGsgPT0gMjQwMDApICE9ICh2Y28g PT0gMCkpOwo+ID4gwqAKPiA+IMKgCURSTV9ERUJVR19EUklWRVIoIkNoYW5naW5nIENEQ0xLIHRv ICVkIGtIeiAoVkNPICVkIGtIeilcbiIsIGNkY2xrLCB2Y28pOwo+ID4gwqAKPiA+IC0JaWYgKCFz a2xfY2RjbGtfd2FpdF9mb3JfcGN1X3JlYWR5KGRldl9wcml2KSkgewo+ID4gLQkJRFJNX0VSUk9S KCJmYWlsZWQgdG8gaW5mb3JtIFBDVSBhYm91dCBjZGNsayBjaGFuZ2VcbiIpOwo+ID4gKwltdXRl eF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ID4gKwlyZXQgPSBza2xfcGNvZGVfcmVx dWVzdChkZXZfcHJpdiwgU0tMX1BDT0RFX0NEQ0xLX0NPTlRST0wsCj4gPiArCQkJCVNLTF9DRENM S19QUkVQQVJFX0ZPUl9DSEFOR0UsCj4gPiArCQkJCVNLTF9DRENMS19SRUFEWV9GT1JfQ0hBTkdF LAo+ID4gKwkJCQlTS0xfQ0RDTEtfUkVBRFlfRk9SX0NIQU5HRSk7Cj4gPiArCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiA+ICsJaWYgKHJldCkgewo+ID4gKwkJRFJNX0VS Uk9SKCJGYWlsZWQgdG8gaW5mb3JtIFBDVSBhYm91dCBjZGNsayBjaGFuZ2UgKCVkKVxuIiwKPiA+ ICsJCQnCoMKgcmV0KTsKPiA+IMKgCQlyZXR1cm47Cj4gPiDCoAl9Cj4gPiDCoAo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCj4gPiBpbmRleCA2NmM2MmYzLi5hZWQ4OGUwIDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gQEAgLTc4NjQsNiArNzg2NCw1NSBAQCBpbnQgc2FuZHli cmlkZ2VfcGNvZGVfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4g wqAJcmV0dXJuIDA7Cj4gPiDCoH0KPiA+IMKgCj4gPiArc3RhdGljIGJvb2wgc2tsX3Bjb2RlX3Ry eV9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIG1ib3gsCj4g PiArCQkJCcKgwqB1MzIgcmVxdWVzdCwgdTMyIHJlcGx5X21hc2ssIHUzMiByZXBseSwKPiA+ICsJ CQkJwqDCoHUzMiAqc3RhdHVzKQo+ID4gK3sKPiA+ICsJdTMyIHZhbCA9IHJlcXVlc3Q7Cj4gPiAr Cj4gPiArCSpzdGF0dXMgPSBzYW5keWJyaWRnZV9wY29kZV9yZWFkKGRldl9wcml2LCBtYm94LCAm dmFsKTsKPiA+ICsKPiA+ICsJcmV0dXJuICpzdGF0dXMgfHwgKCh2YWwgJiByZXBseV9tYXNrKSA9 PSByZXBseSk7Cj4gPiArfQo+ID4gKwo+ID4gKy8qKgo+ID4gKyAqIHNrbF9wY29kZV9yZXF1ZXN0 IC0gc2VuZCBQQ09ERSByZXF1ZXN0IHVudGlsIGFja25vd2xlZGdtZW50Cj4gPiArICogQGRldl9w cml2OiBkZXZpY2UgcHJpdmF0ZQo+ID4gKyAqIEBtYm94OiBQQ09ERSBtYWlsYm94IElEIHRoZSBy ZXF1ZXN0IGlzIHRhcmdldGVkIGZvcgo+ID4gKyAqIEByZXF1ZXN0OiByZXF1ZXN0IElECj4gPiAr ICogQHJlcGx5X21hc2s6IG1hc2sgdXNlZCB0byBjaGVjayBmb3IgcmVxdWVzdCBhY2tub3dsZWRn bWVudAo+ID4gKyAqIEByZXBseTogdmFsdWUgdXNlZCB0byBjaGVjayBmb3IgcmVxdWVzdCBhY2tu b3dsZWRnZW1lbnQKPiA+ICsgKgo+ID4gKyAqIEtlZXAgcmVzZW5kaW5nIHRoZSBAcmVxdWVzdCB0 byBAbWJveCB1bnRpbCBQQ09ERSBhY2tub3dsZWRnZXMgaXQsIFBDT0RFCj4gPiArICogcmVwb3J0 cyBhbiBlcnJvciBvciBhIDEwbXMgdGltZW91dCBleHBpcmVzLiBUaGUgcmVxdWVzdCBpcyBhY2tu b3dsZWRnZWQKPiA+ICsgKiBvbmNlIHRoZSBQQ09ERSByZXBseSBkd29yZCBlcXVhbHMgQHJlcGx5 IGFmdGVyIGFwbHlpbmcgQHJlcGx5X21hc2suCj4gPiArICoKPiA+ICsgKiBSZXR1cm5zIDAgb24g c3VjY2VzcywgJS1FVElNRURPVVQgaW4gY2FzZSBvZiBhIHRpbWVvdXQsIDwwIGluIGNhc2Ugb2Yg c29tZQo+ID4gKyAqIG90aGVyIGVycm9yIGFzIHJlcG9ydGVkIGJ5IFBDT0RFLgo+ID4gKyAqLwo+ ID4gK2ludCBza2xfcGNvZGVfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIHUzMiBtYm94LCB1MzIgcmVxdWVzdCwKPiA+ICsJCcKgwqDCoMKgwqDCoHUzMiByZXBseV9t YXNrLCB1MzIgcmVwbHkpCj4gPiArewo+ID4gKwl1MzIgc3RhdHVzOwo+ID4gKwlpbnQgcmV0Owo+ ID4gKwo+ID4gKwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2LT5ycHMuaHdfbG9j aykpOwo+ID4gKwo+ID4gKwkvKgo+ID4gKwnCoCogVGhlIHNwZWMgc2F5cyB0byBrZWVwIHJldHJ5 aW5nIHRoZSByZXF1ZXN0IGZvciBhdCBtb3N0IDNtcyB1bnRpbAo+IAo+IFRoaXMgY29tbWVudCBz ZWVtcyBhIGxpdHRsZSBtaXNwbGFjZWQuIFRoZSAzbXMgaXMgc3BlY2lmaWVkIGZvciB0aGUKPiBj ZGNsayBwcmVwIHJlcXVlc3QsIFNBR1Ygd2lsbCBoYXZlIGEgZGlmZmVyZW50IHZhbHVlLgo+IElm IHdlIGRvbid0IHdhbnQgY2FsbGVycyB0byBwYXNzIGluIHRoZSB0aW1lb3V0IGFzIHdlbGwsIEkg Z3Vlc3Mgd2UnbGwKPiBhdCBsZWFzdCB3YW50IHRvIHJld29yZCB0aGlzIGNvbW1lbnQgdG8gc2F5 IHdoaWNoIGNhbGxlcnMgbmVlZCB3aGF0Cj4ga2luZCBvZiB0aW1lb3V0cy4KCkhvdyBhYm91dCAi YXQgbW9zdCAzbXMgLSB3aGljaCBjYW4gYmUgbGVzcyBkZXBlbmRpbmcgb24gdGhlIGdpdmVuCnJl cXVlc3QiPwoKPiBUaG91Z2ggSSBraW5kYSBsaWtlIHRoZSBpZGVhIG9mIGNhbGxlcnMgcGFzc2lu ZyB0aGF0Cj4gaW4gYXMgd2VsbC4KClRoZSAxMG1zIHRpbWVvdXQgSSBjaG9zZSBoZXJlIGlzIGFu eXdheSBhbiB1cHBlciBib3VuZCwgY29uc2lkZXJpbmcKdGhhdCBpbnRlcnJ1cHRzIGNvdWxkIHJl ZHVjZSB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIHdlIGNhbiBzZW5kLiBIZW5jZQp0aG91Z2h0IHRv IG1ha2UgaXQgYSBnZW5lcmljIHZhbHVlLgoKPiAKPiA+ICsJwqAqIGFja25vd2xlZGdlbWVudCwg c28gZGlzYWJsZSBwcmUtZW1wdGlvbiB0byBtYXhpbWl6ZSB0aGUgbnVtYmVyIG9mCj4gPiArCcKg KiBhdHRlbXB0cyB3aXRoaW4gdGhpcyBkdXJhdGlvbi4gVXNlIGEgMTBtcyBvdmVyYWxsIHRpbWVv dXQgdG8KPiA+ICsJwqAqIGFjY291bnQgZm9yIGludGVycnVwdHMgdGhhdCBjb3VsZCByZWR1Y2Ug dGhlIG51bWJlciBvZiBhdHRlbXB0cy4KPiA+ICsJwqAqLwo+ID4gKwlwcmVlbXB0X2Rpc2FibGUo KTsKPiA+ICsJcmV0ID0gd2FpdF9mb3JfYXRvbWljKHNrbF9wY29kZV90cnlfcmVxdWVzdChkZXZf cHJpdiwgbWJveCwgcmVxdWVzdCwKPiA+ICsJCQkJCQnCoMKgwqDCoHJlcGx5X21hc2ssIHJlcGx5 LCAmc3RhdHVzKSwKPiA+ICsJCQnCoMKgwqDCoMKgwqAxMCk7Cj4gPiArCXByZWVtcHRfZW5hYmxl KCk7Cj4gPiArCj4gPiArCXJldHVybiByZXQgPyByZXQgOiBzdGF0dXM7Cj4gPiArfQo+ID4gKwo+ ID4gwqBzdGF0aWMgaW50IGJ5dF9ncHVfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIGludCB2YWwpCj4gPiDCoHsKPiA+IMKgCS8qCj4gPiAtLcKgCj4gPiAyLjUuMAo+IApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK