From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH 08/13] drm/i915: Refactor platform specifics out of intel_get_shared_dpll() Date: Mon, 7 Mar 2016 10:59:08 +0100 Message-ID: <56DD50EC.9010905@linux.intel.com> References: <1456494866-7665-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1456494866-7665-9-git-send-email-ander.conselvan.de.oliveira@intel.com> <56D84564.5050807@linux.intel.com> <1457074149.2668.2.camel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 6C74F6E31C for ; Mon, 7 Mar 2016 09:59:10 +0000 (UTC) In-Reply-To: <1457074149.2668.2.camel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan De Oliveira , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMDQtMDMtMTYgb20gMDc6NDkgc2NocmVlZiBBbmRlciBDb25zZWx2YW4gRGUgT2xpdmVpcmE6 Cj4gT24gVGh1LCAyMDE2LTAzLTAzIGF0IDE1OjA4ICswMTAwLCBNYWFydGVuIExhbmtob3JzdCB3 cm90ZToKPj4gT3AgMjYtMDItMTYgb20gMTQ6NTQgc2NocmVlZiBBbmRlciBDb25zZWx2YW4gZGUg T2xpdmVpcmE6Cj4+PiBUaGUgZnVuY3Rpb24gaW50ZWxfZ2V0X3NoYXJlZF9kcGxsKCkgaGFkIGEg bW9yZSBvciBsZXNzIGdlbmVyaWMKPj4+IGltcGxlbWVudGF0aW9uIHdpdGggc29tZSBwbGF0Zm9y bSBzcGVjaWZpYyBjaGVja3MgdG8gaGFuZGxlIHNtYWxsZXIKPj4+IGRpZmZlcmVuY2VzIGJldHdl ZW4gcGxhdGZvcm1zLiBIb3dldmVyLCB0aGUgbWluaW1hbGlzdCBhcHByb2FjaCBmb3JjZXMKPj4+ IGJpZ2dlciBkaWZmZXJlbmNlcyBiZXR3ZWVuIHBsYXRmb3JtcyB0byBiZSBpbXBsZW1lbnRlZCBv dXRzaWRlIG9mIHRoZQo+Pj4gc2hhcmVkIGRwbGwgY29kZSAoc2VlIHRoZSAqX2RkaV9wbGxfc2Vs ZWN0KCkgZnVuY3Rpb25zIGluIGludGVsX2RkaS5jLAo+Pj4gZm9yIGluc3RhbmNlKS4KPj4+Cj4+ PiBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIGludGVsX2dldF9zaGFy ZV9kcGxsKCkgc28gdGhhdAo+Pj4gYSBjb21wbGV0ZWx5IHBsYXRmb3JtIHNwZWNpZmljIHZlcnNp b24gY2FuIGJlIHVzZWQsIHByb3ZpZGluZyBoZWxwZXJzIHRvCj4+PiByZWR1Y2UgY29kZSBkdXBs aWNhdGlvbi4gVGhpcyBzaG91bGQgYWxsb3cgdGhlIGNvZGUgZnJvbSB0aGUgZGRpIHBsbAo+Pj4g c2VsZWN0IGZ1bmN0aW9ucyB0byBiZSBtb3ZlZCwgYW5kIGFsc28gbWFrZSByb29tIGZvciBtYWtp bmcgbW9yZSBkcGxscwo+Pj4gbWFuYWdlZCBieSB0aGUgc2hhcmVkIGRwbGwgaW5mcmFzdHJ1Y3R1 cmUuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDwK Pj4+IGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+Cj4+PiAtLS0KPj4+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgIHwgICAxICsKPj4+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIHwgMjI2ICsrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0KPj4+IC0tLQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxf bWdyLmggfCAgIDIgKwo+Pj4gIDMgZmlsZXMgY2hhbmdlZCwgMTQ1IGluc2VydGlvbnMoKyksIDg0 IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+IGluZGV4 IDZkZTkzZGMuLmI4NTg4MDEgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+PiBA QCAtMTgwMiw2ICsxODAyLDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+Pj4gIAkvKiBk cGxsIGFuZCBjZGNsayBzdGF0ZSBpcyBwcm90ZWN0ZWQgYnkgY29ubmVjdGlvbl9tdXRleCAqLwo+ Pj4gIAlpbnQgbnVtX3NoYXJlZF9kcGxsOwo+Pj4gIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwg c2hhcmVkX2RwbGxzW0k5MTVfTlVNX1BMTFNdOwo+Pj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxfZHBs bF9tZ3IgKmRwbGxfbWdyOwo+Pj4gIAo+Pj4gIAl1bnNpZ25lZCBpbnQgYWN0aXZlX2NydGNzOwo+ Pj4gIAl1bnNpZ25lZCBpbnQgbWluX3BpeGNsa1tJOTE1X01BWF9QSVBFU107Cj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+Pj4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4+PiBpbmRleCBlODhkYzQ2Li4zNTUzMzI0 IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+Pj4gQEAgLTE3 NCw2NiArMTc0LDIwIEBAIHZvaWQgaW50ZWxfZGlzYWJsZV9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50 ZWxfY3J0Ywo+Pj4gKmNydGMpCj4+PiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2 LCBQT1dFUl9ET01BSU5fUExMUyk7Cj4+PiAgfQo+Pj4gIAo+Pj4gLXN0YXRpYyBlbnVtIGludGVs X2RwbGxfaWQKPj4+IC1pYnhfZ2V0X2ZpeGVkX2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMs Cj4+PiAtCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4+IC17Cj4+ PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwo+Pj4gLQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKPj4+IC0JZW51bSBp bnRlbF9kcGxsX2lkIGk7Cj4+PiAtCj4+PiAtCS8qIElyb25sYWtlIFBDSCBoYXMgYSBmaXhlZCBQ TEwtPlBDSCBwaXBlIG1hcHBpbmcuICovCj4+PiAtCWkgPSAoZW51bSBpbnRlbF9kcGxsX2lkKSBj cnRjLT5waXBlOwo+Pj4gLQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsKPj4+IC0K Pj4+IC0JRFJNX0RFQlVHX0tNUygiQ1JUQzolZCB1c2luZyBwcmUtYWxsb2NhdGVkICVzXG4iLAo+ Pj4gLQkJICAgICAgY3J0Yy0+YmFzZS5iYXNlLmlkLCBwbGwtPm5hbWUpOwo+Pj4gLQo+Pj4gLQly ZXR1cm4gaTsKPj4+IC19Cj4+PiAtCj4+PiAtc3RhdGljIGVudW0gaW50ZWxfZHBsbF9pZAo+Pj4g LWJ4dF9nZXRfZml4ZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4+IC0JCSAgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+Pj4gLXsKPj4+IC0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4+PiAt CXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+Pj4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydDsKPj4+IC0Jc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpw bGw7Cj4+PiAtCWVudW0gaW50ZWxfZHBsbF9pZCBpOwo+Pj4gLQo+Pj4gLQkvKiBQTEwgaXMgYXR0 YWNoZWQgdG8gcG9ydCBpbiBieHQgKi8KPj4+IC0JZW5jb2RlciA9IGludGVsX2RkaV9nZXRfY3J0 Y19uZXdfZW5jb2RlcihjcnRjX3N0YXRlKTsKPj4+IC0JaWYgKFdBUk5fT04oIWVuY29kZXIpKQo+ Pj4gLQkJcmV0dXJuIERQTExfSURfUFJJVkFURTsKPj4+IC0KPj4+IC0JaW50ZWxfZGlnX3BvcnQg PSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+Pj4gLQkvKiAxOjEgbWFwcGluZyBi ZXR3ZWVuIHBvcnRzIGFuZCBQTExzICovCj4+PiAtCWkgPSAoZW51bSBpbnRlbF9kcGxsX2lkKWlu dGVsX2RpZ19wb3J0LT5wb3J0Owo+Pj4gLQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tp XTsKPj4+IC0JRFJNX0RFQlVHX0tNUygiQ1JUQzolZCB1c2luZyBwcmUtYWxsb2NhdGVkICVzXG4i LAo+Pj4gLQkJY3J0Yy0+YmFzZS5iYXNlLmlkLCBwbGwtPm5hbWUpOwo+Pj4gLQo+Pj4gLQlyZXR1 cm4gaTsKPj4+IC19Cj4+PiAtCj4+PiAtc3RhdGljIGVudW0gaW50ZWxfZHBsbF9pZAo+Pj4gK3N0 YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgo+Pj4gIGludGVsX2ZpbmRfc2hhcmVkX2Rw bGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+PiAtCQkgICAgICAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+PiArCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCj4+PiArCQkgICAgICAgZW51bSBpbnRlbF9kcGxsX2lkIHJhbmdlX21p biwKPj4+ICsJCSAgICAgICBlbnVtIGludGVsX2RwbGxfaWQgcmFuZ2VfbWF4KQo+Pj4gIHsKPj4+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY3J0Yy0+YmFzZS5kZXYtPmRl dl9wcml2YXRlOwo+Pj4gIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKPj4+ICAJc3Ry dWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyAqc2hhcmVkX2RwbGw7Cj4+PiAgCWVudW0gaW50 ZWxfZHBsbF9pZCBpOwo+Pj4gLQlpbnQgbWF4ID0gZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsK Pj4+IC0KPj4+IC0JaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPCA5ICYmIEhBU19EREko ZGV2X3ByaXYpKQo+Pj4gLQkJLyogRG8gbm90IGNvbnNpZGVyIFNQTEwgKi8KPj4+IC0JCW1heCA9 IDI7Cj4+PiAgCj4+PiAgCXNoYXJlZF9kcGxsID0gaW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBs bF9zdGF0ZShjcnRjX3N0YXRlCj4+PiAtPmJhc2Uuc3RhdGUpOwo+Pj4gIAo+Pj4gLQlmb3IgKGkg PSAwOyBpIDwgbWF4OyBpKyspIHsKPj4+ICsJZm9yIChpID0gcmFuZ2VfbWluOyBpIDw9IHJhbmdl X21heDsgaSsrKSB7Cj4+PiAgCQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsKPj4+ ICAKPj4+ICAJCS8qIE9ubHkgd2FudCB0byBjaGVjayBlbmFibGVkIHRpbWluZ3MgZmlyc3QgKi8K Pj4+IEBAIC0yNDcsNDkgKzIwMSwzMyBAQCBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAo+Pj4gIAkJCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIHBsbC0+ bmFtZSwKPj4+ICAJCQkJICAgICAgc2hhcmVkX2RwbGxbaV0uY3J0Y19tYXNrLAo+Pj4gIAkJCQkg ICAgICBwbGwtPmFjdGl2ZSk7Cj4+PiAtCQkJcmV0dXJuIGk7Cj4+PiArCQkJcmV0dXJuIHBsbDsK Pj4+ICAJCX0KPj4+ICAJfQo+Pj4gIAo+Pj4gIAkvKiBPayBubyBtYXRjaGluZyB0aW1pbmdzLCBt YXliZSB0aGVyZSdzIGEgZnJlZSBvbmU/ICovCj4+PiAtCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJp di0+bnVtX3NoYXJlZF9kcGxsOyBpKyspIHsKPj4+ICsJZm9yIChpID0gcmFuZ2VfbWluOyBpIDw9 IHJhbmdlX21heDsgaSsrKSB7Cj4+PiAgCQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tp XTsKPj4+ICAJCWlmIChzaGFyZWRfZHBsbFtpXS5jcnRjX21hc2sgPT0gMCkgewo+Pj4gIAkJCURS TV9ERUJVR19LTVMoIkNSVEM6JWQgYWxsb2NhdGVkICVzXG4iLAo+Pj4gIAkJCQkgICAgICBjcnRj LT5iYXNlLmJhc2UuaWQsIHBsbC0+bmFtZSk7Cj4+PiAtCQkJcmV0dXJuIGk7Cj4+PiArCQkJcmV0 dXJuIHBsbDsKPj4+ICAJCX0KPj4+ICAJfQo+Pj4gIAo+Pj4gLQlyZXR1cm4gRFBMTF9JRF9QUklW QVRFOwo+Pj4gKwlyZXR1cm4gTlVMTDsKPj4+ICB9Cj4+PiAgCj4+PiAtc3RydWN0IGludGVsX3No YXJlZF9kcGxsICoKPj4+IC1pbnRlbF9nZXRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGMg KmNydGMsCj4+PiAtCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK Pj4+ICtzdGF0aWMgdm9pZAo+Pj4gK2ludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChzdHJ1Y3Qg aW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwKPj4+ICsJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4+PiAgewo+Pj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7Cj4+PiAtCXN0cnVjdCBpbnRlbF9z aGFyZWRfZHBsbCAqcGxsOwo+Pj4gIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnICpz aGFyZWRfZHBsbDsKPj4+IC0JZW51bSBpbnRlbF9kcGxsX2lkIGk7Cj4+PiArCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+Pj4g KwllbnVtIGludGVsX2RwbGxfaWQgaSA9IHBsbC0+aWQ7Cj4+PiAgCj4+PiAgCXNoYXJlZF9kcGxs ID0gaW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0ZShjcnRjX3N0YXRlCj4+PiAtPmJh c2Uuc3RhdGUpOwo+Pj4gIAo+Pj4gLQlpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYtPmRldikpIHsK Pj4+IC0JCWkgPSBpYnhfZ2V0X2ZpeGVkX2RwbGwoY3J0YywgY3J0Y19zdGF0ZSk7Cj4+PiAtCQlX QVJOX09OKHNoYXJlZF9kcGxsW2ldLmNydGNfbWFzayk7Cj4+PiAtCX0gZWxzZSBpZiAoSVNfQlJP WFRPTihkZXZfcHJpdi0+ZGV2KSkgewo+Pj4gLQkJaSA9IGJ4dF9nZXRfZml4ZWRfZHBsbChjcnRj LCBjcnRjX3N0YXRlKTsKPj4+IC0JCVdBUk5fT04oc2hhcmVkX2RwbGxbaV0uY3J0Y19tYXNrKTsK Pj4+IC0JfSBlbHNlIHsKPj4+IC0JCWkgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGMsIGNy dGNfc3RhdGUpOwo+Pj4gLQl9Cj4+PiAtCj4+PiAtCWlmIChpIDwgMCkKPj4+IC0JCXJldHVybiBO VUxMOwo+Pj4gLQo+Pj4gLQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsKPj4+IC0K Pj4+ICAJaWYgKHNoYXJlZF9kcGxsW2ldLmNydGNfbWFzayA9PSAwKQo+Pj4gIAkJc2hhcmVkX2Rw bGxbaV0uaHdfc3RhdGUgPQo+Pj4gIAkJCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGU7Cj4+PiBA QCAtMjk5LDggKzIzNyw2IEBAIGludGVsX2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKPj4+ICAJCQkgcGlwZV9uYW1lKGNydGMtPnBpcGUpKTsKPj4+ICAKPj4+ICAJaW50 ZWxfc2hhcmVkX2RwbGxfY29uZmlnX2dldChzaGFyZWRfZHBsbCwgcGxsLCBjcnRjKTsKPj4+IC0K Pj4+IC0JcmV0dXJuIHBsbDsKPj4+ICB9Cj4+PiAgCj4+PiAgdm9pZCBpbnRlbF9zaGFyZWRfZHBs bF9jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+Pj4gQEAgLTM5OCw2ICsz MzQsMzIgQEAgc3RhdGljIHZvaWQgaWJ4X3BjaF9kcGxsX2Rpc2FibGUoc3RydWN0Cj4+PiBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+ICAJdWRlbGF5KDIwMCk7Cj4+PiAgfQo+Pj4gIAo+ Pj4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgo+Pj4gK2lieF9nZXRfZHBsbChz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCj4+PiArewo+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKPj4+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7 Cj4+PiArCWVudW0gaW50ZWxfZHBsbF9pZCBpOwo+Pj4gKwo+Pj4gKwlpZiAoSEFTX1BDSF9JQlgo ZGV2X3ByaXYpKSB7Cj4+PiArCQkvKiBJcm9ubGFrZSBQQ0ggaGFzIGEgZml4ZWQgUExMLT5QQ0gg cGlwZSBtYXBwaW5nLiAqLwo+Pj4gKwkJaSA9IChlbnVtIGludGVsX2RwbGxfaWQpIGNydGMtPnBp cGU7Cj4+PiArCQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsKPj4+ICsKPj4+ICsJ CURSTV9ERUJVR19LTVMoIkNSVEM6JWQgdXNpbmcgcHJlLWFsbG9jYXRlZCAlc1xuIiwKPj4+ICsJ CQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIHBsbC0+bmFtZSk7Cj4+PiArCX0gZWxzZSB7Cj4+ PiArCQlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGMsIGNydGNfc3RhdGUsCj4+PiAr CQkJCQkgICAgIERQTExfSURfUENIX1BMTF9BLAo+Pj4gKwkJCQkJICAgICBEUExMX0lEX1BDSF9Q TExfQik7Cj4+PiArCX0KPj4+ICsKPj4+ICsJLyogcmVmZXJlbmNlIHRoZSBwbGwgKi8KPj4+ICsJ aW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7Cj4+PiArCj4+PiAr CXJldHVybiBwbGw7Cj4+PiArfQo+Pj4gKwo+Pj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGxfZnVuY3MgaWJ4X3BjaF9kcGxsX2Z1bmNzID0gewo+Pj4gIAkubW9kZV9zZXQg PSBpYnhfcGNoX2RwbGxfbW9kZV9zZXQsCj4+PiAgCS5lbmFibGUgPSBpYnhfcGNoX2RwbGxfZW5h YmxlLAo+Pj4gQEAgLTQ3NSw2ICs0MzcsMTkgQEAgc3RhdGljIGJvb2wgaHN3X2RkaV9zcGxsX2dl dF9od19zdGF0ZShzdHJ1Y3QKPj4+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+Pj4gIAly ZXR1cm4gdmFsICYgU1BMTF9QTExfRU5BQkxFOwo+Pj4gIH0KPj4+ICAKPj4+ICtzdGF0aWMgc3Ry dWN0IGludGVsX3NoYXJlZF9kcGxsICoKPj4+ICtoc3dfZ2V0X2RwbGwoc3RydWN0IGludGVsX2Ny dGMgKmNydGMsIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+Pj4gK3sKPj4+ ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7Cj4+PiArCj4+PiArCXBsbCA9IGludGVs X2ZpbmRfc2hhcmVkX2RwbGwoY3J0YywgY3J0Y19zdGF0ZSwKPj4+ICsJCQkJICAgICBEUExMX0lE X1dSUExMMSwgRFBMTF9JRF9XUlBMTDIpOwo+Pj4gKwlpZiAocGxsKQo+Pj4gKwkJaW50ZWxfcmVm ZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7Cj4+PiArCj4+PiArCXJldHVybiBw bGw7Cj4+PiArfQo+Pj4gKwo+Pj4gIAo+Pj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGxfZnVuY3MgaHN3X2RkaV93cnBsbF9mdW5jcyA9IHsKPj4+ICAJLmVuYWJsZSA9IGhz d19kZGlfd3JwbGxfZW5hYmxlLAo+Pj4gQEAgLTU5NCw2ICs1NjksMTkgQEAgb3V0Ogo+Pj4gIAly ZXR1cm4gcmV0Owo+Pj4gIH0KPj4+ICAKPj4+ICtzdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9k cGxsICoKPj4+ICtza2xfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+Pj4gK3sKPj4+ICsJc3RydWN0IGludGVsX3No YXJlZF9kcGxsICpwbGw7Cj4+PiArCj4+PiArCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwo Y3J0YywgY3J0Y19zdGF0ZSwKPj4+ICsJCQkJICAgICBEUExMX0lEX1NLTF9EUExMMSwgRFBMTF9J RF9TS0xfRFBMTDMpOwo+Pj4gKwlpZiAocGxsKQo+Pj4gKwkJaW50ZWxfcmVmZXJlbmNlX3NoYXJl ZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7Cj4+PiArCj4+PiArCXJldHVybiBwbGw7Cj4+PiArfQo+ Pj4gKwo+Pj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfZnVuY3Mgc2ts X2RkaV9wbGxfZnVuY3MgPSB7Cj4+PiAgCS5lbmFibGUgPSBza2xfZGRpX3BsbF9lbmFibGUsCj4+ PiAgCS5kaXNhYmxlID0gc2tsX2RkaV9wbGxfZGlzYWJsZSwKPj4+IEBAIC03ODIsNiArNzcwLDMy IEBAIG91dDoKPj4+ICAJcmV0dXJuIHJldDsKPj4+ICB9Cj4+PiAgCj4+PiArc3RhdGljIHN0cnVj dCBpbnRlbF9zaGFyZWRfZHBsbCAqCj4+PiArYnh0X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4+ICt7Cj4+PiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwo+Pj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKPj4+ICsJc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7Cj4+PiArCXN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbCAqcGxsOwo+Pj4gKwllbnVtIGludGVsX2RwbGxfaWQgaTsKPj4+ICsKPj4+ICsJLyog UExMIGlzIGF0dGFjaGVkIHRvIHBvcnQgaW4gYnh0ICovCj4+PiArCWVuY29kZXIgPSBpbnRlbF9k ZGlfZ2V0X2NydGNfbmV3X2VuY29kZXIoY3J0Y19zdGF0ZSk7Cj4+PiArCWlmIChXQVJOX09OKCFl bmNvZGVyKSkKPj4+ICsJCXJldHVybiBOVUxMOwo+Pj4gKwo+Pj4gKwlpbnRlbF9kaWdfcG9ydCA9 IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4+PiArCS8qIDE6MSBtYXBwaW5nIGJl dHdlZW4gcG9ydHMgYW5kIFBMTHMgKi8KPj4+ICsJaSA9IChlbnVtIGludGVsX2RwbGxfaWQpaW50 ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4+PiArCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ld Owo+Pj4gKwlEUk1fREVCVUdfS01TKCJDUlRDOiVkIHVzaW5nIHByZS1hbGxvY2F0ZWQgJXNcbiIs Cj4+PiArCQljcnRjLT5iYXNlLmJhc2UuaWQsIHBsbC0+bmFtZSk7Cj4+PiArCj4+PiArCWludGVs X3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOwo+Pj4gKwo+Pj4gKwlyZXR1 cm4gcGxsOwo+Pj4gK30KPj4+ICsKPj4+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX3NoYXJl ZF9kcGxsX2Z1bmNzIGJ4dF9kZGlfcGxsX2Z1bmNzID0gewo+Pj4gIAkuZW5hYmxlID0gYnh0X2Rk aV9wbGxfZW5hYmxlLAo+Pj4gIAkuZGlzYWJsZSA9IGJ4dF9kZGlfcGxsX2Rpc2FibGUsCj4+PiBA QCAtODI2LDEyICs4NDAsMjQgQEAgc3RydWN0IGRwbGxfaW5mbyB7Cj4+PiAgCWNvbnN0IHN0cnVj dCBpbnRlbF9zaGFyZWRfZHBsbF9mdW5jcyAqZnVuY3M7Cj4+PiAgfTsKPj4+ICAKPj4+ICtzdHJ1 Y3QgaW50ZWxfZHBsbF9tZ3Igewo+Pj4gKwljb25zdCBzdHJ1Y3QgZHBsbF9pbmZvICpkcGxsX2lu Zm87Cj4+PiArCj4+PiArCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqKCpnZXRfZHBsbCkoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCj4+PiArCQkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZQo+Pj4gKmNydGNfc3RhdGUpOwo+Pj4gK307Cj4+PiArCj4+PiAgc3RhdGljIGNvbnN0IHN0 cnVjdCBkcGxsX2luZm8gcGNoX3BsbHNbXSA9IHsKPj4+ICAJeyAiUENIIERQTEwgQSIsIERQTExf SURfUENIX1BMTF9BLCAmaWJ4X3BjaF9kcGxsX2Z1bmNzIH0sCj4+PiAgCXsgIlBDSCBEUExMIEIi LCBEUExMX0lEX1BDSF9QTExfQiwgJmlieF9wY2hfZHBsbF9mdW5jcyB9LAo+Pj4gIAl7IE5VTEws IC0xLCBOVUxMIH0sCj4+PiAgfTsKPj4+ICAKPj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RwbGxfbWdyIHBjaF9wbGxfbWdyID0gewo+Pj4gKwkuZHBsbF9pbmZvID0gcGNoX3BsbHMsCj4+ PiArCS5nZXRfZHBsbCA9IGlieF9nZXRfZHBsbCwKPj4+ICt9Owo+Pj4gKwo+Pj4gIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHBsbF9pbmZvIGhzd19wbGxzW10gPSB7Cj4+PiAgCXsgIldSUExMIDEiLCBE UExMX0lEX1dSUExMMSwgJmhzd19kZGlfd3JwbGxfZnVuY3MgfSwKPj4+ICAJeyAiV1JQTEwgMiIs IERQTExfSURfV1JQTEwyLCAmaHN3X2RkaV93cnBsbF9mdW5jcyB9LAo+Pj4gQEAgLTgzOSw2ICs4 NjUsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gaHN3X3BsbHNbXSA9IHsKPj4+ ICAJeyBOVUxMLCAtMSwgTlVMTCwgfSwKPj4+ICB9Owo+Pj4gIAo+Pj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgaHN3X3BsbF9tZ3IgPSB7Cj4+PiArCS5kcGxsX2luZm8gPSBo c3dfcGxscywKPj4+ICsJLmdldF9kcGxsID0gaHN3X2dldF9kcGxsLAo+Pj4gK307Cj4+PiArCj4+ PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gc2tsX3BsbHNbXSA9IHsKPj4+ICAJeyAi RFBQTCAxIiwgRFBMTF9JRF9TS0xfRFBMTDEsICZza2xfZGRpX3BsbF9mdW5jcyB9LAo+Pj4gIAl7 ICJEUFBMIDIiLCBEUExMX0lEX1NLTF9EUExMMiwgJnNrbF9kZGlfcGxsX2Z1bmNzIH0sCj4+PiBA QCAtODQ2LDYgKzg3NywxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBza2xfcGxs c1tdID0gewo+Pj4gIAl7IE5VTEwsIC0xLCBOVUxMLCB9LAo+Pj4gIH07Cj4+PiAgCj4+PiArc3Rh dGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBza2xfcGxsX21nciA9IHsKPj4+ICsJLmRw bGxfaW5mbyA9IHNrbF9wbGxzLAo+Pj4gKwkuZ2V0X2RwbGwgPSBza2xfZ2V0X2RwbGwsCj4+PiAr fTsKPj4+ICsKPj4+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBieHRfcGxsc1tdID0g ewo+Pj4gIAl7ICJQT1JUIFBMTCBBIiwgMCwgJmJ4dF9kZGlfcGxsX2Z1bmNzIH0sCj4+PiAgCXsg IlBPUlQgUExMIEIiLCAxLCAmYnh0X2RkaV9wbGxfZnVuY3MgfSwKPj4+IEBAIC04NTMsMjYgKzg4 OSwzNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBieHRfcGxsc1tdID0gewo+Pj4g IAl7IE5VTEwsIC0xLCBOVUxMLCB9LAo+Pj4gIH07Cj4+PiAgCj4+PiArc3RhdGljIGNvbnN0IHN0 cnVjdCBpbnRlbF9kcGxsX21nciBieHRfcGxsX21nciA9IHsKPj4+ICsJLmRwbGxfaW5mbyA9IGJ4 dF9wbGxzLAo+Pj4gKwkuZ2V0X2RwbGwgPSBieHRfZ2V0X2RwbGwsCj4+PiArfTsKPj4+ICsKPj4+ ICB2b2lkIGludGVsX3NoYXJlZF9kcGxsX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4+ ICB7Cj4+PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4+PiAtCWNvbnN0IHN0cnVjdCBkcGxsX2luZm8gKmRwbGxfaW5mbyA9IE5VTEw7Cj4+ PiArCWNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciAqZHBsbF9tZ3IgPSBOVUxMOwo+Pj4gKwlj b25zdCBzdHJ1Y3QgZHBsbF9pbmZvICpkcGxsX2luZm87Cj4+PiAgCWludCBpOwo+Pj4gIAo+Pj4g IAlpZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpCj4+PiAtCQlkcGxsX2lu Zm8gPSBza2xfcGxsczsKPj4+ICsJCWRwbGxfbWdyID0gJnNrbF9wbGxfbWdyOwo+Pj4gIAllbHNl IGlmIElTX0JST1hUT04oZGV2KQo+Pj4gLQkJZHBsbF9pbmZvID0gYnh0X3BsbHM7Cj4+PiArCQlk cGxsX21nciA9ICZieHRfcGxsX21ncjsKPj4+ICAJZWxzZSBpZiAoSEFTX0RESShkZXYpKQo+Pj4g LQkJZHBsbF9pbmZvID0gaHN3X3BsbHM7Cj4+PiArCQlkcGxsX21nciA9ICZoc3dfcGxsX21ncjsK Pj4+ICAJZWxzZSBpZiAoSEFTX1BDSF9JQlgoZGV2KSB8fCBIQVNfUENIX0NQVChkZXYpKQo+Pj4g LQkJZHBsbF9pbmZvID0gcGNoX3BsbHM7Cj4+PiArCQlkcGxsX21nciA9ICZwY2hfcGxsX21ncjsK Pj4+ICAKPj4+IC0JaWYgKCFkcGxsX2luZm8pIHsKPj4+ICsJaWYgKCFkcGxsX21ncikgewo+Pj4g IAkJZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbCA9IDA7Cj4+PiAgCQlyZXR1cm47Cj4+PiAgCX0K Pj4+ICAKPj4+ICsJZHBsbF9pbmZvID0gZHBsbF9tZ3ItPmRwbGxfaW5mbzsKPj4+ICsKPj4+ICAJ Zm9yIChpID0gMDsgZHBsbF9pbmZvW2ldLmlkID49IDA7IGkrKykgewo+Pj4gIAkJV0FSTl9PTihp ICE9IGRwbGxfaW5mb1tpXS5pZCk7Cj4+PiAgCj4+PiBAQCAtODgxLDYgKzkyNSw3IEBAIHZvaWQg aW50ZWxfc2hhcmVkX2RwbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+Pj4gIAkJZGV2 X3ByaXYtPnNoYXJlZF9kcGxsc1tpXS5mdW5jcyA9ICpkcGxsX2luZm9baV0uZnVuY3M7Cj4+PiAg CX0KPj4+ICAKPj4+ICsJZGV2X3ByaXYtPmRwbGxfbWdyID0gZHBsbF9tZ3I7Cj4+PiAgCWRldl9w cml2LT5udW1fc2hhcmVkX2RwbGwgPSBpOwo+Pj4gIAo+Pj4gIAlCVUdfT04oZGV2X3ByaXYtPm51 bV9zaGFyZWRfZHBsbCA+IEk5MTVfTlVNX1BMTFMpOwo+Pj4gQEAgLTg4OSwzICs5MzQsMTYgQEAg dm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+PiAg CWlmIChIQVNfRERJKGRldikpCj4+PiAgCQlpbnRlbF9kZGlfcGxsX2luaXQoZGV2KTsKPj4+ICB9 Cj4+PiArCj4+PiArc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKPj4+ICtpbnRlbF9nZXRfc2hh cmVkX2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+PiArCQkgICAgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4+ICt7Cj4+PiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+Pj4gKwljb25zdCBz dHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgKmRwbGxfbWdyID0gZGV2X3ByaXYtPmRwbGxfbWdyOwo+Pj4g Kwo+Pj4gKwlpZiAoZHBsbF9tZ3IpCj4+PiArCQlyZXR1cm4gZHBsbF9tZ3ItPmdldF9kcGxsKGNy dGMsIGNydGNfc3RhdGUpOwo+Pj4gKwllbHNlCj4+PiArCQlyZXR1cm4gTlVMTDsKPj4+ICt9Cj4+ IHNob3VsZCB0aGVyZSBiZSBhIFdBUk5fT04gaGVyZT8KPj4KPj4gUmVzdCBsb29rcyBnb29kLCBz byBmb3IgcGF0Y2ggOC4uLjExLzEzOgo+IERpZCB5b3UgaGF2ZSBjb21tZW50cyBvbiBwYXRjaCAx Mj8gSSBzZWVtIHRvIGhhdmUgbWlzc2VkIGl0Lgo+Ck5vLCBJIGRpZG4ndCBnZXQgYXJvdW5kIHRv IGxvb2tpbmcgeWV0LgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK