From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH v4 3/8] drm/i915: Kill off intel_crtc->atomic.wait_vblank, v4. Date: Wed, 17 Feb 2016 21:20:10 +0000 Message-ID: <1455744008.2576.41.camel@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 6FC156E006 for ; Wed, 17 Feb 2016 21:20:12 +0000 (UTC) In-Reply-To: <1455108583-29227-4-git-send-email-maarten.lankhorst@linux.intel.com> Content-Language: en-US Content-ID: <13FAD96CDE5E6A48826A587E34E3200C@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "intel-gfx@lists.freedesktop.org" , "maarten.lankhorst@linux.intel.com" List-Id: intel-gfx@lists.freedesktop.org RW0gUXVhLCAyMDE2LTAyLTEwIMOgcyAxMzo0OSArMDEwMCwgTWFhcnRlbiBMYW5raG9yc3QgZXNj cmV2ZXU6DQo+IEN1cnJlbnRseSB3ZSBwZXJmb3JtIG91ciBvd24gd2FpdCBpbiBwb3N0X3BsYW5l X3VwZGF0ZSwNCj4gYnV0IHRoZSBhdG9taWMgY29yZSBwZXJmb3JtcyBhbm90aGVyIG9uZSBpbiB3 YWl0X2Zvcl92YmxhbmtzLg0KPiBUaGlzIG1lYW5zIHRoYXQgMiB2YmxhbmtzIGFyZSBkb25lIHdo ZW4gYSBmYiBpcyBjaGFuZ2VkLA0KPiB3aGljaCBpcyBhIGJpdCBvdmVya2lsbC4NCj4gDQo+IE1l cmdlIHRoZW0gYnkgY3JlYXRpbmcgYSBoZWxwZXIgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIGNydGMg bWFzaw0KPiBmb3IgdGhlIHBsYW5lcyB0byB3YWl0IG9uLg0KPiANCj4gVGhlIGJyb2Fkd2VsbCB2 Ymxhbmsgd29ya2Fyb3VuZCBtYXkgbG9vayBnb25lIGVudGlyZWx5IGJ1dCB0aGlzIGlzDQo+IG5v dCB0aGUgY2FzZS4gcGlwZV9jb25maWctPndtX2NoYW5nZWQgaXMgc2V0IHRvIHRydWUNCj4gd2hl biBhbnkgcGxhbmUgaXMgdHVybmVkIG9uLCB3aGljaCBmb3JjZXMgYSB2Ymxhbmsgd2FpdC4NCj4g DQo+IENoYW5nZXMgc2luY2UgdjE6DQo+IC0gUmVtb3ZpbmcgdGhlIGRvdWJsZSB2Ymxhbmsgd2Fp dCBvbiBicm9hZHdlbGwgbW92ZWQgdG8gaXRzIG93bg0KPiBjb21taXQuDQo+IENoYW5nZXMgc2lu Y2UgdjI6DQo+IC0gTW92ZSBvdXQgUE9XRVJfRE9NQUlOX01PREVTRVQgaGFuZGxpbmcgdG8gaXRz IG93biBjb21taXQuDQo+IENoYW5nZXMgc2luY2UgdjM6DQo+IC0gRG8gbm90IHdhaXQgZm9yIHZi bGFuayBvbiBsZWdhY3kgY3Vyc29yIHVwZGF0ZXMuIChWaWxsZSkNCj4gLSBNb3ZlIGJyb2Fkd2Vs bCB2Ymxhbmsgd29ya2Fyb3VuZCBjb21tZW50IHRvIHBhZ2VfZmxpcF9maW5pc2hlZC4NCj4gKFZp bGxlKQ0KPiBDaGFuZ2VzIHNpbmNlIHY0Og0KPiAtIENvbXBpbGUgZml4LCBsZWdhY3lfY3Vyc29y X2ZsaXAgLT4gKl91cGRhdGUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3Jz dCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPg0KPiAtLS0NCj4gwqBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuY8KgwqB8wqDCoDEgKw0KPiDCoGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDg2DQo+ICsrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLQ0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5owqDCoMKg wqDCoHzCoMKgMiArLQ0KPiDCoDMgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgMjIg ZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYXRvbWljLmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYw0KPiBp bmRleCA0NjI1ZjhhOWJhMTIuLjhlNTc5YTg1MDVhYyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXRvbWljLmMNCj4gQEAgLTk3LDYgKzk3LDcgQEAgaW50ZWxfY3J0Y19kdXBsaWNhdGVf c3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQ0KPiDCoAljcnRjX3N0YXRlLT5kaXNhYmxlX2xw X3dtID0gZmFsc2U7DQo+IMKgCWNydGNfc3RhdGUtPmRpc2FibGVfY3hzciA9IGZhbHNlOw0KPiDC oAljcnRjX3N0YXRlLT53bV9jaGFuZ2VkID0gZmFsc2U7DQo+ICsJY3J0Y19zdGF0ZS0+ZmJfY2hh bmdlZCA9IGZhbHNlOw0KPiDCoA0KPiDCoAlyZXR1cm4gJmNydGNfc3RhdGUtPmJhc2U7DQo+IMKg fQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQo+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQo+IGluZGV4IDgwNGYyYzZm MjYwZC4uNGQ0ZGRkYzFmOTcwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jDQo+IEBAIC00Nzg1LDkgKzQ3ODUsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3N0X3BsYW5l X3VwZGF0ZShzdHJ1Y3QNCj4gaW50ZWxfY3J0YyAqY3J0YykNCj4gwqAJCXRvX2ludGVsX2NydGNf c3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7DQo+IMKgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5iYXNlLmRldjsNCj4gwqANCj4gLQlpZiAoYXRvbWljLT53YWl0X3ZibGFuaykNCj4gLQkJ aW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwgY3J0Yy0+cGlwZSk7DQo+IC0NCj4gwqAJaW50ZWxf ZnJvbnRidWZmZXJfZmxpcChkZXYsIGF0b21pYy0+ZmJfYml0cyk7DQo+IMKgDQo+IMKgCWNydGMt PndtLmN4c3JfYWxsb3dlZCA9IHRydWU7DQo+IEBAIC0xMDkwMiw2ICsxMDg5OSwxMiBAQCBzdGF0 aWMgYm9vbCBwYWdlX2ZsaXBfZmluaXNoZWQoc3RydWN0DQo+IGludGVsX2NydGMgKmNydGMpDQo+ IMKgCQlyZXR1cm4gdHJ1ZTsNCj4gwqANCj4gwqAJLyoNCj4gKwnCoCogQkRXIHNpZ25hbHMgZmxp cCBkb25lIGltbWVkaWF0ZWx5IGlmIHRoZSBwbGFuZQ0KPiArCcKgKiBpcyBkaXNhYmxlZCwgZXZl biBpZiB0aGUgcGxhbmUgZW5hYmxlIGlzIGFscmVhZHkNCj4gKwnCoCogYXJtZWQgdG8gb2NjdXIg YXQgdGhlIG5leHQgdmJsYW5rIDooDQo+ICsJwqAqLw0KDQpIYXZpbmcgdGhpcyBjb21tZW50IGhl cmUgaXMganVzdC4uLiB3ZWlyZC4gSSB0aGluayBpdCByZW1vdmVzIGEgbG90IG9mDQp0aGUgY29u dGV4dCB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZS4NCg0KPiArDQo+ICsJLyoNCj4gwqAJwqAqIEEg RFNQU1VSRkxJVkUgY2hlY2sgaXNuJ3QgZW5vdWdoIGluIGNhc2UgdGhlIG1taW8gYW5kIENTDQo+ IGZsaXBzDQo+IMKgCcKgKiB1c2VkIHRoZSBzYW1lIGJhc2UgYWRkcmVzcy4gSW4gdGhhdCBjYXNl IHRoZSBtbWlvIGZsaXANCj4gbWlnaHQNCj4gwqAJwqAqIGhhdmUgY29tcGxldGVkLCBidXQgdGhl IENTIGhhc24ndCBldmVuIGV4ZWN1dGVkIHRoZSBmbGlwDQo+IHlldC4NCj4gQEAgLTExNzc4LDYg KzExNzgxLDkgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMoc3RydWN0DQo+ IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLA0KPiDCoAlpZiAoIXdhc192aXNpYmxlICYmICF2 aXNpYmxlKQ0KPiDCoAkJcmV0dXJuIDA7DQo+IMKgDQo+ICsJaWYgKGZiICE9IG9sZF9wbGFuZV9z dGF0ZS0+YmFzZS5mYikNCj4gKwkJcGlwZV9jb25maWctPmZiX2NoYW5nZWQgPSB0cnVlOw0KPiAr DQo+IMKgCXR1cm5fb2ZmID0gd2FzX3Zpc2libGUgJiYgKCF2aXNpYmxlIHx8IG1vZGVfY2hhbmdl ZCk7DQo+IMKgCXR1cm5fb24gPSB2aXNpYmxlICYmICghd2FzX3Zpc2libGUgfHwgbW9kZV9jaGFu Z2VkKTsNCj4gwqANCj4gQEAgLTExNzkzLDggKzExNzk5LDYgQEAgaW50IGludGVsX3BsYW5lX2F0 b21pY19jYWxjX2NoYW5nZXMoc3RydWN0DQo+IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLA0K PiDCoA0KPiDCoAkJLyogbXVzdCBkaXNhYmxlIGN4c3IgYXJvdW5kIHBsYW5lIGVuYWJsZS9kaXNh YmxlICovDQo+IMKgCQlpZiAocGxhbmUtPnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKSB7 DQo+IC0JCQlpZiAoaXNfY3J0Y19lbmFibGVkKQ0KPiAtCQkJCWludGVsX2NydGMtPmF0b21pYy53 YWl0X3ZibGFuayA9DQo+IHRydWU7DQo+IMKgCQkJcGlwZV9jb25maWctPmRpc2FibGVfY3hzciA9 IHRydWU7DQo+IMKgCQl9DQoNCldlIGNvdWxkIGhhdmUga2lsbGVkIHRoZSBicmFja2V0cyBoZXJl IDopDQoNCj4gwqAJfSBlbHNlIGlmIChpbnRlbF93bV9uZWVkX3VwZGF0ZShwbGFuZSwgcGxhbmVf c3RhdGUpKSB7DQo+IEBAIC0xMTgxMCwxNCArMTE4MTQsNiBAQCBpbnQgaW50ZWxfcGxhbmVfYXRv bWljX2NhbGNfY2hhbmdlcyhzdHJ1Y3QNCj4gZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsDQo+ IMKgCQlpbnRlbF9jcnRjLT5hdG9taWMucG9zdF9lbmFibGVfcHJpbWFyeSA9IHR1cm5fb247DQo+ IMKgCQlpbnRlbF9jcnRjLT5hdG9taWMudXBkYXRlX2ZiYyA9IHRydWU7DQo+IMKgDQo+IC0JCS8q DQo+IC0JCcKgKiBCRFcgc2lnbmFscyBmbGlwIGRvbmUgaW1tZWRpYXRlbHkgaWYgdGhlIHBsYW5l DQo+IC0JCcKgKiBpcyBkaXNhYmxlZCwgZXZlbiBpZiB0aGUgcGxhbmUgZW5hYmxlIGlzIGFscmVh ZHkNCj4gLQkJwqAqIGFybWVkIHRvIG9jY3VyIGF0IHRoZSBuZXh0IHZibGFuayA6KA0KPiAtCQnC oCovDQo+IC0JCWlmICh0dXJuX29uICYmIElTX0JST0FEV0VMTChkZXYpKQ0KPiAtCQkJaW50ZWxf Y3J0Yy0+YXRvbWljLndhaXRfdmJsYW5rID0gdHJ1ZTsNCj4gLQ0KPiDCoAkJYnJlYWs7DQo+IMKg CWNhc2UgRFJNX1BMQU5FX1RZUEVfQ1VSU09SOg0KPiDCoAkJYnJlYWs7DQo+IEBAIC0xMTgzMSwx MiArMTE4MjcsMTAgQEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMoc3RydWN0 DQo+IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLA0KPiDCoAkJaWYgKElTX0lWWUJSSURHRShk ZXYpICYmDQo+IMKgCQnCoMKgwqDCoG5lZWRzX3NjYWxpbmcodG9faW50ZWxfcGxhbmVfc3RhdGUo cGxhbmVfc3RhdGUpKQ0KPiAmJg0KPiDCoAkJwqDCoMKgwqAhbmVlZHNfc2NhbGluZyhvbGRfcGxh bmVfc3RhdGUpKSB7DQo+IC0JCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpLQ0KPiA+ ZGlzYWJsZV9scF93bSA9IHRydWU7DQo+IC0JCX0gZWxzZSBpZiAodHVybl9vZmYgJiYgIW1vZGVf Y2hhbmdlZCkgew0KPiAtCQkJaW50ZWxfY3J0Yy0+YXRvbWljLndhaXRfdmJsYW5rID0gdHJ1ZTsN Cj4gKwkJCXBpcGVfY29uZmlnLT5kaXNhYmxlX2xwX3dtID0gdHJ1ZTsNCj4gKwkJfSBlbHNlIGlm ICh0dXJuX29mZiAmJiAhbW9kZV9jaGFuZ2VkKQ0KPiDCoAkJCWludGVsX2NydGMtPmF0b21pYy51 cGRhdGVfc3ByaXRlX3dhdGVybWFya3MNCj4gfD0NCj4gwqAJCQkJMSA8PCBpOw0KPiAtCQl9DQoN CldlaXJkIGJyYWNrZXRzIGhlcmUuIEVpdGhlciBraWxsIG9uIGJvdGggc2lkZXMgb2YgdGhlIGlm IHN0YXRlbWVudCAodGhlDQpwcmVmZXJyZWQgd2F5KSwgb3Igbm9uZS4NCg0KQWxzbywgc2hvdWxk bid0IHdlIGludHJvZHVjZSBwaXBlX2NvbmZpZy0+c3ByaXRlX2NoYW5nZWQ/IFdoYXQncw0KZ3Vh cmFudGVlaW5nIHRoYXQgd2UncmUgZ29pbmcgdG8gZGVmaW5pdGVseSB3YWl0IGZvciBhIHZibGFu ayBkdXJpbmcNCnNwcml0ZSB1cGRhdGVzPyBJIGxpa2UgZXhwbGljaXQgZHVtYi1wcm9vZiBjb2Rl IGluc3RlYWQgb2YgaW1wbGljYXRpb25zDQpzdWNoIGFzICJ3ZSdyZSBkb2luZyB3YWl0cyBkdXJp bmcgc3ByaXRlIHVwZGF0ZXMgYmVjYXVzZSB3aGVuZXZlciB3ZQ0KdXBkYXRlIHNwcml0ZXMsIGEg c3BlY2lmaWMgdW5yZWxhdGVkIHZhcmlhYmxlIHRoYXQncyB1c2VkIGZvciBhDQpkaWZmZXJlbnQg cHVycG9zZSBnZXRzIHNldCB0byB0cnVlLCBhbmQgd2UgY2hlY2sgZm9yIHRoaXMgdmFyaWFibGUi Lg0KDQo+IMKgDQo+IMKgCQlicmVhazsNCj4gwqAJfQ0KPiBAQCAtMTMzNzAsNiArMTMzNjQsNDgg QEAgc3RhdGljIGludA0KPiBpbnRlbF9hdG9taWNfcHJlcGFyZV9jb21taXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwNCj4gwqAJcmV0dXJuIHJldDsNCj4gwqB9DQo+IMKgDQo+ICtzdGF0aWMgdm9p ZCBpbnRlbF9hdG9taWNfd2FpdF9mb3JfdmJsYW5rcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0K PiArCQkJCQnCoMKgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUNCj4gKmRldl9wcml2LA0KPiArCQkJ CQnCoMKgdW5zaWduZWQgY3J0Y19tYXNrKQ0KPiArew0KPiArCXVuc2lnbmVkIGxhc3RfdmJsYW5r X2NvdW50W0k5MTVfTUFYX1BJUEVTXTsNCj4gKwllbnVtIHBpcGUgcGlwZTsNCj4gKwlpbnQgcmV0 Ow0KPiArDQo+ICsJaWYgKCFjcnRjX21hc2spDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCWZvcl9l YWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpIHsNCj4gKwkJc3RydWN0IGRybV9jcnRjICpjcnRjID0g ZGV2X3ByaXYtDQo+ID5waXBlX3RvX2NydGNfbWFwcGluZ1twaXBlXTsNCj4gKw0KPiArCQlpZiAo ISgoMSA8PCBwaXBlKSAmIGNydGNfbWFzaykpDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiArCQly ZXQgPSBkcm1fY3J0Y192YmxhbmtfZ2V0KGNydGMpOw0KPiArCQlpZiAocmV0ICE9IDApIHsNCj4g KwkJCWNydGNfbWFzayAmPSB+KDEgPDwgcGlwZSk7DQo+ICsJCQljb250aW51ZTsNCg0KU2hvdWxk bid0IHdlIERSTV9FUlJPUiBoZXJlPw0KDQo+ICsJCX0NCj4gKw0KPiArCQlsYXN0X3ZibGFua19j b3VudFtwaXBlXSA9DQo+IGRybV9jcnRjX3ZibGFua19jb3VudChjcnRjKTsNCj4gKwl9DQo+ICsN Cj4gKwlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBwaXBlKSB7DQo+ICsJCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IGRldl9wcml2LQ0KPiA+cGlwZV90b19jcnRjX21hcHBpbmdbcGlwZV07DQo+ICsN Cj4gKwkJaWYgKCEoKDEgPDwgcGlwZSkgJiBjcnRjX21hc2spKQ0KPiArCQkJY29udGludWU7DQo+ ICsNCj4gKwkJd2FpdF9ldmVudF90aW1lb3V0KGRldi0+dmJsYW5rW3BpcGVdLnF1ZXVlLA0KPiAr CQkJCWxhc3RfdmJsYW5rX2NvdW50W3BpcGVdICE9DQo+ICsJCQkJCWRybV9jcnRjX3ZibGFua19j b3VudChjcnRjKSwNCj4gKwkJCQltc2Vjc190b19qaWZmaWVzKDUwKSk7DQoNCkFsc28gbWF5YmUg RFJNX0VSUk9SIGluIGNhc2Ugd2UgaGl0IHRoZSB0aW1lb3V0Pw0KDQpJIGtub3cgdGhlIG9yaWdp bmFsIGNvZGUgZG9lc24ndCBoYXZlIHRoaXMsIGJ1dCBub3cgdGhhdCB3ZSdyZSBkb2luZyBvcg0K b3duIHRoaW5nLCB3ZSBtYXkgc2NyZWFtIGluIHVuZXhwZWN0ZWQgY2FzZXMuDQoNCj4gKw0KPiAr CQlkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMpOw0KPiArCX0NCj4gK30NCj4gKw0KPiArDQoNClR3 byBuZXdsaW5lcyA6KQ0KDQo+IMKgLyoqDQo+IMKgICogaW50ZWxfYXRvbWljX2NvbW1pdCAtIGNv bW1pdCB2YWxpZGF0ZWQgc3RhdGUgb2JqZWN0DQo+IMKgICogQGRldjogRFJNIGRldmljZQ0KPiBA QCAtMTMzOTcsNiArMTM0MzMsNyBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3Ry dWN0DQo+IGRybV9kZXZpY2UgKmRldiwNCj4gwqAJaW50IHJldCA9IDAsIGk7DQo+IMKgCWJvb2wg aHdfY2hlY2sgPSBpbnRlbF9zdGF0ZS0+bW9kZXNldDsNCj4gwqAJdW5zaWduZWQgbG9uZyBwdXRf ZG9tYWluc1tJOTE1X01BWF9QSVBFU10gPSB7fTsNCj4gKwl1bnNpZ25lZCBjcnRjX3ZibGFua19t YXNrID0gMDsNCj4gwqANCj4gwqAJcmV0ID0gaW50ZWxfYXRvbWljX3ByZXBhcmVfY29tbWl0KGRl diwgc3RhdGUsIGFzeW5jKTsNCj4gwqAJaWYgKHJldCkgew0KPiBAQCAtMTM0NzAsOCArMTM1MDcs OSBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0DQo+IGRybV9kZXZpY2Ug KmRldiwNCj4gwqAJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0 ZSwgaSkgew0KPiDCoAkJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGMpOw0KPiDCoAkJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0 ZSk7DQo+IC0JCWJvb2wgdXBkYXRlX3BpcGUgPSAhbW9kZXNldCAmJg0KPiAtCQkJdG9faW50ZWxf Y3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSktDQo+ID51cGRhdGVfcGlwZTsNCj4gKwkJc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0NCj4gKwkJCXRvX2ludGVsX2NydGNfc3RhdGUo Y3J0Yy0+c3RhdGUpOw0KPiArCQlib29sIHVwZGF0ZV9waXBlID0gIW1vZGVzZXQgJiYgcGlwZV9j b25maWctDQo+ID51cGRhdGVfcGlwZTsNCj4gwqANCj4gwqAJCWlmIChtb2Rlc2V0ICYmIGNydGMt PnN0YXRlLT5hY3RpdmUpIHsNCj4gwqAJCQl1cGRhdGVfc2NhbmxpbmVfb2Zmc2V0KHRvX2ludGVs X2NydGMoY3J0YykpOw0KPiBAQCAtMTM0ODgsMTQgKzEzNTI2LDIwIEBAIHN0YXRpYyBpbnQgaW50 ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QNCj4gZHJtX2RldmljZSAqZGV2LA0KPiDCoAkJwqDCoMKg wqAoY3J0Yy0+c3RhdGUtPnBsYW5lc19jaGFuZ2VkIHx8IHVwZGF0ZV9waXBlKSkNCj4gwqAJCQlk cm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzX29uX2NydGMoY3J0Yw0KPiBfc3RhdGUpOw0K PiDCoA0KPiAtCQlpbnRlbF9wb3N0X3BsYW5lX3VwZGF0ZShpbnRlbF9jcnRjKTsNCj4gKwkJaWYg KHBpcGVfY29uZmlnLT5iYXNlLmFjdGl2ZSAmJg0KPiArCQnCoMKgwqDCoChwaXBlX2NvbmZpZy0+ d21fY2hhbmdlZCB8fCBwaXBlX2NvbmZpZy0NCj4gPmRpc2FibGVfY3hzciB8fA0KPiArCQnCoMKg wqDCoMKgcGlwZV9jb25maWctPmZiX2NoYW5nZWQpKQ0KDQpTbyB0aGUgd21fY2hhbmdlZCBpcyBq dXN0IGZvciB0aGUgQkRXIHdvcmthcm91bmQgKyBzcHJpdGVzPyBXaGF0IGFib3V0DQp0aGlzIGRp c2FibGVfY3hzciwgd2h5IGlzIGl0IGhlcmU/IEFsc28gc2VlIG15IGNvbW1lbnQgYWJvdmUgYWJv dXQNCnNwcml0ZV9jaGFuZ2VkLiBNYXliZSB3ZSBuZWVkIHNvbWUgY29tbWVudHMgaGVyZSB0byBl eHBsYWluIHRoZSBjb21wbGV4DQpjaGVja3MuDQoNCg0KPiArCQkJY3J0Y192YmxhbmtfbWFzayB8 PSAxIDw8IGk7DQo+IMKgCX0NCj4gwqANCj4gwqAJLyogRklYTUU6IGFkZCBzdWJwaXhlbCBvcmRl ciAqLw0KPiDCoA0KPiAtCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX3ZibGFua3MoZGV2LCBz dGF0ZSk7DQo+ICsJaWYgKCFzdGF0ZS0+bGVnYWN5X2N1cnNvcl91cGRhdGUpDQo+ICsJCWludGVs X2F0b21pY193YWl0X2Zvcl92YmxhbmtzKGRldiwgZGV2X3ByaXYsDQo+IGNydGNfdmJsYW5rX21h c2spOw0KPiDCoA0KPiDCoAlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRj X3N0YXRlLCBpKSB7DQo+ICsJCWludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKHRvX2ludGVsX2NydGMo Y3J0YykpOw0KPiArDQo+IMKgCQlpZiAocHV0X2RvbWFpbnNbaV0pDQo+IMKgCQkJbW9kZXNldF9w dXRfcG93ZXJfZG9tYWlucyhkZXZfcHJpdiwNCj4gcHV0X2RvbWFpbnNbaV0pOw0KPiDCoAl9DQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+IGluZGV4IDMzNWU2YjI0YjBiYy4uZTkxMWM4 NmY4NzNiIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0K PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiBAQCAtMzc5LDYgKzM3 OSw3IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsNCj4gwqAJYm9vbCB1cGRhdGVfcGlwZTsg LyogY2FuIGEgZmFzdCBtb2Rlc2V0IGJlIHBlcmZvcm1lZD8gKi8NCj4gwqAJYm9vbCBkaXNhYmxl X2N4c3I7DQo+IMKgCWJvb2wgd21fY2hhbmdlZDsgLyogd2F0ZXJtYXJrcyBhcmUgdXBkYXRlZCAq Lw0KPiArCWJvb2wgZmJfY2hhbmdlZDsgLyogZmIgb24gYW55IG9mIHRoZSBwbGFuZXMgaXMgY2hh bmdlZCAqLw0KPiDCoA0KPiDCoAkvKiBQaXBlIHNvdXJjZSBzaXplIChpZS4gcGFuZWwgZml0dGVy IGlucHV0IHNpemUpDQo+IMKgCcKgKiBBbGwgcGxhbmVzIHdpbGwgYmUgcG9zaXRpb25lZCBpbnNp ZGUgdGhpcyBzcGFjZSwNCj4gQEAgLTU0Nyw3ICs1NDgsNiBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19h dG9taWNfY29tbWl0IHsNCj4gwqANCj4gwqAJLyogU2xlZXBhYmxlIG9wZXJhdGlvbnMgdG8gcGVy Zm9ybSBhZnRlciBjb21taXQgKi8NCj4gwqAJdW5zaWduZWQgZmJfYml0czsNCj4gLQlib29sIHdh aXRfdmJsYW5rOw0KDQpPbmUgb2YgdGhlIHRoaW5ncyB0aGF0IEkgbGlrZSBhYm91dCB0aGUgY29k ZSB3aXRob3V0IHRoaXMgcGF0Y2ggaXMgdGhhdA0KaXQncyB2ZXJ5IGV4cGxpY2l0IG9uIHdoZW4g d2UgbmVlZCB0byB3YWl0IGZvciB2YmxhbmtzIChleGNlcHQgZm9yIHRoZQ0KcHJvYmxlbSB3aGVy ZSB3ZSB3YWl0IHR3aWNlKS4gVGhlIG5ldyBjb2RlIGlzIG5vdCBhcyBlYXN5IHRvDQpyZWFkL3Vu ZGVyc3RhbmQgYXMgdGhlIG9sZCBvbmUuIFRoaXMgY29tbWVudCBpcyBzaW1pbGFyIHRvIHRoZSBv bmUgSQ0KbWFkZSBpbiBwYXRjaCA2OiBJJ20gbm90IHN1cmUgaWYgc2FjcmlmaWNpbmcgcmVhZGFi aWxpdHkgaXMgd29ydGggaXQuDQoNCg0KSSB3b25kZXIgdGhhdCBtYXliZSB0aGUgY2xlYW5lc3Qg Zml4IHRvIHRoZSAid2UncmUgd2FpdGluZyAyIHZibGFua3MiDQpwcm9ibGVtIGlzIHRvIGp1c3Qg cmVtb3ZlIHRoZSBjYWxsIHRvDQpkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl92YmxhbmtzKCks IHdoaWNoIHdvdWxkIGJlIGEgZmlyc3QgcGF0Y2guDQpUaGVuIHdlJ2QgaGF2ZSBhIHNlY29uZCBw YXRjaCBpbnRyb2R1Y2luZw0KaW50ZWxfYXRvbWljX3dhaXRfZm9yX3ZibGFua3MoKSBmb3IgdGhl ICJ3YWl0IGZvciBhbGwgdmJsYW5rcyBhdCB0aGUNCnNhbWUgdGltZSIgb3B0aW1pemF0aW9uLCBh bmQgdGhlbiBhIGxhc3QgY29tbWl0IHBvc3NpYmx5IHJlcGxhY2luZw0KY29tbWl0LT53YWl0X3Zi bGFuayBmb3Igc3RhdGUtPmZiX2NoYW5nZWQuIEp1c3QgYW4gaWRlYSwgbm90IGEgcmVxdWVzdC4N Cg0KDQpJJ2xsIHdhaXQgZm9yIHlvdXIgYW5zd2VycyBiZWZvcmUgcmVhY2hpbmcgYW55IGNvbmNs dXNpb25zIG9mIHdoYXQgSQ0KdGhpbmsgc2hvdWxkIGJlIGRvbmUsIHNpbmNlIEkgbWF5IGJlIG1p c3VuZGVyc3RhbmRpbmcgc29tZXRoaW5nLg0KDQo+IMKgCWJvb2wgcG9zdF9lbmFibGVfcHJpbWFy eTsNCj4gwqAJdW5zaWduZWQgdXBkYXRlX3Nwcml0ZV93YXRlcm1hcmtzOw0KPiDCoApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK