From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 08/13] drm/i915: Refactor platform specifics out of intel_get_shared_dpll() Date: Fri, 04 Mar 2016 08:49:09 +0200 Message-ID: <1457074149.2668.2.camel@gmail.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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-x243.google.com (mail-pf0-x243.google.com [IPv6:2607:f8b0:400e:c00::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id C246E6EB69 for ; Fri, 4 Mar 2016 06:49:15 +0000 (UTC) Received: by mail-pf0-x243.google.com with SMTP id x188so520023pfb.2 for ; Thu, 03 Mar 2016 22:49:15 -0800 (PST) In-Reply-To: <56D84564.5050807@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 T24gVGh1LCAyMDE2LTAzLTAzIGF0IDE1OjA4ICswMTAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPiBPcCAyNi0wMi0xNiBvbSAxNDo1NCBzY2hyZWVmIEFuZGVyIENvbnNlbHZhbiBkZSBPbGl2 ZWlyYToKPiA+IFRoZSBmdW5jdGlvbiBpbnRlbF9nZXRfc2hhcmVkX2RwbGwoKSBoYWQgYSBtb3Jl IG9yIGxlc3MgZ2VuZXJpYwo+ID4gaW1wbGVtZW50YXRpb24gd2l0aCBzb21lIHBsYXRmb3JtIHNw ZWNpZmljIGNoZWNrcyB0byBoYW5kbGUgc21hbGxlcgo+ID4gZGlmZmVyZW5jZXMgYmV0d2VlbiBw bGF0Zm9ybXMuIEhvd2V2ZXIsIHRoZSBtaW5pbWFsaXN0IGFwcHJvYWNoIGZvcmNlcwo+ID4gYmln Z2VyIGRpZmZlcmVuY2VzIGJldHdlZW4gcGxhdGZvcm1zIHRvIGJlIGltcGxlbWVudGVkIG91dHNp ZGUgb2YgdGhlCj4gPiBzaGFyZWQgZHBsbCBjb2RlIChzZWUgdGhlICpfZGRpX3BsbF9zZWxlY3Qo KSBmdW5jdGlvbnMgaW4gaW50ZWxfZGRpLmMsCj4gPiBmb3IgaW5zdGFuY2UpLgo+ID4gCj4gPiBU aGlzIHBhdGNoIGNoYW5nZXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIGludGVsX2dldF9zaGFyZV9k cGxsKCkgc28gdGhhdAo+ID4gYSBjb21wbGV0ZWx5IHBsYXRmb3JtIHNwZWNpZmljIHZlcnNpb24g Y2FuIGJlIHVzZWQsIHByb3ZpZGluZyBoZWxwZXJzIHRvCj4gPiByZWR1Y2UgY29kZSBkdXBsaWNh dGlvbi4gVGhpcyBzaG91bGQgYWxsb3cgdGhlIGNvZGUgZnJvbSB0aGUgZGRpIHBsbAo+ID4gc2Vs ZWN0IGZ1bmN0aW9ucyB0byBiZSBtb3ZlZCwgYW5kIGFsc28gbWFrZSByb29tIGZvciBtYWtpbmcg bW9yZSBkcGxscwo+ID4gbWFuYWdlZCBieSB0aGUgc2hhcmVkIGRwbGwgaW5mcmFzdHJ1Y3R1cmUu Cj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEFuZGVyIENvbnNlbHZhbiBkZSBPbGl2ZWlyYSA8Cj4g PiBhbmRlci5jb25zZWx2YW4uZGUub2xpdmVpcmFAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICB8ICAgMSArCj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyB8IDIyNiArKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tCj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21n ci5oIHwgICAyICsKPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25zKCspLCA4NCBk ZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXgg NmRlOTNkYy4uYjg1ODgwMSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IEBA IC0xODAyLDYgKzE4MDIsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gPiAgCS8qIGRw bGwgYW5kIGNkY2xrIHN0YXRlIGlzIHByb3RlY3RlZCBieSBjb25uZWN0aW9uX211dGV4ICovCj4g PiAgCWludCBudW1fc2hhcmVkX2RwbGw7Cj4gPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCBz aGFyZWRfZHBsbHNbSTkxNV9OVU1fUExMU107Cj4gPiArCWNvbnN0IHN0cnVjdCBpbnRlbF9kcGxs X21nciAqZHBsbF9tZ3I7Cj4gPiAgCj4gPiAgCXVuc2lnbmVkIGludCBhY3RpdmVfY3J0Y3M7Cj4g PiAgCXVuc2lnbmVkIGludCBtaW5fcGl4Y2xrW0k5MTVfTUFYX1BJUEVTXTsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4gPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKPiA+IGluZGV4IGU4OGRjNDYuLjM1NTMzMjQg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4gPiBAQCAtMTc0 LDY2ICsxNzQsMjAgQEAgdm9pZCBpbnRlbF9kaXNhYmxlX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRl bF9jcnRjCj4gPiAqY3J0YykKPiA+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYs IFBPV0VSX0RPTUFJTl9QTExTKTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIGVudW0gaW50ZWxf ZHBsbF9pZAo+ID4gLWlieF9nZXRfZml4ZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK PiA+IC0JCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gLXsKPiA+ IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7Cj4gPiAtCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ID4gLQllbnVtIGlu dGVsX2RwbGxfaWQgaTsKPiA+IC0KPiA+IC0JLyogSXJvbmxha2UgUENIIGhhcyBhIGZpeGVkIFBM TC0+UENIIHBpcGUgbWFwcGluZy4gKi8KPiA+IC0JaSA9IChlbnVtIGludGVsX2RwbGxfaWQpIGNy dGMtPnBpcGU7Cj4gPiAtCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwo+ID4gLQo+ ID4gLQlEUk1fREVCVUdfS01TKCJDUlRDOiVkIHVzaW5nIHByZS1hbGxvY2F0ZWQgJXNcbiIsCj4g PiAtCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIHBsbC0+bmFtZSk7Cj4gPiAtCj4gPiAtCXJl dHVybiBpOwo+ID4gLX0KPiA+IC0KPiA+IC1zdGF0aWMgZW51bSBpbnRlbF9kcGxsX2lkCj4gPiAt Ynh0X2dldF9maXhlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4gLQkJICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiAtewo+ID4gLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiA+IC0J c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0Owo+ID4gLQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBs bDsKPiA+IC0JZW51bSBpbnRlbF9kcGxsX2lkIGk7Cj4gPiAtCj4gPiAtCS8qIFBMTCBpcyBhdHRh Y2hlZCB0byBwb3J0IGluIGJ4dCAqLwo+ID4gLQllbmNvZGVyID0gaW50ZWxfZGRpX2dldF9jcnRj X25ld19lbmNvZGVyKGNydGNfc3RhdGUpOwo+ID4gLQlpZiAoV0FSTl9PTighZW5jb2RlcikpCj4g PiAtCQlyZXR1cm4gRFBMTF9JRF9QUklWQVRFOwo+ID4gLQo+ID4gLQlpbnRlbF9kaWdfcG9ydCA9 IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gPiAtCS8qIDE6MSBtYXBwaW5nIGJl dHdlZW4gcG9ydHMgYW5kIFBMTHMgKi8KPiA+IC0JaSA9IChlbnVtIGludGVsX2RwbGxfaWQpaW50 ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4gPiAtCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ld Owo+ID4gLQlEUk1fREVCVUdfS01TKCJDUlRDOiVkIHVzaW5nIHByZS1hbGxvY2F0ZWQgJXNcbiIs Cj4gPiAtCQljcnRjLT5iYXNlLmJhc2UuaWQsIHBsbC0+bmFtZSk7Cj4gPiAtCj4gPiAtCXJldHVy biBpOwo+ID4gLX0KPiA+IC0KPiA+IC1zdGF0aWMgZW51bSBpbnRlbF9kcGxsX2lkCj4gPiArc3Rh dGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCj4gPiAgaW50ZWxfZmluZF9zaGFyZWRfZHBs bChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+IC0JCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ICsJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiA+ICsJCSAgICAgICBlbnVtIGludGVsX2RwbGxfaWQgcmFuZ2VfbWlu LAo+ID4gKwkJICAgICAgIGVudW0gaW50ZWxfZHBsbF9pZCByYW5nZV9tYXgpCj4gPiAgewo+ID4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0+ZGV2 X3ByaXZhdGU7Cj4gPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ID4gIAlzdHJ1 Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnICpzaGFyZWRfZHBsbDsKPiA+ICAJZW51bSBpbnRl bF9kcGxsX2lkIGk7Cj4gPiAtCWludCBtYXggPSBkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsOwo+ ID4gLQo+ID4gLQlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA8IDkgJiYgSEFTX0RESShk ZXZfcHJpdikpCj4gPiAtCQkvKiBEbyBub3QgY29uc2lkZXIgU1BMTCAqLwo+ID4gLQkJbWF4ID0g MjsKPiA+ICAKPiA+ICAJc2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxs X3N0YXRlKGNydGNfc3RhdGUKPiA+IC0+YmFzZS5zdGF0ZSk7Cj4gPiAgCj4gPiAtCWZvciAoaSA9 IDA7IGkgPCBtYXg7IGkrKykgewo+ID4gKwlmb3IgKGkgPSByYW5nZV9taW47IGkgPD0gcmFuZ2Vf bWF4OyBpKyspIHsKPiA+ICAJCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwo+ID4g IAo+ID4gIAkJLyogT25seSB3YW50IHRvIGNoZWNrIGVuYWJsZWQgdGltaW5ncyBmaXJzdCAqLwo+ ID4gQEAgLTI0Nyw0OSArMjAxLDMzIEBAIGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCj4gPiAgCQkJCSAgICAgIGNydGMtPmJhc2UuYmFzZS5pZCwgcGxsLT5u YW1lLAo+ID4gIAkJCQkgICAgICBzaGFyZWRfZHBsbFtpXS5jcnRjX21hc2ssCj4gPiAgCQkJCSAg ICAgIHBsbC0+YWN0aXZlKTsKPiA+IC0JCQlyZXR1cm4gaTsKPiA+ICsJCQlyZXR1cm4gcGxsOwo+ ID4gIAkJfQo+ID4gIAl9Cj4gPiAgCj4gPiAgCS8qIE9rIG5vIG1hdGNoaW5nIHRpbWluZ3MsIG1h eWJlIHRoZXJlJ3MgYSBmcmVlIG9uZT8gKi8KPiA+IC0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2 LT5udW1fc2hhcmVkX2RwbGw7IGkrKykgewo+ID4gKwlmb3IgKGkgPSByYW5nZV9taW47IGkgPD0g cmFuZ2VfbWF4OyBpKyspIHsKPiA+ICAJCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ld Owo+ID4gIAkJaWYgKHNoYXJlZF9kcGxsW2ldLmNydGNfbWFzayA9PSAwKSB7Cj4gPiAgCQkJRFJN X0RFQlVHX0tNUygiQ1JUQzolZCBhbGxvY2F0ZWQgJXNcbiIsCj4gPiAgCQkJCSAgICAgIGNydGMt PmJhc2UuYmFzZS5pZCwgcGxsLT5uYW1lKTsKPiA+IC0JCQlyZXR1cm4gaTsKPiA+ICsJCQlyZXR1 cm4gcGxsOwo+ID4gIAkJfQo+ID4gIAl9Cj4gPiAgCj4gPiAtCXJldHVybiBEUExMX0lEX1BSSVZB VEU7Cj4gPiArCXJldHVybiBOVUxMOwo+ID4gIH0KPiA+ICAKPiA+IC1zdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGwgKgo+ID4gLWludGVsX2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKPiA+IC0JCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ID4gK3N0YXRpYyB2b2lkCj4gPiAraW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0cnVjdCBp bnRlbF9zaGFyZWRfZHBsbCAqcGxsLAo+ID4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGNydGMtPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKPiA+IC0Jc3RydWN0IGludGVsX3No YXJlZF9kcGxsICpwbGw7Cj4gPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcgKnNo YXJlZF9kcGxsOwo+ID4gLQllbnVtIGludGVsX2RwbGxfaWQgaTsKPiA+ICsJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gPiAr CWVudW0gaW50ZWxfZHBsbF9pZCBpID0gcGxsLT5pZDsKPiA+ICAKPiA+ICAJc2hhcmVkX2RwbGwg PSBpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKGNydGNfc3RhdGUKPiA+IC0+YmFz ZS5zdGF0ZSk7Cj4gPiAgCj4gPiAtCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdi0+ZGV2KSkgewo+ ID4gLQkJaSA9IGlieF9nZXRfZml4ZWRfZHBsbChjcnRjLCBjcnRjX3N0YXRlKTsKPiA+IC0JCVdB Uk5fT04oc2hhcmVkX2RwbGxbaV0uY3J0Y19tYXNrKTsKPiA+IC0JfSBlbHNlIGlmIChJU19CUk9Y VE9OKGRldl9wcml2LT5kZXYpKSB7Cj4gPiAtCQlpID0gYnh0X2dldF9maXhlZF9kcGxsKGNydGMs IGNydGNfc3RhdGUpOwo+ID4gLQkJV0FSTl9PTihzaGFyZWRfZHBsbFtpXS5jcnRjX21hc2spOwo+ ID4gLQl9IGVsc2Ugewo+ID4gLQkJaSA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoY3J0YywgY3J0 Y19zdGF0ZSk7Cj4gPiAtCX0KPiA+IC0KPiA+IC0JaWYgKGkgPCAwKQo+ID4gLQkJcmV0dXJuIE5V TEw7Cj4gPiAtCj4gPiAtCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwo+ID4gLQo+ ID4gIAlpZiAoc2hhcmVkX2RwbGxbaV0uY3J0Y19tYXNrID09IDApCj4gPiAgCQlzaGFyZWRfZHBs bFtpXS5od19zdGF0ZSA9Cj4gPiAgCQkJY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZTsKPiA+IEBA IC0yOTksOCArMjM3LDYgQEAgaW50ZWxfZ2V0X3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAo+ID4gIAkJCSBwaXBlX25hbWUoY3J0Yy0+cGlwZSkpOwo+ID4gIAo+ID4gIAlpbnRl bF9zaGFyZWRfZHBsbF9jb25maWdfZ2V0KHNoYXJlZF9kcGxsLCBwbGwsIGNydGMpOwo+ID4gLQo+ ID4gLQlyZXR1cm4gcGxsOwo+ID4gIH0KPiA+ICAKPiA+ICB2b2lkIGludGVsX3NoYXJlZF9kcGxs X2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiBAQCAtMzk4LDYgKzMz NCwzMiBAQCBzdGF0aWMgdm9pZCBpYnhfcGNoX2RwbGxfZGlzYWJsZShzdHJ1Y3QKPiA+IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAl1ZGVsYXkoMjAwKTsKPiA+ICB9Cj4gPiAgCj4g PiArc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCj4gPiAraWJ4X2dldF9kcGxsKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsK PiA+ICsJZW51bSBpbnRlbF9kcGxsX2lkIGk7Cj4gPiArCj4gPiArCWlmIChIQVNfUENIX0lCWChk ZXZfcHJpdikpIHsKPiA+ICsJCS8qIElyb25sYWtlIFBDSCBoYXMgYSBmaXhlZCBQTEwtPlBDSCBw aXBlIG1hcHBpbmcuICovCj4gPiArCQlpID0gKGVudW0gaW50ZWxfZHBsbF9pZCkgY3J0Yy0+cGlw ZTsKPiA+ICsJCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwo+ID4gKwo+ID4gKwkJ RFJNX0RFQlVHX0tNUygiQ1JUQzolZCB1c2luZyBwcmUtYWxsb2NhdGVkICVzXG4iLAo+ID4gKwkJ CSAgICAgIGNydGMtPmJhc2UuYmFzZS5pZCwgcGxsLT5uYW1lKTsKPiA+ICsJfSBlbHNlIHsKPiA+ ICsJCXBsbCA9IGludGVsX2ZpbmRfc2hhcmVkX2RwbGwoY3J0YywgY3J0Y19zdGF0ZSwKPiA+ICsJ CQkJCSAgICAgRFBMTF9JRF9QQ0hfUExMX0EsCj4gPiArCQkJCQkgICAgIERQTExfSURfUENIX1BM TF9CKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwkvKiByZWZlcmVuY2UgdGhlIHBsbCAqLwo+ID4gKwlp bnRlbF9yZWZlcmVuY2Vfc2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0YXRlKTsKPiA+ICsKPiA+ICsJ cmV0dXJuIHBsbDsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9z aGFyZWRfZHBsbF9mdW5jcyBpYnhfcGNoX2RwbGxfZnVuY3MgPSB7Cj4gPiAgCS5tb2RlX3NldCA9 IGlieF9wY2hfZHBsbF9tb2RlX3NldCwKPiA+ICAJLmVuYWJsZSA9IGlieF9wY2hfZHBsbF9lbmFi bGUsCj4gPiBAQCAtNDc1LDYgKzQzNywxOSBAQCBzdGF0aWMgYm9vbCBoc3dfZGRpX3NwbGxfZ2V0 X2h3X3N0YXRlKHN0cnVjdAo+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCXJl dHVybiB2YWwgJiBTUExMX1BMTF9FTkFCTEU7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyBzdHJ1 Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgo+ID4gK2hzd19nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiArewo+ID4g KwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKPiA+ICsKPiA+ICsJcGxsID0gaW50ZWxf ZmluZF9zaGFyZWRfZHBsbChjcnRjLCBjcnRjX3N0YXRlLAo+ID4gKwkJCQkgICAgIERQTExfSURf V1JQTEwxLCBEUExMX0lEX1dSUExMMik7Cj4gPiArCWlmIChwbGwpCj4gPiArCQlpbnRlbF9yZWZl cmVuY2Vfc2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0YXRlKTsKPiA+ICsKPiA+ICsJcmV0dXJuIHBs bDsKPiA+ICt9Cj4gPiArCj4gPiAgCj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbF9mdW5jcyBoc3dfZGRpX3dycGxsX2Z1bmNzID0gewo+ID4gIAkuZW5hYmxlID0gaHN3 X2RkaV93cnBsbF9lbmFibGUsCj4gPiBAQCAtNTk0LDYgKzU2OSwxOSBAQCBvdXQ6Cj4gPiAgCXJl dHVybiByZXQ7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2Rw bGwgKgo+ID4gK3NrbF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiArewo+ID4gKwlzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGwgKnBsbDsKPiA+ICsKPiA+ICsJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChj cnRjLCBjcnRjX3N0YXRlLAo+ID4gKwkJCQkgICAgIERQTExfSURfU0tMX0RQTEwxLCBEUExMX0lE X1NLTF9EUExMMyk7Cj4gPiArCWlmIChwbGwpCj4gPiArCQlpbnRlbF9yZWZlcmVuY2Vfc2hhcmVk X2RwbGwocGxsLCBjcnRjX3N0YXRlKTsKPiA+ICsKPiA+ICsJcmV0dXJuIHBsbDsKPiA+ICt9Cj4g PiArCj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9mdW5jcyBza2xf ZGRpX3BsbF9mdW5jcyA9IHsKPiA+ICAJLmVuYWJsZSA9IHNrbF9kZGlfcGxsX2VuYWJsZSwKPiA+ ICAJLmRpc2FibGUgPSBza2xfZGRpX3BsbF9kaXNhYmxlLAo+ID4gQEAgLTc4Miw2ICs3NzAsMzIg QEAgb3V0Ogo+ID4gIAlyZXR1cm4gcmV0Owo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsICoKPiA+ICtieHRfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGMg KmNydGMsIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gK3sKPiA+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7Cj4gPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+ID4gKwlzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydDsKPiA+ICsJc3RydWN0IGludGVsX3NoYXJl ZF9kcGxsICpwbGw7Cj4gPiArCWVudW0gaW50ZWxfZHBsbF9pZCBpOwo+ID4gKwo+ID4gKwkvKiBQ TEwgaXMgYXR0YWNoZWQgdG8gcG9ydCBpbiBieHQgKi8KPiA+ICsJZW5jb2RlciA9IGludGVsX2Rk aV9nZXRfY3J0Y19uZXdfZW5jb2RlcihjcnRjX3N0YXRlKTsKPiA+ICsJaWYgKFdBUk5fT04oIWVu Y29kZXIpKQo+ID4gKwkJcmV0dXJuIE5VTEw7Cj4gPiArCj4gPiArCWludGVsX2RpZ19wb3J0ID0g ZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiA+ICsJLyogMToxIG1hcHBpbmcgYmV0 d2VlbiBwb3J0cyBhbmQgUExMcyAqLwo+ID4gKwlpID0gKGVudW0gaW50ZWxfZHBsbF9pZClpbnRl bF9kaWdfcG9ydC0+cG9ydDsKPiA+ICsJcGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07 Cj4gPiArCURSTV9ERUJVR19LTVMoIkNSVEM6JWQgdXNpbmcgcHJlLWFsbG9jYXRlZCAlc1xuIiwK PiA+ICsJCWNydGMtPmJhc2UuYmFzZS5pZCwgcGxsLT5uYW1lKTsKPiA+ICsKPiA+ICsJaW50ZWxf cmVmZXJlbmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7Cj4gPiArCj4gPiArCXJldHVy biBwbGw7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVk X2RwbGxfZnVuY3MgYnh0X2RkaV9wbGxfZnVuY3MgPSB7Cj4gPiAgCS5lbmFibGUgPSBieHRfZGRp X3BsbF9lbmFibGUsCj4gPiAgCS5kaXNhYmxlID0gYnh0X2RkaV9wbGxfZGlzYWJsZSwKPiA+IEBA IC04MjYsMTIgKzg0MCwyNCBAQCBzdHJ1Y3QgZHBsbF9pbmZvIHsKPiA+ICAJY29uc3Qgc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsX2Z1bmNzICpmdW5jczsKPiA+ICB9Owo+ID4gIAo+ID4gK3N0cnVj dCBpbnRlbF9kcGxsX21nciB7Cj4gPiArCWNvbnN0IHN0cnVjdCBkcGxsX2luZm8gKmRwbGxfaW5m bzsKPiA+ICsKPiA+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICooKmdldF9kcGxsKShzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ICsJCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlCj4gPiAqY3J0Y19zdGF0ZSk7Cj4gPiArfTsKPiA+ICsKPiA+ICBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRwbGxfaW5mbyBwY2hfcGxsc1tdID0gewo+ID4gIAl7ICJQQ0ggRFBMTCBBIiwgRFBMTF9J RF9QQ0hfUExMX0EsICZpYnhfcGNoX2RwbGxfZnVuY3MgfSwKPiA+ICAJeyAiUENIIERQTEwgQiIs IERQTExfSURfUENIX1BMTF9CLCAmaWJ4X3BjaF9kcGxsX2Z1bmNzIH0sCj4gPiAgCXsgTlVMTCwg LTEsIE5VTEwgfSwKPiA+ICB9Owo+ID4gIAo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxf ZHBsbF9tZ3IgcGNoX3BsbF9tZ3IgPSB7Cj4gPiArCS5kcGxsX2luZm8gPSBwY2hfcGxscywKPiA+ ICsJLmdldF9kcGxsID0gaWJ4X2dldF9kcGxsLAo+ID4gK307Cj4gPiArCj4gPiAgc3RhdGljIGNv bnN0IHN0cnVjdCBkcGxsX2luZm8gaHN3X3BsbHNbXSA9IHsKPiA+ICAJeyAiV1JQTEwgMSIsIERQ TExfSURfV1JQTEwxLCAmaHN3X2RkaV93cnBsbF9mdW5jcyB9LAo+ID4gIAl7ICJXUlBMTCAyIiwg RFBMTF9JRF9XUlBMTDIsICZoc3dfZGRpX3dycGxsX2Z1bmNzIH0sCj4gPiBAQCAtODM5LDYgKzg2 NSwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBoc3dfcGxsc1tdID0gewo+ID4g IAl7IE5VTEwsIC0xLCBOVUxMLCB9LAo+ID4gIH07Cj4gPiAgCj4gPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBpbnRlbF9kcGxsX21nciBoc3dfcGxsX21nciA9IHsKPiA+ICsJLmRwbGxfaW5mbyA9IGhz d19wbGxzLAo+ID4gKwkuZ2V0X2RwbGwgPSBoc3dfZ2V0X2RwbGwsCj4gPiArfTsKPiA+ICsKPiA+ ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBza2xfcGxsc1tdID0gewo+ID4gIAl7ICJE UFBMIDEiLCBEUExMX0lEX1NLTF9EUExMMSwgJnNrbF9kZGlfcGxsX2Z1bmNzIH0sCj4gPiAgCXsg IkRQUEwgMiIsIERQTExfSURfU0tMX0RQTEwyLCAmc2tsX2RkaV9wbGxfZnVuY3MgfSwKPiA+IEBA IC04NDYsNiArODc3LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZvIHNrbF9wbGxz W10gPSB7Cj4gPiAgCXsgTlVMTCwgLTEsIE5VTEwsIH0sCj4gPiAgfTsKPiA+ICAKPiA+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIHNrbF9wbGxfbWdyID0gewo+ID4gKwkuZHBs bF9pbmZvID0gc2tsX3BsbHMsCj4gPiArCS5nZXRfZHBsbCA9IHNrbF9nZXRfZHBsbCwKPiA+ICt9 Owo+ID4gKwo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZvIGJ4dF9wbGxzW10gPSB7 Cj4gPiAgCXsgIlBPUlQgUExMIEEiLCAwLCAmYnh0X2RkaV9wbGxfZnVuY3MgfSwKPiA+ICAJeyAi UE9SVCBQTEwgQiIsIDEsICZieHRfZGRpX3BsbF9mdW5jcyB9LAo+ID4gQEAgLTg1MywyNiArODg5 LDM0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZvIGJ4dF9wbGxzW10gPSB7Cj4gPiAg CXsgTlVMTCwgLTEsIE5VTEwsIH0sCj4gPiAgfTsKPiA+ICAKPiA+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IGludGVsX2RwbGxfbWdyIGJ4dF9wbGxfbWdyID0gewo+ID4gKwkuZHBsbF9pbmZvID0gYnh0 X3BsbHMsCj4gPiArCS5nZXRfZHBsbCA9IGJ4dF9nZXRfZHBsbCwKPiA+ICt9Owo+ID4gKwo+ID4g IHZvaWQgaW50ZWxfc2hhcmVkX2RwbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4g IHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKPiA+IC0JY29uc3Qgc3RydWN0IGRwbGxfaW5mbyAqZHBsbF9pbmZvID0gTlVMTDsKPiA+ ICsJY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyICpkcGxsX21nciA9IE5VTEw7Cj4gPiArCWNv bnN0IHN0cnVjdCBkcGxsX2luZm8gKmRwbGxfaW5mbzsKPiA+ICAJaW50IGk7Cj4gPiAgCj4gPiAg CWlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkKPiA+IC0JCWRwbGxfaW5m byA9IHNrbF9wbGxzOwo+ID4gKwkJZHBsbF9tZ3IgPSAmc2tsX3BsbF9tZ3I7Cj4gPiAgCWVsc2Ug aWYgSVNfQlJPWFRPTihkZXYpCj4gPiAtCQlkcGxsX2luZm8gPSBieHRfcGxsczsKPiA+ICsJCWRw bGxfbWdyID0gJmJ4dF9wbGxfbWdyOwo+ID4gIAllbHNlIGlmIChIQVNfRERJKGRldikpCj4gPiAt CQlkcGxsX2luZm8gPSBoc3dfcGxsczsKPiA+ICsJCWRwbGxfbWdyID0gJmhzd19wbGxfbWdyOwo+ ID4gIAllbHNlIGlmIChIQVNfUENIX0lCWChkZXYpIHx8IEhBU19QQ0hfQ1BUKGRldikpCj4gPiAt CQlkcGxsX2luZm8gPSBwY2hfcGxsczsKPiA+ICsJCWRwbGxfbWdyID0gJnBjaF9wbGxfbWdyOwo+ ID4gIAo+ID4gLQlpZiAoIWRwbGxfaW5mbykgewo+ID4gKwlpZiAoIWRwbGxfbWdyKSB7Cj4gPiAg CQlkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsID0gMDsKPiA+ICAJCXJldHVybjsKPiA+ICAJfQo+ ID4gIAo+ID4gKwlkcGxsX2luZm8gPSBkcGxsX21nci0+ZHBsbF9pbmZvOwo+ID4gKwo+ID4gIAlm b3IgKGkgPSAwOyBkcGxsX2luZm9baV0uaWQgPj0gMDsgaSsrKSB7Cj4gPiAgCQlXQVJOX09OKGkg IT0gZHBsbF9pbmZvW2ldLmlkKTsKPiA+ICAKPiA+IEBAIC04ODEsNiArOTI1LDcgQEAgdm9pZCBp bnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCQlkZXZf cHJpdi0+c2hhcmVkX2RwbGxzW2ldLmZ1bmNzID0gKmRwbGxfaW5mb1tpXS5mdW5jczsKPiA+ICAJ fQo+ID4gIAo+ID4gKwlkZXZfcHJpdi0+ZHBsbF9tZ3IgPSBkcGxsX21ncjsKPiA+ICAJZGV2X3By aXYtPm51bV9zaGFyZWRfZHBsbCA9IGk7Cj4gPiAgCj4gPiAgCUJVR19PTihkZXZfcHJpdi0+bnVt X3NoYXJlZF9kcGxsID4gSTkxNV9OVU1fUExMUyk7Cj4gPiBAQCAtODg5LDMgKzkzNCwxNiBAQCB2 b2lkIGludGVsX3NoYXJlZF9kcGxsX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAJ aWYgKEhBU19EREkoZGV2KSkKPiA+ICAJCWludGVsX2RkaV9wbGxfaW5pdChkZXYpOwo+ID4gIH0K PiA+ICsKPiA+ICtzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgo+ID4gK2ludGVsX2dldF9zaGFy ZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ICsJCSAgICAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gPiArCWNvbnN0IHN0 cnVjdCBpbnRlbF9kcGxsX21nciAqZHBsbF9tZ3IgPSBkZXZfcHJpdi0+ZHBsbF9tZ3I7Cj4gPiAr Cj4gPiArCWlmIChkcGxsX21ncikKPiA+ICsJCXJldHVybiBkcGxsX21nci0+Z2V0X2RwbGwoY3J0 YywgY3J0Y19zdGF0ZSk7Cj4gPiArCWVsc2UKPiA+ICsJCXJldHVybiBOVUxMOwo+ID4gK30KPiBz aG91bGQgdGhlcmUgYmUgYSBXQVJOX09OIGhlcmU/Cj4gCj4gUmVzdCBsb29rcyBnb29kLCBzbyBm b3IgcGF0Y2ggOC4uLjExLzEzOgoKRGlkIHlvdSBoYXZlIGNvbW1lbnRzIG9uIHBhdGNoIDEyPyBJ IHNlZW0gdG8gaGF2ZSBtaXNzZWQgaXQuCgpBbmRlcgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK