From mboxrd@z Thu Jan 1 00:00:00 1970 From: Clint Taylor Subject: Re: [PATCH 03/10] drm/i915: Read wm values from hardware at init on CHV Date: Fri, 26 Jun 2015 13:23:07 -0700 Message-ID: <558DB4AB.1090304@intel.com> References: <1435172410-9834-1-git-send-email-ville.syrjala@linux.intel.com> <1435172410-9834-4-git-send-email-ville.syrjala@linux.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 133C06EE6D for ; Fri, 26 Jun 2015 13:25:28 -0700 (PDT) In-Reply-To: <1435172410-9834-4-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMDYvMjQvMjAxNSAxMjowMCBQTSwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3Jv dGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPgo+IFJlYWQgb3V0IHRoZSBjdXJyZW50IHdhdGVybWFyayBzZXR0aW5ncyBmcm9tIHRoZSBo YXJkd2FyZSBhdCBkcml2ZXIgaW5pdAo+IHRpbWUuIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBjb21w YXJlIHRoZSBuZXdseSBjYWxjdWxhdGVkIHZhbHVlcyBhZ2FpbnN0Cj4gdGhlIGN1cnJyZW50IG9u ZXMgYW5kIHBvdGVudGlhbGx5IGF2b2lkIG5lZWRsZXNzIFdNIHVwZGF0ZXMuCj4KPiBTaWduZWQt b2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgICAyICsKPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAgNCArLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAyICsKPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgICAgICB8IDE0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxNDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggYzNiOWZjZi4uNTE0YWRjZiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0xNTE1LDYgKzE1MTUsOCBAQCBzdHJ1 Y3Qgdmx2X3dtX3ZhbHVlcyB7Cj4gICAJCXVpbnQ4X3Qgc3ByaXRlWzJdOwo+ICAgCQl1aW50OF90 IHByaW1hcnk7Cj4gICAJfSBkZGxbM107Cj4gKwl1aW50OF90IGxldmVsOwo+ICsJYm9vbCBjeHNy Owo+ICAgfTsKPgo+ICAgc3RydWN0IHNrbF9kZGJfZW50cnkgewo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBpbmRleCAxYTFjNjg2Li5iMTVkNTdmIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xNTQ3NCw3ICsxNTQ3NCw5IEBAIHZvaWQgaW50 ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQlw bGwtPm9uID0gZmFsc2U7Cj4gICAJfQo+Cj4gLQlpZiAoSVNfR0VOOShkZXYpKQo+ICsJaWYgKElT X0NIRVJSWVZJRVcoZGV2KSkKPiArCQl2bHZfd21fZ2V0X2h3X3N0YXRlKGRldik7Cj4gKwllbHNl IGlmIChJU19HRU45KGRldikpCj4gICAJCXNrbF93bV9nZXRfaHdfc3RhdGUoZGV2KTsKPiAgIAll bHNlIGlmIChIQVNfUENIX1NQTElUKGRldikpCj4gICAJCWlsa193bV9nZXRfaHdfc3RhdGUoZGV2 KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGZlZmFmMDEuLjM2NzNhNzEgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC01ODIsNiArNTgyLDcgQEAgc3RydWN0 IGludGVsX3BsYW5lX3dtX3BhcmFtZXRlcnMgewo+ICAgCWJvb2wgc2NhbGVkOwo+ICAgCXU2NCB0 aWxpbmc7Cj4gICAJdW5zaWduZWQgaW50IHJvdGF0aW9uOwo+ICsJdWludDE2X3QgZmlmb19zaXpl Owo+ICAgfTsKPgo+ICAgc3RydWN0IGludGVsX3BsYW5lIHsKPiBAQCAtMTM4MCw2ICsxMzgxLDcg QEAgdm9pZCBnZW42X3Jwc19ib29zdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gICAJCSAgICB1bnNpZ25lZCBsb25nIHN1Ym1pdHRlZCk7Cj4gICB2b2lkIGludGVsX3F1ZXVl X3Jwc19ib29zdF9mb3JfcmVxdWVzdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQkJCSAg ICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gK3ZvaWQgdmx2X3dtX2dl dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgIHZvaWQgaWxrX3dtX2dldF9o d19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgIHZvaWQgc2tsX3dtX2dldF9od19z dGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgIHZvaWQgc2tsX2RkYl9nZXRfaHdfc3Rh dGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwo+IGluZGV4IDk3MDYyNzUuLmU2NzU0OGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMKPiBAQCAtMTAwNiw2ICsxMDA2LDE0IEBAIHN0YXRpYyBpbnQgdmx2X2NvbXB1dGVfd20oc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCj4gICAJcmV0dXJuIGZpZm9fc2l6ZSAtIGNsYW1wKERJVl9S T1VORF9VUCgyNTYgKiBlbnRyaWVzLCA2NCksIDAsIGZpZm9fc2l6ZSAtIDgpOwo+ICAgfQo+Cj4g K2VudW0gdmx2X3dtX2xldmVsIHsKPiArCVZMVl9XTV9MRVZFTF9QTTIsCj4gKwlWTFZfV01fTEVW RUxfUE01LAo+ICsJVkxWX1dNX0xFVkVMX0REUl9EVkZTLAo+ICsJQ0hWX1dNX05VTV9MRVZFTFMs Cj4gKwlWTFZfV01fTlVNX0xFVkVMUyA9IDEsCj4gK307Cj4gKwo+ICAgc3RhdGljIGJvb2wgdmx2 X2NvbXB1dGVfc3Jfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJCSAgICAgIHN0cnVj dCB2bHZfd21fdmFsdWVzICp3bSkKPiAgIHsKPiBAQCAtMzY4OSw2ICszNjk3LDEzOSBAQCBzdGF0 aWMgdm9pZCBpbGtfcGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ ICAgCX0KPiAgIH0KPgo+ICsjZGVmaW5lIF9GV19XTSh2YWx1ZSwgcGxhbmUpIFwKPiArCSgoKHZh bHVlKSAmIERTUEZXXyAjIyBwbGFuZSAjIyBfTUFTSykgPj4gRFNQRldfICMjIHBsYW5lICMjIF9T SElGVCkKPiArI2RlZmluZSBfRldfV01fVkxWKHZhbHVlLCBwbGFuZSkgXAo+ICsJKCgodmFsdWUp ICYgRFNQRldfICMjIHBsYW5lICMjIF9NQVNLX1ZMVikgPj4gRFNQRldfICMjIHBsYW5lICMjIF9T SElGVCkKPiArCj4gK3N0YXRpYyB2b2lkIHZsdl9yZWFkX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgICAgICBzdHJ1Y3Qgdmx2X3dtX3ZhbHVlcyAq d20pCj4gK3sKPiArCWVudW0gcGlwZSBwaXBlOwo+ICsJdWludDMyX3QgdG1wOwo+ICsKPiArCWZv cl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpIHsKPiArCQl0bXAgPSBJOTE1X1JFQUQoVkxWX0RE TChwaXBlKSk7Cj4gKwo+ICsJCXdtLT5kZGxbcGlwZV0ucHJpbWFyeSA9Cj4gKwkJCSh0bXAgPj4g RERMX1BMQU5FX1NISUZUKSAmIChERExfUFJFQ0lTSU9OX0hJR0ggfCBEUkFJTl9MQVRFTkNZX01B U0spOwo+ICsJCXdtLT5kZGxbcGlwZV0uY3Vyc29yID0KPiArCQkJKHRtcCA+PiBERExfQ1VSU09S X1NISUZUKSAmIChERExfUFJFQ0lTSU9OX0hJR0ggfCBEUkFJTl9MQVRFTkNZX01BU0spOwo+ICsJ CXdtLT5kZGxbcGlwZV0uc3ByaXRlWzBdID0KPiArCQkJKHRtcCA+PiBERExfU1BSSVRFX1NISUZU KDApKSAmIChERExfUFJFQ0lTSU9OX0hJR0ggfCBEUkFJTl9MQVRFTkNZX01BU0spOwo+ICsJCXdt LT5kZGxbcGlwZV0uc3ByaXRlWzFdID0KPiArCQkJKHRtcCA+PiBERExfU1BSSVRFX1NISUZUKDEp KSAmIChERExfUFJFQ0lTSU9OX0hJR0ggfCBEUkFJTl9MQVRFTkNZX01BU0spOwo+ICsJfQo+ICsK PiArCXRtcCA9IEk5MTVfUkVBRChEU1BGVzEpOwo+ICsJd20tPnNyLnBsYW5lID0gX0ZXX1dNKHRt cCwgU1IpOwo+ICsJd20tPnBpcGVbUElQRV9CXS5jdXJzb3IgPSBfRldfV00odG1wLCBDVVJTT1JC KTsKPiArCXdtLT5waXBlW1BJUEVfQl0ucHJpbWFyeSA9IF9GV19XTV9WTFYodG1wLCBQTEFORUIp Owo+ICsJd20tPnBpcGVbUElQRV9BXS5wcmltYXJ5ID0gX0ZXX1dNX1ZMVih0bXAsIFBMQU5FQSk7 Cj4gKwo+ICsJdG1wID0gSTkxNV9SRUFEKERTUEZXMik7Cj4gKwl3bS0+cGlwZVtQSVBFX0FdLnNw cml0ZVsxXSA9IF9GV19XTV9WTFYodG1wLCBTUFJJVEVCKTsKPiArCXdtLT5waXBlW1BJUEVfQV0u Y3Vyc29yID0gX0ZXX1dNKHRtcCwgQ1VSU09SQSk7Cj4gKwl3bS0+cGlwZVtQSVBFX0FdLnNwcml0 ZVswXSA9IF9GV19XTV9WTFYodG1wLCBTUFJJVEVBKTsKPiArCj4gKwl0bXAgPSBJOTE1X1JFQUQo RFNQRlczKTsKPiArCXdtLT5zci5jdXJzb3IgPSBfRldfV00odG1wLCBDVVJTT1JfU1IpOwo+ICsK PiArCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ICsJCXRtcCA9IEk5MTVfUkVBRChE U1BGVzdfQ0hWKTsKPiArCQl3bS0+cGlwZVtQSVBFX0JdLnNwcml0ZVsxXSA9IF9GV19XTV9WTFYo dG1wLCBTUFJJVEVEKTsKPiArCQl3bS0+cGlwZVtQSVBFX0JdLnNwcml0ZVswXSA9IF9GV19XTV9W TFYodG1wLCBTUFJJVEVDKTsKPiArCj4gKwkJdG1wID0gSTkxNV9SRUFEKERTUEZXOF9DSFYpOwo+ ICsJCXdtLT5waXBlW1BJUEVfQ10uc3ByaXRlWzFdID0gX0ZXX1dNX1ZMVih0bXAsIFNQUklURUYp Owo+ICsJCXdtLT5waXBlW1BJUEVfQ10uc3ByaXRlWzBdID0gX0ZXX1dNX1ZMVih0bXAsIFNQUklU RUUpOwo+ICsKPiArCQl0bXAgPSBJOTE1X1JFQUQoRFNQRlc5X0NIVik7Cj4gKwkJd20tPnBpcGVb UElQRV9DXS5wcmltYXJ5ID0gX0ZXX1dNX1ZMVih0bXAsIFBMQU5FQyk7Cj4gKwkJd20tPnBpcGVb UElQRV9DXS5jdXJzb3IgPSBfRldfV00odG1wLCBDVVJTT1JDKTsKPiArCj4gKwkJdG1wID0gSTkx NV9SRUFEKERTUEhPV00pOwo+ICsJCXdtLT5zci5wbGFuZSB8PSBfRldfV00odG1wLCBTUl9ISSkg PDwgOTsKPiArCQl3bS0+cGlwZVtQSVBFX0NdLnNwcml0ZVsxXSB8PSBfRldfV00odG1wLCBTUFJJ VEVGX0hJKSA8PCA4Owo+ICsJCXdtLT5waXBlW1BJUEVfQ10uc3ByaXRlWzBdIHw9IF9GV19XTSh0 bXAsIFNQUklURUVfSEkpIDw8IDg7Cj4gKwkJd20tPnBpcGVbUElQRV9DXS5wcmltYXJ5IHw9IF9G V19XTSh0bXAsIFBMQU5FQ19ISSkgPDwgODsKPiArCQl3bS0+cGlwZVtQSVBFX0JdLnNwcml0ZVsx XSB8PSBfRldfV00odG1wLCBTUFJJVEVEX0hJKSA8PCA4Owo+ICsJCXdtLT5waXBlW1BJUEVfQl0u c3ByaXRlWzBdIHw9IF9GV19XTSh0bXAsIFNQUklURUNfSEkpIDw8IDg7Cj4gKwkJd20tPnBpcGVb UElQRV9CXS5wcmltYXJ5IHw9IF9GV19XTSh0bXAsIFBMQU5FQl9ISSkgPDwgODsKPiArCQl3bS0+ cGlwZVtQSVBFX0FdLnNwcml0ZVsxXSB8PSBfRldfV00odG1wLCBTUFJJVEVCX0hJKSA8PCA4Owo+ ICsJCXdtLT5waXBlW1BJUEVfQV0uc3ByaXRlWzBdIHw9IF9GV19XTSh0bXAsIFNQUklURUFfSEkp IDw8IDg7Cj4gKwkJd20tPnBpcGVbUElQRV9BXS5wcmltYXJ5IHw9IF9GV19XTSh0bXAsIFBMQU5F QV9ISSkgPDwgODsKPiArCX0gZWxzZSB7Cj4gKwkJdG1wID0gSTkxNV9SRUFEKERTUEZXNyk7Cj4g KwkJd20tPnBpcGVbUElQRV9CXS5zcHJpdGVbMV0gPSBfRldfV01fVkxWKHRtcCwgU1BSSVRFRCk7 Cj4gKwkJd20tPnBpcGVbUElQRV9CXS5zcHJpdGVbMF0gPSBfRldfV01fVkxWKHRtcCwgU1BSSVRF Qyk7Cj4gKwo+ICsJCXRtcCA9IEk5MTVfUkVBRChEU1BIT1dNKTsKPiArCQl3bS0+c3IucGxhbmUg fD0gX0ZXX1dNKHRtcCwgU1JfSEkpIDw8IDk7Cj4gKwkJd20tPnBpcGVbUElQRV9CXS5zcHJpdGVb MV0gfD0gX0ZXX1dNKHRtcCwgU1BSSVRFRF9ISSkgPDwgODsKPiArCQl3bS0+cGlwZVtQSVBFX0Jd LnNwcml0ZVswXSB8PSBfRldfV00odG1wLCBTUFJJVEVDX0hJKSA8PCA4Owo+ICsJCXdtLT5waXBl W1BJUEVfQl0ucHJpbWFyeSB8PSBfRldfV00odG1wLCBQTEFORUJfSEkpIDw8IDg7Cj4gKwkJd20t PnBpcGVbUElQRV9BXS5zcHJpdGVbMV0gfD0gX0ZXX1dNKHRtcCwgU1BSSVRFQl9ISSkgPDwgODsK PiArCQl3bS0+cGlwZVtQSVBFX0FdLnNwcml0ZVswXSB8PSBfRldfV00odG1wLCBTUFJJVEVBX0hJ KSA8PCA4Owo+ICsJCXdtLT5waXBlW1BJUEVfQV0ucHJpbWFyeSB8PSBfRldfV00odG1wLCBQTEFO RUFfSEkpIDw8IDg7Cj4gKwl9Cj4gK30KPiArCj4gKyN1bmRlZiBfRldfV00KPiArI3VuZGVmIF9G V19XTV9WTFYKPiArCj4gK3ZvaWQgdmx2X3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4gKwlzdHJ1Y3Qgdmx2X3dtX3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYtPndtLnZs djsKPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4gKwllbnVtIHBpcGUgcGlwZTsKPiAr CXUzMiB2YWw7Cj4gKwo+ICsJdmx2X3JlYWRfd21fdmFsdWVzKGRldl9wcml2LCB3bSk7Cj4gKwo+ ICsJZm9yX2VhY2hfaW50ZWxfcGxhbmUoZGV2LCBwbGFuZSkgewo+ICsJCXN3aXRjaCAocGxhbmUt PmJhc2UudHlwZSkgewo+ICsJCQlpbnQgc3ByaXRlOwo+ICsJCWNhc2UgRFJNX1BMQU5FX1RZUEVf Q1VSU09SOgo+ICsJCQlwbGFuZS0+d20uZmlmb19zaXplID0gNjM7Cj4gKwkJCWJyZWFrOwo+ICsJ CWNhc2UgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWToKPiArCQkJcGxhbmUtPndtLmZpZm9fc2l6ZSA9 IHZsdl9nZXRfZmlmb19zaXplKGRldiwgcGxhbmUtPnBpcGUsIDApOwo+ICsJCQlicmVhazsKPiAr CQljYXNlIERSTV9QTEFORV9UWVBFX09WRVJMQVk6Cj4gKwkJCXNwcml0ZSA9IHBsYW5lLT5wbGFu ZTsKPiArCQkJcGxhbmUtPndtLmZpZm9fc2l6ZSA9IHZsdl9nZXRfZmlmb19zaXplKGRldiwgcGxh bmUtPnBpcGUsIHNwcml0ZSArIDEpOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJ d20tPmN4c3IgPSBJOTE1X1JFQUQoRldfQkxDX1NFTEZfVkxWKSAmIEZXX0NTUFdSRFdORU47Cj4g Kwl3bS0+bGV2ZWwgPSBWTFZfV01fTEVWRUxfUE0yOwo+ICsKPiArCWlmIChJU19DSEVSUllWSUVX KGRldl9wcml2KSkgewo+ICsJCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4g Kwo+ICsJCXZhbCA9IHZsdl9wdW5pdF9yZWFkKGRldl9wcml2LCBQVU5JVF9SRUdfRFNQRlJFUSk7 Cj4gKwkJaWYgKHZhbCAmIERTUF9NQVhGSUZPX1BNNV9FTkFCTEUpCj4gKwkJCXdtLT5sZXZlbCA9 IFZMVl9XTV9MRVZFTF9QTTU7Cj4gKwo+ICsJCXZhbCA9IHZsdl9wdW5pdF9yZWFkKGRldl9wcml2 LCBQVU5JVF9SRUdfRERSX1NFVFVQMik7Cj4gKwkJaWYgKCh2YWwgJiBGT1JDRV9ERFJfSElHSF9G UkVRKSA9PSAwKQo+ICsJCQl3bS0+bGV2ZWwgPSBWTFZfV01fTEVWRUxfRERSX0RWRlM7Cj4gKwo+ ICsJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCX0KPiArCj4gKwlm b3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKQo+ICsJCURSTV9ERUJVR19LTVMoIkluaXRpYWwg d2F0ZXJtYXJrczogcGlwZSAlYywgcGxhbmU9JWQsIGN1cnNvcj0lZCwgc3ByaXRlMD0lZCwgc3By aXRlMT0lZFxuIiwKPiArCQkJICAgICAgcGlwZV9uYW1lKHBpcGUpLCB3bS0+cGlwZVtwaXBlXS5w cmltYXJ5LCB3bS0+cGlwZVtwaXBlXS5jdXJzb3IsCj4gKwkJCSAgICAgIHdtLT5waXBlW3BpcGVd LnNwcml0ZVswXSwgd20tPnBpcGVbcGlwZV0uc3ByaXRlWzFdKTsKPiArCj4gKwlEUk1fREVCVUdf S01TKCJJbml0aWFsIHdhdGVybWFya3M6IFNSIHBsYW5lPSVkLCBTUiBjdXJzb3I9JWQgbGV2ZWw9 JWQgY3hzcj0lZFxuIiwKPiArCQkgICAgICB3bS0+c3IucGxhbmUsIHdtLT5zci5jdXJzb3IsIHdt LT5sZXZlbCwgd20tPmN4c3IpOwo+ICt9Cj4gKwo+ICAgdm9pZCBpbGtfd21fZ2V0X2h3X3N0YXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPgoKUmV2aWV3ZWQtYnk6IENsaW50IFRh eWxvciA8Q2xpbnRvbi5BLlRheWxvckBpbnRlbC5jb20+ClRlc3RlZC1ieTogQ2xpbnQgVGF5bG9y IDxDbGludG9uLkEuVGF5bG9yQGludGVsLmNvbT4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==