From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v4 3/8] drm/i915: Kill off intel_crtc->atomic.wait_vblank, v4. Date: Thu, 18 Feb 2016 14:22:52 +0100 Message-ID: <56C5C5AC.8080906@linux.intel.com> References: <1455108583-29227-1-git-send-email-maarten.lankhorst@linux.intel.com> <1455108583-29227-4-git-send-email-maarten.lankhorst@linux.intel.com> <1455744008.2576.41.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 31E306E34C for ; Thu, 18 Feb 2016 13:22:54 +0000 (UTC) In-Reply-To: <1455744008.2576.41.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Zanoni, Paulo R" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T3AgMTctMDItMTYgb20gMjI6MjAgc2NocmVlZiBaYW5vbmksIFBhdWxvIFI6Cj4gRW0gUXVhLCAy MDE2LTAyLTEwIMOgcyAxMzo0OSArMDEwMCwgTWFhcnRlbiBMYW5raG9yc3QgZXNjcmV2ZXU6Cj4+ IEN1cnJlbnRseSB3ZSBwZXJmb3JtIG91ciBvd24gd2FpdCBpbiBwb3N0X3BsYW5lX3VwZGF0ZSwK Pj4gYnV0IHRoZSBhdG9taWMgY29yZSBwZXJmb3JtcyBhbm90aGVyIG9uZSBpbiB3YWl0X2Zvcl92 YmxhbmtzLgo+PiBUaGlzIG1lYW5zIHRoYXQgMiB2YmxhbmtzIGFyZSBkb25lIHdoZW4gYSBmYiBp cyBjaGFuZ2VkLAo+PiB3aGljaCBpcyBhIGJpdCBvdmVya2lsbC4KPj4KPj4gTWVyZ2UgdGhlbSBi eSBjcmVhdGluZyBhIGhlbHBlciBmdW5jdGlvbiB0aGF0IHRha2VzIGEgY3J0YyBtYXNrCj4+IGZv ciB0aGUgcGxhbmVzIHRvIHdhaXQgb24uCj4+Cj4+IFRoZSBicm9hZHdlbGwgdmJsYW5rIHdvcmth cm91bmQgbWF5IGxvb2sgZ29uZSBlbnRpcmVseSBidXQgdGhpcyBpcwo+PiBub3QgdGhlIGNhc2Uu IHBpcGVfY29uZmlnLT53bV9jaGFuZ2VkIGlzIHNldCB0byB0cnVlCj4+IHdoZW4gYW55IHBsYW5l IGlzIHR1cm5lZCBvbiwgd2hpY2ggZm9yY2VzIGEgdmJsYW5rIHdhaXQuCj4+Cj4+IENoYW5nZXMg c2luY2UgdjE6Cj4+IC0gUmVtb3ZpbmcgdGhlIGRvdWJsZSB2Ymxhbmsgd2FpdCBvbiBicm9hZHdl bGwgbW92ZWQgdG8gaXRzIG93bgo+PiBjb21taXQuCj4+IENoYW5nZXMgc2luY2UgdjI6Cj4+IC0g TW92ZSBvdXQgUE9XRVJfRE9NQUlOX01PREVTRVQgaGFuZGxpbmcgdG8gaXRzIG93biBjb21taXQu Cj4+IENoYW5nZXMgc2luY2UgdjM6Cj4+IC0gRG8gbm90IHdhaXQgZm9yIHZibGFuayBvbiBsZWdh Y3kgY3Vyc29yIHVwZGF0ZXMuIChWaWxsZSkKPj4gLSBNb3ZlIGJyb2Fkd2VsbCB2Ymxhbmsgd29y a2Fyb3VuZCBjb21tZW50IHRvIHBhZ2VfZmxpcF9maW5pc2hlZC4KPj4gKFZpbGxlKQo+PiBDaGFu Z2VzIHNpbmNlIHY0Ogo+PiAtIENvbXBpbGUgZml4LCBsZWdhY3lfY3Vyc29yX2ZsaXAgLT4gKl91 cGRhdGUuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxh bmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXRvbWljLmMgIHwgIDEgKwo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgODYKPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMiArLQo+PiAgMyBmaWxlcyBj aGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPj4gaW5kZXggNDYyNWY4YTliYTEyLi44ZTU3OWE4NTA1 YWMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4+IEBAIC05Nyw2ICs5 Nyw3IEBAIGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK Pj4gIAljcnRjX3N0YXRlLT5kaXNhYmxlX2xwX3dtID0gZmFsc2U7Cj4+ICAJY3J0Y19zdGF0ZS0+ ZGlzYWJsZV9jeHNyID0gZmFsc2U7Cj4+ICAJY3J0Y19zdGF0ZS0+d21fY2hhbmdlZCA9IGZhbHNl Owo+PiArCWNydGNfc3RhdGUtPmZiX2NoYW5nZWQgPSBmYWxzZTsKPj4gIAo+PiAgCXJldHVybiAm Y3J0Y19zdGF0ZS0+YmFzZTsKPj4gIH0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+PiBpbmRleCA4MDRmMmM2ZjI2MGQuLjRkNGRkZGMxZjk3MCAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBAQCAtNDc4NSw5ICs0Nzg1LDYgQEAgc3RhdGlj IHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0Cj4+IGludGVsX2NydGMgKmNydGMp Cj4+ICAJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7Cj4+ICAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+PiAgCj4+IC0JaWYgKGF0b21pYy0+ d2FpdF92YmxhbmspCj4+IC0JCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXYsIGNydGMtPnBpcGUp Owo+PiAtCj4+ICAJaW50ZWxfZnJvbnRidWZmZXJfZmxpcChkZXYsIGF0b21pYy0+ZmJfYml0cyk7 Cj4+ICAKPj4gIAljcnRjLT53bS5jeHNyX2FsbG93ZWQgPSB0cnVlOwo+PiBAQCAtMTA5MDIsNiAr MTA4OTksMTIgQEAgc3RhdGljIGJvb2wgcGFnZV9mbGlwX2ZpbmlzaGVkKHN0cnVjdAo+PiBpbnRl bF9jcnRjICpjcnRjKQo+PiAgCQlyZXR1cm4gdHJ1ZTsKPj4gIAo+PiAgCS8qCj4+ICsJICogQkRX IHNpZ25hbHMgZmxpcCBkb25lIGltbWVkaWF0ZWx5IGlmIHRoZSBwbGFuZQo+PiArCSAqIGlzIGRp c2FibGVkLCBldmVuIGlmIHRoZSBwbGFuZSBlbmFibGUgaXMgYWxyZWFkeQo+PiArCSAqIGFybWVk IHRvIG9jY3VyIGF0IHRoZSBuZXh0IHZibGFuayA6KAo+PiArCSAqLwo+IEhhdmluZyB0aGlzIGNv bW1lbnQgaGVyZSBpcyBqdXN0Li4uIHdlaXJkLiBJIHRoaW5rIGl0IHJlbW92ZXMgYSBsb3Qgb2YK PiB0aGUgY29udGV4dCB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZS4KPgo+PiArCj4+ICsJLyoKPj4g IAkgKiBBIERTUFNVUkZMSVZFIGNoZWNrIGlzbid0IGVub3VnaCBpbiBjYXNlIHRoZSBtbWlvIGFu ZCBDUwo+PiBmbGlwcwo+PiAgCSAqIHVzZWQgdGhlIHNhbWUgYmFzZSBhZGRyZXNzLiBJbiB0aGF0 IGNhc2UgdGhlIG1taW8gZmxpcAo+PiBtaWdodAo+PiAgCSAqIGhhdmUgY29tcGxldGVkLCBidXQg dGhlIENTIGhhc24ndCBldmVuIGV4ZWN1dGVkIHRoZSBmbGlwCj4+IHlldC4KPj4gQEAgLTExNzc4 LDYgKzExNzgxLDkgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMoc3RydWN0 Cj4+IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+PiAgCWlmICghd2FzX3Zpc2libGUgJiYg IXZpc2libGUpCj4+ICAJCXJldHVybiAwOwo+PiAgCj4+ICsJaWYgKGZiICE9IG9sZF9wbGFuZV9z dGF0ZS0+YmFzZS5mYikKPj4gKwkJcGlwZV9jb25maWctPmZiX2NoYW5nZWQgPSB0cnVlOwo+PiAr Cj4+ICAJdHVybl9vZmYgPSB3YXNfdmlzaWJsZSAmJiAoIXZpc2libGUgfHwgbW9kZV9jaGFuZ2Vk KTsKPj4gIAl0dXJuX29uID0gdmlzaWJsZSAmJiAoIXdhc192aXNpYmxlIHx8IG1vZGVfY2hhbmdl ZCk7Cj4+ICAKPj4gQEAgLTExNzkzLDggKzExNzk5LDYgQEAgaW50IGludGVsX3BsYW5lX2F0b21p Y19jYWxjX2NoYW5nZXMoc3RydWN0Cj4+IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+PiAg Cj4+ICAJCS8qIG11c3QgZGlzYWJsZSBjeHNyIGFyb3VuZCBwbGFuZSBlbmFibGUvZGlzYWJsZSAq Lwo+PiAgCQlpZiAocGxhbmUtPnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKSB7Cj4+IC0J CQlpZiAoaXNfY3J0Y19lbmFibGVkKQo+PiAtCQkJCWludGVsX2NydGMtPmF0b21pYy53YWl0X3Zi bGFuayA9Cj4+IHRydWU7Cj4+ICAJCQlwaXBlX2NvbmZpZy0+ZGlzYWJsZV9jeHNyID0gdHJ1ZTsK Pj4gIAkJfQo+IFdlIGNvdWxkIGhhdmUga2lsbGVkIHRoZSBicmFja2V0cyBoZXJlIDopCkluZGVl ZCwgd2lsbCBkbyBzbyBpbiBuZXh0IHZlcnNpb24uCj4+ICAJfSBlbHNlIGlmIChpbnRlbF93bV9u ZWVkX3VwZGF0ZShwbGFuZSwgcGxhbmVfc3RhdGUpKSB7Cj4+IEBAIC0xMTgxMCwxNCArMTE4MTQs NiBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhzdHJ1Y3QKPj4gZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICAJCWludGVsX2NydGMtPmF0b21pYy5wb3N0X2VuYWJs ZV9wcmltYXJ5ID0gdHVybl9vbjsKPj4gIAkJaW50ZWxfY3J0Yy0+YXRvbWljLnVwZGF0ZV9mYmMg PSB0cnVlOwo+PiAgCj4+IC0JCS8qCj4+IC0JCSAqIEJEVyBzaWduYWxzIGZsaXAgZG9uZSBpbW1l ZGlhdGVseSBpZiB0aGUgcGxhbmUKPj4gLQkJICogaXMgZGlzYWJsZWQsIGV2ZW4gaWYgdGhlIHBs YW5lIGVuYWJsZSBpcyBhbHJlYWR5Cj4+IC0JCSAqIGFybWVkIHRvIG9jY3VyIGF0IHRoZSBuZXh0 IHZibGFuayA6KAo+PiAtCQkgKi8KPj4gLQkJaWYgKHR1cm5fb24gJiYgSVNfQlJPQURXRUxMKGRl dikpCj4+IC0JCQlpbnRlbF9jcnRjLT5hdG9taWMud2FpdF92YmxhbmsgPSB0cnVlOwo+PiAtCj4+ ICAJCWJyZWFrOwo+PiAgCWNhc2UgRFJNX1BMQU5FX1RZUEVfQ1VSU09SOgo+PiAgCQlicmVhazsK Pj4gQEAgLTExODMxLDEyICsxMTgyNywxMCBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNf Y2hhbmdlcyhzdHJ1Y3QKPj4gZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICAJCWlmIChJ U19JVllCUklER0UoZGV2KSAmJgo+PiAgCQkgICAgbmVlZHNfc2NhbGluZyh0b19pbnRlbF9wbGFu ZV9zdGF0ZShwbGFuZV9zdGF0ZSkpCj4+ICYmCj4+ICAJCSAgICAhbmVlZHNfc2NhbGluZyhvbGRf cGxhbmVfc3RhdGUpKSB7Cj4+IC0JCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpLQo+ Pj4gZGlzYWJsZV9scF93bSA9IHRydWU7Cj4+IC0JCX0gZWxzZSBpZiAodHVybl9vZmYgJiYgIW1v ZGVfY2hhbmdlZCkgewo+PiAtCQkJaW50ZWxfY3J0Yy0+YXRvbWljLndhaXRfdmJsYW5rID0gdHJ1 ZTsKPj4gKwkJCXBpcGVfY29uZmlnLT5kaXNhYmxlX2xwX3dtID0gdHJ1ZTsKPj4gKwkJfSBlbHNl IGlmICh0dXJuX29mZiAmJiAhbW9kZV9jaGFuZ2VkKQo+PiAgCQkJaW50ZWxfY3J0Yy0+YXRvbWlj LnVwZGF0ZV9zcHJpdGVfd2F0ZXJtYXJrcwo+PiB8PQo+PiAgCQkJCTEgPDwgaTsKPj4gLQkJfQo+ IFdlaXJkIGJyYWNrZXRzIGhlcmUuIEVpdGhlciBraWxsIG9uIGJvdGggc2lkZXMgb2YgdGhlIGlm IHN0YXRlbWVudCAodGhlCj4gcHJlZmVycmVkIHdheSksIG9yIG5vbmUuCj4KPiBBbHNvLCBzaG91 bGRuJ3Qgd2UgaW50cm9kdWNlIHBpcGVfY29uZmlnLT5zcHJpdGVfY2hhbmdlZD8gV2hhdCdzCj4g Z3VhcmFudGVlaW5nIHRoYXQgd2UncmUgZ29pbmcgdG8gZGVmaW5pdGVseSB3YWl0IGZvciBhIHZi bGFuayBkdXJpbmcKPiBzcHJpdGUgdXBkYXRlcz8gSSBsaWtlIGV4cGxpY2l0IGR1bWItcHJvb2Yg Y29kZSBpbnN0ZWFkIG9mIGltcGxpY2F0aW9ucwo+IHN1Y2ggYXMgIndlJ3JlIGRvaW5nIHdhaXRz IGR1cmluZyBzcHJpdGUgdXBkYXRlcyBiZWNhdXNlIHdoZW5ldmVyIHdlCj4gdXBkYXRlIHNwcml0 ZXMsIGEgc3BlY2lmaWMgdW5yZWxhdGVkIHZhcmlhYmxlIHRoYXQncyB1c2VkIGZvciBhCj4gZGlm ZmVyZW50IHB1cnBvc2UgZ2V0cyBzZXQgdG8gdHJ1ZSwgYW5kIHdlIGNoZWNrIGZvciB0aGlzIHZh cmlhYmxlIi4Kc3ByaXRlX2NoYW5nZWQgd291bGQgYmUgc2FtZSBhcyBmYl9jaGFuZ2VkICsgd21f Y2hhbmdlZCwgYW5kIHVwZGF0ZV9zcHJpdGVfd2F0ZXJtYXJrcyBnZXRzIHJlbW92ZWQgaW4gdGhp cyBzZXJpZXMKYmVjYXVzZSBub3RoaW5nIHVzZXMgaXQuCj4+ICAKPj4gIAkJYnJlYWs7Cj4+ICAJ fQo+PiBAQCAtMTMzNzAsNiArMTMzNjQsNDggQEAgc3RhdGljIGludAo+PiBpbnRlbF9hdG9taWNf cHJlcGFyZV9jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gIAlyZXR1cm4gcmV0Owo+ PiAgfQo+PiAgCj4+ICtzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfd2FpdF9mb3JfdmJsYW5rcyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiArCQkJCQkgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRl Cj4+ICpkZXZfcHJpdiwKPj4gKwkJCQkJICB1bnNpZ25lZCBjcnRjX21hc2spCj4+ICt7Cj4+ICsJ dW5zaWduZWQgbGFzdF92YmxhbmtfY291bnRbSTkxNV9NQVhfUElQRVNdOwo+PiArCWVudW0gcGlw ZSBwaXBlOwo+PiArCWludCByZXQ7Cj4+ICsKPj4gKwlpZiAoIWNydGNfbWFzaykKPj4gKwkJcmV0 dXJuOwo+PiArCj4+ICsJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkgewo+PiArCQlzdHJ1 Y3QgZHJtX2NydGMgKmNydGMgPSBkZXZfcHJpdi0KPj4+IHBpcGVfdG9fY3J0Y19tYXBwaW5nW3Bp cGVdOwo+PiArCj4+ICsJCWlmICghKCgxIDw8IHBpcGUpICYgY3J0Y19tYXNrKSkKPj4gKwkJCWNv bnRpbnVlOwo+PiArCj4+ICsJCXJldCA9IGRybV9jcnRjX3ZibGFua19nZXQoY3J0Yyk7Cj4+ICsJ CWlmIChyZXQgIT0gMCkgewo+PiArCQkJY3J0Y19tYXNrICY9IH4oMSA8PCBwaXBlKTsKPj4gKwkJ CWNvbnRpbnVlOwo+IFNob3VsZG4ndCB3ZSBEUk1fRVJST1IgaGVyZT8KV0FSTl9PTiBpcyBlbm91 Z2gsIHRoaXMgc2hvdWxkbid0IGV2ZXIgaGFwcGVuLgo+PiArCQl9Cj4+ICsKPj4gKwkJbGFzdF92 YmxhbmtfY291bnRbcGlwZV0gPQo+PiBkcm1fY3J0Y192YmxhbmtfY291bnQoY3J0Yyk7Cj4+ICsJ fQo+PiArCj4+ICsJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkgewo+PiArCQlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBkZXZfcHJpdi0KPj4+IHBpcGVfdG9fY3J0Y19tYXBwaW5nW3BpcGVd Owo+PiArCj4+ICsJCWlmICghKCgxIDw8IHBpcGUpICYgY3J0Y19tYXNrKSkKPj4gKwkJCWNvbnRp bnVlOwo+PiArCj4+ICsJCXdhaXRfZXZlbnRfdGltZW91dChkZXYtPnZibGFua1twaXBlXS5xdWV1 ZSwKPj4gKwkJCQlsYXN0X3ZibGFua19jb3VudFtwaXBlXSAhPQo+PiArCQkJCQlkcm1fY3J0Y192 YmxhbmtfY291bnQoY3J0YyksCj4+ICsJCQkJbXNlY3NfdG9famlmZmllcyg1MCkpOwo+IEFsc28g bWF5YmUgRFJNX0VSUk9SIGluIGNhc2Ugd2UgaGl0IHRoZSB0aW1lb3V0Pwo+Cj4gSSBrbm93IHRo ZSBvcmlnaW5hbCBjb2RlIGRvZXNuJ3QgaGF2ZSB0aGlzLCBidXQgbm93IHRoYXQgd2UncmUgZG9p bmcgb3IKPiBvd24gdGhpbmcsIHdlIG1heSBzY3JlYW0gaW4gdW5leHBlY3RlZCBjYXNlcy4KSSds bCBtYWtlIGl0IGEgV0FSTl9PTiwgc2hvdWxkbid0IGhhcHBlbi4KPj4gKwo+PiArCQlkcm1fY3J0 Y192YmxhbmtfcHV0KGNydGMpOwo+PiArCX0KPj4gK30KPj4gKwo+PiArCj4gVHdvIG5ld2xpbmVz IDopCkluZGVlZCEKPj4gIC8qKgo+PiAgICogaW50ZWxfYXRvbWljX2NvbW1pdCAtIGNvbW1pdCB2 YWxpZGF0ZWQgc3RhdGUgb2JqZWN0Cj4+ICAgKiBAZGV2OiBEUk0gZGV2aWNlCj4+IEBAIC0xMzM5 Nyw2ICsxMzQzMyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QKPj4g ZHJtX2RldmljZSAqZGV2LAo+PiAgCWludCByZXQgPSAwLCBpOwo+PiAgCWJvb2wgaHdfY2hlY2sg PSBpbnRlbF9zdGF0ZS0+bW9kZXNldDsKPj4gIAl1bnNpZ25lZCBsb25nIHB1dF9kb21haW5zW0k5 MTVfTUFYX1BJUEVTXSA9IHt9Owo+PiArCXVuc2lnbmVkIGNydGNfdmJsYW5rX21hc2sgPSAwOwo+ PiAgCj4+ICAJcmV0ID0gaW50ZWxfYXRvbWljX3ByZXBhcmVfY29tbWl0KGRldiwgc3RhdGUsIGFz eW5jKTsKPj4gIAlpZiAocmV0KSB7Cj4+IEBAIC0xMzQ3MCw4ICsxMzUwNyw5IEBAIHN0YXRpYyBp bnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QKPj4gZHJtX2RldmljZSAqZGV2LAo+PiAgCWZv cl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKPj4gIAkJ c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+PiAg CQlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKTsKPj4gLQkJYm9vbCB1 cGRhdGVfcGlwZSA9ICFtb2Rlc2V0ICYmCj4+IC0JCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMt PnN0YXRlKS0KPj4+IHVwZGF0ZV9waXBlOwo+PiArCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcgPQo+PiArCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4+ ICsJCWJvb2wgdXBkYXRlX3BpcGUgPSAhbW9kZXNldCAmJiBwaXBlX2NvbmZpZy0KPj4+IHVwZGF0 ZV9waXBlOwo+PiAgCj4+ICAJCWlmIChtb2Rlc2V0ICYmIGNydGMtPnN0YXRlLT5hY3RpdmUpIHsK Pj4gIAkJCXVwZGF0ZV9zY2FubGluZV9vZmZzZXQodG9faW50ZWxfY3J0YyhjcnRjKSk7Cj4+IEBA IC0xMzQ4OCwxNCArMTM1MjYsMjAgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0 cnVjdAo+PiBkcm1fZGV2aWNlICpkZXYsCj4+ICAJCSAgICAoY3J0Yy0+c3RhdGUtPnBsYW5lc19j aGFuZ2VkIHx8IHVwZGF0ZV9waXBlKSkKPj4gIAkJCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9w bGFuZXNfb25fY3J0YyhjcnRjCj4+IF9zdGF0ZSk7Cj4+ICAKPj4gLQkJaW50ZWxfcG9zdF9wbGFu ZV91cGRhdGUoaW50ZWxfY3J0Yyk7Cj4+ICsJCWlmIChwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUg JiYKPj4gKwkJICAgIChwaXBlX2NvbmZpZy0+d21fY2hhbmdlZCB8fCBwaXBlX2NvbmZpZy0KPj4+ IGRpc2FibGVfY3hzciB8fAo+PiArCQkgICAgIHBpcGVfY29uZmlnLT5mYl9jaGFuZ2VkKSkKPiBT byB0aGUgd21fY2hhbmdlZCBpcyBqdXN0IGZvciB0aGUgQkRXIHdvcmthcm91bmQgKyBzcHJpdGVz PyBXaGF0IGFib3V0Cj4gdGhpcyBkaXNhYmxlX2N4c3IsIHdoeSBpcyBpdCBoZXJlPyBBbHNvIHNl ZSBteSBjb21tZW50IGFib3ZlIGFib3V0Cj4gc3ByaXRlX2NoYW5nZWQuIE1heWJlIHdlIG5lZWQg c29tZSBjb21tZW50cyBoZXJlIHRvIGV4cGxhaW4gdGhlIGNvbXBsZXgKPiBjaGVja3MuCk5vIGl0 J3Mgd2FpdGluZyBmb3IgYSB2YmxhbmsgZm9yIHBvc3RfcGxhbmVfdXBkYXRlIHNvIGFsbCBvcHRp bWl6ZWQgd20gdmFsdWVzCmNhbiBnZXQgd3JpdHRlbiwgaXQncyBub3QganVzdCBmb3IgdGhlIEJE VyB3b3JrYXJvdW5kLgpJdCBqdXN0IGhhcHBlbnMgdG8gYmUgdGhhdCB0aGUgQkRXIHcvYSBnZXRz IGFwcGxpZWQgdG9vIGFzIGEgc2lkZSBlZmZlY3QuCj4+ICsJCQljcnRjX3ZibGFua19tYXNrIHw9 IDEgPDwgaTsKPj4gIAl9Cj4+ICAKPj4gIAkvKiBGSVhNRTogYWRkIHN1YnBpeGVsIG9yZGVyICov Cj4+ICAKPj4gLQlkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl92YmxhbmtzKGRldiwgc3RhdGUp Owo+PiArCWlmICghc3RhdGUtPmxlZ2FjeV9jdXJzb3JfdXBkYXRlKQo+PiArCQlpbnRlbF9hdG9t aWNfd2FpdF9mb3JfdmJsYW5rcyhkZXYsIGRldl9wcml2LAo+PiBjcnRjX3ZibGFua19tYXNrKTsK Pj4gIAo+PiAgCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUs IGkpIHsKPj4gKwkJaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUodG9faW50ZWxfY3J0YyhjcnRjKSk7 Cj4+ICsKPj4gIAkJaWYgKHB1dF9kb21haW5zW2ldKQo+PiAgCQkJbW9kZXNldF9wdXRfcG93ZXJf ZG9tYWlucyhkZXZfcHJpdiwKPj4gcHV0X2RvbWFpbnNbaV0pOwo+PiAgCX0KPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPj4gaW5kZXggMzM1ZTZiMjRiMGJjLi5lOTExYzg2Zjg3M2IgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IEBAIC0zNzksNiArMzc5LDcgQEAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgewo+PiAgCWJvb2wgdXBkYXRlX3BpcGU7IC8qIGNhbiBhIGZh c3QgbW9kZXNldCBiZSBwZXJmb3JtZWQ/ICovCj4+ICAJYm9vbCBkaXNhYmxlX2N4c3I7Cj4+ICAJ Ym9vbCB3bV9jaGFuZ2VkOyAvKiB3YXRlcm1hcmtzIGFyZSB1cGRhdGVkICovCj4+ICsJYm9vbCBm Yl9jaGFuZ2VkOyAvKiBmYiBvbiBhbnkgb2YgdGhlIHBsYW5lcyBpcyBjaGFuZ2VkICovCj4+ICAK Pj4gIAkvKiBQaXBlIHNvdXJjZSBzaXplIChpZS4gcGFuZWwgZml0dGVyIGlucHV0IHNpemUpCj4+ ICAJICogQWxsIHBsYW5lcyB3aWxsIGJlIHBvc2l0aW9uZWQgaW5zaWRlIHRoaXMgc3BhY2UsCj4+ IEBAIC01NDcsNyArNTQ4LDYgQEAgc3RydWN0IGludGVsX2NydGNfYXRvbWljX2NvbW1pdCB7Cj4+ ICAKPj4gIAkvKiBTbGVlcGFibGUgb3BlcmF0aW9ucyB0byBwZXJmb3JtIGFmdGVyIGNvbW1pdCAq Lwo+PiAgCXVuc2lnbmVkIGZiX2JpdHM7Cj4+IC0JYm9vbCB3YWl0X3ZibGFuazsKPiBPbmUgb2Yg dGhlIHRoaW5ncyB0aGF0IEkgbGlrZSBhYm91dCB0aGUgY29kZSB3aXRob3V0IHRoaXMgcGF0Y2gg aXMgdGhhdAo+IGl0J3MgdmVyeSBleHBsaWNpdCBvbiB3aGVuIHdlIG5lZWQgdG8gd2FpdCBmb3Ig dmJsYW5rcyAoZXhjZXB0IGZvciB0aGUKPiBwcm9ibGVtIHdoZXJlIHdlIHdhaXQgdHdpY2UpLiBU aGUgbmV3IGNvZGUgaXMgbm90IGFzIGVhc3kgdG8KPiByZWFkL3VuZGVyc3RhbmQgYXMgdGhlIG9s ZCBvbmUuIFRoaXMgY29tbWVudCBpcyBzaW1pbGFyIHRvIHRoZSBvbmUgSQo+IG1hZGUgaW4gcGF0 Y2ggNjogSSdtIG5vdCBzdXJlIGlmIHNhY3JpZmljaW5nIHJlYWRhYmlsaXR5IGlzIHdvcnRoIGl0 Lgo+Cj4gSSB3b25kZXIgdGhhdCBtYXliZSB0aGUgY2xlYW5lc3QgZml4IHRvIHRoZSAid2UncmUg d2FpdGluZyAyIHZibGFua3MiCj4gcHJvYmxlbSBpcyB0byBqdXN0IHJlbW92ZSB0aGUgY2FsbCB0 bwo+IGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFua3MoKSwgd2hpY2ggd291bGQgYmUg YSBmaXJzdCBwYXRjaC4KPiBUaGVuIHdlJ2QgaGF2ZSBhIHNlY29uZCBwYXRjaCBpbnRyb2R1Y2lu Zwo+IGludGVsX2F0b21pY193YWl0X2Zvcl92YmxhbmtzKCkgZm9yIHRoZSAid2FpdCBmb3IgYWxs IHZibGFua3MgYXQgdGhlCj4gc2FtZSB0aW1lIiBvcHRpbWl6YXRpb24sIGFuZCB0aGVuIGEgbGFz dCBjb21taXQgcG9zc2libHkgcmVwbGFjaW5nCj4gY29tbWl0LT53YWl0X3ZibGFuayBmb3Igc3Rh dGUtPmZiX2NoYW5nZWQuIEp1c3QgYW4gaWRlYSwgbm90IGEgcmVxdWVzdC4KVGhlcmUgd2VyZSBj YXNlcyBpbiB3aGljaCB0aGUgYXRvbWljIGhlbHBlciB3b3VsZCB3YWl0IGZvciB2YmxhbmtzIHdo aWNoCndvdWxkbid0IHRyaWdnZXIgYW55IG9mIHRoZSBvdGhlciBjaGFuZ2VzLCBzbyBpdCBjYW4n dCBiZSBibGluZGx5IHJlbW92ZWQuIE1vc3RseSB3aGVuCnVwZGF0aW5nIGEgcGxhbmUgd2l0aCBh IHNhbWUgc2l6ZWQgZmIuCldhaXQgZm9yIHZibGFuayBpcyByZXF1aXJlZCBmb3IgdW5waW5uaW5n LCBpdCB3b3VsZCBiZSBiYWQgaWYgdGhlIGN1cnJlbnQgZmIgaXMgdW5waW5uZWQuCgo+IEknbGwg d2FpdCBmb3IgeW91ciBhbnN3ZXJzIGJlZm9yZSByZWFjaGluZyBhbnkgY29uY2x1c2lvbnMgb2Yg d2hhdCBJCj4gdGhpbmsgc2hvdWxkIGJlIGRvbmUsIHNpbmNlIEkgbWF5IGJlIG1pc3VuZGVyc3Rh bmRpbmcgc29tZXRoaW5nLgpJIHdhbnQgdG8gY2FsbCBhbGwgcG9zdCBmbGlwIHdvcmsgc2NoZWR1 bGVkIGxhdGVyIG9uIHNvIGl0IGhhcHBlbnMgYWZ0ZXIgdGhlIG5leHQgdmJsYW5rLgpUaGF0IHdp bGwgcmVtb3ZlIGFsbCBjb25mdXNpb24gb24gd2hlbiBhIHZibGFuayBpcyByZXF1aXJlZCwgYmVj YXVzZSBhbGwgcG9zdF9wbGFuZV91cGRhdGUKYW5kIHVucGluIHdpbGwgYWx3YXlzIHdhaXQgdW50 aWwgbmV4dCB2YmxhbmsuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK