From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC PATCH] drm/i915: Consider SPLL as another shared pll. Date: Wed, 21 Oct 2015 11:31:33 +0200 Message-ID: <20151021093133.GQ13786@phenom.ffwll.local> References: <55F9190F.7020101@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by gabe.freedesktop.org (Postfix) with ESMTPS id E09EE6E397 for ; Wed, 21 Oct 2015 02:31:36 -0700 (PDT) Received: by wicll6 with SMTP id ll6so65264500wic.1 for ; Wed, 21 Oct 2015 02:31:35 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55F9190F.7020101@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: Maarten Lankhorst Cc: Intel Graphics Development , Emil Renner Berthing List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBTZXAgMTYsIDIwMTUgYXQgMDk6MjM6NTlBTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gV2hlbiBkaWFnbm9zaW5nIGEgdW5yZWxhdGVkIGJ1ZyBmb3Igc29tZW9uZSBv biBpcmMsIGl0IHdvdWxkIHNlZW0gdGhlIGhhcmR3YXJlIGNhbgo+IGJlIGJyb3VnaHQgdXAgYnkg dGhlIEJJT1Mgd2l0aCB0aGUgZW1iZWRkZWQgZGlzcGxheXBvcnQgdXNpbmcgdGhlIFNQTEwgZm9y IHNwcmVhZCBzcGVjdHJ1bS4KPiAKPiBSaWdodCBub3cgdGhpcyBpcyBub3QgaGFuZGxlZCB3ZWxs IGluIGk5MTUsIGFuZCBpdCBjYWxjdWxhdGVzIHRoZSBjcnRjIG5lZWRzIHRvCj4gYmUgcmVwcm9n cmFtbWVkIG9uIHRoZSBmaXJzdCBtb2Rlc2V0IHdpdGhvdXQgU1NDLCBidXQgIHRoZSBTUExMIGl0 c2VsZiB3YXMga2VwdAo+IGFjdGl2ZS4gRml4IHRoaXMgYnkgZXhwb3NpbmcgU1BMTCBhcyBhIHNo YXJlZCBwbGwgdGhhdCB3aWxsIG5vdCBiZSByZXR1cm5lZAo+IGJ5IGludGVsX2dldF9zaGFyZWRf ZHBsbDsgeW91IGhhdmUgdG8ga25vdyBpdCBleGlzdHMgdG8gdXNlIGl0LiA7LSkKPiAKPiBDYzog RW1pbCBSZW5uZXIgQmVydGhpbmcgPGtlcm5lbEBlc21pbC5kaz4KPiBTaWduZWQtb2ZmLWJ5OiBN YWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IC0t LQo+IFJGQyBiZWNhdXNlIEkgaGF2ZW4ndCB0ZXN0ZWQgaXQgd2l0aCBWR0EsIGJ1dCBpdCBzZWVt cyB0byB3b3JrIGFjY29yZGluZyB0byBmaXgKPiB0aGUgcHJvYmxlbSBtZW50aW9uZWQgYWJvdmUu Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggODFhZGY4OWI5MmYxLi5jYWNkYWM2 N2Q5YmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMzQ1LDYgKzM0NSw4IEBA IGVudW0gaW50ZWxfZHBsbF9pZCB7Cj4gIAkvKiBoc3cvYmR3ICovCj4gIAlEUExMX0lEX1dSUExM MSA9IDAsCj4gIAlEUExMX0lEX1dSUExMMiA9IDEsCj4gKwlEUExMX0lEX1NQTEwgPSAyLAo+ICsK PiAgCS8qIHNrbCAqLwo+ICAJRFBMTF9JRF9TS0xfRFBMTDEgPSAwLAo+ICAJRFBMTF9JRF9TS0xf RFBMTDIgPSAxLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCj4gaW5kZXggYWY1ZTQzYmVmNGE0 Li41OTJkOGZlOWY5OTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y3J0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwo+IEBAIC0xMzgs MTggKzEzOCw2IEBAIHN0YXRpYyB2b2lkIGhzd19jcnRfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxh Z3MgfD0gaW50ZWxfY3J0X2dldF9mbGFncyhlbmNvZGVyKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZv aWQgaHN3X2NydF9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+IC17 Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0KPiAt CVdBUk4oSTkxNV9SRUFEKFNQTExfQ1RMKSAmIFNQTExfUExMX0VOQUJMRSwgIlNQTEwgYWxyZWFk eSBlbmFibGVkXG4iKTsKPiAtCUk5MTVfV1JJVEUoU1BMTF9DVEwsCj4gLQkJICAgU1BMTF9QTExf RU5BQkxFIHwgU1BMTF9QTExfRlJFUV8xMzUwTUh6IHwgU1BMTF9QTExfU1NDKTsKPiAtCVBPU1RJ TkdfUkVBRChTUExMX0NUTCk7Cj4gLQl1ZGVsYXkoMjApOwo+IC19Cj4gLQo+ICAvKiBOb3RlOiBU aGUgY2FsbGVyIGlzIHJlcXVpcmVkIHRvIGZpbHRlciBvdXQgZHBtcyBtb2RlcyBub3Qgc3VwcG9y dGVkIGJ5IHRoZQo+ICAgKiBwbGF0Zm9ybS4gKi8KPiAgc3RhdGljIHZvaWQgaW50ZWxfY3J0X3Nl dF9kcG1zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgbW9kZSkKPiBAQCAtMjE2 LDE5ICsyMDQsNiBAQCBzdGF0aWMgdm9pZCBwY2hfcG9zdF9kaXNhYmxlX2NydChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCWludGVsX2Rpc2FibGVfY3J0KGVuY29kZXIpOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdm9pZCBoc3dfY3J0X3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPiAtewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXIt PmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiAtCXVpbnQzMl90IHZhbDsKPiAtCj4gLQlEUk1fREVCVUdfS01TKCJEaXNh YmxpbmcgU1BMTFxuIik7Cj4gLQl2YWwgPSBJOTE1X1JFQUQoU1BMTF9DVEwpOwo+IC0JV0FSTl9P TighKHZhbCAmIFNQTExfUExMX0VOQUJMRSkpOwo+IC0JSTkxNV9XUklURShTUExMX0NUTCwgdmFs ICYgflNQTExfUExMX0VOQUJMRSk7Cj4gLQlQT1NUSU5HX1JFQUQoU1BMTF9DVEwpOwo+IC19Cj4g LQo+ICBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfY3J0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0ICpjcnQgPSBpbnRlbF9lbmNvZGVyX3Rv X2NydChlbmNvZGVyKTsKPiBAQCAtMjgwLDYgKzI1NSw4IEBAIHN0YXRpYyBib29sIGludGVsX2Ny dF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCWlmIChI QVNfRERJKGRldikpIHsKPiAgCQlwaXBlX2NvbmZpZy0+ZGRpX3BsbF9zZWwgPSBQT1JUX0NMS19T RUxfU1BMTDsKPiAgCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IDEzNTAwMCAqIDI7Cj4gKwkJ cGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUud3JwbGwgPQo+ICsJCQlTUExMX1BMTF9FTkFCTEUg fCBTUExMX1BMTF9GUkVRXzEzNTBNSHogfCBTUExMX1BMTF9TU0M7Cj4gIAl9Cj4gIAo+ICAJcmV0 dXJuIHRydWU7Cj4gQEAgLTg2MSw4ICs4MzgsNiBAQCB2b2lkIGludGVsX2NydF9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gIAlpZiAoSEFTX0RESShkZXYpKSB7Cj4gIAkJY3J0LT5iYXNl LmdldF9jb25maWcgPSBoc3dfY3J0X2dldF9jb25maWc7Cj4gIAkJY3J0LT5iYXNlLmdldF9od19z dGF0ZSA9IGludGVsX2RkaV9nZXRfaHdfc3RhdGU7Cj4gLQkJY3J0LT5iYXNlLnByZV9lbmFibGUg PSBoc3dfY3J0X3ByZV9lbmFibGU7Cj4gLQkJY3J0LT5iYXNlLnBvc3RfZGlzYWJsZSA9IGhzd19j cnRfcG9zdF9kaXNhYmxlOwo+ICAJfSBlbHNlIHsKPiAgCQljcnQtPmJhc2UuZ2V0X2NvbmZpZyA9 IGludGVsX2NydF9nZXRfY29uZmlnOwo+ICAJCWNydC0+YmFzZS5nZXRfaHdfc3RhdGUgPSBpbnRl bF9jcnRfZ2V0X2h3X3N0YXRlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5kZXggNjE1 NzVmNjdhNjI2Li5kYWJkOTAzMTQ3ZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ IEBAIC0xMjY5LDYgKzEyNjksMTggQEAgaHN3X2RkaV9wbGxfc2VsZWN0KHN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjLAo+ICAJCX0KPiAgCj4gIAkJY3J0Y19zdGF0ZS0+ZGRpX3BsbF9zZWwg PSBQT1JUX0NMS19TRUxfV1JQTEwocGxsLT5pZCk7Cj4gKwl9IGVsc2UgaWYgKGNydGNfc3RhdGUt PmRkaV9wbGxfc2VsID09IFBPUlRfQ0xLX1NFTF9TUExMKSB7Cj4gKwkJc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKPiArCQlzdHJ1Y3QgaW50 ZWxfc2hhcmVkX2RwbGxfY29uZmlnICpzcGxsID0KPiArCQkJJmludGVsX2F0b21pY19nZXRfc2hh cmVkX2RwbGxfc3RhdGUoc3RhdGUpW0RQTExfSURfU1BMTF07Cj4gKwo+ICsJCWlmIChzcGxsLT5j cnRjX21hc2sgJiYKPiArCQkgICAgV0FSTl9PTihzcGxsLT5od19zdGF0ZS53cnBsbCAhPSBjcnRj X3N0YXRlLT5kcGxsX2h3X3N0YXRlLndycGxsKSkKPiArCQkJcmV0dXJuIGZhbHNlOwo+ICsKPiAr CQljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IERQTExfSURfU1BMTDsKPiArCQlzcGxsLT5od19z dGF0ZS53cnBsbCA9IGNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUud3JwbGw7Cj4gKwkJc3BsbC0+ Y3J0Y19tYXNrIHw9IDEgPDwgaW50ZWxfY3J0Yy0+cGlwZTsKPiAgCX0KPiAgCj4gIAlyZXR1cm4g dHJ1ZTsKPiBAQCAtMjQxNCwxOSArMjQyNiwzMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxl X2RkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgc3RhdGljIHZvaWQg aHN3X2RkaV9wbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg CQkJICAgICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQo+ICB7Cj4gLQlJOTE1X1dS SVRFKFdSUExMX0NUTChwbGwtPmlkKSwgcGxsLT5jb25maWcuaHdfc3RhdGUud3JwbGwpOwo+IC0J UE9TVElOR19SRUFEKFdSUExMX0NUTChwbGwtPmlkKSk7Cj4gKwl1aW50MzJfdCByZWc7Cj4gKwo+ ICsJaWYgKHBsbC0+aWQgPT0gRFBMTF9JRF9TUExMKQo+ICsJCXJlZyA9IFNQTExfQ1RMOwo+ICsJ ZWxzZQo+ICsJCXJlZyA9IFdSUExMX0NUTChwbGwtPmlkKTsKClRoaXMgaXMgYSBiaXQgdWdseSwg YW5kIHJldXNpbmcgaHdfc2F0ZS53cnBsbCBpcyBhbHNvIGEgYml0IGZyYWdpbGUgZHVlIHRvCnRo ZSBvdmVybGFwcy4gSSB0aGluayBpdCdkIGJlIGJldHRlciB0byBhZGQgaHdfc3RhdGUuc3BsbCAo aW5jbHVkaW5nIGh3CnN0YXRlIGNyb3NzLWNoZWNraW5nKSBhbmQgc3BlY2lhbGlzaW5nIHRoZSBl bmFibGUvZGlzYWJsZS9nZXRfaHdfc3RhdGUKZnVuY3Rpb25zLgoKV2l0aCB0aGF0IHRoaXMgaXMg UmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cgo+ICsK PiArCUk5MTVfV1JJVEUocmVnLCBwbGwtPmNvbmZpZy5od19zdGF0ZS53cnBsbCk7Cj4gKwlQT1NU SU5HX1JFQUQocmVnKTsKPiAgCXVkZWxheSgyMCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGhz d19kZGlfcGxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJ CQkJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwpCj4gIHsKPiAtCXVpbnQzMl90IHZhbDsK PiArCXVpbnQzMl90IHJlZywgdmFsOwo+ICAKPiAtCXZhbCA9IEk5MTVfUkVBRChXUlBMTF9DVEwo cGxsLT5pZCkpOwo+IC0JSTkxNV9XUklURShXUlBMTF9DVEwocGxsLT5pZCksIHZhbCAmIH5XUlBM TF9QTExfRU5BQkxFKTsKPiAtCVBPU1RJTkdfUkVBRChXUlBMTF9DVEwocGxsLT5pZCkpOwo+ICsJ aWYgKHBsbC0+aWQgPT0gRFBMTF9JRF9TUExMKQo+ICsJCXJlZyA9IFNQTExfQ1RMOwo+ICsJZWxz ZQo+ICsJCXJlZyA9IFdSUExMX0NUTChwbGwtPmlkKTsKPiArCj4gKwl2YWwgPSBJOTE1X1JFQUQo cmVnKTsKPiArCUk5MTVfV1JJVEUocmVnLCB2YWwgJiB+V1JQTExfUExMX0VOQUJMRSk7Cj4gKwlQ T1NUSU5HX1JFQUQocmVnKTsKPiAgfQo+ICAKPiAgc3RhdGljIGJvb2wgaHN3X2RkaV9wbGxfZ2V0 X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiBAQCAtMjQzOCwy MyArMjQ2MiwyOCBAQCBzdGF0aWMgYm9vbCBoc3dfZGRpX3BsbF9nZXRfaHdfc3RhdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2Vy X2lzX2VuYWJsZWQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9QTExTKSkKPiAgCQlyZXR1cm4gZmFs c2U7Cj4gIAo+IC0JdmFsID0gSTkxNV9SRUFEKFdSUExMX0NUTChwbGwtPmlkKSk7Cj4gLQlod19z dGF0ZS0+d3JwbGwgPSB2YWw7Cj4gKwlpZiAocGxsLT5pZCA9PSBEUExMX0lEX1NQTEwpCj4gKwkJ dmFsID0gSTkxNV9SRUFEKFNQTExfQ1RMKTsKPiArCWVsc2UKPiArCQl2YWwgPSBJOTE1X1JFQUQo V1JQTExfQ1RMKHBsbC0+aWQpKTsKPiAgCj4gKwlod19zdGF0ZS0+d3JwbGwgPSB2YWw7Cj4gIAly ZXR1cm4gdmFsICYgV1JQTExfUExMX0VOQUJMRTsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IGNo YXIgKiBjb25zdCBoc3dfZGRpX3BsbF9uYW1lc1tdID0gewo+ICAJIldSUExMIDEiLAo+ICAJIldS UExMIDIiLAo+ICsJIlNQTEwiCj4gIH07Cj4gIAo+ICBzdGF0aWMgdm9pZCBoc3dfc2hhcmVkX2Rw bGxzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gIAlpbnQg aTsKPiAgCj4gLQlkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsID0gMjsKPiArCWRldl9wcml2LT5u dW1fc2hhcmVkX2RwbGwgPSAzOwo+ICAKPiArCS8qIFNQTEwgaXMgc3BlY2lhbCwgYnV0IG5lZWRz IHRvIGJlIGluaXRpYWxpemVkIGFueXdheS4uICovCj4gIAlmb3IgKGkgPSAwOyBpIDwgZGV2X3By aXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKSB7Cj4gIAkJZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tp XS5pZCA9IGk7Cj4gIAkJZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXS5uYW1lID0gaHN3X2RkaV9w bGxfbmFtZXNbaV07Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGNh OTI3OGJlNDlmNy4uNTgyMzYwZDJmYTA4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+IEBAIC00MjA4LDYgKzQyMDgsNyBAQCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwg KmludGVsX2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCXN0cnVj dCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ICAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2Nv bmZpZyAqc2hhcmVkX2RwbGw7Cj4gIAllbnVtIGludGVsX2RwbGxfaWQgaTsKPiArCWludCBtYXgg PSBkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsOwo+ICAKPiAgCXNoYXJlZF9kcGxsID0gaW50ZWxf YXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKPiAg Cj4gQEAgLTQyNDIsOSArNDI0MywxMSBAQCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVs X2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQlXQVJOX09OKHNo YXJlZF9kcGxsW2ldLmNydGNfbWFzayk7Cj4gIAo+ICAJCWdvdG8gZm91bmQ7Cj4gLQl9Cj4gKwl9 IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPCA5ICYmIEhBU19EREkoZGV2X3By aXYpKQo+ICsJCS8qIERvIG5vdCBjb25zaWRlciBTUExMICovCj4gKwkJbWF4ID0gMjsKPiAgCj4g LQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKSB7Cj4gKwlm b3IgKGkgPSAwOyBpIDwgbWF4OyBpKyspIHsKPiAgCQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9k cGxsc1tpXTsKPiAgCj4gIAkJLyogT25seSB3YW50IHRvIGNoZWNrIGVuYWJsZWQgdGltaW5ncyBm aXJzdCAqLwo+IEBAIC05Njk2LDYgKzk2OTksOCBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2dldF9k ZGlfcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWNhc2UgUE9SVF9D TEtfU0VMX1dSUExMMjoKPiAgCQlwaXBlX2NvbmZpZy0+c2hhcmVkX2RwbGwgPSBEUExMX0lEX1dS UExMMjsKPiAgCQlicmVhazsKPiArCWNhc2UgUE9SVF9DTEtfU0VMX1NQTEw6Cj4gKwkJcGlwZV9j b25maWctPnNoYXJlZF9kcGxsID0gRFBMTF9JRF9TUExMOwo+ICAJfQo+ICB9Cj4gIAo+IAo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFu aWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Js b2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK