From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH v3 13/13] drm/i915: Make SKL/KBL DPLL0 managed by the shared dpll code Date: Thu, 03 Mar 2016 15:40:58 +0200 Message-ID: <1457012458.2724.30.camel@gmail.com> References: <1456494866-7665-14-git-send-email-ander.conselvan.de.oliveira@intel.com> <1456736924-4259-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <56D83D47.9080506@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-x22e.google.com (mail-pf0-x22e.google.com [IPv6:2607:f8b0:400e:c00::22e]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1DC2E6EA61 for ; Thu, 3 Mar 2016 13:41:04 +0000 (UTC) Received: by mail-pf0-x22e.google.com with SMTP id w128so15466445pfb.2 for ; Thu, 03 Mar 2016 05:41:04 -0800 (PST) In-Reply-To: <56D83D47.9080506@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 , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE2LTAzLTAzIGF0IDE0OjMzICswMTAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPiBPcCAyOS0wMi0xNiBvbSAxMDowOCBzY2hyZWVmIEFuZGVyIENvbnNlbHZhbiBkZSBPbGl2 ZWlyYToKPiA+IEluY2x1ZGUgRFBMTDAgaW4gdGhlIG1hbmFnZWQgZHBsbHMgZm9yIFNLTC9LQkwu IFdoaWxlIGl0IGhhcyB0byBiZSBrZXB0Cj4gPiBlbmFibGVkIGJlY2F1c2Ugb2YgaXQgZHJpdmlu ZyBDRENMSywgaXQgaXMgYmV0dGVyIHRvIHNwZWNpYWwgY2FzZSB0aGF0Cj4gPiBpbnNpZGUgdGhl IERQTEwgY29kZSB0aGFuIGluIHRoZSBoaWdoZXIgbGV2ZWwuCj4gPiAKPiA+IHYyOiBVc2UgSU5U RUxfRFBMTF9BTFdBWVNfT04gZmxhZy4gKEFuZGVyKQo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBB bmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPAo+ID4gYW5kZXIuY29uc2VsdmFuLmRlLm9saXZl aXJhQGludGVsLmNvbT4KPiA+IAo+ID4gLS0tCj4gPiBJIHdhc24ndCBhYmxlIHRvIHRlc3QgdGhp cyBwYXRjaC4gV291bGQgcmVhbGx5IGFwcHJlY2lhdGUgYSB0ZXN0ZWQgYnkKPiA+IGZyb20gc29t ZW9uZS4KPiBVbmZvcnR1bmF0ZWx5IG5vIHNrbCB3aXRoIGVEUCBoZXJlIGVpdGhlci4gOigKPiA+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgIHwgIDIxIC0tLS0tLQo+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgfCAgNTIgKy0tLS0tLS0tLS0t LS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIHwgMTMxICsrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwbGxfbWdyLmggfCAgIDcgKy0KPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDEwOSBp bnNlcnRpb25zKCspLCAxMDIgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+ID4gaW5kZXggM2NiOWYzNi4uOGVmNGQyZSAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZGkuYwo+ID4gQEAgLTEwMDgsOSArMTAwOCw2IEBAIHNrbF9kZGlfcGxsX3Nl bGVjdChzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiA+ICB7Cj4gPiAgCXN0cnVjdCBp bnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfZW5jb2Rlci0+dHlw ZSA9PSBJTlRFTF9PVVRQVVRfRURQKQo+ID4gLQkJcmV0dXJuIHRydWU7Cj4gPiAtCj4gPiAgCXBs bCA9IGludGVsX2dldF9zaGFyZWRfZHBsbChpbnRlbF9jcnRjLCBjcnRjX3N0YXRlLCBpbnRlbF9l bmNvZGVyKTsKPiA+ICAJaWYgKHBsbCA9PSBOVUxMKSB7Cj4gPiAgCQlEUk1fREVCVUdfRFJJVkVS KCJmYWlsZWQgdG8gZmluZCBQTEwgZm9yIHBpcGUgJWNcbiIsCj4gPiBAQCAtMTU3MCwyNCArMTU2 Nyw2IEBAIHZvaWQgaW50ZWxfZGRpX2Nsa19zZWxlY3Qoc3RydWN0IGludGVsX2VuY29kZXIKPiA+ ICplbmNvZGVyLAo+ID4gIAkJdWludDMyX3QgZHBsbCA9IHBpcGVfY29uZmlnLT5kZGlfcGxsX3Nl bDsKPiA+ICAJCXVpbnQzMl90IHZhbDsKPiA+ICAKPiA+IC0JCS8qCj4gPiAtCQkgKiBEUExMMCBp cyB1c2VkIGZvciBlRFAgYW5kIGlzIHRoZSBvbmx5ICJwcml2YXRlIiBEUExMIChhcwo+ID4gLQkJ ICogb3Bwb3NlZCB0byBzaGFyZWQpIG9uIFNLTAo+ID4gLQkJICovCj4gPiAtCQlpZiAoZW5jb2Rl ci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4gPiAtCQkJV0FSTl9PTihkcGxsICE9IFNL TF9EUExMMCk7Cj4gPiAtCj4gPiAtCQkJdmFsID0gSTkxNV9SRUFEKERQTExfQ1RSTDEpOwo+ID4g LQo+ID4gLQkJCXZhbCAmPSB+KERQTExfQ1RSTDFfSERNSV9NT0RFKGRwbGwpIHwKPiA+IC0JCQkJ IERQTExfQ1RSTDFfU1NDKGRwbGwpIHwKPiA+IC0JCQkJIERQTExfQ1RSTDFfTElOS19SQVRFX01B U0soZHBsbCkpOwo+ID4gLQkJCXZhbCB8PSBwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5jdHJs MSA8PCAoZHBsbCAqCj4gPiA2KTsKPiA+IC0KPiA+IC0JCQlJOTE1X1dSSVRFKERQTExfQ1RSTDEs IHZhbCk7Cj4gPiAtCQkJUE9TVElOR19SRUFEKERQTExfQ1RSTDEpOwo+ID4gLQkJfQo+ID4gLQo+ ID4gIAkJLyogRERJIC0+IFBMTCBtYXBwaW5nICAqLwo+ID4gIAkJdmFsID0gSTkxNV9SRUFEKERQ TExfQ1RSTDIpOwo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gaW5kZXgg NWJlNjg5Mi4uOWZlZjg3NyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IEBA IC0xMjI5LDUyICsxMjI5LDYgQEAgaW50ZWxfZHBfY29ubmVjdG9yX3VucmVnaXN0ZXIoc3RydWN0 IGludGVsX2Nvbm5lY3Rvcgo+ID4gKmludGVsX2Nvbm5lY3RvcikKPiA+ICAJaW50ZWxfY29ubmVj dG9yX3VucmVnaXN0ZXIoaW50ZWxfY29ubmVjdG9yKTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGlj IHZvaWQKPiA+IC1za2xfZWRwX3NldF9wbGxfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZykKPiA+IC17Cj4gPiAtCXUzMiBjdHJsMTsKPiA+IC0KPiA+IC0JbWVtc2V0 KCZwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZSwgMCwKPiA+IC0JICAgICAgIHNpemVvZihwaXBl X2NvbmZpZy0+ZHBsbF9od19zdGF0ZSkpOwo+ID4gLQo+ID4gLQlwaXBlX2NvbmZpZy0+ZGRpX3Bs bF9zZWwgPSBTS0xfRFBMTDA7Cj4gPiAtCXBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmNmZ2Ny MSA9IDA7Cj4gPiAtCXBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmNmZ2NyMiA9IDA7Cj4gPiAt Cj4gPiAtCWN0cmwxID0gRFBMTF9DVFJMMV9PVkVSUklERShTS0xfRFBMTDApOwo+ID4gLQlzd2l0 Y2ggKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrIC8gMikgewo+ID4gLQljYXNlIDgxMDAwOgo+ID4g LQkJY3RybDEgfD0gRFBMTF9DVFJMMV9MSU5LX1JBVEUoRFBMTF9DVFJMMV9MSU5LX1JBVEVfODEw LAo+ID4gLQkJCQkJICAgICAgU0tMX0RQTEwwKTsKPiA+IC0JCWJyZWFrOwo+ID4gLQljYXNlIDEz NTAwMDoKPiA+IC0JCWN0cmwxIHw9IERQTExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFfTElO S19SQVRFXzEzNTAsCj4gPiAtCQkJCQkgICAgICBTS0xfRFBMTDApOwo+ID4gLQkJYnJlYWs7Cj4g PiAtCWNhc2UgMjcwMDAwOgo+ID4gLQkJY3RybDEgfD0gRFBMTF9DVFJMMV9MSU5LX1JBVEUoRFBM TF9DVFJMMV9MSU5LX1JBVEVfMjcwMCwKPiA+IC0JCQkJCSAgICAgIFNLTF9EUExMMCk7Cj4gPiAt CQlicmVhazsKPiA+IC0JY2FzZSAxNjIwMDA6Cj4gPiAtCQljdHJsMSB8PSBEUExMX0NUUkwxX0xJ TktfUkFURShEUExMX0NUUkwxX0xJTktfUkFURV8xNjIwLAo+ID4gLQkJCQkJICAgICAgU0tMX0RQ TEwwKTsKPiA+IC0JCWJyZWFrOwo+ID4gLQkvKiBUQkQ6IEZvciBEUCBsaW5rIHJhdGVzIDIuMTYg R0h6IGFuZCA0LjMyIEdIeiwgVkNPIGlzIDg2NDAgd2hpY2gKPiA+IC0JcmVzdWx0cyBpbiBDRENM SyBjaGFuZ2UuIE5lZWQgdG8gaGFuZGxlIHRoZSBjaGFuZ2Ugb2YgQ0RDTEsgYnkKPiA+IC0JZGlz YWJsaW5nIHBpcGVzIGFuZCByZS1lbmFibGluZyB0aGVtICovCj4gPiAtCWNhc2UgMTA4MDAwOgo+ ID4gLQkJY3RybDEgfD0gRFBMTF9DVFJMMV9MSU5LX1JBVEUoRFBMTF9DVFJMMV9MSU5LX1JBVEVf MTA4MCwKPiA+IC0JCQkJCSAgICAgIFNLTF9EUExMMCk7Cj4gPiAtCQlicmVhazsKPiA+IC0JY2Fz ZSAyMTYwMDA6Cj4gPiAtCQljdHJsMSB8PSBEUExMX0NUUkwxX0xJTktfUkFURShEUExMX0NUUkwx X0xJTktfUkFURV8yMTYwLAo+ID4gLQkJCQkJICAgICAgU0tMX0RQTEwwKTsKPiA+IC0JCWJyZWFr Owo+ID4gLQo+ID4gLQl9Cj4gPiAtCXBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmN0cmwxID0g Y3RybDE7Cj4gPiAtfQo+ID4gLQo+ID4gIHN0YXRpYyBpbnQKPiA+ICBpbnRlbF9kcF9zaW5rX3Jh dGVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGNvbnN0IGludCAqKnNpbmtfcmF0ZXMpCj4g PiAgewo+ID4gQEAgLTE2MzIsMTEgKzE1ODYsNyBAQCBmb3VuZDoKPiA+ICAJCQkJJnBpcGVfY29u ZmlnLT5kcF9tMl9uMik7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JaWYgKChJU19TS1lMQUtFKGRldikg IHx8IElTX0tBQllMQUtFKGRldikpICYmIGlzX2VkcChpbnRlbF9kcCkpCj4gPiAtCQlza2xfZWRw X3NldF9wbGxfY29uZmlnKHBpcGVfY29uZmlnKTsKPiA+IC0JZWxzZSBpZiAoSVNfQlJPWFRPTihk ZXYpIHx8IElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKPiA+IC0JCS8qIGhh bmRsZWQgaW4gZGRpICovOwo+ID4gLQllbHNlCj4gPiArCWlmICghSEFTX0RESShkZXYpKQo+ID4g IAkJaW50ZWxfZHBfc2V0X2Nsb2NrKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiA+ICAKPiA+ICAJ cmV0dXJuIHRydWU7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBsbF9tZ3IuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4g PiBpbmRleCBkMzcxNjgwLi42ZWM3ODM2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHBsbF9tZ3IuYwo+ID4gQEAgLTc4NSw3ICs3ODUsMTIgQEAgc3RydWN0IHNrbF9kcGxsX3Jl Z3Mgewo+ID4gIH07Cj4gPiAgCj4gPiAgLyogdGhpcyBhcnJheSBpcyBpbmRleGVkIGJ5IHRoZSAq c2hhcmVkKiBwbGwgaWQgKi8KPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHNrbF9kcGxsX3JlZ3Mg c2tsX2RwbGxfcmVnc1szXSA9IHsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHNrbF9kcGxsX3Jl Z3Mgc2tsX2RwbGxfcmVnc1s0XSA9IHsKPiA+ICsJewo+ID4gKwkJLyogRFBMTCAwICovCj4gPiAr CQkuY3RsID0gTENQTEwxX0NUTCwKPiA+ICsJCS8qIERQTEwgMCBkb2Vzbid0IHN1cHBvcnQgSERN SSBtb2RlICovCj4gPiArCX0sCj4gPiAgCXsKPiA+ICAJCS8qIERQTEwgMSAqLwo+ID4gIAkJLmN0 bCA9IExDUExMMl9DVEwsCj4gPiBAQCAtODA2LDI0ICs4MTEsMjkgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBza2xfZHBsbF9yZWdzIHNrbF9kcGxsX3JlZ3NbM10gPSB7Cj4gPiAgCX0sCj4gPiAgfTsK PiA+ICAKPiA+IC1zdGF0aWMgdm9pZCBza2xfZGRpX3BsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gLQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2Rw bGwgKnBsbCkKPiA+ICtzdGF0aWMgdm9pZCBza2xfZGRpX3BsbF93cml0ZV9jdHJsMShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiArCQkJCSAgICBzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGwgKnBsbCkKPiA+ICB7Cj4gPiAgCXVpbnQzMl90IHZhbDsKPiA+IC0JdW5zaWduZWQg aW50IGRwbGw7Cj4gPiAtCWNvbnN0IHN0cnVjdCBza2xfZHBsbF9yZWdzICpyZWdzID0gc2tsX2Rw bGxfcmVnczsKPiA+IC0KPiA+IC0JLyogRFBMTDAgaXMgbm90IHBhcnQgb2YgdGhlIHNoYXJlZCBE UExMcywgc28gcGxsLT5pZCBpcyAwIGZvciBEUExMMQo+ID4gKi8KPiA+IC0JZHBsbCA9IHBsbC0+ aWQgKyAxOwo+ID4gIAo+ID4gIAl2YWwgPSBJOTE1X1JFQUQoRFBMTF9DVFJMMSk7Cj4gPiAgCj4g PiAtCXZhbCAmPSB+KERQTExfQ1RSTDFfSERNSV9NT0RFKGRwbGwpIHwgRFBMTF9DVFJMMV9TU0Mo ZHBsbCkgfAo+ID4gLQkJIERQTExfQ1RSTDFfTElOS19SQVRFX01BU0soZHBsbCkpOwo+ID4gLQl2 YWwgfD0gcGxsLT5jb25maWcuaHdfc3RhdGUuY3RybDEgPDwgKGRwbGwgKiA2KTsKPiA+ICsJdmFs ICY9IH4oRFBMTF9DVFJMMV9IRE1JX01PREUocGxsLT5pZCkgfCBEUExMX0NUUkwxX1NTQyhwbGwt PmlkKSB8Cj4gPiArCQkgRFBMTF9DVFJMMV9MSU5LX1JBVEVfTUFTSyhwbGwtPmlkKSk7Cj4gPiAr CXZhbCB8PSBwbGwtPmNvbmZpZy5od19zdGF0ZS5jdHJsMSA8PCAocGxsLT5pZCAqIDYpOwo+ID4g IAo+ID4gIAlJOTE1X1dSSVRFKERQTExfQ1RSTDEsIHZhbCk7Cj4gPiAgCVBPU1RJTkdfUkVBRChE UExMX0NUUkwxKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2tsX2RkaV9wbGxfZW5h YmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICsJCQkgICAgICAgc3Ry dWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwpCj4gPiArewo+ID4gKwljb25zdCBzdHJ1Y3Qgc2ts X2RwbGxfcmVncyAqcmVncyA9IHNrbF9kcGxsX3JlZ3M7Cj4gPiArCj4gPiArCVdBUk5fT04ocGxs LT5pZCA9PSBEUExMX0lEX1NLTF9EUExMMCk7Cj4gPiArCj4gPiArCXNrbF9kZGlfcGxsX3dyaXRl X2N0cmwxKGRldl9wcml2LCBwbGwpOwo+ID4gIAo+ID4gIAlJOTE1X1dSSVRFKHJlZ3NbcGxsLT5p ZF0uY2ZnY3IxLCBwbGwtPmNvbmZpZy5od19zdGF0ZS5jZmdjcjEpOwo+ID4gIAlJOTE1X1dSSVRF KHJlZ3NbcGxsLT5pZF0uY2ZnY3IyLCBwbGwtPmNvbmZpZy5od19zdGF0ZS5jZmdjcjIpOwo+ID4g QEAgLTgzNCw4ICs4NDQsMTUgQEAgc3RhdGljIHZvaWQgc2tsX2RkaV9wbGxfZW5hYmxlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlCj4gPiAqZGV2X3ByaXYsCj4gPiAgCUk5MTVfV1JJVEUocmVnc1tw bGwtPmlkXS5jdGwsCj4gPiAgCQkgICBJOTE1X1JFQUQocmVnc1twbGwtPmlkXS5jdGwpIHwgTENQ TExfUExMX0VOQUJMRSk7Cj4gPiAgCj4gPiAtCWlmICh3YWl0X2ZvcihJOTE1X1JFQUQoRFBMTF9T VEFUVVMpICYgRFBMTF9MT0NLKGRwbGwpLCA1KSkKPiA+IC0JCURSTV9FUlJPUigiRFBMTCAlZCBu b3QgbG9ja2VkXG4iLCBkcGxsKTsKPiA+ICsJaWYgKHdhaXRfZm9yKEk5MTVfUkVBRChEUExMX1NU QVRVUykgJiBEUExMX0xPQ0socGxsLT5pZCksIDUpKQo+ID4gKwkJRFJNX0VSUk9SKCJEUExMICVk IG5vdCBsb2NrZWRcbiIsIHBsbC0+aWQpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBz a2xfZGRpX2RwbGwwX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g PiArCQkJCSBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCkKPiA+ICt7Cj4gPiArCVdBUk5f T04ocGxsLT5pZCAhPSBEUExMX0lEX1NLTF9EUExMMCk7Cj4gPiArCXNrbF9kZGlfcGxsX3dyaXRl X2N0cmwxKGRldl9wcml2LCBwbGwpOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBza2xf ZGRpX3BsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+IEBA IC04NDksMzIgKzg2NiwzNSBAQCBzdGF0aWMgdm9pZCBza2xfZGRpX3BsbF9kaXNhYmxlKHN0cnVj dAo+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCVBPU1RJTkdfUkVBRChyZWdz W3BsbC0+aWRdLmN0bCk7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyB2b2lkIHNrbF9kZGlfZHBs bDBfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiArCQkJCSAg c3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwpCj4gPiArewo+ID4gK30KPiA+ICsKPiA+ICBz dGF0aWMgYm9vbCBza2xfZGRpX3BsbF9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ID4gIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxs LAo+ID4gIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpod19zdGF0ZSkKPiA+ ICB7Cj4gPiAgCXVpbnQzMl90IHZhbDsKPiA+IC0JdW5zaWduZWQgaW50IGRwbGw7Cj4gPiAgCWNv bnN0IHN0cnVjdCBza2xfZHBsbF9yZWdzICpyZWdzID0gc2tsX2RwbGxfcmVnczsKPiA+ICAJYm9v bCByZXQ7Cj4gPiAgCj4gPiArCVdBUk5fT04ocGxsLT5pZCA9PSBEUExMX0lEX1NLTF9EUExMMCk7 Cj4gPiArCj4gPiAgCWlmICghaW50ZWxfZGlzcGxheV9wb3dlcl9nZXRfaWZfZW5hYmxlZChkZXZf cHJpdiwKPiA+IFBPV0VSX0RPTUFJTl9QTExTKSkKPiA+ICAJCXJldHVybiBmYWxzZTsKPiA+ICAK PiA+ICAJcmV0ID0gZmFsc2U7Cj4gPiAgCj4gPiAtCS8qIERQTEwwIGlzIG5vdCBwYXJ0IG9mIHRo ZSBzaGFyZWQgRFBMTHMsIHNvIHBsbC0+aWQgaXMgMCBmb3IgRFBMTDEKPiA+ICovCj4gPiAtCWRw bGwgPSBwbGwtPmlkICsgMTsKPiA+IC0KPiA+ICAJdmFsID0gSTkxNV9SRUFEKHJlZ3NbcGxsLT5p ZF0uY3RsKTsKPiA+ICAJaWYgKCEodmFsICYgTENQTExfUExMX0VOQUJMRSkpCj4gPiAgCQlnb3Rv IG91dDsKPiA+ICAKPiA+ICAJdmFsID0gSTkxNV9SRUFEKERQTExfQ1RSTDEpOwo+ID4gLQlod19z dGF0ZS0+Y3RybDEgPSAodmFsID4+IChkcGxsICogNikpICYgMHgzZjsKPiA+ICsJaHdfc3RhdGUt PmN0cmwxID0gKHZhbCA+PiAocGxsLT5pZCAqIDYpKSAmIDB4M2Y7Cj4gPiAgCj4gPiAgCS8qIGF2 b2lkIHJlYWRpbmcgYmFjayBzdGFsZSB2YWx1ZXMgaWYgSERNSSBtb2RlIGlzIG5vdCBlbmFibGVk ICovCj4gPiAtCWlmICh2YWwgJiBEUExMX0NUUkwxX0hETUlfTU9ERShkcGxsKSkgewo+ID4gKwlp ZiAodmFsICYgRFBMTF9DVFJMMV9IRE1JX01PREUocGxsLT5pZCkpIHsKPiA+ICAJCWh3X3N0YXRl LT5jZmdjcjEgPSBJOTE1X1JFQUQocmVnc1twbGwtPmlkXS5jZmdjcjEpOwo+ID4gIAkJaHdfc3Rh dGUtPmNmZ2NyMiA9IEk5MTVfUkVBRChyZWdzW3BsbC0+aWRdLmNmZ2NyMik7Cj4gPiAgCX0KPiA+ IEBAIC04ODYsNiArOTA2LDM3IEBAIG91dDoKPiA+ICAJcmV0dXJuIHJldDsKPiA+ICB9Cj4gPiAg Cj4gPiArc3RhdGljIGJvb2wgc2tsX2RkaV9kcGxsMF9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gKwkJCQkgICAgICAgc3RydWN0IGludGVsX3NoYXJl ZF9kcGxsICpwbGwsCj4gPiArCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZQo+ ID4gKmh3X3N0YXRlKQo+ID4gK3sKPiA+ICsJdWludDMyX3QgdmFsOwo+ID4gKwljb25zdCBzdHJ1 Y3Qgc2tsX2RwbGxfcmVncyAqcmVncyA9IHNrbF9kcGxsX3JlZ3M7Cj4gPiArCWJvb2wgcmV0Owo+ ID4gKwo+ID4gKwlXQVJOX09OKHBsbC0+aWQgIT0gRFBMTF9JRF9TS0xfRFBMTDApOwo+IEknbSBh bGwgZm9yIHBhcmFub2lhLCBidXQgaG93IGNhbiB0aGlzIGV2ZXIgaGFwcGVuPwo+IAo+IFNlZW1z IHBsbDAgaGFzIGl0cyBvd24gZnVuY3Rpb24gcG9pbnRlcnMsIHNvIHlvdSdkIGhhdmUgdG8gZG8g c29tZXRoaW5nIGxpa2UKPiBwbGwxLT5mdW5jcy0+Z2V0X2h3X3N0YXRlKHBsbDApOwo+IAo+IEkg ZG9uJ3QgdGhpbmsgdGhpcyB3aWxsIGV2ZXIgaGFwcGVuLCBzbyBhbGwgdGhlIHBhcmFub2lhIGZy b20gdGhlc2UgZnVuY3Rpb25zCj4gdGhhdCBhcmUgY2FsbGVkIGZyb20gdGhlIGZ1bmN0aW9uIHBv aW50ZXIgY2FuIGJlIHJlbW92ZWQuCgpJIHdlbnQgYSBiaXQgb3ZlcmJvYXJkLiBXaWxsIHJlc3Bp bi4KCj4gPiArCWlmICghaW50ZWxfZGlzcGxheV9wb3dlcl9nZXRfaWZfZW5hYmxlZChkZXZfcHJp diwKPiA+IFBPV0VSX0RPTUFJTl9QTExTKSkKPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ICsKPiA+ ICsJcmV0ID0gZmFsc2U7Cj4gPiArCj4gPiArCS8qIERQTEwwIGlzIGFsd2F5cyBlbmFibGVkIHNp bmNlIGl0IGRyaXZlcyBDRENMSyAqLwo+ID4gKwl2YWwgPSBJOTE1X1JFQUQocmVnc1twbGwtPmlk XS5jdGwpOwo+ID4gKwlpZiAoV0FSTl9PTighKHZhbCAmIExDUExMX1BMTF9FTkFCTEUpKSkKPiA+ ICsJCWdvdG8gb3V0Owo+ID4gKwo+ID4gKwl2YWwgPSBJOTE1X1JFQUQoRFBMTF9DVFJMMSk7Cj4g PiArCWh3X3N0YXRlLT5jdHJsMSA9ICh2YWwgPj4gKHBsbC0+aWQgKiA2KSkgJiAweDNmOwo+ID4g Kwo+ID4gKwlyZXQgPSB0cnVlOwo+ID4gKwo+ID4gK291dDoKPiA+ICsJaW50ZWxfZGlzcGxheV9w b3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9QTExTKTsKPiA+ICsKPiA+ICsJcmV0dXJu IHJldDsKPiA+ICt9Cj4gPiArCj4gPiAgc3RydWN0IHNrbF93cnBsbF9jb250ZXh0IHsKPiA+ICAJ dWludDY0X3QgbWluX2RldmlhdGlvbjsJCS8qIGN1cnJlbnQgbWluaW1hbCBkZXZpYXRpb24KPiA+ ICovCj4gPiAgCXVpbnQ2NF90IGNlbnRyYWxfZnJlcTsJCS8qIGNob3NlbiBjZW50cmFsIGZyZXEg Ki8KPiA+IEBAIC0xMTY1LDcgKzEyMTYsOCBAQCBza2xfZ2V0X2RwbGwoc3RydWN0IGludGVsX2Ny dGMgKmNydGMsIHN0cnVjdAo+ID4gaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ICAJ CQkgRFBMTF9DRkdDUjJfUERJVih3cnBsbF9wYXJhbXMucGRpdikgfAo+ID4gIAkJCSB3cnBsbF9w YXJhbXMuY2VudHJhbF9mcmVxOwo+ID4gIAl9IGVsc2UgaWYgKGVuY29kZXItPnR5cGUgPT0gSU5U RUxfT1VUUFVUX0RJU1BMQVlQT1JUIHx8Cj4gPiAtCQkgICBlbmNvZGVyLT50eXBlID09IElOVEVM X09VVFBVVF9EUF9NU1QpIHsKPiA+ICsJCSAgIGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVU X0RQX01TVCB8fAo+ID4gKwkJICAgZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7 Cj4gPiAgCQlzd2l0Y2ggKGNydGNfc3RhdGUtPnBvcnRfY2xvY2sgLyAyKSB7Cj4gPiAgCQljYXNl IDgxMDAwOgo+ID4gIAkJCWN0cmwxIHw9Cj4gPiBEUExMX0NUUkwxX0xJTktfUkFURShEUExMX0NU UkwxX0xJTktfUkFURV84MTAsIDApOwo+ID4gQEAgLTExNzYsNiArMTIyOCwxOSBAQCBza2xfZ2V0 X2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsIHN0cnVjdAo+ID4gaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiA+ICAJCWNhc2UgMjcwMDAwOgo+ID4gIAkJCWN0cmwxIHw9Cj4gPiBE UExMX0NUUkwxX0xJTktfUkFURShEUExMX0NUUkwxX0xJTktfUkFURV8yNzAwLCAwKTsKPiA+ICAJ CQlicmVhazsKPiA+ICsJCS8qIGVEUCAxLjQgcmF0ZXMgKi8KPiA+ICsJCWNhc2UgMTYyMDAwOgo+ ID4gKwkJCWN0cmwxIHw9Cj4gPiBEUExMX0NUUkwxX0xJTktfUkFURShEUExMX0NUUkwxX0xJTktf UkFURV8xNjIwLCAwKTsKPiA+ICsJCQlicmVhazsKPiA+ICsJCS8qIFRCRDogRm9yIERQIGxpbmsg cmF0ZXMgMi4xNiBHSHogYW5kIDQuMzIgR0h6LCBWQ08gaXMKPiA+IDg2NDAgd2hpY2gKPiA+ICsJ CXJlc3VsdHMgaW4gQ0RDTEsgY2hhbmdlLiBOZWVkIHRvIGhhbmRsZSB0aGUgY2hhbmdlIG9mIENE Q0xLCj4gPiBieQo+ID4gKwkJZGlzYWJsaW5nIHBpcGVzIGFuZCByZS1lbmFibGluZyB0aGVtICov Cj4gU291bmRzIGxpa2Ugd2UgcmVhbGx5IG5lZWQgdG8gc3RhcnQgc3VwcG9ydGluZyBjZGNsayBj aGFuZ2VzIG9uIFNLTCwgaWYgaXQncwo+IGJhc2VkIG9uIHRoaXMgcGxsPwo+IG1vZGVzZXRfY2Fs Y19jZGNsayBhbmQgbW9kZXNldF9jb21taXRfY2RjbGsuCgpDbGludCBUYXlsb3IgaGFzIGJlZW4g d29ya2luZyBvbiBpdDoKCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2lu dGVsLWdmeC8yMDE2LUZlYnJ1YXJ5LzA4Nzc5Ni5odG1sCgoKQW5kZXIKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=