From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH 3/7] drm/i915/dp: abstract dp link config computation from the rest Date: Wed, 25 Apr 2018 12:03:29 -0700 Message-ID: <20180425190328.GH31618@intel.com> References: <8cd4c6a183befd14fafa5be6694a6ae52e3e3c2c.1522938790.git.jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6FA9A6E65B for ; Wed, 25 Apr 2018 19:00:14 +0000 (UTC) Content-Disposition: inline In-Reply-To: <8cd4c6a183befd14fafa5be6694a6ae52e3e3c2c.1522938790.git.jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org, rodrigo.vivi@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBcHIgMDUsIDIwMTggYXQgMDU6Mzk6MDFQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gQWJzdHJhY3QgYSBuZXcgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZygpIGZyb20K PiBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZygpLCB3aXRoIHRoZSBwYXJ0cyByZWxhdGVkIHRvIGxp bmsgY29uZmlndXJhdGlvbiwKPiBpLmUuIGJwcCwgbGluayByYXRlLCBhbmQgbGFuZSBjb3VudCBz ZWxlY3Rpb24uIE5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4KPgoKVGhpcyBhYnN0cmFjdGlvbiBtYWtl cyBpdCBjbGVhbmVyIGFuZCBlYXN5IHRvIGFkZCBkc2MgY29tcHV0ZSBjb25maWcuCgpSZXZpZXdl ZC1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KIAo+IFNpZ25l ZC1vZmYtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgfCAxNjAgKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwg NzMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggODFjZjM2 M2U3MWFmLi4xOWZlNWViOGQzMmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAt MTY4NSwxOSArMTY4NSwxNCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9lZHBfY29tcGFyZV9hbHRfbW9k ZShzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbTEsCj4gIAlyZXR1cm4gYnJlczsKPiAgfQo+ICAK PiAtYm9vbAo+IC1pbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiAtCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+IC0J CQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiArc3RhdGljIGJvb2wK PiAraW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiArCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4g IHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiAgCXN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+IC0JZW51bSBwb3J0 IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwo+ICAJc3RydWN0IGludGVs X2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5lY3Rv cjsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9z dGF0ZSA9Cj4gLQkJdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7 Cj4gIAlpbnQgbGFuZV9jb3VudCwgY2xvY2s7Cj4gIAlpbnQgbWluX2xhbmVfY291bnQgPSAxOwo+ ICAJaW50IG1heF9sYW5lX2NvdW50ID0gaW50ZWxfZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHAp Owo+IEBAIC0xNzA2LDkgKzE3MDEsNiBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCWludCBicHAsIG1vZGVfcmF0ZTsKPiAgCWludCBs aW5rX2F2YWlsLCBsaW5rX2Nsb2NrOwo+ICAJaW50IGNvbW1vbl9sZW47Cj4gLQlib29sIHJlZHVj ZV9tX24gPSBkcm1fZHBfaGFzX3F1aXJrKCZpbnRlbF9kcC0+ZGVzYywKPiAtCQkJCQkgICBEUF9E UENEX1FVSVJLX0xJTUlURURfTV9OKTsKPiAtCj4gIAljb21tb25fbGVuID0gaW50ZWxfZHBfY29t bW9uX2xlbl9yYXRlX2xpbWl0KGludGVsX2RwLAo+ICAJCQkJCQkgICAgaW50ZWxfZHAtPm1heF9s aW5rX3JhdGUpOwo+ICAKPiBAQCAtMTcxNyw1MSArMTcwOSw2IEBAIGludGVsX2RwX2NvbXB1dGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgCW1heF9jbG9jayA9 IGNvbW1vbl9sZW4gLSAxOwo+ICAKPiAtCWlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSAmJiAh SEFTX0RESShkZXZfcHJpdikgJiYgcG9ydCAhPSBQT1JUX0EpCj4gLQkJcGlwZV9jb25maWctPmhh c19wY2hfZW5jb2RlciA9IHRydWU7Cj4gLQo+IC0JcGlwZV9jb25maWctPmhhc19kcnJzID0gZmFs c2U7Cj4gLQlpZiAoSVNfRzRYKGRldl9wcml2KSB8fCBwb3J0ID09IFBPUlRfQSkKPiAtCQlwaXBl X2NvbmZpZy0+aGFzX2F1ZGlvID0gZmFsc2U7Cj4gLQllbHNlIGlmIChpbnRlbF9jb25uX3N0YXRl LT5mb3JjZV9hdWRpbyA9PSBIRE1JX0FVRElPX0FVVE8pCj4gLQkJcGlwZV9jb25maWctPmhhc19h dWRpbyA9IGludGVsX2RwLT5oYXNfYXVkaW87Cj4gLQllbHNlCj4gLQkJcGlwZV9jb25maWctPmhh c19hdWRpbyA9IGludGVsX2Nvbm5fc3RhdGUtPmZvcmNlX2F1ZGlvID09IEhETUlfQVVESU9fT047 Cj4gLQo+IC0JaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkgJiYgaW50ZWxfY29ubmVjdG9y LT5wYW5lbC5maXhlZF9tb2RlKSB7Cj4gLQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBhbmVs X21vZGUgPQo+IC0JCQlpbnRlbF9jb25uZWN0b3ItPnBhbmVsLmFsdF9maXhlZF9tb2RlOwo+IC0J CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpyZXFfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5t b2RlOwo+IC0KPiAtCQlpZiAoIWludGVsX2VkcF9jb21wYXJlX2FsdF9tb2RlKHJlcV9tb2RlLCBw YW5lbF9tb2RlKSkKPiAtCQkJcGFuZWxfbW9kZSA9IGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZml4 ZWRfbW9kZTsKPiAtCj4gLQkJZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZShwYW5lbF9tb2Rl KTsKPiAtCj4gLQkJaW50ZWxfZml4ZWRfcGFuZWxfbW9kZShwYW5lbF9tb2RlLCBhZGp1c3RlZF9t b2RlKTsKPiAtCj4gLQkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+IC0JCQlpbnQg cmV0Owo+IC0JCQlyZXQgPSBza2xfdXBkYXRlX3NjYWxlcl9jcnRjKHBpcGVfY29uZmlnKTsKPiAt CQkJaWYgKHJldCkKPiAtCQkJCXJldHVybiByZXQ7Cj4gLQkJfQo+IC0KPiAtCQlpZiAoSEFTX0dN Q0hfRElTUExBWShkZXZfcHJpdikpCj4gLQkJCWludGVsX2dtY2hfcGFuZWxfZml0dGluZyhpbnRl bF9jcnRjLCBwaXBlX2NvbmZpZywKPiAtCQkJCQkJIGNvbm5fc3RhdGUtPnNjYWxpbmdfbW9kZSk7 Cj4gLQkJZWxzZQo+IC0JCQlpbnRlbF9wY2hfcGFuZWxfZml0dGluZyhpbnRlbF9jcnRjLCBwaXBl X2NvbmZpZywKPiAtCQkJCQkJY29ubl9zdGF0ZS0+c2NhbGluZ19tb2RlKTsKPiAtCX0KPiAtCj4g LQlpZiAoKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYp KSAmJgo+IC0JICAgIGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxB Q0UpCj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0KPiAtCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAm IERSTV9NT0RFX0ZMQUdfREJMQ0xLKQo+IC0JCXJldHVybiBmYWxzZTsKPiAtCj4gIAkvKiBVc2Ug dmFsdWVzIHJlcXVlc3RlZCBieSBDb21wbGlhbmNlIFRlc3QgUmVxdWVzdCAqLwo+ICAJaWYgKGlu dGVsX2RwLT5jb21wbGlhbmNlLnRlc3RfdHlwZSA9PSBEUF9URVNUX0xJTktfVFJBSU5JTkcpIHsK PiAgCQlpbnQgaW5kZXg7Cj4gQEAgLTE4MzEsNiArMTc3OCw4MiBAQCBpbnRlbF9kcF9jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXJldHVybiBmYWxzZTsK PiAgCj4gIGZvdW5kOgo+ICsJcGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+ ICsJcGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwo+ICsJcGlwZV9jb25maWctPnBvcnRfY2xv Y2sgPSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2Nsb2NrXTsKPiArCj4gKwlEUk1fREVCVUdfS01T KCJEUCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKPiArCQkgICAgICBwaXBlX2Nv bmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssIGJwcCk7Cj4gKwlEUk1f REVCVUdfS01TKCJEUCBsaW5rIGJ3IHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKPiArCQkg ICAgICBtb2RlX3JhdGUsIGxpbmtfYXZhaWwpOwo+ICsKPiArCXJldHVybiB0cnVlOwo+ICt9Cj4g Kwo+ICtib29sCj4gK2ludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICsJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4g KwkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKPiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29u ZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0g ZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiArCWVudW0gcG9ydCBwb3J0ID0gZW5j b2Rlci0+cG9ydDsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmludGVsX2Nvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5fc3RhdGUgPQo+ICsJ CXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwo+ICsJYm9vbCBy ZWR1Y2VfbV9uID0gZHJtX2RwX2hhc19xdWlyaygmaW50ZWxfZHAtPmRlc2MsCj4gKwkJCQkJICAg RFBfRFBDRF9RVUlSS19MSU1JVEVEX01fTik7Cj4gKwo+ICsJaWYgKEhBU19QQ0hfU1BMSVQoZGV2 X3ByaXYpICYmICFIQVNfRERJKGRldl9wcml2KSAmJiBwb3J0ICE9IFBPUlRfQSkKPiArCQlwaXBl X2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyID0gdHJ1ZTsKPiArCj4gKwlwaXBlX2NvbmZpZy0+aGFz X2RycnMgPSBmYWxzZTsKPiArCWlmIChJU19HNFgoZGV2X3ByaXYpIHx8IHBvcnQgPT0gUE9SVF9B KQo+ICsJCXBpcGVfY29uZmlnLT5oYXNfYXVkaW8gPSBmYWxzZTsKPiArCWVsc2UgaWYgKGludGVs X2Nvbm5fc3RhdGUtPmZvcmNlX2F1ZGlvID09IEhETUlfQVVESU9fQVVUTykKPiArCQlwaXBlX2Nv bmZpZy0+aGFzX2F1ZGlvID0gaW50ZWxfZHAtPmhhc19hdWRpbzsKPiArCWVsc2UKPiArCQlwaXBl X2NvbmZpZy0+aGFzX2F1ZGlvID0gaW50ZWxfY29ubl9zdGF0ZS0+Zm9yY2VfYXVkaW8gPT0gSERN SV9BVURJT19PTjsKPiArCj4gKwlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSAmJiBpbnRl bF9jb25uZWN0b3ItPnBhbmVsLmZpeGVkX21vZGUpIHsKPiArCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqcGFuZWxfbW9kZSA9Cj4gKwkJCWludGVsX2Nvbm5lY3Rvci0+cGFuZWwuYWx0X2ZpeGVk X21vZGU7Cj4gKwkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnJlcV9tb2RlID0gJnBpcGVfY29u ZmlnLT5iYXNlLm1vZGU7Cj4gKwo+ICsJCWlmICghaW50ZWxfZWRwX2NvbXBhcmVfYWx0X21vZGUo cmVxX21vZGUsIHBhbmVsX21vZGUpKQo+ICsJCQlwYW5lbF9tb2RlID0gaW50ZWxfY29ubmVjdG9y LT5wYW5lbC5maXhlZF9tb2RlOwo+ICsKPiArCQlkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5l KHBhbmVsX21vZGUpOwo+ICsKPiArCQlpbnRlbF9maXhlZF9wYW5lbF9tb2RlKHBhbmVsX21vZGUs IGFkanVzdGVkX21vZGUpOwo+ICsKPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7 Cj4gKwkJCWludCByZXQ7Cj4gKwkJCXJldCA9IHNrbF91cGRhdGVfc2NhbGVyX2NydGMocGlwZV9j b25maWcpOwo+ICsJCQlpZiAocmV0KQo+ICsJCQkJcmV0dXJuIHJldDsKPiArCQl9Cj4gKwo+ICsJ CWlmIChIQVNfR01DSF9ESVNQTEFZKGRldl9wcml2KSkKPiArCQkJaW50ZWxfZ21jaF9wYW5lbF9m aXR0aW5nKGludGVsX2NydGMsIHBpcGVfY29uZmlnLAo+ICsJCQkJCQkgY29ubl9zdGF0ZS0+c2Nh bGluZ19tb2RlKTsKPiArCQllbHNlCj4gKwkJCWludGVsX3BjaF9wYW5lbF9maXR0aW5nKGludGVs X2NydGMsIHBpcGVfY29uZmlnLAo+ICsJCQkJCQljb25uX3N0YXRlLT5zY2FsaW5nX21vZGUpOwo+ ICsJfQo+ICsKPiArCWlmICgoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklF VyhkZXZfcHJpdikpICYmCj4gKwkgICAgYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9G TEFHX0lOVEVSTEFDRSkKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJaWYgKGFkanVzdGVkX21v ZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxDTEspCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsK PiArCWlmICghaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZp ZykpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiAgCWlmIChpbnRlbF9jb25uX3N0YXRlLT5icm9h ZGNhc3RfcmdiID09IElOVEVMX0JST0FEQ0FTVF9SR0JfQVVUTykgewo+ICAJCS8qCj4gIAkJICog U2VlOgo+IEBAIC0xODM4LDcgKzE4NjEsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkgKiBWRVNBIERpc3BsYXlQb3J0IFZlci4x LjJhIC0gNS4xLjEuMSBWaWRlbyBDb2xvcmltZXRyeQo+ICAJCSAqLwo+ICAJCXBpcGVfY29uZmln LT5saW1pdGVkX2NvbG9yX3JhbmdlID0KPiAtCQkJYnBwICE9IDE4ICYmCj4gKwkJCXBpcGVfY29u ZmlnLT5waXBlX2JwcCAhPSAxOCAmJgo+ICAJCQlkcm1fZGVmYXVsdF9yZ2JfcXVhbnRfcmFuZ2Uo YWRqdXN0ZWRfbW9kZSkgPT0KPiAgCQkJSERNSV9RVUFOVElaQVRJT05fUkFOR0VfTElNSVRFRDsK PiAgCX0gZWxzZSB7Cj4gQEAgLTE4NDYsMTcgKzE4NjksNyBAQCBpbnRlbF9kcF9jb21wdXRlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJaW50ZWxfY29ubl9zdGF0 ZS0+YnJvYWRjYXN0X3JnYiA9PSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJTUlURUQ7Cj4gIAl9Cj4g IAo+IC0JcGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+IC0KPiAtCXBpcGVf Y29uZmlnLT5waXBlX2JwcCA9IGJwcDsKPiAtCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gaW50 ZWxfZHAtPmNvbW1vbl9yYXRlc1tjbG9ja107Cj4gLQo+IC0JRFJNX0RFQlVHX0tNUygiRFAgbGFu ZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIsCj4gLQkJICAgICAgcGlwZV9jb25maWctPmxh bmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLCBicHApOwo+IC0JRFJNX0RFQlVHX0tN UygiRFAgbGluayBidyByZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIsCj4gLQkJICAgICAgbW9k ZV9yYXRlLCBsaW5rX2F2YWlsKTsKPiAtCj4gLQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGJwcCwg bGFuZV9jb3VudCwKPiArCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVf YnBwLCBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKPiAgCQkJICAgICAgIGFkanVzdGVkX21vZGUt PmNydGNfY2xvY2ssCj4gIAkJCSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiAgCQkJ ICAgICAgICZwaXBlX2NvbmZpZy0+ZHBfbV9uLAo+IEBAIC0xODY1LDExICsxODc4LDEyIEBAIGlu dGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ aWYgKGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUgIT0gTlVMTCAmJgo+ICAJ CWRldl9wcml2LT5kcnJzLnR5cGUgPT0gU0VBTUxFU1NfRFJSU19TVVBQT1JUKSB7Cj4gIAkJCXBp cGVfY29uZmlnLT5oYXNfZHJycyA9IHRydWU7Cj4gLQkJCWludGVsX2xpbmtfY29tcHV0ZV9tX24o YnBwLCBsYW5lX2NvdW50LAo+IC0JCQkJaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5kb3duY2xvY2tf bW9kZS0+Y2xvY2ssCj4gLQkJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiAtCQkJCSZwaXBl X2NvbmZpZy0+ZHBfbTJfbjIsCj4gLQkJCQlyZWR1Y2VfbV9uKTsKPiArCQkJaW50ZWxfbGlua19j b21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsCj4gKwkJCQkJICAgICAgIHBpcGVfY29u ZmlnLT5sYW5lX2NvdW50LAo+ICsJCQkJCSAgICAgICBpbnRlbF9jb25uZWN0b3ItPnBhbmVsLmRv d25jbG9ja19tb2RlLT5jbG9jaywKPiArCQkJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xv Y2ssCj4gKwkJCQkJICAgICAgICZwaXBlX2NvbmZpZy0+ZHBfbTJfbjIsCj4gKwkJCQkJICAgICAg IHJlZHVjZV9tX24pOwo+ICAJfQo+ICAKPiAgCS8qCj4gLS0gCj4gMi4xMS4wCj4gCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=