From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH 2/5] drm/i915: Add sys FBC toggle interface Date: Wed, 13 Apr 2016 12:48:14 +0000 Message-ID: <1460551691.8441.4.camel@intel.com> References: <1460488728-23319-1-git-send-email-alexandra.yates@linux.intel.com> <1460488728-23319-3-git-send-email-alexandra.yates@linux.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 9B5136E8CD for ; Wed, 13 Apr 2016 12:48:30 +0000 (UTC) In-Reply-To: <1460488728-23319-3-git-send-email-alexandra.yates@linux.intel.com> Content-Language: en-US Content-ID: 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" , "Vivi, Rodrigo" , "alexandra.yates@linux.intel.com" , "Konno, Joe" , "Swaminathan, Nivedita" List-Id: intel-gfx@lists.freedesktop.org RW0gVGVyLCAyMDE2LTA0LTEyIMOgcyAxMjoxOCAtMDcwMCwgQWxleGFuZHJhIFlhdGVzIGVzY3Jl dmV1Og0KPiBUaGlzIGludGVyZmFjZSBhbGxvd3MgYW4gaW1tZWRpYXRlIGVuYWJsaW5nIG9mIEZC QyBmZWF0dXJlLiBXaGF0DQo+IGFsbG93IHVzDQo+IHRvIHNlZSBpbW1lZGlhdGVseSB0aGUgRkJD DQoNClRoZXJlJ3Mgbm8gd2F5IHRvIGd1YXJhbnRlZSB0aGUgdXNlciB3aWxsIGltbWVkaWF0ZWx5 IHNlZSBhbnkgRkJDDQpzYXZpbmdzLiBGQkMgZGVwZW5kcyBvbiBhIGxvdCBvZiBjb25kaXRpb25z IChlLmcuLCBYIHRpbGluZywgY29ycmVjdA0KcGlwZSwgY29ycmVjdCBidWZmZXIgc2l6ZSBhbmQg cGxhY2VtZW50LCBjb3JyZWN0IHBpeGVsIGZvcm1hdCwgY29ycmVjdA0KbW9kZSwgZ3B1IGlkbGVu ZXNzLCBldGMpLCBzbyB1c2VycyBtYXkgc2VlIG5vIHBvd2VyIHNhdmluZyBjaGFuZ2VzIGJ5DQp0 b2dnbGluZyB0aGUgcG93ZXJ0b3AgYnV0dG9ucyBmb3IgRkJDIGFuZCBpbmNvcnJlY3RseSBhc3N1 bWUgdGhhdCBGQkMNCnNhdmVzIG5vIHBvd2VyLCB3aGlsZSB0aGV5IGFyZSBqdXN0IGluIGEgc3Rh dGUgdGhhdCBkb2Vzbid0IGltbWVkaWF0ZWx5DQphbGxvdyBGQkMgdG8gYmUgYWN0aXZhdGVkLiBE byB3ZSBwbGFuIHRvIHByb3ZpZGUgZWFzaWx5LWFjY2Vzc2libGUNCmRvY3VtZW50YXRpb24gZXhw bGFpbmluZyBzdWNoIHRoaW5ncz8NCg0KPiAgcG93ZXIgbWFuYWdlbWVudCBzYXZpbmdzIGFuZCB3 aWxsIGFsbG93IHVzIHRvDQo+IGV4cG9zZSB0aGlzIHRocm91Z2ggc3lzZnMgaW50ZXJmYWNlIGZv ciBwb3dlcnRvcCB0byBsZXZlcmFnZSBpdHMNCj4gZnVuY3Rpb25hbGl0eS4NCj4gDQo+IFNpZ25l ZC1vZmYtYnk6IEFsZXhhbmRyYSBZYXRlcyA8YWxleGFuZHJhLnlhdGVzQGxpbnV4LmludGVsLmNv bT4NCj4gLS0tDQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgwqDCoMKgwqDC oHzCoMKgMSArDQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jwqDCoMKgwqB8 IDc3DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiDCoGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDE1ICsrKysrLS0NCj4gwqBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaMKgwqDCoMKgwqB8wqDCoDQgKy0NCj4gwqBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mYmMuY8KgwqDCoMKgwqB8IDI5ICsrKysrKysrKysrLS0tDQo+IMKg NSBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pDQo+IA0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gaW5kZXggYzk2ZGE0ZC4uMGYzYTM3ZiAxMDA2 NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+IEBAIC05MzYsNiArOTM2LDcgQEAgc3RydWN0 IGludGVsX2ZiYyB7DQo+IMKgCX0gd29yazsNCj4gwqANCj4gwqAJY29uc3QgY2hhciAqbm9fZmJj X3JlYXNvbjsNCj4gKwlib29sIHN5c2ZzX3NldDsNCj4gwqB9Ow0KPiDCoA0KPiDCoC8qKg0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jDQo+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jDQo+IGluZGV4IDIwOGM2ZWMuLjUwZDQ1ZWYgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYw0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMNCj4gQEAgLTEwNyw2ICsxMDcsNjUgQEAg c2hvd19tZWRpYV9yYzZfbXMoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0DQo+IGRldmljZV9h dHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikNCj4gwqB9DQo+IMKgDQo+IMKgc3RhdGljIHNzaXpl X3QNCj4gK3Nob3dfZmJjKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmli dXRlICphdHRyLCBjaGFyDQo+ICpidWYpDQo+ICt7DQo+ICsJc3RydWN0IGRybV9taW5vciAqZG1p bm9yID0gZGV2X3RvX2RybV9taW5vcihrZGV2KTsNCj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZG1pbm9yLT5kZXY7DQo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsNCj4gKwlzc2l6ZV90IHJldDsNCj4gKw0KPiArCW11dGV4X2xvY2so JmRldl9wcml2LT5mYmMubG9jayk7DQo+ICsJcmV0ID0gc25wcmludGYoYnVmLCBQQUdFX1NJWkUs ICIlc1xuIiwgZGV2X3ByaXYtPmZiYy5lbmFibGVkIA0KPiA/DQo+ICsJCQkiZW5hYmxlZCI6ImRp c2FibGVkIik7DQoNCldoZW5ldmVyIHRoaXMgd2FzIGRpc2N1c3NlZCwgSSBhY3R1YWxseSB0aG91 Z2h0IHRoaXMgaW50ZXJmYWNlIHdvdWxkDQpleHBvc2UgImlzIHN1cHBvcnQgZm9yIHRoZSBGQkMg ZmVhdHVyZSBlbmFibGVkIGluIHRoZSBLZXJuZWw/IiBpbnN0ZWFkDQpvZiAiaXMgRkJDIGN1cnJl bnRseSBzb2Z0d2FyZS1lbmFibGVkIG9uIGEgQ1JUQz8iLiBGb3IgY29tcGxldGVuZXNzLA0Kbm90 aWNlIHRoYXQgYSB0aGlyZCBvcHRpb24gd291bGQgYmUgImlzIEZCQyBjdXJyZW50bHkgZW5hYmxl ZCBpbg0KaGFyZHdhcmU/Ii4gV2h5IGRpZCB5b3UgcGljayB0aGUgY3VycmVudCBhcHByb2FjaCBp bnN0ZWFkIG9mIHRoZQ0Kb3RoZXJzPw0KDQo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJj LmxvY2spOw0KDQpMb2NraW5nL3VubG9ja2luZyBkb2Vzbid0IGhlbHAgbXVjaCBoZXJlLg0KDQo+ ICsJcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArc3RhdGljIHNzaXplX3QNCj4gK3RvZ2dsZV9m YmMoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQo+ ICsJY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpDQo+ICt7DQo+ICsJc3RydWN0IGRybV9t aW5vciAqZG1pbm9yID0gZGV2X3RvX2RybV9taW5vcihrZGV2KTsNCj4gKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZG1pbm9yLT5kZXY7DQo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yOw0KPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOw0KPiArCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gTlVMTDsNCj4gKwl1MzIgdmFsOw0KPiArCXNzaXplX3QgcmV0Ow0K PiArCWJvb2wgc3lzZnNfc2V0ID0gdHJ1ZTsNCj4gKw0KPiArCXJldCA9IGtzdHJ0b3UzMihidWYs IDAsICZ2YWwpOw0KPiArCWlmIChyZXQpDQo+ICsJCXJldHVybiByZXQ7DQo+ICsNCj4gKwlmb3Jf ZWFjaF9pbnRlbF9jb25uZWN0b3IoZGV2LCBjb25uZWN0b3IpIHsNCj4gKwkJaWYgKCFjb25uZWN0 b3ItPmJhc2UuZW5jb2RlcikNCj4gKwkJCWNvbnRpbnVlOw0KPiArCQllbmNvZGVyID0gdG9faW50 ZWxfZW5jb2Rlcihjb25uZWN0b3ItPmJhc2UuZW5jb2Rlcik7DQo+ICsJCWNydGMgPSB0b19pbnRl bF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7DQo+ICsJfQ0KDQpXaHkgYXJlIHdlIHBpY2tpbmcg YSByYW5kb20gY29ubmVjdGVkIENSVEM/IFRoZXJlJ3Mgbm8gZ3VhcmFudGVlIGl0DQpzdXBwb3J0 cyBGQkMsIG5vciB0aGF0IGl0IGV2ZW4gaGFzIGEgbW9kZS4NCg0KPiArDQo+ICsJaWYgKCFjcnRj KQ0KPiArCQlyZXR1cm4gLUVOT0RFVjsNCj4gKwlzd2l0Y2ggKHZhbCkgew0KPiArCWNhc2UgMDoN Cj4gKwkJcmV0ID0gaW50ZWxfZmJjX2Rpc2FibGUoY3J0Yywgc3lzZnNfc2V0KTsNCj4gKwkJaWYg KHJldCkNCj4gKwkJCXJldHVybiByZXQ7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgMToNCj4gKwkJ cmV0ID0gaW50ZWxfZmJjX2VuYWJsZShjcnRjLCBzeXNmc19zZXQpOw0KDQpUaGUgY3VycmVudCBG QkMgY29kZSB3YXMgZGVzaWduZWQgaW4gYSB3YXkgd2hlcmUgdGhlIGFwcHJvcHJpYXRlIENSVEMN CmlzIGNob3NlbiBkdXJpbmcgdGhlIGF0b21pYyBjb21taXRzLCBhbmQgdGhlbiBsYXRlcg0KaW50 ZWxfZmJjX3tlbixkaXN9YWJsZSBpcyBjYWxsZWQuIFRoaXMgY2hhbmdlIGlzIGJ5cGFzc2luZw0K aW50ZWxfZmJjX2Nhbl9jaG9vc2UoKSwgYW5kIGNyZWF0aW5nIGEgbmV3IC0gYW5kIHVucGxhbm5l ZCBmb3IgLSB1c2UNCmNhc2Ugd2hlcmUgRkJDIGNhbiBiZSB0b2dnbGVkIHdpdGhvdXQgYSBtb2Rl c2V0LiBXaGlsZSB3ZSBjb3VsZCBtYWtlDQp0aGlzIHdvcmsgc29tZWhvdywgd2UnZCBiZSBhZGRp bmcgYWRkaXRpb25hbCBjb21wbGV4aXR5IChha2EgcG9zc2libGUNCmJ1Z3MpIGp1c3QgdG8gZW5h YmxlIHVzZXJzIHRvIHN3aXRjaCB0aGVpciBtYWNoaW5lcyB0byB1bnNhZmUgZGVmYXVsdHMNCnVz aW5nIHBvd2VydG9wIChhbmQgbWF5YmUgcmVhY2hpbmcgd3JvbmcgY29uY2x1c2lvbnMgZHVlIHRv IHRoZSBsYWNrIG9mDQpndWFyYW50ZWUgdGhhdCBGQkMgd2lsbCBiZSBlbmFibGVkIGluIGhhcmR3 YXJlKSwgc28gSSdtIG5vdCBzdXJlIHRoZQ0KYmVuZWZpdHMgb3V0d2VpZ2ggdGhlIG1haW50ZW5h bmNlIGNvc3RzLg0KDQpTbyBteSBzdWdnZXN0aW9uIHdvdWxkIGJlIHRvIG1ha2UgdGhlIHN5c2Zz IGludGVyZmFjZSBqdXN0IHRvZ2dsZQ0KaTkxNS5lbmFibGVfZmJjLCB3aGljaCB3b3VsZCByZXF1 aXJlIGEgbW9kZXNldCBmb3IgdGhpbmdzIHRvIGFjdHVhbGx5DQp0YWtlIHBsYWNlLiBJIHRob3Vn aHQgdGhpcyB3YXMgdGhlIG9yaWdpbmFsIHBsYW4uDQoNCkJ5IHRoZSB3YXksIGFyZW4ndCB5b3Ug aGl0dGluZyB0aGUgV0FSTnMgZnJvbQ0KaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZSgpIHdp dGggdGhlIGN1cnJlbnQgY29kZT8NCg0KDQo+ICsJCWlmIChyZXQpDQo+ICsJCQlyZXR1cm4gcmV0 Ow0KPiArCQlicmVhazsNCj4gKwlkZWZhdWx0Og0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0K PiArCX0NCj4gKwlyZXR1cm4gY291bnQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBzc2l6ZV90DQo+ IMKgc2hvd19wc3Ioc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUg KmF0dHIsIGNoYXINCj4gKmJ1ZikNCj4gwqB7DQo+IMKgCXN0cnVjdCBkcm1fbWlub3IgKmRtaW5v ciA9IGRldl90b19kcm1fbWlub3Ioa2Rldik7DQo+IEBAIC0xNjcsNiArMjI2LDcgQEAgdG9nZ2xl X3BzcihzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QNCj4gZGV2aWNlX2F0dHJpYnV0ZSAqYXR0 ciwNCj4gwqAJcmV0dXJuIGNvdW50Ow0KPiDCoH0NCj4gwqANCj4gK3N0YXRpYyBERVZJQ0VfQVRU UihmYmNfZW5hYmxlLCBTX0lSVUdPIHwgU19JV1VTUiwgc2hvd19mYmMsDQo+IHRvZ2dsZV9mYmMp Ow0KPiDCoHN0YXRpYyBERVZJQ0VfQVRUUihwc3JfZW5hYmxlLCBTX0lSVUdPIHwgU19JV1VTUiwg c2hvd19wc3IsDQo+IHRvZ2dsZV9wc3IpOw0KPiDCoHN0YXRpYyBERVZJQ0VfQVRUUihyYzZfZW5h YmxlLCBTX0lSVUdPLCBzaG93X3JjNl9tYXNrLCBOVUxMKTsNCj4gwqBzdGF0aWMgREVWSUNFX0FU VFIocmM2X3Jlc2lkZW5jeV9tcywgU19JUlVHTywgc2hvd19yYzZfbXMsIE5VTEwpOw0KPiBAQCAt MTc0LDYgKzIzNCwxNiBAQCBzdGF0aWMgREVWSUNFX0FUVFIocmM2cF9yZXNpZGVuY3lfbXMsIFNf SVJVR08sDQo+IHNob3dfcmM2cF9tcywgTlVMTCk7DQo+IMKgc3RhdGljIERFVklDRV9BVFRSKHJj NnBwX3Jlc2lkZW5jeV9tcywgU19JUlVHTywgc2hvd19yYzZwcF9tcywNCj4gTlVMTCk7DQo+IMKg c3RhdGljIERFVklDRV9BVFRSKG1lZGlhX3JjNl9yZXNpZGVuY3lfbXMsIFNfSVJVR08sDQo+IHNo b3dfbWVkaWFfcmM2X21zLCBOVUxMKTsNCj4gwqANCj4gK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRl ICpmYmNfYXR0cnNbXSA9IHsNCj4gKwkmZGV2X2F0dHJfZmJjX2VuYWJsZS5hdHRyLA0KPiArCU5V TEwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGZiY19hdHRy X2dyb3VwID0gew0KPiArCS5uYW1lID0gcG93ZXJfZ3JvdXBfbmFtZSwNCj4gKwkuYXR0cnMgPSBm YmNfYXR0cnMNCj4gK307DQo+ICsNCj4gwqBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqcHNyX2F0 dHJzW10gPSB7DQo+IMKgCSZkZXZfYXR0cl9wc3JfZW5hYmxlLmF0dHIsDQo+IMKgCU5VTEwNCj4g QEAgLTY2OCw2ICs3MzgsMTIgQEAgdm9pZCBpOTE1X3NldHVwX3N5c2ZzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpDQo+IMKgCWludCByZXQ7DQo+IMKgDQo+IMKgI2lmZGVmIENPTkZJR19QTQ0KPiAr CWlmIChIQVNfRkJDKGRldikpIHsNCj4gKwkJcmV0ID0gc3lzZnNfbWVyZ2VfZ3JvdXAoJmRldi0+ cHJpbWFyeS0+a2Rldi0+a29iaiwNCj4gKwkJCQkJJmZiY19hdHRyX2dyb3VwKTsNCj4gKwkJaWYg KHJldCkNCj4gKwkJCURSTV9FUlJPUigiRkJDIHN5c2ZzIHNldHVwIGZhaWxlZFxuIik7DQo+ICsJ fQ0KPiDCoAlpZiAoSEFTX1BTUihkZXYpKSB7DQo+IMKgCQlyZXQgPSBzeXNmc19tZXJnZV9ncm91 cCgmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLA0KPiDCoAkJCQkJJnBzcl9hdHRyX2dyb3VwKTsN Cj4gQEAgLTczMCw2ICs4MDYsNyBAQCB2b2lkIGk5MTVfdGVhcmRvd25fc3lzZnMoc3RydWN0IGRy bV9kZXZpY2UgKmRldikNCj4gwqAJZGV2aWNlX3JlbW92ZV9iaW5fZmlsZShkZXYtPnByaW1hcnkt PmtkZXYswqDCoCZkcGZfYXR0cnNfMSk7DQo+IMKgCWRldmljZV9yZW1vdmVfYmluX2ZpbGUoZGV2 LT5wcmltYXJ5LT5rZGV2LMKgwqAmZHBmX2F0dHJzKTsNCj4gwqAjaWZkZWYgQ09ORklHX1BNDQo+ ICsJc3lzZnNfdW5tZXJnZV9ncm91cCgmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLA0KPiAmZmJj X2F0dHJfZ3JvdXApOw0KPiDCoAlzeXNmc191bm1lcmdlX2dyb3VwKCZkZXYtPnByaW1hcnktPmtk ZXYtPmtvYmosDQo+ICZwc3JfYXR0cl9ncm91cCk7DQo+IMKgCXN5c2ZzX3VubWVyZ2VfZ3JvdXAo JmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwNCj4gJnJjNl9hdHRyX2dyb3VwKTsNCj4gwqAJc3lz ZnNfdW5tZXJnZV9ncm91cCgmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLA0KPiAmcmM2cF9hdHRy X2dyb3VwKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiBpbmRleCBi ZjllMzQ3Li4zZDI1MmI5IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j DQo+IEBAIC02MjU0LDcgKzYyNTQsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVf bm9hdG9taWMoc3RydWN0DQo+IGRybV9jcnRjICpjcnRjKQ0KPiDCoAlmb3JfZWFjaF9lbmNvZGVy X29uX2NydGMoY3J0Yy0+ZGV2LCBjcnRjLCBlbmNvZGVyKQ0KPiDCoAkJZW5jb2Rlci0+YmFzZS5j cnRjID0gTlVMTDsNCj4gwqANCj4gLQlpbnRlbF9mYmNfZGlzYWJsZShpbnRlbF9jcnRjKTsNCj4g KwlpZiAoZGV2X3ByaXYtPmZiYy5zeXNmc19zZXQgIT0gdHJ1ZSkNCj4gKwkJaW50ZWxfZmJjX2Rp c2FibGUoaW50ZWxfY3J0YywgZGV2X3ByaXYtDQo+ID5mYmMuc3lzZnNfc2V0KTsNCj4gwqAJaW50 ZWxfdXBkYXRlX3dhdGVybWFya3MoY3J0Yyk7DQo+IMKgCWludGVsX2Rpc2FibGVfc2hhcmVkX2Rw bGwoaW50ZWxfY3J0Yyk7DQo+IMKgDQo+IEBAIC0xMzU4Niw3ICsxMzU4NywxMCBAQCBzdGF0aWMg aW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0DQo+IGRybV9kZXZpY2UgKmRldiwNCj4gwqAJ CQlpbnRlbF9jcnRjX2Rpc2FibGVfcGxhbmVzKGNydGMsDQo+IG9sZF9jcnRjX3N0YXRlLT5wbGFu ZV9tYXNrKTsNCj4gwqAJCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2Rpc2FibGUoY3J0Yyk7DQo+ IMKgCQkJaW50ZWxfY3J0Yy0+YWN0aXZlID0gZmFsc2U7DQo+IC0JCQlpbnRlbF9mYmNfZGlzYWJs ZShpbnRlbF9jcnRjKTsNCj4gKw0KPiArCQkJaWYgKGRldl9wcml2LT5mYmMuc3lzZnNfc2V0ICE9 IHRydWUpDQo+ICsJCQkJaW50ZWxfZmJjX2Rpc2FibGUoaW50ZWxfY3J0YywNCj4gKwkJCQkJCWRl dl9wcml2LQ0KPiA+ZmJjLnN5c2ZzX3NldCk7DQo+IMKgCQkJaW50ZWxfZGlzYWJsZV9zaGFyZWRf ZHBsbChpbnRlbF9jcnRjKTsNCj4gwqANCj4gwqAJCQkvKg0KPiBAQCAtMTM2MzIsOCArMTM2MzYs MTEgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdA0KPiBkcm1fZGV2aWNl ICpkZXYsDQo+IMKgCQkJaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZSh0b19pbnRlbF9jcnRjX3N0YXRl KG8NCj4gbGRfY3J0Y19zdGF0ZSkpOw0KPiDCoA0KPiDCoAkJaWYgKGNydGMtPnN0YXRlLT5hY3Rp dmUgJiYNCj4gLQkJwqDCoMKgwqBkcm1fYXRvbWljX2dldF9leGlzdGluZ19wbGFuZV9zdGF0ZShz dGF0ZSwgY3J0Yy0NCj4gPnByaW1hcnkpKQ0KPiAtCQkJaW50ZWxfZmJjX2VuYWJsZShpbnRlbF9j cnRjKTsNCj4gKwkJwqDCoMKgwqBkcm1fYXRvbWljX2dldF9leGlzdGluZ19wbGFuZV9zdGF0ZShz dGF0ZSwgY3J0Yy0NCj4gPnByaW1hcnkpKSB7DQo+ICsJCQlpZiAoZGV2X3ByaXYtPmZiYy5zeXNm c19zZXQgIT0gdHJ1ZSkNCj4gKwkJCQlpbnRlbF9mYmNfZW5hYmxlKGludGVsX2NydGMsDQo+ICsJ CQkJCQlkZXZfcHJpdi0NCj4gPmZiYy5zeXNmc19zZXQpOw0KPiArCQl9DQo+IMKgDQo+IMKgCQlp ZiAoY3J0Yy0+c3RhdGUtPmFjdGl2ZSAmJg0KPiDCoAkJwqDCoMKgwqAoY3J0Yy0+c3RhdGUtPnBs YW5lc19jaGFuZ2VkIHx8IHVwZGF0ZV9waXBlKSkNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgNCj4gaW5kZXggMTk5ZThjYy4uOTNkMDljYyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgNCj4gQEAgLTEzNzMsOCArMTM3Myw4IEBAIHZvaWQgaW50ZWxfZmJjX3ByZV91cGRhdGUo c3RydWN0IGludGVsX2NydGMNCj4gKmNydGMpOw0KPiDCoHZvaWQgaW50ZWxfZmJjX3Bvc3RfdXBk YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsNCj4gwqB2b2lkIGludGVsX2ZiY19pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7DQo+IMKgdm9pZCBpbnRlbF9mYmNfaW5p dF9waXBlX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7DQo+IC12b2lk IGludGVsX2ZiY19lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpOw0KPiAtdm9pZCBpbnRl bF9mYmNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7DQo+ICtpbnQgaW50ZWxfZmJj X2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywgYm9vbCBzeXNmc19zZXQpOw0KPiAraW50 IGludGVsX2ZiY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBib29sIHN5c2ZzX3Nl dCk7DQo+IMKgdm9pZCBpbnRlbF9mYmNfZ2xvYmFsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsNCj4gwqB2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gwqAJCQnCoMKgdW5zaWduZWQgaW50IGZyb250 YnVmZmVyX2JpdHMsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9m YmMuYw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jDQo+IGluZGV4IGQ1YTdj ZmUuLmQ2MTU0ZTUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zi Yy5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jDQo+IEBAIC0xMDgz LDE5ICsxMDgzLDI0IEBAIG91dDoNCj4gwqAvKioNCj4gwqAgKiBpbnRlbF9mYmNfZW5hYmxlOiB0 cmllcyB0byBlbmFibGUgRkJDIG9uIHRoZSBDUlRDDQo+IMKgICogQGNydGM6IHRoZSBDUlRDDQo+ ICsgKiBAc3lzZnNfc2V0OiBJZGVudGlmaWVzIGlmIHRoaXMgZmVhdHVkcmUgaXMgc2V0IGZyb20g c3lzZnMuDQo+IMKgICoNCj4gwqAgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiB0aGUgZ2l2ZW4g Q1JUQyB3YXMgY2hvc2VuIGZvciBGQkMsIHRoZW4NCj4gZW5hYmxlcyBpdCBpZg0KPiDCoCAqIHBv c3NpYmxlLiBOb3RpY2UgdGhhdCBpdCBkb2Vzbid0IGFjdGl2YXRlIEZCQy4gSXQgaXMgdmFsaWQg dG8NCj4gY2FsbA0KPiDCoCAqIGludGVsX2ZiY19lbmFibGUgbXVsdGlwbGUgdGltZXMgZm9yIHRo ZSBzYW1lIHBpcGUgd2l0aG91dCBhbg0KPiDCoCAqIGludGVsX2ZiY19kaXNhYmxlIGluIHRoZSBt aWRkbGUsIGFzIGxvbmcgYXMgaXQgaXMgZGVhY3RpdmF0ZWQuDQo+ICsgKg0KPiArICogUmV0dXJu czoNCj4gKyAqIDAgb24gc3VjY2VzcyBhbmQgLWVycm5vIG90aGVyd2lzZQ0KPiDCoCAqLw0KPiAt dm9pZCBpbnRlbF9mYmNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQ0KPiAraW50IGlu dGVsX2ZiY19lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsIGJvb2wgc3lzZnNfc2V0KQ0K PiDCoHsNCj4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY3J0Yy0+YmFz ZS5kZXYtDQo+ID5kZXZfcHJpdmF0ZTsNCj4gwqAJc3RydWN0IGludGVsX2ZiYyAqZmJjID0gJmRl dl9wcml2LT5mYmM7DQo+ICsJaW50IHJldCA9IDA7DQo+IMKgDQo+IMKgCWlmICghZmJjX3N1cHBv cnRlZChkZXZfcHJpdikpDQo+IC0JCXJldHVybjsNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+IMKg DQo+IMKgCW11dGV4X2xvY2soJmZiYy0+bG9jayk7DQo+IMKgDQo+IEBAIC0xMTA1LDExICsxMTEw LDE0IEBAIHZvaWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Yw0KPiAqY3J0YykN Cj4gwqAJCQlXQVJOX09OKCFjcnRjLT5jb25maWctPmVuYWJsZV9mYmMpOw0KPiDCoAkJCVdBUk5f T04oZmJjLT5hY3RpdmUpOw0KPiDCoAkJfQ0KPiArCQlyZXQgPSAtRUFMUkVBRFk7DQo+IMKgCQln b3RvIG91dDsNCj4gwqAJfQ0KPiDCoA0KPiAtCWlmICghY3J0Yy0+Y29uZmlnLT5lbmFibGVfZmJj KQ0KPiArCWlmICghY3J0Yy0+Y29uZmlnLT5lbmFibGVfZmJjKSB7DQo+ICsJCXJldCA9IC1FSU5W QUw7DQo+IMKgCQlnb3RvIG91dDsNCj4gKwl9DQo+IMKgDQo+IMKgCVdBUk5fT04oZmJjLT5hY3Rp dmUpOw0KPiDCoAlXQVJOX09OKGZiYy0+Y3J0YyAhPSBOVUxMKTsNCj4gQEAgLTExMTcsNiArMTEy NSw3IEBAIHZvaWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykNCj4g wqAJaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZShjcnRjKTsNCj4gwqAJaWYgKGludGVsX2Zi Y19hbGxvY19jZmIoY3J0YykpIHsNCj4gwqAJCWZiYy0+bm9fZmJjX3JlYXNvbiA9ICJub3QgZW5v dWdoIHN0b2xlbiBtZW1vcnkiOw0KPiArCQlyZXQgPSAtRUlOVkFMOw0KPiDCoAkJZ290byBvdXQ7 DQo+IMKgCX0NCj4gwqANCj4gQEAgLTExMjUsOCArMTEzNCwxMSBAQCB2b2lkIGludGVsX2ZiY19l bmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpDQo+IMKgDQo+IMKgCWZiYy0+ZW5hYmxlZCA9 IHRydWU7DQo+IMKgCWZiYy0+Y3J0YyA9IGNydGM7DQo+ICsJaWYgKHN5c2ZzX3NldCkNCj4gKwkJ ZGV2X3ByaXYtPmZiYy5zeXNmc19zZXQgPSBzeXNmc19zZXQ7DQo+IMKgb3V0Og0KPiDCoAltdXRl eF91bmxvY2soJmZiYy0+bG9jayk7DQo+ICsJcmV0dXJuIHJldDsNCj4gwqB9DQo+IMKgDQo+IMKg LyoqDQo+IEBAIC0xMTU3LDI2ICsxMTY5LDMzIEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfZmJjX2Rp c2FibGUoc3RydWN0DQo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiDCoC8qKg0KPiDC oCAqIGludGVsX2ZiY19kaXNhYmxlIC0gZGlzYWJsZSBGQkMgaWYgaXQncyBhc3NvY2lhdGVkIHdp dGggY3J0Yw0KPiDCoCAqIEBjcnRjOiB0aGUgQ1JUQw0KPiArICogQHN5c2ZzX3NldDogSWRlbnRp ZmllcyBpZiB0aGlzIGZlYXR1ZHJlIGlzIHNldCBmcm9tIHN5c2ZzLg0KPiDCoCAqDQo+IMKgICog VGhpcyBmdW5jdGlvbiBkaXNhYmxlcyBGQkMgaWYgaXQncyBhc3NvY2lhdGVkIHdpdGggdGhlIHBy b3ZpZGVkDQo+IENSVEMuDQo+ICsgKg0KPiArICogUmV0dXJuczoNCj4gKyAqIDAgb24gc3VjY2Vz cyBhbmQgLWVycm5vIG90aGVyd2lzZQ0KPiDCoCAqLw0KPiAtdm9pZCBpbnRlbF9mYmNfZGlzYWJs ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykNCj4gK2ludCBpbnRlbF9mYmNfZGlzYWJsZShzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywgYm9vbCBzeXNmc19zZXQpDQo+IMKgew0KPiDCoAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0NCj4gPmRldl9wcml2 YXRlOw0KPiDCoAlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSAmZGV2X3ByaXYtPmZiYzsNCj4gwqAN Cj4gwqAJaWYgKCFmYmNfc3VwcG9ydGVkKGRldl9wcml2KSkNCj4gLQkJcmV0dXJuOw0KPiArCQly ZXR1cm4gLUVJTlZBTDsNCj4gwqANCj4gwqAJbXV0ZXhfbG9jaygmZmJjLT5sb2NrKTsNCj4gwqAJ aWYgKGZiYy0+Y3J0YyA9PSBjcnRjKSB7DQo+IMKgCQlXQVJOX09OKCFmYmMtPmVuYWJsZWQpOw0K PiDCoAkJV0FSTl9PTihmYmMtPmFjdGl2ZSk7DQo+IMKgCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRl dl9wcml2KTsNCj4gKwkJaWYgKHN5c2ZzX3NldCkNCj4gKwkJCWRldl9wcml2LT5mYmMuc3lzZnNf c2V0ID0gc3lzZnNfc2V0Ow0KPiDCoAl9DQo+IMKgCW11dGV4X3VubG9jaygmZmJjLT5sb2NrKTsN Cj4gwqANCj4gwqAJY2FuY2VsX3dvcmtfc3luYygmZmJjLT53b3JrLndvcmspOw0KPiArCXJldHVy biAwOw0KPiDCoH0NCj4gwqANCj4gwqAvKioKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==