From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 1/4] drm/i915: Use a crtc mask instead of a refcount for dpll functions. Date: Fri, 04 Mar 2016 11:09:45 +0200 Message-ID: <1457082585.2668.18.camel@gmail.com> References: <1456750343-7893-1-git-send-email-maarten.lankhorst@linux.intel.com> <1456750343-7893-2-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-x242.google.com (mail-pa0-x242.google.com [IPv6:2607:f8b0:400e:c03::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 67C426EBC3 for ; Fri, 4 Mar 2016 09:09:52 +0000 (UTC) Received: by mail-pa0-x242.google.com with SMTP id hj7so2739394pac.1 for ; Fri, 04 Mar 2016 01:09:52 -0800 (PST) In-Reply-To: <1456750343-7893-2-git-send-email-maarten.lankhorst@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 T24gTW9uLCAyMDE2LTAyLTI5IGF0IDEzOjUyICswMTAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byB2ZXJpZnkgY29ycmVjdCBkcGxsIHNldHVwIHdp dGggb25seSBhIHNpbmdsZSBjcnRjLgo+IEl0IGl0IGFsc28gdXNlZnVsIHRvIGRldGVjdCBkb3Vi bGUgZHBsbCBlbmFibGUvZGlzYWJsZS4KCkkgaGF2ZSBhIGdvYWwgb2YgYmVpbmcgYWJsZSB0byBn ZXQgYSByZWZlcmVuY2UgZm9yIGEgc2hhcmVkIHBsbCBmb3IgYW4gZW5jb2Rlcgp3aXRob3V0IGEg Y3J0Yywgc28gdGhhdCB0aGUgdXBmcm9udCBsaW5rIHRyYWluaW5nIGNvZGUgZG9lc24ndCBuZWVk IHRvIGdvIGFyb3VuZAp0aGUgc2hhcmVkIHBsbCBpbnRlZmFjZS4gVGhpcyBwYXRjaCB3aWxsIG1h a2UgdGhpbmdzIGEgYml0IHRyaWNraWVyLgoKSSBoYXZlbid0IHlldCBmaWd1cmVkIG91dCB3aGF0 IHRoZSByZWZlcmVuY2UgbWVjaGFuaXNtIG5lZWRzIHRvIGJlLiBTbyBmYXIgSQp0aG91Z2h0IGFi b3V0IGdvaW5nIGJhY2sgdG8gcmVmIGNvdW50IG9yIGluY2x1ZGluZyBhbiBlbmNvZGVyIG1hc2su IEJ1dCB0aGF0J3MKZm9yIGxhdGVyLCBzbyBzZWUgY29tbWVudHMgYmVsb3cuCgo+IFNpZ25lZC1v ZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5j b20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICB8ICAyICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAyICstCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDY4ICsrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tCj4gLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyks IDMyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBp bmRleCBjNmU2NGUyYzk1MWUuLjIwMGU0NTkyMjU4NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCj4gQEAgLTMyMTEsNyArMzIxMSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9zaGFy ZWRfZHBsbHNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCj4gdm9pZCAqdW51c2VkKQo+ICAKPiAg CQlzZXFfcHJpbnRmKG0sICJEUExMJWk6ICVzLCBpZDogJWlcbiIsIGksIHBsbC0+bmFtZSwgcGxs LT5pZCk7Cj4gIAkJc2VxX3ByaW50ZihtLCAiIGNydGNfbWFzazogMHglMDh4LCBhY3RpdmU6ICVk LCBvbjogJXNcbiIsCj4gLQkJCSAgIHBsbC0+Y29uZmlnLmNydGNfbWFzaywgcGxsLT5hY3RpdmUs IHllc25vKHBsbC0+b24pKTsKPiArCQkJICAgcGxsLT5jb25maWcuY3J0Y19tYXNrLCBod2VpZ2h0 MzIocGxsLT5hY3RpdmVfbWFzayksIAoKSnVzdCBwcmludCB0aGUgbWFzayBhcyB3YXMgZG9uZSBi ZWxvdyBhbmQgYXZvaWQgaHdlaWdodDMyPwoKPiB5ZXNubyhwbGwtPm9uKSk7Cj4gIAkJc2VxX3By aW50ZihtLCAiIHRyYWNrZWQgaGFyZHdhcmUgc3RhdGU6XG4iKTsKPiAgCQlzZXFfcHJpbnRmKG0s ICIgZHBsbDogICAgMHglMDh4XG4iLCBwbGwKPiAtPmNvbmZpZy5od19zdGF0ZS5kcGxsKTsKPiAg CQlzZXFfcHJpbnRmKG0sICIgZHBsbF9tZDogMHglMDh4XG4iLAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IGluZGV4IDEwNDgwOTM5MTU5Yy4uYzc0MDFiNTA4MThjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gQEAgLTM5Miw3ICszOTIsNyBAQCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2Rw bGxfY29uZmlnIHsKPiAgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsIHsKPiAgCXN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbF9jb25maWcgY29uZmlnOwo+ICAKPiAtCWludCBhY3RpdmU7IC8qIGNvdW50 IG9mIG51bWJlciBvZiBhY3RpdmUgQ1JUQ3MgKGkuZS4gRFBNUyBvbikgKi8KPiArCXVuc2lnbmVk IGFjdGl2ZV9tYXNrOyAvKiBtYXNrIG9mIGFjdGl2ZSBDUlRDcyAoaS5lLiBEUE1TIG9uKSAqLwo+ ICAJYm9vbCBvbjsgLyogaXMgdGhlIFBMTCBhY3R1YWxseSBhY3RpdmU/IERpc2FibGVkIGR1cmlu ZyBtb2Rlc2V0ICovCj4gIAljb25zdCBjaGFyICpuYW1lOwo+ICAJLyogc2hvdWxkIG1hdGNoIHRo ZSBpbmRleCBpbiB0aGUgZGV2X3ByaXYtPnNoYXJlZF9kcGxscyBhcnJheSAqLwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGE1ZDYxMDg0YWU5OC4uNWRkNTljYWU5 ZjA2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xODY2LDcg KzE4NjYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVwYXJlX3NoYXJlZF9kcGxsKHN0cnVjdCBp bnRlbF9jcnRjCj4gKmNydGMpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCVdBUk5fT04oIXBsbC0+Y29u ZmlnLmNydGNfbWFzayk7Cj4gLQlpZiAocGxsLT5hY3RpdmUgPT0gMCkgewo+ICsJaWYgKHBsbC0+ YWN0aXZlX21hc2sgPT0gMCkgewo+ICAJCURSTV9ERUJVR19EUklWRVIoInNldHRpbmcgdXAgJXNc biIsIHBsbC0+bmFtZSk7Cj4gIAkJV0FSTl9PTihwbGwtPm9uKTsKPiAgCQlhc3NlcnRfc2hhcmVk X2RwbGxfZGlzYWJsZWQoZGV2X3ByaXYsIHBsbCk7Cj4gQEAgLTE4ODgsNiArMTg4OCw3IEBAIHN0 YXRpYyB2b2lkIGludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Ywo+ICpj cnRjKQo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0gaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChj cnRjKTsKPiArCXVuc2lnbmVkIGNydGNfbWFzayA9IDEgPDwgZHJtX2NydGNfaW5kZXgoJmNydGMt PmJhc2UpOwo+ICAKPiAgCWlmIChXQVJOX09OKHBsbCA9PSBOVUxMKSkKPiAgCQlyZXR1cm47Cj4g QEAgLTE4OTUsMTEgKzE4OTYsMTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX3NoYXJlZF9k cGxsKHN0cnVjdCBpbnRlbF9jcnRjCj4gKmNydGMpCj4gIAlpZiAoV0FSTl9PTihwbGwtPmNvbmZp Zy5jcnRjX21hc2sgPT0gMCkpCj4gIAkJcmV0dXJuOwo+ICAKPiArCWlmIChXQVJOX09OKHBsbC0+ YWN0aXZlX21hc2sgJiBjcnRjX21hc2spKQo+ICsJCXJldHVybjsKPiArCj4gIAlEUk1fREVCVUdf S01TKCJlbmFibGUgJXMgKGFjdGl2ZSAlZCwgb24/ICVkKSBmb3IgY3J0YyAlZFxuIiwKPiAtCQkg ICAgICBwbGwtPm5hbWUsIHBsbC0+YWN0aXZlLCBwbGwtPm9uLAo+ICsJCSAgICAgIHBsbC0+bmFt ZSwgaHdlaWdodDMyKHBsbC0+YWN0aXZlX21hc2spLCBwbGwtPm9uLAo+ICAJCSAgICAgIGNydGMt PmJhc2UuYmFzZS5pZCk7Cj4gIAo+IC0JaWYgKHBsbC0+YWN0aXZlKyspIHsKPiArCXBsbC0+YWN0 aXZlX21hc2sgfD0gY3J0Y19tYXNrOwo+ICsKPiArCWlmIChwbGwtPmFjdGl2ZV9tYXNrICE9IGNy dGNfbWFzaykgewo+ICAJCVdBUk5fT04oIXBsbC0+b24pOwo+ICAJCWFzc2VydF9zaGFyZWRfZHBs bF9lbmFibGVkKGRldl9wcml2LCBwbGwpOwo+ICAJCXJldHVybjsKPiBAQCAtMTkxOCwzMCArMTky NCwzMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3NoYXJlZF9kcGxsKHN0cnVjdAo+IGlu dGVsX2NydGMgKmNydGMpCj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5k ZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSBpbnRlbF9jcnRjX3RvX3No YXJlZF9kcGxsKGNydGMpOwo+ICsJdW5zaWduZWQgY3J0Y19tYXNrID0gMSA8PCBkcm1fY3J0Y19p bmRleCgmY3J0Yy0+YmFzZSk7Cj4gIAo+ICAJLyogUENIIG9ubHkgYXZhaWxhYmxlIG9uIElMSysg Ki8KPiAtCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDUpCj4gKwlpZiAoSU5URUxfSU5GTyhk ZXZfcHJpdiktPmdlbiA8IDUpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCWlmIChwbGwgPT0gTlVMTCkK PiAgCQlyZXR1cm47Cj4gIAo+IC0JaWYgKFdBUk5fT04oIShwbGwtPmNvbmZpZy5jcnRjX21hc2sg JiAoMSA8PCBkcm1fY3J0Y19pbmRleCgmY3J0Ywo+IC0+YmFzZSkpKSkpCj4gKwlpZiAoV0FSTl9P TighKHBsbC0+Y29uZmlnLmNydGNfbWFzayAmIGNydGNfbWFzaykpKQo+ICAJCXJldHVybjsKPiAg Cj4gLQlEUk1fREVCVUdfS01TKCJkaXNhYmxlICVzIChhY3RpdmUgJWQsIG9uPyAlZCkgZm9yIGNy dGMgJWRcbiIsCj4gLQkJICAgICAgcGxsLT5uYW1lLCBwbGwtPmFjdGl2ZSwgcGxsLT5vbiwKPiAr CWlmIChXQVJOX09OKCEocGxsLT5hY3RpdmVfbWFzayAmIGNydGNfbWFzaykpKQo+ICsJCXJldHVy bjsKPiArCj4gKwlEUk1fREVCVUdfS01TKCJkaXNhYmxlICVzIChhY3RpdmUgJXgsIG9uPyAlZCkg Zm9yIGNydGMgJWRcbiIsCj4gKwkJICAgICAgcGxsLT5uYW1lLCBwbGwtPmFjdGl2ZV9tYXNrLCBw bGwtPm9uLAo+ICAJCSAgICAgIGNydGMtPmJhc2UuYmFzZS5pZCk7Cj4gIAo+IC0JaWYgKFdBUk5f T04ocGxsLT5hY3RpdmUgPT0gMCkpIHsKPiArCXBsbC0+YWN0aXZlX21hc2sgJj0gfmNydGNfbWFz azsKPiArCWlmIChwbGwtPmFjdGl2ZV9tYXNrKSB7Cj4gIAkJYXNzZXJ0X3NoYXJlZF9kcGxsX2Rp c2FibGVkKGRldl9wcml2LCBwbGwpOwoKU2hvdWxkbid0IHRoZSBhYm92ZSBiZSBjaGFuZ2VkIHRv IGFzc2VydCBlbmFibGVkLCBhcyB0aGUgcGxsIGlzIHN0aWxsIGFjdGl2ZSBmb3IKYW5vdGhlciBj cnRjPwoKPiAgCQlyZXR1cm47Cj4gIAl9Cj4gIAo+ICAJYXNzZXJ0X3NoYXJlZF9kcGxsX2VuYWJs ZWQoZGV2X3ByaXYsIHBsbCk7Cj4gIAlXQVJOX09OKCFwbGwtPm9uKTsKPiAtCWlmICgtLXBsbC0+ YWN0aXZlKQo+IC0JCXJldHVybjsKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJkaXNhYmxpbmcgJXNc biIsIHBsbC0+bmFtZSk7Cj4gIAlwbGwtPmRpc2FibGUoZGV2X3ByaXYsIHBsbCk7Cj4gQEAgLTQy OTQsMTAgKzQzMDMsMTAgQEAgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICppbnRlbF9nZXRfc2hh cmVkX2RwbGwoc3RydWN0Cj4gaW50ZWxfY3J0YyAqY3J0YywKPiAgCQlpZiAobWVtY21wKCZjcnRj X3N0YXRlLT5kcGxsX2h3X3N0YXRlLAo+ICAJCQkgICAmc2hhcmVkX2RwbGxbaV0uaHdfc3RhdGUs Cj4gIAkJCSAgIHNpemVvZihjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKSkgPT0gMCkgewo+IC0J CQlEUk1fREVCVUdfS01TKCJDUlRDOiVkIHNoYXJpbmcgZXhpc3RpbmcgJXMgKGNydGMgbWFzawo+ IDB4JTA4eCwgYXRpdmUgJWQpXG4iLAo+ICsJCQlEUk1fREVCVUdfS01TKCJDUlRDOiVkIHNoYXJp bmcgZXhpc3RpbmcgJXMgKGNydGMgbWFzawo+IDB4JTA4eCwgYWN0aXZlIDB4JTA4eClcbiIsCj4g IAkJCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIHBsbC0+bmFtZSwKPiAgCQkJCSAgICAgIHNo YXJlZF9kcGxsW2ldLmNydGNfbWFzaywKPiAtCQkJCSAgICAgIHBsbC0+YWN0aXZlKTsKPiArCQkJ CSAgICAgIHBsbC0+YWN0aXZlX21hc2spOwo+ICAJCQlnb3RvIGZvdW5kOwo+ICAJCX0KPiAgCX0K PiBAQCAtMTI5NTIsMTIgKzEyOTYxLDEyIEBAIGNoZWNrX3NoYXJlZF9kcGxsX3N0YXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gIAo+ICAJCWFjdGl2ZSA9IHBsbC0+Z2V0X2h3X3N0YXRlKGRl dl9wcml2LCBwbGwsICZkcGxsX2h3X3N0YXRlKTsKPiAgCj4gLQkJSTkxNV9TVEFURV9XQVJOKHBs bC0+YWN0aXZlID4gaHdlaWdodDMyKHBsbAo+IC0+Y29uZmlnLmNydGNfbWFzayksCj4gLQkJICAg ICAibW9yZSBhY3RpdmUgcGxsIHVzZXJzIHRoYW4gcmVmZXJlbmNlczogJWkgdnMgJWlcbiIsCj4g LQkJICAgICBwbGwtPmFjdGl2ZSwgaHdlaWdodDMyKHBsbC0+Y29uZmlnLmNydGNfbWFzaykpOwo+ IC0JCUk5MTVfU1RBVEVfV0FSTihwbGwtPmFjdGl2ZSAmJiAhcGxsLT5vbiwKPiArCQlJOTE1X1NU QVRFX1dBUk4ocGxsLT5hY3RpdmVfbWFzayAmIH5wbGwtPmNvbmZpZy5jcnRjX21hc2ssCj4gKwkJ ICAgICAibW9yZSBhY3RpdmUgcGxsIHVzZXJzIHRoYW4gcmVmZXJlbmNlczogJXggdnMgJXhcbiIs Cj4gKwkJICAgICBwbGwtPmFjdGl2ZV9tYXNrLCBwbGwtPmNvbmZpZy5jcnRjX21hc2spOwo+ICsJ CUk5MTVfU1RBVEVfV0FSTihwbGwtPmFjdGl2ZV9tYXNrICYmICFwbGwtPm9uLAo+ICAJCSAgICAg InBsbCBpbiBhY3RpdmUgdXNlIGJ1dCBub3Qgb24gaW4gc3cgdHJhY2tpbmdcbiIpOwo+IC0JCUk5 MTVfU1RBVEVfV0FSTihwbGwtPm9uICYmICFwbGwtPmFjdGl2ZSwKPiArCQlJOTE1X1NUQVRFX1dB Uk4ocGxsLT5vbiAmJiAhcGxsLT5hY3RpdmVfbWFzaywKPiAgCQkgICAgICJwbGwgaW4gb24gYnV0 IG5vdCBvbiBpbiB1c2UgaW4gc3cgdHJhY2tpbmdcbiIpOwo+ICAJCUk5MTVfU1RBVEVfV0FSTihw bGwtPm9uICE9IGFjdGl2ZSwKPiAgCQkgICAgICJwbGwgb24gc3RhdGUgbWlzbWF0Y2ggKGV4cGVj dGVkICVpLCBmb3VuZCAlaSlcbiIsCj4gQEAgLTEyOTY1LDE2ICsxMjk3NCwxNiBAQCBjaGVja19z aGFyZWRfZHBsbF9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAKPiAgCQlmb3JfZWFj aF9pbnRlbF9jcnRjKGRldiwgY3J0Yykgewo+ICAJCQlpZiAoY3J0Yy0+YmFzZS5zdGF0ZS0+ZW5h YmxlICYmCj4gaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChjcnRjKSA9PSBwbGwpCj4gLQkJCQll bmFibGVkX2NydGNzKys7Cj4gKwkJCQllbmFibGVkX2NydGNzIHw9IDEgPDwgZHJtX2NydGNfaW5k ZXgoJmNydGMKPiAtPmJhc2UpOwo+ICAJCQlpZiAoY3J0Yy0+YWN0aXZlICYmIGludGVsX2NydGNf dG9fc2hhcmVkX2RwbGwoY3J0YykKPiA9PSBwbGwpCj4gLQkJCQlhY3RpdmVfY3J0Y3MrKzsKPiAr CQkJCWFjdGl2ZV9jcnRjcyB8PSAxIDw8IGRybV9jcnRjX2luZGV4KCZjcnRjCj4gLT5iYXNlKTsK Ck1heWJlIGNoYW5nZSB0aGUgdHlwZSBvZiBhY3RpdmVfY3J0Y3MgYW5kIGVuYWJsZWRfY3J0Y3Mg dG8gdW5zaWduZWQsIGFzIHRoZXkgYXJlCmJlaW5nIHVzZWQgYXMgbWFza3MuCgpXaXRoIHRoZSBh Ym92ZSBhZGRyZXNzZWQsCgpSZXZpZXdlZC1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJh IDxjb25zZWx2YW4yQGdtYWlsLmNvbT4KCgo+ICAJCX0KPiAtCQlJOTE1X1NUQVRFX1dBUk4ocGxs LT5hY3RpdmUgIT0gYWN0aXZlX2NydGNzLAo+IC0JCSAgICAgInBsbCBhY3RpdmUgY3J0Y3MgbWlz bWF0Y2ggKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsCj4gLQkJICAgICBwbGwtPmFjdGl2ZSwg YWN0aXZlX2NydGNzKTsKPiAtCQlJOTE1X1NUQVRFX1dBUk4oaHdlaWdodDMyKHBsbC0+Y29uZmln LmNydGNfbWFzaykgIT0KPiBlbmFibGVkX2NydGNzLAo+IC0JCSAgICAgInBsbCBlbmFibGVkIGNy dGNzIG1pc21hdGNoIChleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLAo+IC0JCSAgICAgaHdlaWdo dDMyKHBsbC0+Y29uZmlnLmNydGNfbWFzayksIGVuYWJsZWRfY3J0Y3MpOwo+ICsJCUk5MTVfU1RB VEVfV0FSTihwbGwtPmFjdGl2ZV9tYXNrICE9IGFjdGl2ZV9jcnRjcywKPiArCQkgICAgICJwbGwg YWN0aXZlIGNydGNzIG1pc21hdGNoIChleHBlY3RlZCAleCwgZm91bmQgJXgpXG4iLAo+ICsJCSAg ICAgcGxsLT5hY3RpdmVfbWFzaywgYWN0aXZlX2NydGNzKTsKPiArCQlJOTE1X1NUQVRFX1dBUk4o cGxsLT5jb25maWcuY3J0Y19tYXNrICE9IGVuYWJsZWRfY3J0Y3MsCj4gKwkJICAgICAicGxsIGVu YWJsZWQgY3J0Y3MgbWlzbWF0Y2ggKGV4cGVjdGVkICV4LCBmb3VuZCAleClcbiIsCj4gKwkJICAg ICBwbGwtPmNvbmZpZy5jcnRjX21hc2ssIGVuYWJsZWRfY3J0Y3MpOwo+ICAKPiAgCQlJOTE1X1NU QVRFX1dBUk4ocGxsLT5vbiAmJiBtZW1jbXAoJnBsbC0+Y29uZmlnLmh3X3N0YXRlLAo+ICZkcGxs X2h3X3N0YXRlLAo+ICAJCQkJICAgICAgIHNpemVvZihkcGxsX2h3X3N0YXRlKSksCj4gQEAgLTE1 NzYwLDE0ICsxNTc2OSwxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdf c3RhdGUoc3RydWN0Cj4gZHJtX2RldmljZSAqZGV2KQo+ICAKPiAgCQlwbGwtPm9uID0gcGxsLT5n ZXRfaHdfc3RhdGUoZGV2X3ByaXYsIHBsbCwKPiAgCQkJCQkgICAgJnBsbC0+Y29uZmlnLmh3X3N0 YXRlKTsKPiAtCQlwbGwtPmFjdGl2ZSA9IDA7Cj4gKwkJcGxsLT5hY3RpdmVfbWFzayA9IDA7Cj4g IAkJcGxsLT5jb25maWcuY3J0Y19tYXNrID0gMDsKPiAgCQlmb3JfZWFjaF9pbnRlbF9jcnRjKGRl diwgY3J0Yykgewo+IC0JCQlpZiAoY3J0Yy0+YWN0aXZlICYmIGludGVsX2NydGNfdG9fc2hhcmVk X2RwbGwoY3J0YykKPiA9PSBwbGwpIHsKPiAtCQkJCXBsbC0+YWN0aXZlKys7Cj4gKwkJCWlmIChj cnRjLT5hY3RpdmUgJiYgaW50ZWxfY3J0Y190b19zaGFyZWRfZHBsbChjcnRjKQo+ID09IHBsbCkK PiAgCQkJCXBsbC0+Y29uZmlnLmNydGNfbWFzayB8PSAxIDw8IGNydGMtPnBpcGU7Cj4gLQkJCX0K PiAgCQl9Cj4gKwkJcGxsLT5hY3RpdmVfbWFzayA9IHBsbC0+Y29uZmlnLmNydGNfbWFzazsKPiAg Cj4gIAkJRFJNX0RFQlVHX0tNUygiJXMgaHcgc3RhdGUgcmVhZG91dDogY3J0Y19tYXNrIDB4JTA4 eCwgb24KPiAlaVxuIiwKPiAgCQkJICAgICAgcGxsLT5uYW1lLCBwbGwtPmNvbmZpZy5jcnRjX21h c2ssIHBsbC0+b24pOwo+IEBAIC0xNTg4OSw3ICsxNTg5Nyw3IEBAIGludGVsX21vZGVzZXRfc2V0 dXBfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWZvciAoaSA9IDA7IGkgPCBk ZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsOyBpKyspIHsKPiAgCQlzdHJ1Y3QgaW50ZWxfc2hhcmVk X2RwbGwgKnBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwo+ICAKPiAtCQlpZiAoIXBs bC0+b24gfHwgcGxsLT5hY3RpdmUpCj4gKwkJaWYgKCFwbGwtPm9uIHx8IHBsbC0+YWN0aXZlX21h c2spCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlEUk1fREVCVUdfS01TKCIlcyBlbmFibGVkIGJ1 dCBub3QgaW4gdXNlLCBkaXNhYmxpbmdcbiIsIHBsbAo+IC0+bmFtZSk7Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=