From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [RFC PATCH] drm/i915: Consider SPLL as another shared pll. Date: Fri, 13 Nov 2015 09:09:19 +0200 Message-ID: <87d1ve2x5s.fsf@intel.com> References: <55F9190F.7020101@linux.intel.com> <20151021093133.GQ13786@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 4D5657A1C2 for ; Thu, 12 Nov 2015 23:09:55 -0800 (PST) In-Reply-To: <20151021093133.GQ13786@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter , Maarten Lankhorst Cc: Intel Graphics Development , Emil Renner Berthing List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMSBPY3QgMjAxNSwgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90 ZToKPiBPbiBXZWQsIFNlcCAxNiwgMjAxNSBhdCAwOToyMzo1OUFNICswMjAwLCBNYWFydGVuIExh bmtob3JzdCB3cm90ZToKPj4gV2hlbiBkaWFnbm9zaW5nIGEgdW5yZWxhdGVkIGJ1ZyBmb3Igc29t ZW9uZSBvbiBpcmMsIGl0IHdvdWxkIHNlZW0gdGhlIGhhcmR3YXJlIGNhbgo+PiBiZSBicm91Z2h0 IHVwIGJ5IHRoZSBCSU9TIHdpdGggdGhlIGVtYmVkZGVkIGRpc3BsYXlwb3J0IHVzaW5nIHRoZSBT UExMIGZvciBzcHJlYWQgc3BlY3RydW0uCj4+IAo+PiBSaWdodCBub3cgdGhpcyBpcyBub3QgaGFu ZGxlZCB3ZWxsIGluIGk5MTUsIGFuZCBpdCBjYWxjdWxhdGVzIHRoZSBjcnRjIG5lZWRzIHRvCj4+ IGJlIHJlcHJvZ3JhbW1lZCBvbiB0aGUgZmlyc3QgbW9kZXNldCB3aXRob3V0IFNTQywgYnV0ICB0 aGUgU1BMTCBpdHNlbGYgd2FzIGtlcHQKPj4gYWN0aXZlLiBGaXggdGhpcyBieSBleHBvc2luZyBT UExMIGFzIGEgc2hhcmVkIHBsbCB0aGF0IHdpbGwgbm90IGJlIHJldHVybmVkCj4+IGJ5IGludGVs X2dldF9zaGFyZWRfZHBsbDsgeW91IGhhdmUgdG8ga25vdyBpdCBleGlzdHMgdG8gdXNlIGl0LiA7 LSkKPj4gCj4+IENjOiBFbWlsIFJlbm5lciBCZXJ0aGluZyA8a2VybmVsQGVzbWlsLmRrPgo+PiBT aWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXgu aW50ZWwuY29tPgo+PiAtLS0KPj4gUkZDIGJlY2F1c2UgSSBoYXZlbid0IHRlc3RlZCBpdCB3aXRo IFZHQSwgYnV0IGl0IHNlZW1zIHRvIHdvcmsgYWNjb3JkaW5nIHRvIGZpeAo+PiB0aGUgcHJvYmxl bSBtZW50aW9uZWQgYWJvdmUuCj4+IAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gaW5kZXgg ODFhZGY4OWI5MmYxLi5jYWNkYWM2N2Q5YmEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+PiBAQCAtMzQ1LDYgKzM0NSw4IEBAIGVudW0gaW50ZWxfZHBsbF9pZCB7Cj4+ICAJLyogaHN3 L2JkdyAqLwo+PiAgCURQTExfSURfV1JQTEwxID0gMCwKPj4gIAlEUExMX0lEX1dSUExMMiA9IDEs Cj4+ICsJRFBMTF9JRF9TUExMID0gMiwKPj4gKwo+PiAgCS8qIHNrbCAqLwo+PiAgCURQTExfSURf U0tMX0RQTEwxID0gMCwKPj4gIAlEUExMX0lEX1NLTF9EUExMMiA9IDEsCj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2NydC5jCj4+IGluZGV4IGFmNWU0M2JlZjRhNC4uNTkyZDhmZTlmOTkxIDEwMDY0NAo+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwo+PiBAQCAtMTM4LDE4ICsxMzgsNiBAQCBzdGF0aWMg dm9pZCBoc3dfY3J0X2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ ICAJcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBpbnRlbF9jcnRfZ2V0 X2ZsYWdzKGVuY29kZXIpOwo+PiAgfQo+PiAgCj4+IC1zdGF0aWMgdm9pZCBoc3dfY3J0X3ByZV9l bmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4+IC17Cj4+IC0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+PiAtCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+IC0KPj4gLQlXQVJOKEk5MTVf UkVBRChTUExMX0NUTCkgJiBTUExMX1BMTF9FTkFCTEUsICJTUExMIGFscmVhZHkgZW5hYmxlZFxu Iik7Cj4+IC0JSTkxNV9XUklURShTUExMX0NUTCwKPj4gLQkJICAgU1BMTF9QTExfRU5BQkxFIHwg U1BMTF9QTExfRlJFUV8xMzUwTUh6IHwgU1BMTF9QTExfU1NDKTsKPj4gLQlQT1NUSU5HX1JFQUQo U1BMTF9DVEwpOwo+PiAtCXVkZWxheSgyMCk7Cj4+IC19Cj4+IC0KPj4gIC8qIE5vdGU6IFRoZSBj YWxsZXIgaXMgcmVxdWlyZWQgdG8gZmlsdGVyIG91dCBkcG1zIG1vZGVzIG5vdCBzdXBwb3J0ZWQg YnkgdGhlCj4+ICAgKiBwbGF0Zm9ybS4gKi8KPj4gIHN0YXRpYyB2b2lkIGludGVsX2NydF9zZXRf ZHBtcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50IG1vZGUpCj4+IEBAIC0yMTYs MTkgKzIwNCw2IEBAIHN0YXRpYyB2b2lkIHBjaF9wb3N0X2Rpc2FibGVfY3J0KHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKQo+PiAgCWludGVsX2Rpc2FibGVfY3J0KGVuY29kZXIpOwo+PiAg fQo+PiAgCj4+IC1zdGF0aWMgdm9pZCBoc3dfY3J0X3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKPj4gLXsKPj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5j b2Rlci0+YmFzZS5kZXY7Cj4+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPj4gLQl1aW50MzJfdCB2YWw7Cj4+IC0KPj4gLQlEUk1fREVCVUdf S01TKCJEaXNhYmxpbmcgU1BMTFxuIik7Cj4+IC0JdmFsID0gSTkxNV9SRUFEKFNQTExfQ1RMKTsK Pj4gLQlXQVJOX09OKCEodmFsICYgU1BMTF9QTExfRU5BQkxFKSk7Cj4+IC0JSTkxNV9XUklURShT UExMX0NUTCwgdmFsICYgflNQTExfUExMX0VOQUJMRSk7Cj4+IC0JUE9TVElOR19SRUFEKFNQTExf Q1RMKTsKPj4gLX0KPj4gLQo+PiAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2NydChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gIHsKPj4gIAlzdHJ1Y3QgaW50ZWxfY3J0ICpjcnQg PSBpbnRlbF9lbmNvZGVyX3RvX2NydChlbmNvZGVyKTsKPj4gQEAgLTI4MCw2ICsyNTUsOCBAQCBz dGF0aWMgYm9vbCBpbnRlbF9jcnRfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4+ICAJaWYgKEhBU19EREkoZGV2KSkgewo+PiAgCQlwaXBlX2NvbmZpZy0+ZGRp X3BsbF9zZWwgPSBQT1JUX0NMS19TRUxfU1BMTDsKPj4gIAkJcGlwZV9jb25maWctPnBvcnRfY2xv Y2sgPSAxMzUwMDAgKiAyOwo+PiArCQlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS53cnBsbCA9 Cj4+ICsJCQlTUExMX1BMTF9FTkFCTEUgfCBTUExMX1BMTF9GUkVRXzEzNTBNSHogfCBTUExMX1BM TF9TU0M7Cj4+ICAJfQo+PiAgCj4+ICAJcmV0dXJuIHRydWU7Cj4+IEBAIC04NjEsOCArODM4LDYg QEAgdm9pZCBpbnRlbF9jcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgCWlmIChI QVNfRERJKGRldikpIHsKPj4gIAkJY3J0LT5iYXNlLmdldF9jb25maWcgPSBoc3dfY3J0X2dldF9j b25maWc7Cj4+ICAJCWNydC0+YmFzZS5nZXRfaHdfc3RhdGUgPSBpbnRlbF9kZGlfZ2V0X2h3X3N0 YXRlOwo+PiAtCQljcnQtPmJhc2UucHJlX2VuYWJsZSA9IGhzd19jcnRfcHJlX2VuYWJsZTsKPj4g LQkJY3J0LT5iYXNlLnBvc3RfZGlzYWJsZSA9IGhzd19jcnRfcG9zdF9kaXNhYmxlOwo+PiAgCX0g ZWxzZSB7Cj4+ICAJCWNydC0+YmFzZS5nZXRfY29uZmlnID0gaW50ZWxfY3J0X2dldF9jb25maWc7 Cj4+ICAJCWNydC0+YmFzZS5nZXRfaHdfc3RhdGUgPSBpbnRlbF9jcnRfZ2V0X2h3X3N0YXRlOwo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+PiBpbmRleCA2MTU3NWY2N2E2MjYuLmRhYmQ5MDMx NDdmYSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gQEAgLTEyNjksNiArMTI2 OSwxOCBAQCBoc3dfZGRpX3BsbF9zZWxlY3Qoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMs Cj4+ICAJCX0KPj4gIAo+PiAgCQljcnRjX3N0YXRlLT5kZGlfcGxsX3NlbCA9IFBPUlRfQ0xLX1NF TF9XUlBMTChwbGwtPmlkKTsKPj4gKwl9IGVsc2UgaWYgKGNydGNfc3RhdGUtPmRkaV9wbGxfc2Vs ID09IFBPUlRfQ0xLX1NFTF9TUExMKSB7Cj4+ICsJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Cj4+ICsJCXN0cnVjdCBpbnRlbF9zaGFyZWRf ZHBsbF9jb25maWcgKnNwbGwgPQo+PiArCQkJJmludGVsX2F0b21pY19nZXRfc2hhcmVkX2RwbGxf c3RhdGUoc3RhdGUpW0RQTExfSURfU1BMTF07Cj4+ICsKPj4gKwkJaWYgKHNwbGwtPmNydGNfbWFz ayAmJgo+PiArCQkgICAgV0FSTl9PTihzcGxsLT5od19zdGF0ZS53cnBsbCAhPSBjcnRjX3N0YXRl LT5kcGxsX2h3X3N0YXRlLndycGxsKSkKPj4gKwkJCXJldHVybiBmYWxzZTsKPj4gKwo+PiArCQlj cnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IERQTExfSURfU1BMTDsKPj4gKwkJc3BsbC0+aHdfc3Rh dGUud3JwbGwgPSBjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLndycGxsOwo+PiArCQlzcGxsLT5j cnRjX21hc2sgfD0gMSA8PCBpbnRlbF9jcnRjLT5waXBlOwo+PiAgCX0KPj4gIAo+PiAgCXJldHVy biB0cnVlOwo+PiBAQCAtMjQxNCwxOSArMjQyNiwzMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNh YmxlX2RkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPj4gIHN0YXRpYyB2 b2lkIGhzd19kZGlfcGxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4+ICAJCQkgICAgICAgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwpCj4+ICB7Cj4+IC0J STkxNV9XUklURShXUlBMTF9DVEwocGxsLT5pZCksIHBsbC0+Y29uZmlnLmh3X3N0YXRlLndycGxs KTsKPj4gLQlQT1NUSU5HX1JFQUQoV1JQTExfQ1RMKHBsbC0+aWQpKTsKPj4gKwl1aW50MzJfdCBy ZWc7Cj4+ICsKPj4gKwlpZiAocGxsLT5pZCA9PSBEUExMX0lEX1NQTEwpCj4+ICsJCXJlZyA9IFNQ TExfQ1RMOwo+PiArCWVsc2UKPj4gKwkJcmVnID0gV1JQTExfQ1RMKHBsbC0+aWQpOwo+Cj4gVGhp cyBpcyBhIGJpdCB1Z2x5LCBhbmQgcmV1c2luZyBod19zYXRlLndycGxsIGlzIGFsc28gYSBiaXQg ZnJhZ2lsZSBkdWUgdG8KPiB0aGUgb3ZlcmxhcHMuIEkgdGhpbmsgaXQnZCBiZSBiZXR0ZXIgdG8g YWRkIGh3X3N0YXRlLnNwbGwgKGluY2x1ZGluZyBodwo+IHN0YXRlIGNyb3NzLWNoZWNraW5nKSBh bmQgc3BlY2lhbGlzaW5nIHRoZSBlbmFibGUvZGlzYWJsZS9nZXRfaHdfc3RhdGUKPiBmdW5jdGlv bnMuCj4KPiBXaXRoIHRoYXQgdGhpcyBpcyBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBmZndsbC5jaD4KCk1hYXJ0ZW4sIHBsZWFzZSB1cGRhdGUgdGhlIHBhdGNoIGFj Y29yZGluZyB0byBEYW5pZWwncyBjb21tZW50cywgYXMgdGhpcwpmaXhlcyBbMV0uCgpCUiwKSmFu aS4KClsxXSBodHRwOi8vbWlkLmdtYW5lLm9yZy81NjQ0REJFOC4yMDkwNDA0QGludGVsLmNvbQoK Cgo+Cj4+ICsKPj4gKwlJOTE1X1dSSVRFKHJlZywgcGxsLT5jb25maWcuaHdfc3RhdGUud3JwbGwp Owo+PiArCVBPU1RJTkdfUkVBRChyZWcpOwo+PiAgCXVkZWxheSgyMCk7Cj4+ICB9Cj4+ICAKPj4g IHN0YXRpYyB2b2lkIGhzd19kZGlfcGxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+PiAgCQkJCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQo+PiAgewo+ PiAtCXVpbnQzMl90IHZhbDsKPj4gKwl1aW50MzJfdCByZWcsIHZhbDsKPj4gIAo+PiAtCXZhbCA9 IEk5MTVfUkVBRChXUlBMTF9DVEwocGxsLT5pZCkpOwo+PiAtCUk5MTVfV1JJVEUoV1JQTExfQ1RM KHBsbC0+aWQpLCB2YWwgJiB+V1JQTExfUExMX0VOQUJMRSk7Cj4+IC0JUE9TVElOR19SRUFEKFdS UExMX0NUTChwbGwtPmlkKSk7Cj4+ICsJaWYgKHBsbC0+aWQgPT0gRFBMTF9JRF9TUExMKQo+PiAr CQlyZWcgPSBTUExMX0NUTDsKPj4gKwllbHNlCj4+ICsJCXJlZyA9IFdSUExMX0NUTChwbGwtPmlk KTsKPj4gKwo+PiArCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+PiArCUk5MTVfV1JJVEUocmVnLCB2 YWwgJiB+V1JQTExfUExMX0VOQUJMRSk7Cj4+ICsJUE9TVElOR19SRUFEKHJlZyk7Cj4+ICB9Cj4+ ICAKPj4gIHN0YXRpYyBib29sIGhzd19kZGlfcGxsX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+IEBAIC0yNDM4LDIzICsyNDYyLDI4IEBAIHN0YXRpYyBi b29sIGhzd19kZGlfcGxsX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4+ICAJaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2lzX2VuYWJsZWQoZGV2X3ByaXYs IFBPV0VSX0RPTUFJTl9QTExTKSkKPj4gIAkJcmV0dXJuIGZhbHNlOwo+PiAgCj4+IC0JdmFsID0g STkxNV9SRUFEKFdSUExMX0NUTChwbGwtPmlkKSk7Cj4+IC0JaHdfc3RhdGUtPndycGxsID0gdmFs Owo+PiArCWlmIChwbGwtPmlkID09IERQTExfSURfU1BMTCkKPj4gKwkJdmFsID0gSTkxNV9SRUFE KFNQTExfQ1RMKTsKPj4gKwllbHNlCj4+ICsJCXZhbCA9IEk5MTVfUkVBRChXUlBMTF9DVEwocGxs LT5pZCkpOwo+PiAgCj4+ICsJaHdfc3RhdGUtPndycGxsID0gdmFsOwo+PiAgCXJldHVybiB2YWwg JiBXUlBMTF9QTExfRU5BQkxFOwo+PiAgfQo+PiAgCj4+ICBzdGF0aWMgY29uc3QgY2hhciAqIGNv bnN0IGhzd19kZGlfcGxsX25hbWVzW10gPSB7Cj4+ICAJIldSUExMIDEiLAo+PiAgCSJXUlBMTCAy IiwKPj4gKwkiU1BMTCIKPj4gIH07Cj4+ICAKPj4gIHN0YXRpYyB2b2lkIGhzd19zaGFyZWRfZHBs bHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICB7Cj4+ICAJaW50 IGk7Cj4+ICAKPj4gLQlkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsID0gMjsKPj4gKwlkZXZfcHJp di0+bnVtX3NoYXJlZF9kcGxsID0gMzsKPj4gIAo+PiArCS8qIFNQTEwgaXMgc3BlY2lhbCwgYnV0 IG5lZWRzIHRvIGJlIGluaXRpYWxpemVkIGFueXdheS4uICovCj4+ICAJZm9yIChpID0gMDsgaSA8 IGRldl9wcml2LT5udW1fc2hhcmVkX2RwbGw7IGkrKykgewo+PiAgCQlkZXZfcHJpdi0+c2hhcmVk X2RwbGxzW2ldLmlkID0gaTsKPj4gIAkJZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXS5uYW1lID0g aHN3X2RkaV9wbGxfbmFtZXNbaV07Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK Pj4gaW5kZXggY2E5Mjc4YmU0OWY3Li41ODIzNjBkMmZhMDggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gQEAgLTQyMDgsNiArNDIwOCw3IEBAIHN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbCAqaW50ZWxfZ2V0X3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAo+PiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+PiAgCXN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbF9jb25maWcgKnNoYXJlZF9kcGxsOwo+PiAgCWVudW0gaW50ZWxfZHBsbF9p ZCBpOwo+PiArCWludCBtYXggPSBkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsOwo+PiAgCj4+ICAJ c2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKGNydGNfc3Rh dGUtPmJhc2Uuc3RhdGUpOwo+PiAgCj4+IEBAIC00MjQyLDkgKzQyNDMsMTEgQEAgc3RydWN0IGlu dGVsX3NoYXJlZF9kcGxsICppbnRlbF9nZXRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGMg KmNydGMsCj4+ICAJCVdBUk5fT04oc2hhcmVkX2RwbGxbaV0uY3J0Y19tYXNrKTsKPj4gIAo+PiAg CQlnb3RvIGZvdW5kOwo+PiAtCX0KPj4gKwl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2X3ByaXYp LT5nZW4gPCA5ICYmIEhBU19EREkoZGV2X3ByaXYpKQo+PiArCQkvKiBEbyBub3QgY29uc2lkZXIg U1BMTCAqLwo+PiArCQltYXggPSAyOwo+PiAgCj4+IC0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2 LT5udW1fc2hhcmVkX2RwbGw7IGkrKykgewo+PiArCWZvciAoaSA9IDA7IGkgPCBtYXg7IGkrKykg ewo+PiAgCQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsKPj4gIAo+PiAgCQkvKiBP bmx5IHdhbnQgdG8gY2hlY2sgZW5hYmxlZCB0aW1pbmdzIGZpcnN0ICovCj4+IEBAIC05Njk2LDYg Kzk2OTksOCBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2dldF9kZGlfcGxsKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPj4gIAljYXNlIFBPUlRfQ0xLX1NFTF9XUlBMTDI6Cj4+ICAJ CXBpcGVfY29uZmlnLT5zaGFyZWRfZHBsbCA9IERQTExfSURfV1JQTEwyOwo+PiAgCQlicmVhazsK Pj4gKwljYXNlIFBPUlRfQ0xLX1NFTF9TUExMOgo+PiArCQlwaXBlX2NvbmZpZy0+c2hhcmVkX2Rw bGwgPSBEUExMX0lEX1NQTEw7Cj4+ICAJfQo+PiAgfQo+PiAgCj4+IAo+PiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRlbC1nZnggbWFpbGluZyBs aXN0Cj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+Cj4gLS0gCj4gRGFuaWVs IFZldHRlcgo+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+IGh0dHA6Ly9i bG9nLmZmd2xsLmNoCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBD ZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK