From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Goel, Akash" Subject: Re: [PATCH v7 08/19] drm/i915/gen8: Add 4 level switching infrastructure and lrc support Date: Fri, 31 Jul 2015 09:53:14 +0530 Message-ID: <55BAF832.9070509@intel.com> References: <1438187043-34267-9-git-send-email-michel.thierry@intel.com> <1438250783-23118-1-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 8CE5F6E677 for ; Thu, 30 Jul 2015 21:23:26 -0700 (PDT) In-Reply-To: <1438250783-23118-1-git-send-email-michel.thierry@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michel Thierry , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmV2aWV3ZWQgdGhlIHBhdGNoICYgaXQgbG9va3MgZmluZS4KUmV2aWV3ZWQtYnk6ICJBa2FzaCBH b2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4iCgoKT24gNy8zMC8yMDE1IDM6MzYgUE0sIE1pY2hl bCBUaGllcnJ5IHdyb3RlOgo+IEluIDY0YiAoNDhiaXQgY2Fub25pY2FsKSBQUEdUVCBhZGRyZXNz aW5nLCB0aGUgUERQMCByZWdpc3RlciBjb250YWlucwo+IHRoZSBiYXNlIGFkZHJlc3MgdG8gUE1M NCwgd2hpbGUgdGhlIG90aGVyIFBEUCByZWdpc3RlcnMgYXJlIGlnbm9yZWQuCj4KPiBJbiBMUkMs IHRoZSBhZGRyZXNzaW5nIG1vZGUgbXVzdCBiZSBzcGVjaWZpZWQgaW4gZXZlcnkgY29udGV4dAo+ IGRlc2NyaXB0b3IsIGFuZCB0aGUgYmFzZSBhZGRyZXNzIHRvIFBNTDQgaXMgc3RvcmVkIGluIHRo ZSByZWcgc3RhdGUuCj4KPiB2MjogUE1MNCB1cGRhdGUgaW4gbGVnYWN5IGNvbnRleHQgc3dpdGNo IGlzIGxlZnQgZm9yIGhpc3RvcmljIHJlYXNvbnMsCj4gdGhlIHByZWZlcnJlZCBtb2RlIG9mIG9w ZXJhdGlvbiBpcyB3aXRoIGxyYyBjb250ZXh0IGJhc2VkIHN1Ym1pc3Npb24uCj4gdjM6IHMvZ2Vu OF9tYXBfcGFnZV9kaXJlY3RvcnkvZ2VuOF9zZXR1cF9wYWdlX2RpcmVjdG9yeSBhbmQKPiBzL2dl bjhfbWFwX3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIvZ2VuOF9zZXR1cF9wYWdlX2RpcmVjdG9yeV9w b2ludGVyLgo+IEFsc28sIGNsZmx1c2ggd2lsbCBiZSBuZWVkZWQgZm9yIGJ4dC4gKEFrYXNoKQo+ IHY0OiBTcXVhc2hlZCBscmMtc3BlY2lmaWMgY29kZSBhbmQgdXNlIGEgbWFjcm8gdG8gc2V0IFBN TDQgcmVnaXN0ZXIuCj4gdjU6IFJlYmFzZSBhZnRlciBNaWthJ3MgcHBndHQgY2xlYW51cCAvIHNj cmF0Y2ggbWVyZ2UgcGF0Y2ggc2VyaWVzLgo+IFBEUCB1cGRhdGUgaW4gYmJfc3RhcnQgaXMgb25s eSBmb3IgbGVnYWN5IDMyYiBtb2RlLgo+IHY2OiBSZWJhc2UgYWZ0ZXIgZmluYWwgbWVyZ2VkIHZl cnNpb24gb2YgTWlrYSdzIHBwZ3R0L3NjcmF0Y2gKPiBwYXRjaGVzLgo+IHY3OiBUaGVyZSBpcyBu byBuZWVkIHRvIHVwZGF0ZSB0aGUgcG1sNCByZWdpc3RlciB2YWx1ZSBpbgo+IGV4ZWNsaXN0c191 cGRhdGVfY29udGV4dC4gKEFrYXNoKQo+IHY4OiBNb3ZlIHBkIGFuZCBwZHAgc2V0dXAgZnVuY3Rp b25zIHRvIGEgcHJldmlvdXMgcGF0Y2gsIHRoZXkgZG8gbm90Cj4gYmVsb25nIGhlcmUuIChBa2Fz aCkKPiB2OTogQ2hlY2sgVVNFU19GVUxMXzQ4QklUX1BQR1RUIGluc3RlYWQgb2YgR0VOOF9DVFhf QUREUkVTU0lOR19NT0RFIGluCj4gZ2VuOF9lbWl0X2JiX3N0YXJ0IHRvIGNoZWNrIGlmIGVtaXQg cGRwcyBpcyBuZWVkZWQuIChBa2FzaCkKPgo+IENjOiBBa2FzaCBHb2VsIDxha2FzaC5nb2VsQGlu dGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+ Cj4gU2lnbmVkLW9mZi1ieTogTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNv bT4gKHYyKykKPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIHwg MTcgKysrKysrKy0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgIHwg IDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgfCA2MCArKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4gICAzIGZpbGVzIGNoYW5nZWQsIDU1IGlu c2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmMKPiBpbmRleCBjNDk4ZWFhLi5hZTJlMDgyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmMKPiBAQCAtNjU2LDggKzY1Niw4IEBAIHN0YXRpYyBpbnQgZ2VuOF93cml0ZV9w ZHAoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJcmV0dXJuIDA7Cj4gICB9 Cj4KPiAtc3RhdGljIGludCBnZW44X21tX3N3aXRjaChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBn dHQsCj4gLQkJCSAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gK3N0YXRpYyBp bnQgZ2VuOF9sZWdhY3lfbW1fc3dpdGNoKHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwKPiAr CQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIHsKPiAgIAlpbnQgaSwg cmV0Owo+Cj4gQEAgLTY3Miw2ICs2NzIsMTIgQEAgc3RhdGljIGludCBnZW44X21tX3N3aXRjaChz dHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiArc3Rh dGljIGludCBnZW44XzQ4Yl9tbV9zd2l0Y2goc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAo+ ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiArewo+ICsJcmV0 dXJuIGdlbjhfd3JpdGVfcGRwKHJlcSwgMCwgcHhfZG1hKCZwcGd0dC0+cG1sNCkpOwo+ICt9Cj4g Kwo+ICAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhcl9wdGVfcmFuZ2Uoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCj4gICAJCQkJICAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0 b3J5X3BvaW50ZXIgKnBkcCwKPiAgIAkJCQkgICAgICAgdWludDY0X3Qgc3RhcnQsCj4gQEAgLTEz MjEsMTQgKzEzMjcsMTMgQEAgc3RhdGljIGludCBnZW44X3BwZ3R0X2luaXQoc3RydWN0IGk5MTVf aHdfcHBndHQgKnBwZ3R0KQo+ICAgCXBwZ3R0LT5iYXNlLnVuYmluZF92bWEgPSBwcGd0dF91bmJp bmRfdm1hOwo+ICAgCXBwZ3R0LT5iYXNlLmJpbmRfdm1hID0gcHBndHRfYmluZF92bWE7Cj4KPiAt CXBwZ3R0LT5zd2l0Y2hfbW0gPSBnZW44X21tX3N3aXRjaDsKPiAtCj4gICAJaWYgKFVTRVNfRlVM TF80OEJJVF9QUEdUVChwcGd0dC0+YmFzZS5kZXYpKSB7Cj4gICAJCXJldCA9IHNldHVwX3B4KHBw Z3R0LT5iYXNlLmRldiwgJnBwZ3R0LT5wbWw0KTsKPiAgIAkJaWYgKHJldCkKPiAgIAkJCWdvdG8g ZnJlZV9zY3JhdGNoOwo+Cj4gICAJCXBwZ3R0LT5iYXNlLnRvdGFsID0gMVVMTCA8PCA0ODsKPiAr CQlwcGd0dC0+c3dpdGNoX21tID0gZ2VuOF80OGJfbW1fc3dpdGNoOwo+ICAgCX0gZWxzZSB7Cj4g ICAJCXJldCA9IF9fcGRwX2luaXQoZmFsc2UsICZwcGd0dC0+cGRwKTsKPiAgIAkJaWYgKHJldCkK PiBAQCAtMTM0Myw2ICsxMzQ4LDcgQEAgc3RhdGljIGludCBnZW44X3BwZ3R0X2luaXQoc3RydWN0 IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQo+ICAgCQkJICovCj4gICAJCQlwcGd0dC0+YmFzZS50b3Rh bCA9IHRvX2k5MTUocHBndHQtPmJhc2UuZGV2KS0+Z3R0LmJhc2UudG90YWw7Cj4KPiArCQlwcGd0 dC0+c3dpdGNoX21tID0gZ2VuOF9sZWdhY3lfbW1fc3dpdGNoOwo+ICAgCQl0cmFjZV9pOTE1X3Bh Z2VfZGlyZWN0b3J5X3BvaW50ZXJfZW50cnlfYWxsb2MoJnBwZ3R0LT5iYXNlLAo+ICAgCQkJCQkJ CSAgICAgIDAsIDAsCj4gICAJCQkJCQkJICAgICAgR0VOOF9QTUw0RV9TSElGVCk7Cj4gQEAgLTE1 NDAsOCArMTU0Niw5IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfZW5hYmxlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gICAJaW50IGo7Cj4KPiAgIAlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9w cml2LCBqKSB7Cj4gKwkJdTMyIGZvdXJfbGV2ZWwgPSBVU0VTX0ZVTExfNDhCSVRfUFBHVFQoZGV2 KSA/IEdFTjhfR0ZYX1BQR1RUXzQ4QiA6IDA7Cj4gICAJCUk5MTVfV1JJVEUoUklOR19NT0RFX0dF TjcocmluZyksCj4gLQkJCSAgIF9NQVNLRURfQklUX0VOQUJMRShHRlhfUFBHVFRfRU5BQkxFKSk7 Cj4gKwkJCSAgIF9NQVNLRURfQklUX0VOQUJMRShHRlhfUFBHVFRfRU5BQkxFIHwgZm91cl9sZXZl bCkpOwo+ICAgCX0KPiAgIH0KPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IDNhNzc2 NzguLjViZDFiNmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtMTY3MCw2ICsx NjcwLDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gICAjZGVmaW5lICAgR0ZYX1JF UExBWV9NT0RFCQkoMTw8MTEpCj4gICAjZGVmaW5lICAgR0ZYX1BTTUlfR1JBTlVMQVJJVFkJCSgx PDwxMCkKPiAgICNkZWZpbmUgICBHRlhfUFBHVFRfRU5BQkxFCQkoMTw8OSkKPiArI2RlZmluZSAg IEdFTjhfR0ZYX1BQR1RUXzQ4QgkJKDE8PDcpCj4KPiAgICNkZWZpbmUgVkxWX0RJU1BMQVlfQkFT RSAweDE4MDAwMAo+ICAgI2RlZmluZSBWTFZfTUlQSV9CQVNFIFZMVl9ESVNQTEFZX0JBU0UKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IGluZGV4IDk5YmJhOGUuLjRjNDA2MTQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0xOTYsMTMgKzE5NiwyMSBAQAo+ICAgCXJlZ19z dGF0ZVtDVFhfUERQICMjIG4gIyMgX0xEVysxXSA9IGxvd2VyXzMyX2JpdHMoX2FkZHIpOyBcCj4g ICB9Cj4KPiArI2RlZmluZSBBU1NJR05fQ1RYX1BNTDQocHBndHQsIHJlZ19zdGF0ZSkgeyBcCj4g KwlyZWdfc3RhdGVbQ1RYX1BEUDBfVURXICsgMV0gPSB1cHBlcl8zMl9iaXRzKHB4X2RtYSgmcHBn dHQtPnBtbDQpKTsgXAo+ICsJcmVnX3N0YXRlW0NUWF9QRFAwX0xEVyArIDFdID0gbG93ZXJfMzJf Yml0cyhweF9kbWEoJnBwZ3R0LT5wbWw0KSk7IFwKPiArfQo+ICsKPiAgIGVudW0gewo+ICAgCUFE VkFOQ0VEX0NPTlRFWFQgPSAwLAo+IC0JTEVHQUNZX0NPTlRFWFQsCj4gKwlMRUdBQ1lfMzJCX0NP TlRFWFQsCj4gICAJQURWQU5DRURfQURfQ09OVEVYVCwKPiAgIAlMRUdBQ1lfNjRCX0NPTlRFWFQK PiAgIH07Cj4gLSNkZWZpbmUgR0VOOF9DVFhfTU9ERV9TSElGVCAzCj4gKyNkZWZpbmUgR0VOOF9D VFhfQUREUkVTU0lOR19NT0RFX1NISUZUIDMKPiArI2RlZmluZSBHRU44X0NUWF9BRERSRVNTSU5H X01PREUoZGV2KSAgKFVTRVNfRlVMTF80OEJJVF9QUEdUVChkZXYpID9cCj4gKwkJTEVHQUNZXzY0 Ql9DT05URVhUIDpcCj4gKwkJTEVHQUNZXzMyQl9DT05URVhUKQo+ICAgZW51bSB7Cj4gICAJRkFV TFRfQU5EX0hBTkcgPSAwLAo+ICAgCUZBVUxUX0FORF9IQUxULCAvKiBEZWJ1ZyBvbmx5ICovCj4g QEAgLTI3Myw3ICsyODEsNyBAQCBzdGF0aWMgdWludDY0X3QgZXhlY2xpc3RzX2N0eF9kZXNjcmlw dG9yKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gICAJV0FSTl9PTihscmNhICYg MHhGRkZGRkZGRjAwMDAwRkZGVUxMKTsKPgo+ICAgCWRlc2MgPSBHRU44X0NUWF9WQUxJRDsKPiAt CWRlc2MgfD0gTEVHQUNZX0NPTlRFWFQgPDwgR0VOOF9DVFhfTU9ERV9TSElGVDsKPiArCWRlc2Mg fD0gR0VOOF9DVFhfQUREUkVTU0lOR19NT0RFKGRldikgPDwgR0VOOF9DVFhfQUREUkVTU0lOR19N T0RFX1NISUZUOwo+ICAgCWlmIChJU19HRU44KGN0eF9vYmotPmJhc2UuZGV2KSkKPiAgIAkJZGVz YyB8PSBHRU44X0NUWF9MM0xMQ19DT0hFUkVOVDsKPiAgIAlkZXNjIHw9IEdFTjhfQ1RYX1BSSVZJ TEVHRTsKPiBAQCAtMzQ4LDEwICszNTYsMTIgQEAgc3RhdGljIGludCBleGVjbGlzdHNfdXBkYXRl X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKPiAgIAlyZWdfc3RhdGVb Q1RYX1JJTkdfVEFJTCsxXSA9IHJxLT50YWlsOwo+ICAgCXJlZ19zdGF0ZVtDVFhfUklOR19CVUZG RVJfU1RBUlQrMV0gPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQocmJfb2JqKTsKPgo+IC0JLyog VHJ1ZSBQUEdUVCB3aXRoIGR5bmFtaWMgcGFnZSBhbGxvY2F0aW9uOiB1cGRhdGUgUERQIHJlZ2lz dGVycyBhbmQKPiAtCSAqIHBvaW50IHRoZSB1bmFsbG9jYXRlZCBQRFBzIHRvIHRoZSBzY3JhdGNo IHBhZ2UKPiAtCSAqLwo+IC0JaWYgKHBwZ3R0KSB7Cj4gKwlpZiAocHBndHQgJiYgIVVTRVNfRlVM TF80OEJJVF9QUEdUVChwcGd0dC0+YmFzZS5kZXYpKSB7Cj4gKwkJLyogVHJ1ZSAzMmIgUFBHVFQg d2l0aCBkeW5hbWljIHBhZ2UgYWxsb2NhdGlvbjogdXBkYXRlIFBEUAo+ICsJCSAqIHJlZ2lzdGVy cyBhbmQgcG9pbnQgdGhlIHVuYWxsb2NhdGVkIFBEUHMgdG8gc2NyYXRjaCBwYWdlLgo+ICsJCSAq IFBNTDQgaXMgYWxsb2NhdGVkIGR1cmluZyBwcGd0dCBpbml0LCBzbyB0aGlzIGlzIG5vdCBuZWVk ZWQKPiArCQkgKiBpbiA0OC1iaXQgbW9kZS4KPiArCQkgKi8KPiAgIAkJQVNTSUdOX0NUWF9QRFAo cHBndHQsIHJlZ19zdGF0ZSwgMyk7Cj4gICAJCUFTU0lHTl9DVFhfUERQKHBwZ3R0LCByZWdfc3Rh dGUsIDIpOwo+ICAgCQlBU1NJR05fQ1RYX1BEUChwcGd0dCwgcmVnX3N0YXRlLCAxKTsKPiBAQCAt MTUxMiwxMiArMTUyMiwxNSBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9iYl9zdGFydChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkgKiBJZGVhbGx5LCB3ZSBzaG91bGQgc2V0 IEZvcmNlIFBEIFJlc3RvcmUgaW4gY3R4IGRlc2NyaXB0b3IsCj4gICAJICogYnV0IHdlIGNhbid0 LiBGb3JjZSBSZXN0b3JlIHdvdWxkIGJlIGEgc2Vjb25kIG9wdGlvbiwgYnV0Cj4gICAJICogaXQg aXMgdW5zYWZlIGluIGNhc2Ugb2YgbGl0ZS1yZXN0b3JlIChiZWNhdXNlIHRoZSBjdHggaXMKPiAt CSAqIG5vdCBpZGxlKS4gKi8KPiArCSAqIG5vdCBpZGxlKS4gUE1MNCBpcyBhbGxvY2F0ZWQgZHVy aW5nIHBwZ3R0IGluaXQgc28gdGhpcyBpcwo+ICsJICogbm90IG5lZWRlZCBpbiA0OC1iaXQuKi8K PiAgIAlpZiAocmVxLT5jdHgtPnBwZ3R0ICYmCj4gICAJICAgIChpbnRlbF9yaW5nX2ZsYWcocmVx LT5yaW5nKSAmIHJlcS0+Y3R4LT5wcGd0dC0+cGRfZGlydHlfcmluZ3MpKSB7Cj4gLQkJcmV0ID0g aW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcGRwcyhyZXEpOwo+IC0JCWlmIChyZXQpCj4gLQkJCXJl dHVybiByZXQ7Cj4gKwkJaWYgKCFVU0VTX0ZVTExfNDhCSVRfUFBHVFQocmVxLT5pOTE1KSkgewo+ ICsJCQlyZXQgPSBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9wZHBzKHJlcSk7Cj4gKwkJCWlmIChy ZXQpCj4gKwkJCQlyZXR1cm4gcmV0Owo+ICsJCX0KPgo+ICAgCQlyZXEtPmN0eC0+cHBndHQtPnBk X2RpcnR5X3JpbmdzICY9IH5pbnRlbF9yaW5nX2ZsYWcocmVxLT5yaW5nKTsKPiAgIAl9Cj4gQEAg LTIxOTgsMTMgKzIyMTEsMjQgQEAgcG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY3R4LCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X28KPiAgIAlyZWdfc3Rh dGVbQ1RYX1BEUDBfVURXXSA9IEdFTjhfUklOR19QRFBfVURXKHJpbmcsIDApOwo+ICAgCXJlZ19z dGF0ZVtDVFhfUERQMF9MRFddID0gR0VOOF9SSU5HX1BEUF9MRFcocmluZywgMCk7Cj4KPiAtCS8q IFdpdGggZHluYW1pYyBwYWdlIGFsbG9jYXRpb24sIFBEUHMgbWF5IG5vdCBiZSBhbGxvY2F0ZWQg YXQgdGhpcyBwb2ludCwKPiAtCSAqIFBvaW50IHRoZSB1bmFsbG9jYXRlZCBQRFBzIHRvIHRoZSBz Y3JhdGNoIHBhZ2UKPiAtCSAqLwo+IC0JQVNTSUdOX0NUWF9QRFAocHBndHQsIHJlZ19zdGF0ZSwg Myk7Cj4gLQlBU1NJR05fQ1RYX1BEUChwcGd0dCwgcmVnX3N0YXRlLCAyKTsKPiAtCUFTU0lHTl9D VFhfUERQKHBwZ3R0LCByZWdfc3RhdGUsIDEpOwo+IC0JQVNTSUdOX0NUWF9QRFAocHBndHQsIHJl Z19zdGF0ZSwgMCk7Cj4gKwlpZiAoVVNFU19GVUxMXzQ4QklUX1BQR1RUKHBwZ3R0LT5iYXNlLmRl dikpIHsKPiArCQkvKiA2NGIgUFBHVFQgKDQ4Yml0IGNhbm9uaWNhbCkKPiArCQkgKiBQRFAwX0RF U0NSSVBUT1IgY29udGFpbnMgdGhlIGJhc2UgYWRkcmVzcyB0byBQTUw0IGFuZAo+ICsJCSAqIG90 aGVyIFBEUCBEZXNjcmlwdG9ycyBhcmUgaWdub3JlZC4KPiArCQkgKi8KPiArCQlBU1NJR05fQ1RY X1BNTDQocHBndHQsIHJlZ19zdGF0ZSk7Cj4gKwl9IGVsc2Ugewo+ICsJCS8qIDMyYiBQUEdUVAo+ ICsJCSAqIFBEUCpfREVTQ1JJUFRPUiBjb250YWlucyB0aGUgYmFzZSBhZGRyZXNzIG9mIHNwYWNl IHN1cHBvcnRlZC4KPiArCQkgKiBXaXRoIGR5bmFtaWMgcGFnZSBhbGxvY2F0aW9uLCBQRFBzIG1h eSBub3QgYmUgYWxsb2NhdGVkIGF0Cj4gKwkJICogdGhpcyBwb2ludC4gUG9pbnQgdGhlIHVuYWxs b2NhdGVkIFBEUHMgdG8gdGhlIHNjcmF0Y2ggcGFnZQo+ICsJCSAqLwo+ICsJCUFTU0lHTl9DVFhf UERQKHBwZ3R0LCByZWdfc3RhdGUsIDMpOwo+ICsJCUFTU0lHTl9DVFhfUERQKHBwZ3R0LCByZWdf c3RhdGUsIDIpOwo+ICsJCUFTU0lHTl9DVFhfUERQKHBwZ3R0LCByZWdfc3RhdGUsIDEpOwo+ICsJ CUFTU0lHTl9DVFhfUERQKHBwZ3R0LCByZWdfc3RhdGUsIDApOwo+ICsJfQo+ICsKPiAgIAlpZiAo cmluZy0+aWQgPT0gUkNTKSB7Cj4gICAJCXJlZ19zdGF0ZVtDVFhfTFJJX0hFQURFUl8yXSA9IE1J X0xPQURfUkVHSVNURVJfSU1NKDEpOwo+ICAgCQlyZWdfc3RhdGVbQ1RYX1JfUFdSX0NMS19TVEFU RV0gPSBHRU44X1JfUFdSX0NMS19TVEFURTsKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=