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: Thu, 3 Mar 2016 15:08:36 +0100 Message-ID: <56D84564.5050807@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id A5AFA6EA76 for ; Thu, 3 Mar 2016 14:08:38 +0000 (UTC) In-Reply-To: <1456494866-7665-9-git-send-email-ander.conselvan.de.oliveira@intel.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 T3AgMjYtMDItMTYgb20gMTQ6NTQgc2NocmVlZiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmE6 Cj4gVGhlIGZ1bmN0aW9uIGludGVsX2dldF9zaGFyZWRfZHBsbCgpIGhhZCBhIG1vcmUgb3IgbGVz cyBnZW5lcmljCj4gaW1wbGVtZW50YXRpb24gd2l0aCBzb21lIHBsYXRmb3JtIHNwZWNpZmljIGNo ZWNrcyB0byBoYW5kbGUgc21hbGxlcgo+IGRpZmZlcmVuY2VzIGJldHdlZW4gcGxhdGZvcm1zLiBI b3dldmVyLCB0aGUgbWluaW1hbGlzdCBhcHByb2FjaCBmb3JjZXMKPiBiaWdnZXIgZGlmZmVyZW5j ZXMgYmV0d2VlbiBwbGF0Zm9ybXMgdG8gYmUgaW1wbGVtZW50ZWQgb3V0c2lkZSBvZiB0aGUKPiBz aGFyZWQgZHBsbCBjb2RlIChzZWUgdGhlICpfZGRpX3BsbF9zZWxlY3QoKSBmdW5jdGlvbnMgaW4g aW50ZWxfZGRpLmMsCj4gZm9yIGluc3RhbmNlKS4KPgo+IFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUg aW1wbGVtZW50YXRpb24gb2YgaW50ZWxfZ2V0X3NoYXJlX2RwbGwoKSBzbyB0aGF0Cj4gYSBjb21w bGV0ZWx5IHBsYXRmb3JtIHNwZWNpZmljIHZlcnNpb24gY2FuIGJlIHVzZWQsIHByb3ZpZGluZyBo ZWxwZXJzIHRvCj4gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24uIFRoaXMgc2hvdWxkIGFsbG93IHRo ZSBjb2RlIGZyb20gdGhlIGRkaSBwbGwKPiBzZWxlY3QgZnVuY3Rpb25zIHRvIGJlIG1vdmVkLCBh bmQgYWxzbyBtYWtlIHJvb20gZm9yIG1ha2luZyBtb3JlIGRwbGxzCj4gbWFuYWdlZCBieSB0aGUg c2hhcmVkIGRwbGwgaW5mcmFzdHJ1Y3R1cmUuCj4KPiBTaWduZWQtb2ZmLWJ5OiBBbmRlciBDb25z ZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+ Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgfCAgIDEgKwo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIHwgMjI2ICsrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBs bF9tZ3IuaCB8ICAgMiArCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTQ1IGluc2VydGlvbnMoKyksIDg0 IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNmRlOTNkYy4u Yjg1ODgwMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0xODAyLDYgKzE4MDIs NyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gIAkvKiBkcGxsIGFuZCBjZGNsayBzdGF0 ZSBpcyBwcm90ZWN0ZWQgYnkgY29ubmVjdGlvbl9tdXRleCAqLwo+ICAJaW50IG51bV9zaGFyZWRf ZHBsbDsKPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCBzaGFyZWRfZHBsbHNbSTkxNV9OVU1f UExMU107Cj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgKmRwbGxfbWdyOwo+ICAKPiAg CXVuc2lnbmVkIGludCBhY3RpdmVfY3J0Y3M7Cj4gIAl1bnNpZ25lZCBpbnQgbWluX3BpeGNsa1tJ OTE1X01BWF9QSVBFU107Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwbGxfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4gaW5k ZXggZTg4ZGM0Ni4uMzU1MzMyNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcGxsX21nci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9t Z3IuYwo+IEBAIC0xNzQsNjYgKzE3NCwyMCBAQCB2b2lkIGludGVsX2Rpc2FibGVfc2hhcmVkX2Rw bGwoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChk ZXZfcHJpdiwgUE9XRVJfRE9NQUlOX1BMTFMpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgZW51bSBpbnRl bF9kcGxsX2lkCj4gLWlieF9nZXRfZml4ZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK PiAtCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAtewo+IC0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 Cj4gLQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKPiAtCWVudW0gaW50ZWxfZHBsbF9p ZCBpOwo+IC0KPiAtCS8qIElyb25sYWtlIFBDSCBoYXMgYSBmaXhlZCBQTEwtPlBDSCBwaXBlIG1h cHBpbmcuICovCj4gLQlpID0gKGVudW0gaW50ZWxfZHBsbF9pZCkgY3J0Yy0+cGlwZTsKPiAtCXBs bCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwo+IC0KPiAtCURSTV9ERUJVR19LTVMoIkNS VEM6JWQgdXNpbmcgcHJlLWFsbG9jYXRlZCAlc1xuIiwKPiAtCQkgICAgICBjcnRjLT5iYXNlLmJh c2UuaWQsIHBsbC0+bmFtZSk7Cj4gLQo+IC0JcmV0dXJuIGk7Cj4gLX0KPiAtCj4gLXN0YXRpYyBl bnVtIGludGVsX2RwbGxfaWQKPiAtYnh0X2dldF9maXhlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAo+IC0JCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+IC17 Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJh c2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+IC0Jc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7Cj4gLQlzdHJ1Y3QgaW50ZWxfc2hhcmVk X2RwbGwgKnBsbDsKPiAtCWVudW0gaW50ZWxfZHBsbF9pZCBpOwo+IC0KPiAtCS8qIFBMTCBpcyBh dHRhY2hlZCB0byBwb3J0IGluIGJ4dCAqLwo+IC0JZW5jb2RlciA9IGludGVsX2RkaV9nZXRfY3J0 Y19uZXdfZW5jb2RlcihjcnRjX3N0YXRlKTsKPiAtCWlmIChXQVJOX09OKCFlbmNvZGVyKSkKPiAt CQlyZXR1cm4gRFBMTF9JRF9QUklWQVRFOwo+IC0KPiAtCWludGVsX2RpZ19wb3J0ID0gZW5jX3Rv X2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiAtCS8qIDE6MSBtYXBwaW5nIGJldHdlZW4gcG9y dHMgYW5kIFBMTHMgKi8KPiAtCWkgPSAoZW51bSBpbnRlbF9kcGxsX2lkKWludGVsX2RpZ19wb3J0 LT5wb3J0Owo+IC0JcGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07Cj4gLQlEUk1fREVC VUdfS01TKCJDUlRDOiVkIHVzaW5nIHByZS1hbGxvY2F0ZWQgJXNcbiIsCj4gLQkJY3J0Yy0+YmFz ZS5iYXNlLmlkLCBwbGwtPm5hbWUpOwo+IC0KPiAtCXJldHVybiBpOwo+IC19Cj4gLQo+IC1zdGF0 aWMgZW51bSBpbnRlbF9kcGxsX2lkCj4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwg Kgo+ICBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+IC0J CSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiArCQkgICAgICAg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJICAgICAgIGVudW0gaW50 ZWxfZHBsbF9pZCByYW5nZV9taW4sCj4gKwkJICAgICAgIGVudW0gaW50ZWxfZHBsbF9pZCByYW5n ZV9tYXgpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNydGMt PmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxs Owo+ICAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyAqc2hhcmVkX2RwbGw7Cj4gIAll bnVtIGludGVsX2RwbGxfaWQgaTsKPiAtCWludCBtYXggPSBkZXZfcHJpdi0+bnVtX3NoYXJlZF9k cGxsOwo+IC0KPiAtCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuIDwgOSAmJiBIQVNfRERJ KGRldl9wcml2KSkKPiAtCQkvKiBEbyBub3QgY29uc2lkZXIgU1BMTCAqLwo+IC0JCW1heCA9IDI7 Cj4gIAo+ICAJc2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRl KGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOwo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCBtYXg7IGkr Kykgewo+ICsJZm9yIChpID0gcmFuZ2VfbWluOyBpIDw9IHJhbmdlX21heDsgaSsrKSB7Cj4gIAkJ cGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07Cj4gIAo+ICAJCS8qIE9ubHkgd2FudCB0 byBjaGVjayBlbmFibGVkIHRpbWluZ3MgZmlyc3QgKi8KPiBAQCAtMjQ3LDQ5ICsyMDEsMzMgQEAg aW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJCSAg ICAgIGNydGMtPmJhc2UuYmFzZS5pZCwgcGxsLT5uYW1lLAo+ICAJCQkJICAgICAgc2hhcmVkX2Rw bGxbaV0uY3J0Y19tYXNrLAo+ICAJCQkJICAgICAgcGxsLT5hY3RpdmUpOwo+IC0JCQlyZXR1cm4g aTsKPiArCQkJcmV0dXJuIHBsbDsKPiAgCQl9Cj4gIAl9Cj4gIAo+ICAJLyogT2sgbm8gbWF0Y2hp bmcgdGltaW5ncywgbWF5YmUgdGhlcmUncyBhIGZyZWUgb25lPyAqLwo+IC0JZm9yIChpID0gMDsg aSA8IGRldl9wcml2LT5udW1fc2hhcmVkX2RwbGw7IGkrKykgewo+ICsJZm9yIChpID0gcmFuZ2Vf bWluOyBpIDw9IHJhbmdlX21heDsgaSsrKSB7Cj4gIAkJcGxsID0gJmRldl9wcml2LT5zaGFyZWRf ZHBsbHNbaV07Cj4gIAkJaWYgKHNoYXJlZF9kcGxsW2ldLmNydGNfbWFzayA9PSAwKSB7Cj4gIAkJ CURSTV9ERUJVR19LTVMoIkNSVEM6JWQgYWxsb2NhdGVkICVzXG4iLAo+ICAJCQkJICAgICAgY3J0 Yy0+YmFzZS5iYXNlLmlkLCBwbGwtPm5hbWUpOwo+IC0JCQlyZXR1cm4gaTsKPiArCQkJcmV0dXJu IHBsbDsKPiAgCQl9Cj4gIAl9Cj4gIAo+IC0JcmV0dXJuIERQTExfSURfUFJJVkFURTsKPiArCXJl dHVybiBOVUxMOwo+ICB9Cj4gIAo+IC1zdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgo+IC1pbnRl bF9nZXRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gLQkJICAgICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gK3N0YXRpYyB2b2lkCj4gK2ludGVs X3JlZmVyZW5jZV9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCwKPiAr CQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0+ZGV2X3ByaXZh dGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKPiAgCXN0cnVjdCBpbnRlbF9z aGFyZWRfZHBsbF9jb25maWcgKnNoYXJlZF9kcGxsOwo+IC0JZW51bSBpbnRlbF9kcGxsX2lkIGk7 Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKPiArCWVudW0gaW50ZWxfZHBsbF9pZCBpID0gcGxsLT5pZDsKPiAgCj4gIAlz aGFyZWRfZHBsbCA9IGludGVsX2F0b21pY19nZXRfc2hhcmVkX2RwbGxfc3RhdGUoY3J0Y19zdGF0 ZS0+YmFzZS5zdGF0ZSk7Cj4gIAo+IC0JaWYgKEhBU19QQ0hfSUJYKGRldl9wcml2LT5kZXYpKSB7 Cj4gLQkJaSA9IGlieF9nZXRfZml4ZWRfZHBsbChjcnRjLCBjcnRjX3N0YXRlKTsKPiAtCQlXQVJO X09OKHNoYXJlZF9kcGxsW2ldLmNydGNfbWFzayk7Cj4gLQl9IGVsc2UgaWYgKElTX0JST1hUT04o ZGV2X3ByaXYtPmRldikpIHsKPiAtCQlpID0gYnh0X2dldF9maXhlZF9kcGxsKGNydGMsIGNydGNf c3RhdGUpOwo+IC0JCVdBUk5fT04oc2hhcmVkX2RwbGxbaV0uY3J0Y19tYXNrKTsKPiAtCX0gZWxz ZSB7Cj4gLQkJaSA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoY3J0YywgY3J0Y19zdGF0ZSk7Cj4g LQl9Cj4gLQo+IC0JaWYgKGkgPCAwKQo+IC0JCXJldHVybiBOVUxMOwo+IC0KPiAtCXBsbCA9ICZk ZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwo+IC0KPiAgCWlmIChzaGFyZWRfZHBsbFtpXS5jcnRj X21hc2sgPT0gMCkKPiAgCQlzaGFyZWRfZHBsbFtpXS5od19zdGF0ZSA9Cj4gIAkJCWNydGNfc3Rh dGUtPmRwbGxfaHdfc3RhdGU7Cj4gQEAgLTI5OSw4ICsyMzcsNiBAQCBpbnRlbF9nZXRfc2hhcmVk X2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAkJCSBwaXBlX25hbWUoY3J0Yy0+cGlw ZSkpOwo+ICAKPiAgCWludGVsX3NoYXJlZF9kcGxsX2NvbmZpZ19nZXQoc2hhcmVkX2RwbGwsIHBs bCwgY3J0Yyk7Cj4gLQo+IC0JcmV0dXJuIHBsbDsKPiAgfQo+ICAKPiAgdm9pZCBpbnRlbF9zaGFy ZWRfZHBsbF9jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+IEBAIC0zOTgs NiArMzM0LDMyIEBAIHN0YXRpYyB2b2lkIGlieF9wY2hfZHBsbF9kaXNhYmxlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCXVkZWxheSgyMDApOwo+ICB9Cj4gIAo+ICtzdGF0 aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKPiAraWJ4X2dldF9kcGxsKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiArewo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKPiArCWVudW0gaW50ZWxf ZHBsbF9pZCBpOwo+ICsKPiArCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdikpIHsKPiArCQkvKiBJ cm9ubGFrZSBQQ0ggaGFzIGEgZml4ZWQgUExMLT5QQ0ggcGlwZSBtYXBwaW5nLiAqLwo+ICsJCWkg PSAoZW51bSBpbnRlbF9kcGxsX2lkKSBjcnRjLT5waXBlOwo+ICsJCXBsbCA9ICZkZXZfcHJpdi0+ c2hhcmVkX2RwbGxzW2ldOwo+ICsKPiArCQlEUk1fREVCVUdfS01TKCJDUlRDOiVkIHVzaW5nIHBy ZS1hbGxvY2F0ZWQgJXNcbiIsCj4gKwkJCSAgICAgIGNydGMtPmJhc2UuYmFzZS5pZCwgcGxsLT5u YW1lKTsKPiArCX0gZWxzZSB7Cj4gKwkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRj LCBjcnRjX3N0YXRlLAo+ICsJCQkJCSAgICAgRFBMTF9JRF9QQ0hfUExMX0EsCj4gKwkJCQkJICAg ICBEUExMX0lEX1BDSF9QTExfQik7Cj4gKwl9Cj4gKwo+ICsJLyogcmVmZXJlbmNlIHRoZSBwbGwg Ki8KPiArCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOwo+ICsK PiArCXJldHVybiBwbGw7Cj4gK30KPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGxfZnVuY3MgaWJ4X3BjaF9kcGxsX2Z1bmNzID0gewo+ICAJLm1vZGVfc2V0ID0gaWJ4 X3BjaF9kcGxsX21vZGVfc2V0LAo+ICAJLmVuYWJsZSA9IGlieF9wY2hfZHBsbF9lbmFibGUsCj4g QEAgLTQ3NSw2ICs0MzcsMTkgQEAgc3RhdGljIGJvb2wgaHN3X2RkaV9zcGxsX2dldF9od19zdGF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlyZXR1cm4gdmFsICYgU1BM TF9QTExfRU5BQkxFOwo+ICB9Cj4gIAo+ICtzdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxs ICoKPiAraHN3X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiArewo+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxs ICpwbGw7Cj4gKwo+ICsJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjLCBjcnRjX3N0 YXRlLAo+ICsJCQkJICAgICBEUExMX0lEX1dSUExMMSwgRFBMTF9JRF9XUlBMTDIpOwo+ICsJaWYg KHBsbCkKPiArCQlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0YXRlKTsK PiArCj4gKwlyZXR1cm4gcGxsOwo+ICt9Cj4gKwo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBp bnRlbF9zaGFyZWRfZHBsbF9mdW5jcyBoc3dfZGRpX3dycGxsX2Z1bmNzID0gewo+ICAJLmVuYWJs ZSA9IGhzd19kZGlfd3JwbGxfZW5hYmxlLAo+IEBAIC01OTQsNiArNTY5LDE5IEBAIG91dDoKPiAg CXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwg Kgo+ICtza2xfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwg KnBsbDsKPiArCj4gKwlwbGwgPSBpbnRlbF9maW5kX3NoYXJlZF9kcGxsKGNydGMsIGNydGNfc3Rh dGUsCj4gKwkJCQkgICAgIERQTExfSURfU0tMX0RQTEwxLCBEUExMX0lEX1NLTF9EUExMMyk7Cj4g KwlpZiAocGxsKQo+ICsJCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNydGNfc3Rh dGUpOwo+ICsKPiArCXJldHVybiBwbGw7Cj4gK30KPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg aW50ZWxfc2hhcmVkX2RwbGxfZnVuY3Mgc2tsX2RkaV9wbGxfZnVuY3MgPSB7Cj4gIAkuZW5hYmxl ID0gc2tsX2RkaV9wbGxfZW5hYmxlLAo+ICAJLmRpc2FibGUgPSBza2xfZGRpX3BsbF9kaXNhYmxl LAo+IEBAIC03ODIsNiArNzcwLDMyIEBAIG91dDoKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4g K3N0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgo+ICtieHRfZ2V0X2RwbGwoc3RydWN0 IGludGVsX2NydGMgKmNydGMsIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+ICsJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7Cj4gKwlzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGwgKnBsbDsKPiArCWVudW0gaW50ZWxfZHBsbF9pZCBpOwo+ICsKPiArCS8qIFBMTCBp cyBhdHRhY2hlZCB0byBwb3J0IGluIGJ4dCAqLwo+ICsJZW5jb2RlciA9IGludGVsX2RkaV9nZXRf Y3J0Y19uZXdfZW5jb2RlcihjcnRjX3N0YXRlKTsKPiArCWlmIChXQVJOX09OKCFlbmNvZGVyKSkK PiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwlpbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9y dCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwkvKiAxOjEgbWFwcGluZyBiZXR3ZWVuIHBvcnRzIGFuZCBQ TExzICovCj4gKwlpID0gKGVudW0gaW50ZWxfZHBsbF9pZClpbnRlbF9kaWdfcG9ydC0+cG9ydDsK PiArCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwo+ICsJRFJNX0RFQlVHX0tNUygi Q1JUQzolZCB1c2luZyBwcmUtYWxsb2NhdGVkICVzXG4iLAo+ICsJCWNydGMtPmJhc2UuYmFzZS5p ZCwgcGxsLT5uYW1lKTsKPiArCj4gKwlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxsLCBj cnRjX3N0YXRlKTsKPiArCj4gKwlyZXR1cm4gcGxsOwo+ICt9Cj4gKwo+ICBzdGF0aWMgY29uc3Qg c3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2Z1bmNzIGJ4dF9kZGlfcGxsX2Z1bmNzID0gewo+ICAJ LmVuYWJsZSA9IGJ4dF9kZGlfcGxsX2VuYWJsZSwKPiAgCS5kaXNhYmxlID0gYnh0X2RkaV9wbGxf ZGlzYWJsZSwKPiBAQCAtODI2LDEyICs4NDAsMjQgQEAgc3RydWN0IGRwbGxfaW5mbyB7Cj4gIAlj b25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfZnVuY3MgKmZ1bmNzOwo+ICB9Owo+ICAKPiAr c3RydWN0IGludGVsX2RwbGxfbWdyIHsKPiArCWNvbnN0IHN0cnVjdCBkcGxsX2luZm8gKmRwbGxf aW5mbzsKPiArCj4gKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKigqZ2V0X2RwbGwpKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAo+ICsJCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKTsKPiArfTsKPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZv IHBjaF9wbGxzW10gPSB7Cj4gIAl7ICJQQ0ggRFBMTCBBIiwgRFBMTF9JRF9QQ0hfUExMX0EsICZp YnhfcGNoX2RwbGxfZnVuY3MgfSwKPiAgCXsgIlBDSCBEUExMIEIiLCBEUExMX0lEX1BDSF9QTExf QiwgJmlieF9wY2hfZHBsbF9mdW5jcyB9LAo+ICAJeyBOVUxMLCAtMSwgTlVMTCB9LAo+ICB9Owo+ ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBwY2hfcGxsX21nciA9IHsK PiArCS5kcGxsX2luZm8gPSBwY2hfcGxscywKPiArCS5nZXRfZHBsbCA9IGlieF9nZXRfZHBsbCwK PiArfTsKPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZvIGhzd19wbGxzW10gPSB7 Cj4gIAl7ICJXUlBMTCAxIiwgRFBMTF9JRF9XUlBMTDEsICZoc3dfZGRpX3dycGxsX2Z1bmNzIH0s Cj4gIAl7ICJXUlBMTCAyIiwgRFBMTF9JRF9XUlBMTDIsICZoc3dfZGRpX3dycGxsX2Z1bmNzIH0s Cj4gQEAgLTgzOSw2ICs4NjUsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gaHN3 X3BsbHNbXSA9IHsKPiAgCXsgTlVMTCwgLTEsIE5VTEwsIH0sCj4gIH07Cj4gIAo+ICtzdGF0aWMg Y29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIGhzd19wbGxfbWdyID0gewo+ICsJLmRwbGxfaW5m byA9IGhzd19wbGxzLAo+ICsJLmdldF9kcGxsID0gaHN3X2dldF9kcGxsLAo+ICt9Owo+ICsKPiAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gc2tsX3BsbHNbXSA9IHsKPiAgCXsgIkRQUEwg MSIsIERQTExfSURfU0tMX0RQTEwxLCAmc2tsX2RkaV9wbGxfZnVuY3MgfSwKPiAgCXsgIkRQUEwg MiIsIERQTExfSURfU0tMX0RQTEwyLCAmc2tsX2RkaV9wbGxfZnVuY3MgfSwKPiBAQCAtODQ2LDYg Kzg3NywxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBza2xfcGxsc1tdID0gewo+ ICAJeyBOVUxMLCAtMSwgTlVMTCwgfSwKPiAgfTsKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg aW50ZWxfZHBsbF9tZ3Igc2tsX3BsbF9tZ3IgPSB7Cj4gKwkuZHBsbF9pbmZvID0gc2tsX3BsbHMs Cj4gKwkuZ2V0X2RwbGwgPSBza2xfZ2V0X2RwbGwsCj4gK307Cj4gKwo+ICBzdGF0aWMgY29uc3Qg c3RydWN0IGRwbGxfaW5mbyBieHRfcGxsc1tdID0gewo+ICAJeyAiUE9SVCBQTEwgQSIsIDAsICZi eHRfZGRpX3BsbF9mdW5jcyB9LAo+ICAJeyAiUE9SVCBQTEwgQiIsIDEsICZieHRfZGRpX3BsbF9m dW5jcyB9LAo+IEBAIC04NTMsMjYgKzg4OSwzNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxf aW5mbyBieHRfcGxsc1tdID0gewo+ICAJeyBOVUxMLCAtMSwgTlVMTCwgfSwKPiAgfTsKPiAgCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgYnh0X3BsbF9tZ3IgPSB7Cj4gKwku ZHBsbF9pbmZvID0gYnh0X3BsbHMsCj4gKwkuZ2V0X2RwbGwgPSBieHRfZ2V0X2RwbGwsCj4gK307 Cj4gKwo+ICB2b2lkIGludGVsX3NoYXJlZF9kcGxsX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiAtCWNvbnN0IHN0cnVjdCBkcGxsX2luZm8gKmRwbGxfaW5mbyA9IE5VTEw7Cj4g Kwljb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgKmRwbGxfbWdyID0gTlVMTDsKPiArCWNvbnN0 IHN0cnVjdCBkcGxsX2luZm8gKmRwbGxfaW5mbzsKPiAgCWludCBpOwo+ICAKPiAgCWlmIChJU19T S1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkKPiAtCQlkcGxsX2luZm8gPSBza2xfcGxs czsKPiArCQlkcGxsX21nciA9ICZza2xfcGxsX21ncjsKPiAgCWVsc2UgaWYgSVNfQlJPWFRPTihk ZXYpCj4gLQkJZHBsbF9pbmZvID0gYnh0X3BsbHM7Cj4gKwkJZHBsbF9tZ3IgPSAmYnh0X3BsbF9t Z3I7Cj4gIAllbHNlIGlmIChIQVNfRERJKGRldikpCj4gLQkJZHBsbF9pbmZvID0gaHN3X3BsbHM7 Cj4gKwkJZHBsbF9tZ3IgPSAmaHN3X3BsbF9tZ3I7Cj4gIAllbHNlIGlmIChIQVNfUENIX0lCWChk ZXYpIHx8IEhBU19QQ0hfQ1BUKGRldikpCj4gLQkJZHBsbF9pbmZvID0gcGNoX3BsbHM7Cj4gKwkJ ZHBsbF9tZ3IgPSAmcGNoX3BsbF9tZ3I7Cj4gIAo+IC0JaWYgKCFkcGxsX2luZm8pIHsKPiArCWlm ICghZHBsbF9tZ3IpIHsKPiAgCQlkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsID0gMDsKPiAgCQly ZXR1cm47Cj4gIAl9Cj4gIAo+ICsJZHBsbF9pbmZvID0gZHBsbF9tZ3ItPmRwbGxfaW5mbzsKPiAr Cj4gIAlmb3IgKGkgPSAwOyBkcGxsX2luZm9baV0uaWQgPj0gMDsgaSsrKSB7Cj4gIAkJV0FSTl9P TihpICE9IGRwbGxfaW5mb1tpXS5pZCk7Cj4gIAo+IEBAIC04ODEsNiArOTI1LDcgQEAgdm9pZCBp bnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJZGV2X3By aXYtPnNoYXJlZF9kcGxsc1tpXS5mdW5jcyA9ICpkcGxsX2luZm9baV0uZnVuY3M7Cj4gIAl9Cj4g IAo+ICsJZGV2X3ByaXYtPmRwbGxfbWdyID0gZHBsbF9tZ3I7Cj4gIAlkZXZfcHJpdi0+bnVtX3No YXJlZF9kcGxsID0gaTsKPiAgCj4gIAlCVUdfT04oZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbCA+ IEk5MTVfTlVNX1BMTFMpOwo+IEBAIC04ODksMyArOTM0LDE2IEBAIHZvaWQgaW50ZWxfc2hhcmVk X2RwbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJaWYgKEhBU19EREkoZGV2KSkK PiAgCQlpbnRlbF9kZGlfcGxsX2luaXQoZGV2KTsKPiAgfQo+ICsKPiArc3RydWN0IGludGVsX3No YXJlZF9kcGxsICoKPiAraW50ZWxfZ2V0X3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAo+ICsJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICt7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJh c2UuZGV2KTsKPiArCWNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciAqZHBsbF9tZ3IgPSBkZXZf cHJpdi0+ZHBsbF9tZ3I7Cj4gKwo+ICsJaWYgKGRwbGxfbWdyKQo+ICsJCXJldHVybiBkcGxsX21n ci0+Z2V0X2RwbGwoY3J0YywgY3J0Y19zdGF0ZSk7Cj4gKwllbHNlCj4gKwkJcmV0dXJuIE5VTEw7 Cj4gK30Kc2hvdWxkIHRoZXJlIGJlIGEgV0FSTl9PTiBoZXJlPwoKUmVzdCBsb29rcyBnb29kLCBz byBmb3IgcGF0Y2ggOC4uLjExLzEzOgoKUmV2aWV3ZWQtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxt YWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=