From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [PATCH 3/4] drm/i915: opt-out CPU and WC mmaps from FBC Date: Tue, 22 Mar 2016 21:48:00 +0000 Message-ID: <1458683279.2189.32.camel@intel.com> References: <1458588418-31129-1-git-send-email-paulo.r.zanoni@intel.com> <1458588418-31129-5-git-send-email-paulo.r.zanoni@intel.com> <20160322112949.GC28483@phenom.ffwll.local> 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 7BBA56E0D6 for ; Tue, 22 Mar 2016 21:48:02 +0000 (UTC) In-Reply-To: <20160322112949.GC28483@phenom.ffwll.local> Content-Language: en-US Content-ID: <6CBDD8D61301C146BB3B56DB56F5B538@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "daniel@ffwll.ch" Cc: "daniel.vetter@ffwll.ch" , "intel-gfx@lists.freedesktop.org" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org RW0gVGVyLCAyMDE2LTAzLTIyIMOgcyAxMjoyOSArMDEwMCwgRGFuaWVsIFZldHRlciBlc2NyZXZl dToNCj4gT24gTW9uLCBNYXIgMjEsIDIwMTYgYXQgMDQ6MjY6NTdQTSAtMDMwMCwgUGF1bG8gWmFu b25pIHdyb3RlOg0KPiA+IA0KPiA+IEZCQyBhbmQgdGhlIGZyb250YnVmZmVyIHRyYWNraW5nIGlu ZnJhc3RydWN0dXJlIHdlcmUgZGVzaWduZWQNCj4gPiBhc3N1bWluZw0KPiA+IHRoYXQgdXNlciBz cGFjZSBhcHBsaWNhdGlvbnMgd291bGQgZm9sbG93IGEgc3BlY2lmaWMgc2V0IG9mIHJ1bGVzDQo+ ID4gcmVnYXJkaW5nIGZyb250YnVmZmVyIG1hbmFnZW1lbnQgYW5kIG1tYXBwaW5nLiBJIHJlY2Vu dGx5DQo+ID4gZGlzY292ZXJlZA0KPiA+IHRoYXQgY3VycmVudCB1c2VyIHNwYWNlIGlzIG5vdCBl eGFjdGx5IGZvbGxvd2luZyB0aGVzZSBydWxlczogbXkNCj4gPiBpbnZlc3RpZ2F0aW9uIGxlZCBt ZSB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHRoZSBnZW5lcmljIGJhY2tlbmQNCj4gPiBmcm9tDQo+ ID4gU05BIC0gdXNlZCBieSBTS0wgYW5kIHRoZSBvdGhlciBuZXcgcGxhdGZvcm1zIHdpdGhvdXQg YSBzcGVjaWZpYw0KPiA+IGJhY2tlbmQgLSBpcyBub3QgaXNzdWluZyBzd19maW5pc2gvZGlydHlf ZmIgSU9DVExzIHdoZW4gdXNpbmcgdGhlDQo+ID4gQ1BVDQo+ID4gYW5kIFdDIG1tYXBzLiBJIGRp c2NvdmVyZWQgdGhpcyB3aGVuIHJ1bm5pbmcgbGlnaHRkbTogSSB3b3VsZCB0eXBlDQo+ID4gdGhl DQo+ID4gcGFzc3dvcmQgYW5kIG5vdGhpbmcgd291bGQgYXBwZWFyIG9uIHRoZSBzY3JlZW4gdW5s ZXNzIEkgbW92ZWQgdGhlDQo+ID4gbW91c2Ugb3ZlciB0aGUgcGxhY2Ugd2hlcmUgdGhlIGxldHRl cnMgd2VyZSBzdXBwb3NlZCB0byBhcHBlYXIuDQo+ID4gDQo+ID4gU2luY2Ugd2UgY2FuJ3QgZGV0 ZWN0IHdoZXRoZXIgdGhlIGN1cnJlbnQgRFJNIG1hc3RlciBpcyBhIHdlbGwtDQo+ID4gYmVoYXZl ZA0KPiA+IGFwcGxpY2F0aW9uIG9yIG5vdCwgbGV0J3MgdXNlIHRoZSBzbGVkZ2VoYW1tZXIgYXBw cm9hY2ggYW5kIGFzc3VtZQ0KPiA+IHRoYXQgZXZlcnkgdXNlciBzcGFjZSBjbGllbnQgb24gZXZl cnkgZ2VuIGlzIGJhZCBieSBkaXNhYmxpbmcgRkJDDQo+ID4gd2hlbg0KPiA+IHRoZSBmcm9udGJ1 ZmZlciBpcyBDUFUvV0MgbW1hcHBlZC7CoMKgVGhpcyB3aWxsIGFsbG93IHVzIHRvIGVuYWJsZQ0K PiA+IEZCQw0KPiA+IG9uIFNLTCwgbW92aW5nIGl0cyBGQkMtcmVsYXRlZCBwb3dlciBzYXZpbmdz IGZyb20gImFsd2F5cyAwJSIgdG8gIj4NCj4gPiAwJQ0KPiA+IGluIHNvbWUgY2FzZXMiLg0KPiA+ IA0KPiA+IFRoZXJlJ3MgYWxzbyBzb21lIGFkZGl0aW9uYWwgY29kZSB0byBkaXNhYmxlIHRoZSB3 b3JrYXJvdW5kIGZvcg0KPiA+IGZyb250YnVmZmVycyB0aGF0IGV2ZXIgcmVjZWl2ZWQgYSBzd19m aW5pc2ggb3IgZGlydHlfZmIgSU9DVEwsDQo+ID4gc2luY2UNCj4gPiB0aGUgY3VycmVudCBiYWQg dXNlciBzcGFjZSBuZXZlciBpc3N1ZXMgdGhvc2UgY2FsbHMuIFRoaXMgc2hvdWxkDQo+ID4gaGVs cA0KPiA+IGZvciBzb21lIHNwZWNpZmljIGNhc2VzIGFuZCBvdXIgSUdUIHRlc3RzLCBidXQgd29u J3QgYmUgZW5vdWdoIGZvcg0KPiA+IGENCj4gPiBuZXcgeGY4Ni12aWRlby1pbnRlbCB1c2luZyBU ZWFyRnJlZS4NCj4gPiANCj4gPiBOb3RpY2UgdGhhdCB3ZSBtYXkgbmVlZCBhbiBlcXVpdmFsZW50 IGNvbW1pdCBmb3IgUFNSIHRvby4gV2UgYWxzbw0KPiA+IG5lZWQNCj4gPiB0byBpbnZlc3RpZ2F0 ZSB3aGV0aGVyIFBTUiBuZWVkcyB0byBiZSBkaXNhYmxlZCBvbiBHVFQgbW1hcHM6IGlmDQo+ID4g dGhhdCdzIHRoZSBjYXNlLCB3ZSdsbCBoYXZlIHByb2JsZW1zIHNpbmNlIHdlIHNlZW0gdG8gYWx3 YXlzIGhhdmUNCj4gPiBHVFQNCj4gPiBtbWFwcyBvbiBvdXIgY3VycmVudCB1c2VyIHNwYWNlLCBz byB3ZSB3b3VsZCBlbmQgdXAga2VlcGluZyBQU1INCj4gPiBkaXNhYmxlZCBmb3JldmVyLg0KPiA+ IA0KPiA+IHYyOg0KPiA+IMKgIC0gUmVuYW1lIHNvbWUgdGhpbmdzLg0KPiA+IMKgIC0gRGlzYWJs ZSB0aGUgV0Egb24gc3dfZmluaXNoL2RpcnR5X2ZiIChEYW5pZWwpLg0KPiA+IMKgIC0gRml4IE5V TEwgb2JqIGNoZWNraW5nLg0KPiA+IMKgIC0gUmVzdHJpYyB0byBHZW4gOS4NCj4gPiANCj4gPiBD YzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPg0KPiA+IENjOiBEYW5pZWwg VmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPg0KPiA+IENjOiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBQYXVsbyBaYW5vbmkg PHBhdWxvLnIuemFub25pQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmjCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgOSArKysrKysrKysNCj4g PiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmPCoMKgwqDCoMKgwqDCoMKgwqDCoHwg MTkgKysrKysrKysrKystLS0tLS0tDQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmPCoMKgwqDCoMKgfMKgwqAxICsNCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5owqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAzICsrKw0KPiA+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJjLmPCoMKgwqDCoMKgwqDCoMKgwqB8IDMzDQo+ID4gKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysNCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Zyb250YnVmZmVyLmMgfCAzMQ0KPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K PiA+IMKgNiBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0K PiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4gaW5kZXggZWZjYTUzNC4u NDVlMzFkMiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o DQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+IEBAIC04NzMs NiArODczLDEzIEBAIGVudW0gZmJfb3Bfb3JpZ2luIHsNCj4gPiDCoAlPUklHSU5fRElSVFlGQiwN Cj4gPiDCoH07DQo+ID4gwqANCj4gPiArZW51bSBmYl9tbWFwX3dhX2ZsYWdzIHsNCj4gPiArCUZC X01NQVBfV0FfQ1BVID0JMSA8PCAwLA0KPiA+ICsJRkJfTU1BUF9XQV9HVFQgPQkxIDw8IDEsDQo+ ID4gKwlGQl9NTUFQX1dBX0RJU0FCTEUgPcKgCTEgPDwgMiwNCj4gPiArCUZCX01NQVBfV0FfRkxB R19DT1VOVCA9CTMsDQo+ID4gK307DQo+ID4gKw0KDQpJJ2xsIGRvIHRoZSBjaGFuZ2UgdG8gbWFj cm9zIHlvdS9KYW5pIG1lbnRpb25lZCBpbiB0aGUgb3RoZXIgZW1haWxzLg0KDQo+ID4gwqBzdHJ1 Y3QgaW50ZWxfZmJjIHsNCj4gPiDCoAkvKiBUaGlzIGlzIGFsd2F5cyB0aGUgaW5uZXIgbG9jayB3 aGVuIG92ZXJsYXBwaW5nIHdpdGgNCj4gPiBzdHJ1Y3RfbXV0ZXggYW5kDQo+ID4gwqAJwqAqIGl0 J3MgdGhlIG91dGVyIGxvY2sgd2hlbiBvdmVybGFwcGluZyB3aXRoIHN0b2xlbl9sb2NrLg0KPiA+ ICovDQo+ID4gQEAgLTkxMCw2ICs5MTcsNyBAQCBzdHJ1Y3QgaW50ZWxfZmJjIHsNCj4gPiDCoAkJ CXVuc2lnbmVkIGludCBzdHJpZGU7DQo+ID4gwqAJCQlpbnQgZmVuY2VfcmVnOw0KPiA+IMKgCQkJ dW5zaWduZWQgaW50IHRpbGluZ19tb2RlOw0KPiA+ICsJCQl1bnNpZ25lZCBpbnQgbW1hcF93YV9m bGFnczsNCj4gPiDCoAkJfSBmYjsNCj4gPiDCoAl9IHN0YXRlX2NhY2hlOw0KPiA+IMKgDQo+ID4g QEAgLTIxNDMsNiArMjE1MSw3IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0IHsNCj4gPiDC oAl1bnNpZ25lZCBpbnQgY2FjaGVfZGlydHk6MTsNCj4gPiDCoA0KPiA+IMKgCXVuc2lnbmVkIGlu dCBmcm9udGJ1ZmZlcl9iaXRzOklOVEVMX0ZST05UQlVGRkVSX0JJVFM7DQo+ID4gKwl1bnNpZ25l ZCBpbnQgZmJfbW1hcF93YV9mbGFnczpGQl9NTUFQX1dBX0ZMQUdfQ09VTlQ7DQo+ID4gwqANCj4g PiDCoAl1bnNpZ25lZCBpbnQgcGluX2Rpc3BsYXk7DQo+ID4gwqANCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYw0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYw0KPiA+IGluZGV4IDg1ODhjODMuLmQ0NGYyN2UgMTAwNjQ0DQo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMNCj4gPiBAQCAtMTY5Miw2ICsxNjkyLDggQEAgaTkxNV9nZW1f c3dfZmluaXNoX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlDQo+ID4gKmRldiwgdm9pZCAqZGF0YSwN Cj4gPiDCoAkJZ290byB1bmxvY2s7DQo+ID4gwqAJfQ0KPiA+IMKgDQo+ID4gKwlpbnRlbF9mYl9v YmpfbW1hcF93YShvYmosIEZCX01NQVBfV0FfRElTQUJMRSk7DQo+ID4gKw0KPiA+IMKgCS8qIFBp bm5lZCBidWZmZXJzIG1heSBiZSBzY2Fub3V0LCBzbyBmbHVzaCB0aGUgY2FjaGUgKi8NCj4gPiDC oAlpZiAob2JqLT5waW5fZGlzcGxheSkNCj4gPiDCoAkJaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX2Nw dV93cml0ZV9kb21haW4ob2JqKTsNCj4gPiBAQCAtMTcyNCw3ICsxNzI2LDcgQEAgaTkxNV9nZW1f bW1hcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0KPiA+IHZvaWQgKmRhdGEsDQo+ID4g wqAJCcKgwqDCoMKgc3RydWN0IGRybV9maWxlICpmaWxlKQ0KPiA+IMKgew0KPiA+IMKgCXN0cnVj dCBkcm1faTkxNV9nZW1fbW1hcCAqYXJncyA9IGRhdGE7DQo+ID4gLQlzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iajsNCj4gPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7DQo+ID4g wqAJdW5zaWduZWQgbG9uZyBhZGRyOw0KPiA+IMKgDQo+ID4gwqAJaWYgKGFyZ3MtPmZsYWdzICYg fihJOTE1X01NQVBfV0MpKQ0KPiA+IEBAIC0xNzMzLDE5ICsxNzM1LDE5IEBAIGk5MTVfZ2VtX21t YXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4gPiB2b2lkICpkYXRhLA0KPiA+IMKg CWlmIChhcmdzLT5mbGFncyAmIEk5MTVfTU1BUF9XQyAmJiAhY3B1X2hhc19wYXQpDQo+ID4gwqAJ CXJldHVybiAtRU5PREVWOw0KPiA+IMKgDQo+ID4gLQlvYmogPSBkcm1fZ2VtX29iamVjdF9sb29r dXAoZGV2LCBmaWxlLCBhcmdzLT5oYW5kbGUpOw0KPiA+IC0JaWYgKG9iaiA9PSBOVUxMKQ0KPiA+ ICsJb2JqID0gdG9faW50ZWxfYm8oZHJtX2dlbV9vYmplY3RfbG9va3VwKGRldiwgZmlsZSwgYXJn cy0NCj4gPiA+aGFuZGxlKSk7DQo+ID4gKwlpZiAoJm9iai0+YmFzZSA9PSBOVUxMKQ0KPiA+IMKg CQlyZXR1cm4gLUVOT0VOVDsNCj4gPiDCoA0KPiA+IMKgCS8qIHByaW1lIG9iamVjdHMgaGF2ZSBu byBiYWNraW5nIGZpbHAgdG8gR0VNIG1tYXANCj4gPiDCoAnCoCogcGFnZXMgZnJvbS4NCj4gPiDC oAnCoCovDQo+ID4gLQlpZiAoIW9iai0+ZmlscCkgew0KPiA+IC0JCWRybV9nZW1fb2JqZWN0X3Vu cmVmZXJlbmNlX3VubG9ja2VkKG9iaik7DQo+ID4gKwlpZiAoIW9iai0+YmFzZS5maWxwKSB7DQo+ ID4gKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoJm9iai0+YmFzZSk7DQo+ ID4gwqAJCXJldHVybiAtRUlOVkFMOw0KPiA+IMKgCX0NCj4gPiDCoA0KPiA+IC0JYWRkciA9IHZt X21tYXAob2JqLT5maWxwLCAwLCBhcmdzLT5zaXplLA0KPiA+ICsJYWRkciA9IHZtX21tYXAob2Jq LT5iYXNlLmZpbHAsIDAsIGFyZ3MtPnNpemUsDQo+ID4gwqAJCcKgwqDCoMKgwqDCoMKgUFJPVF9S RUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwNCj4gPiDCoAkJwqDCoMKgwqDCoMKgwqBhcmdz LT5vZmZzZXQpOw0KPiA+IMKgCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfTU1BUF9XQykgew0KPiA+ IEBAIC0xNzYxLDEwICsxNzYzLDEyIEBAIGk5MTVfZ2VtX21tYXBfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwNCj4gPiB2b2lkICpkYXRhLA0KPiA+IMKgCQkJYWRkciA9IC1FTk9NRU07DQo+ ID4gwqAJCXVwX3dyaXRlKCZtbS0+bW1hcF9zZW0pOw0KPiA+IMKgCX0NCj4gPiAtCWRybV9nZW1f b2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKG9iaik7DQo+ID4gKwlkcm1fZ2VtX29iamVjdF91 bnJlZmVyZW5jZV91bmxvY2tlZCgmb2JqLT5iYXNlKTsNCj4gPiDCoAlpZiAoSVNfRVJSKCh2b2lk ICopYWRkcikpDQo+ID4gwqAJCXJldHVybiBhZGRyOw0KPiA+IMKgDQo+ID4gKwlpbnRlbF9mYl9v YmpfbW1hcF93YShvYmosIEZCX01NQVBfV0FfQ1BVKTsNCj4gPiArDQo+ID4gwqAJYXJncy0+YWRk cl9wdHIgPSAodWludDY0X3QpIGFkZHI7DQo+ID4gwqANCj4gPiDCoAlyZXR1cm4gMDsNCj4gPiBA QCAtMjA5OSw2ICsyMTAzLDcgQEAgaTkxNV9nZW1fbW1hcF9ndHQoc3RydWN0IGRybV9maWxlICpm aWxlLA0KPiA+IMKgCQlnb3RvIG91dDsNCj4gPiDCoA0KPiA+IMKgCSpvZmZzZXQgPSBkcm1fdm1h X25vZGVfb2Zmc2V0X2FkZHIoJm9iai0+YmFzZS52bWFfbm9kZSk7DQo+ID4gKwlpbnRlbF9mYl9v YmpfbW1hcF93YShvYmosIEZCX01NQVBfV0FfR1RUKTsNCj4gPiDCoA0KPiA+IMKgb3V0Og0KPiA+ IMKgCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOw0KPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCj4gPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiA+IGluZGV4IDI4ZWFkNjYuLjZlN2FhOWUg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQo+ID4gQEAgLTE0 NzA1LDYgKzE0NzA1LDcgQEAgc3RhdGljIGludA0KPiA+IGludGVsX3VzZXJfZnJhbWVidWZmZXJf ZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsDQo+ID4gwqAJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiLT5vYmo7DQo+ID4gwqANCj4gPiDCoAltdXRleF9s b2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7DQo+ID4gKwlpbnRlbF9mYl9vYmpfbW1hcF93YShvYmos IEZCX01NQVBfV0FfRElTQUJMRSk7DQo+ID4gwqAJaW50ZWxfZmJfb2JqX2ZsdXNoKG9iaiwgZmFs c2UsIE9SSUdJTl9ESVJUWUZCKTsNCj4gPiDCoAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211 dGV4KTsNCj4gPiDCoA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaA0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4gPiBpbmRl eCBiYTQ1MjQ1Li5iYmVhN2M0IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgN Cj4gPiBAQCAtMTA4Miw2ICsxMDgyLDcgQEAgdm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwX2Nv bXBsZXRlKHN0cnVjdA0KPiA+IGRybV9kZXZpY2UgKmRldiwNCj4gPiDCoAkJCQnCoMKgwqDCoMKg dW5zaWduZWQgZnJvbnRidWZmZXJfYml0cyk7DQo+ID4gwqB2b2lkIGludGVsX2Zyb250YnVmZmVy X2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4gPiDCoAkJCcKgwqDCoMKgdW5zaWduZWQg ZnJvbnRidWZmZXJfYml0cyk7DQo+ID4gK3ZvaWQgaW50ZWxfZmJfb2JqX21tYXBfd2Eoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwNCj4gPiB1bnNpZ25lZCBpbnQgZmxhZ3MpOw0KPiA+ IMKgdW5zaWduZWQgaW50IGludGVsX2ZiX2FsaWduX2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LA0KPiA+IMKgCQkJCcKgwqDCoHVuc2lnbmVkIGludCBoZWlnaHQsDQo+ID4gwqAJCQkJwqDC oMKgdWludDMyX3QgcGl4ZWxfZm9ybWF0LA0KPiA+IEBAIC0xMzcxLDYgKzEzNzIsOCBAQCB2b2lk IGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdA0KPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LA0KPiA+IMKgCQkJwqDCoGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbik7DQo+ID4gwqB2b2lk IGludGVsX2ZiY19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ID4g wqAJCcKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywgZW51bQ0KPiA+IGZi X29wX29yaWdpbiBvcmlnaW4pOw0KPiA+ICt2b2lkIGludGVsX2ZiY19tbWFwX3dhKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gPiArCQnCoMKgwqDCoMKgwqDCoHVuc2lnbmVk IGludCBmcm9udGJ1ZmZlcl9iaXRzLCB1bnNpZ25lZCBpbnQNCj4gPiBmbGFncyk7DQo+ID4gwqB2 b2lkIGludGVsX2ZiY19jbGVhbnVwX2NmYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOw0KPiA+IMKgDQo+ID4gwqAvKiBpbnRlbF9oZG1pLmMgKi8NCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2ZiYy5jDQo+ID4gaW5kZXggNzEwMTg4MC4uNzE4YWMzOCAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYw0KPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jDQo+ID4gQEAgLTc0NSw2ICs3NDUsMTQgQEAgc3RhdGlj IHZvaWQNCj4gPiBpbnRlbF9mYmNfdXBkYXRlX3N0YXRlX2NhY2hlKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjKQ0KPiA+IMKgCWNhY2hlLT5mYi5zdHJpZGUgPSBmYi0+cGl0Y2hlc1swXTsNCj4gPiDC oAljYWNoZS0+ZmIuZmVuY2VfcmVnID0gb2JqLT5mZW5jZV9yZWc7DQo+ID4gwqAJY2FjaGUtPmZi LnRpbGluZ19tb2RlID0gb2JqLT50aWxpbmdfbW9kZTsNCj4gPiArCWNhY2hlLT5mYi5tbWFwX3dh X2ZsYWdzID0gb2JqLT5mYl9tbWFwX3dhX2ZsYWdzOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0 aWMgYm9vbCBuZWVkX21tYXBfZGlzYWJsZV93b3JrYXJvdW5kKHN0cnVjdCBpbnRlbF9mYmMgKmZi YykNCj4gPiArew0KPiA+ICsJdW5zaWduZWQgaW50IGZsYWdzID0gZmJjLT5zdGF0ZV9jYWNoZS5m Yi5tbWFwX3dhX2ZsYWdzOw0KPiA+ICsNCj4gPiArCXJldHVybiAoZmxhZ3MgJiBGQl9NTUFQX1dB X0NQVSkgJiYgIShmbGFncyAmDQo+ID4gRkJfTU1BUF9XQV9ESVNBQkxFKTsNCj4gPiDCoH0NCj4g PiDCoA0KPiA+IMKgc3RhdGljIGJvb2wgaW50ZWxfZmJjX2Nhbl9hY3RpdmF0ZShzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YykNCj4gPiBAQCAtODE2LDYgKzgyNCwxMSBAQCBzdGF0aWMgYm9vbCBpbnRl bF9mYmNfY2FuX2FjdGl2YXRlKHN0cnVjdA0KPiA+IGludGVsX2NydGMgKmNydGMpDQo+ID4gwqAJ CXJldHVybiBmYWxzZTsNCj4gPiDCoAl9DQo+ID4gwqANCj4gPiArCWlmIChuZWVkX21tYXBfZGlz YWJsZV93b3JrYXJvdW5kKGZiYykpIHsNCj4gPiArCQlmYmMtPm5vX2ZiY19yZWFzb24gPSAiRkIg aXMgQ1BVIG9yIFdDIG1tYXBwZWQiOw0KPiA+ICsJCXJldHVybiBmYWxzZTsNCj4gPiArCX0NCj4g PiArDQo+ID4gwqAJcmV0dXJuIHRydWU7DQo+ID4gwqB9DQo+ID4gwqANCj4gPiBAQCAtMTAwOCw2 ICsxMDIxLDI2IEBAIG91dDoNCj4gPiDCoAltdXRleF91bmxvY2soJmZiYy0+bG9jayk7DQo+ID4g wqB9DQo+ID4gwqANCj4gPiArdm9pZCBpbnRlbF9mYmNfbW1hcF93YShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsDQo+ID4gKwkJwqDCoMKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgZnJv bnRidWZmZXJfYml0cywgdW5zaWduZWQgaW50DQo+ID4gZmxhZ3MpDQo+ID4gK3sNCj4gPiArCXN0 cnVjdCBpbnRlbF9mYmMgKmZiYyA9ICZkZXZfcHJpdi0+ZmJjOw0KPiA+ICsNCj4gPiArCWlmICgh ZmJjX3N1cHBvcnRlZChkZXZfcHJpdikpDQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsNCj4gPiArCW11 dGV4X2xvY2soJmZiYy0+bG9jayk7DQo+ID4gKw0KPiA+ICsJaWYgKGZiYy0+ZW5hYmxlZCAmJg0K PiA+ICsJwqDCoMKgwqAoaW50ZWxfZmJjX2dldF9mcm9udGJ1ZmZlcl9iaXQoZmJjKSAmDQo+ID4g ZnJvbnRidWZmZXJfYml0cykpIHsNCj4gPiArCQlmYmMtPnN0YXRlX2NhY2hlLmZiLm1tYXBfd2Ff ZmxhZ3MgPSBmbGFnczsNCj4gPiArCQlpZiAobmVlZF9tbWFwX2Rpc2FibGVfd29ya2Fyb3VuZChm YmMpKQ0KPiA+ICsJCQlpbnRlbF9mYmNfZGVhY3RpdmF0ZShkZXZfcHJpdik7DQo+ID4gKwl9DQo+ ID4gKw0KPiA+ICsJbXV0ZXhfdW5sb2NrKCZmYmMtPmxvY2spOw0KPiA+ICt9DQo+ID4gKw0KPiA+ IMKgLyoqDQo+ID4gwqAgKiBpbnRlbF9mYmNfY2hvb3NlX2NydGMgLSBzZWxlY3QgYSBDUlRDIHRv IGVuYWJsZSBGQkMgb24NCj4gPiDCoCAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UgaW5zdGFuY2UN Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIu Yw0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYw0KPiA+IGlu ZGV4IGFjODUzNTcuLjhkOWIzMjcgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZnJvbnRidWZmZXIuYw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Zyb250YnVmZmVyLmMNCj4gPiBAQCAtMjQxLDMgKzI0MSwzNCBAQCB2b2lkIGludGVsX2Zy b250YnVmZmVyX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UNCj4gPiAqZGV2LA0KPiA+IMKgDQo+ID4g wqAJaW50ZWxfZnJvbnRidWZmZXJfZmx1c2goZGV2LCBmcm9udGJ1ZmZlcl9iaXRzLA0KPiA+IE9S SUdJTl9GTElQKTsNCj4gPiDCoH0NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBpbnRlbF9mYl9v YmpfbW1hcF93YSAtIG5vdGlmaWVzIGFib3V0IG9iamVjdHMgYmVpbmcgbW1hcHBlZA0KPiA+ICsg KiBAb2JqOiBHRU0gb2JqZWN0IGJlaW5nIG1tYXBwZWQNCj4gPiArICoNCj4gPiArICogVGhpcyBm dW5jdGlvbiBnZXRzIGNhbGxlZCB3aGVuZXZlciBhbiBvYmplY3QgZ2V0cyBtbWFwcGVkLiBOb3QN Cj4gPiBldmVyeSB1c2VyDQo+ID4gKyAqIHNwYWNlIGFwcGxpY2F0aW9uIGZvbGxvd3MgdGhlIHBy b3RvY29sIGFzc3VtZWQgYnkgdGhlDQo+ID4gZnJvbnRidWZmZXIgdHJhY2tpbmcNCj4gPiArICog c3Vic3lzdGVtIHdoZW4gaXQgd2FzIGNyZWF0ZWQsIHNvIHRoaXMgbW1hcCBub3RpZnkgY2FsbGJh Y2sgY2FuDQo+ID4gYmUgdXNlZCB0bw0KPiA+ICsgKiBjb21wbGV0ZWx5IGRpc2FibGUgZnJvbnRi dWZmZXIgZmVhdHVyZXMgc3VjaCBhcyBGQkMgYW5kIFBTUi4NCj4gPiBFdmVuIGlmIGF0IHNvbWUN Cj4gPiArICogcG9pbnQgd2UgZml4IGV2ZXIgdXNlciBzcGFjZSBhcHBsaWNhdGlvbiwgdGhlcmUn cyBzdGlsbCB0aGUNCj4gPiBwb3NzaWJpbGl0eSB0aGF0DQo+ID4gKyAqIHRoZSB1c2VyIG1heSBo YXZlIGEgbmV3IEtlcm5lbCB3aXRoIHRoZSBvbGQgdXNlciBzcGFjZS4NCj4gPiArICoNCj4gPiAr ICogQWxzbyBub3RpY2UgdGhhdCB0aGVyZSdzIG5vIG11bm1hcCBBUEkgYmVjYXVzZSB1c2VyIHNw YWNlIGNhbGxzDQo+ID4gbXVubWFwKCkNCj4gPiArICogZGlyZWN0bHkuIEV2ZW4gaWYgd2UgaGFk LCBpdCBwcm9iYWJseSB3b3VsZG4ndCBoZWxwIHNpbmNlDQo+ID4gbXVubWFwKCkgY2FsbHMgYXJl DQo+ID4gKyAqIG5vdCBjb21tb24uDQo+ID4gKyAqLw0KPiA+ICt2b2lkIGludGVsX2ZiX29ial9t bWFwX3dhKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosDQo+ID4gdW5zaWduZWQgaW50 IGZsYWdzKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBvYmotPmJhc2UuZGV2LQ0KPiA+ID5kZXZfcHJpdmF0ZTsNCj4gPiArDQo+ID4gKwlpZiAoIUlT X0dFTjkoZGV2X3ByaXYpKQ0KPiBQbGVhc2Ugb25seSBJU19TS1lMQUtFLCBJIGRvbid0IHdhbnQg dG8gZXh0ZW5kIHRoaXMgdG8gZWl0aGVyIGJ4dCBvcg0KPiBrYmwsDQo+IGFuZCBib3RoIGFyZSBz dGlsbCB1bmRlciBwcmVsaW1faHdfc3VwcG9ydCBhbmQgbm90IHlldCBzaGlwcGluZywgaS5lLg0K PiB3ZQ0KPiBjYW4gYnJlYWsgdGhlbSA7LSkNCg0KTW1ta2F5Lg0KDQo+IA0KPiBXcnQgdGhlIGlt cGxlbWVudGF0aW9uOiBJIHRoaW5rIGl0IHdvdWxkIGJlIGdyZWF0IHRvIGdldCBQU1Igb24gYm9h cmQNCj4gdG8NCj4gYXZvaWQgZHVwbGljYXRpbmcgdGhlIGxvZ2ljLg0KDQpUaGUgZ29hbCBvZiB0 aGlzIHBhdGNoIGdvaW5nIHRocm91Z2ggaW50ZWxfZnJvbnRidWZmZXIuYyBpbnN0ZWFkIG9mDQpk aXJlY3RseSB0byBpbnRlbF9mYmMuYyBpcyBleGFjdGx5IHRvIGFsbG93IGZvciBQU1IgdG8gZG8g c29tZXRoaW5nDQpzaW1pbGFyLg0KDQoNCj4gIE9uZSBvcHRpb24gdGhhdCBtaWdodCB3b3VsZCBi ZSB0byBjcmVhdGUgYW4NCj4gaW52bGlkYXRlIG9uIHNrbCB3aXRoIE9SSUdJTl9NTUFQX1dBLCBh bmQgYXMgbG9uZyBhcyB0aGF0J3MgaW4gZWZmZWN0DQo+ICh1bnRpbCB0aGUgZmlyc3Qgc3dfZmlu aXNoIG9yIGRpcnR5X2ZiKSB0aGUgZnJvbnRidWZmZXIgdHJhY2tpbmcgY29kZQ0KPiBpdHNlbGYg d291bGQgZmlsdGVyIGFsbCBmbHVzaGVzLg0KDQpUaGF0J3MgYW4gbm9uLXRyaXZpYWwgZGlzdG9y dGlvbiBvZiB0aGUgdHJpdmlhbCBpbnZhbGlkYXRlL2ZsdXNoIEFQSS4gSQ0KcHJlZmVyIGhhdmlu ZyBhIHNwZWNpYWwgY29kZXBhdGggZm9yIHRoaXMgc3BlY2lhbCBjYXNlIGluc3RlYWQgb2YNCmFk ZGluZyBzZWNvbmQgbWVhbmluZ3MgdG8gZmx1c2gvaW52YWxpZGF0ZS4NCg0KQmVzaWRlcywgZXZl biB3aXRoIHRoZSBpbnZhbGlkYXRlL2ZsdXNoIEFQSSBiZWluZyBzaW1wbGUsIGxvb2sgYXQgaG93 DQptYW55IHRpbWVzIHdlIGFscmVhZHkgdHdlYWtlZC9icm9rZS9maXhlZCB0aG9zZSBmdW5jdGlv bnMsIGJvdGggZm9yIFBTUg0KYW5kIEZCQy4NCg0KDQo+ICBmYmMgY291bGQgdGhlbiB1c2UgT1JJ R0lOX01NQVBfV0ENCj4gaW52YWxpZGF0ZSB0byBwZXJtYW5lbnRseSBkaXNhYmxlICh3ZWxsLCBu b3QgcmUtZW5hYmxlIGFmdGVyIGZsaXApDQo+IHVudGlsDQo+IGl0IHNlZXMgYSBmbHVzaC4gQW5k IFBTUiB3b3VsZCBKdXN0IFdvcmsgKEkgaG9wZSkuDQoNCkkgdGhpbmsgYW55IFBTUiBmaXhlcyBy ZWxhdGVkIHRvIHRoaXMgc2hvdWxkIGJlIHNlcGFyYXRlIHBhdGNoZXMuIEkNCmhhdmUgdG8gY29u ZmVzcyBJJ3ZlIGp1c3QgYmVlbiBzdHVkeWluZyB0aGUgRkJDIHBhcnQgb2YgdGhlIHByb2JsZW0s IHNvDQpJIHdhcyB3YWl0aW5nIGZvciBSb2RyaWdvJ3Mgb3BpbmlvbnMgaGVyZSBiZWZvcmUgYW55 IGNvbmNsdXNpb25zLg0KQW55d2F5LCB3ZSBjYW4gYWx3YXlzIGNoYW5nZSB0aGlzIGNvZGUgKGlu IHRoaXMgcGF0Y2ggb3IgbGF0ZXIpIHRvDQpiZXR0ZXIgc3VpdCBQU1IuDQoNCj4gDQo+IENoZWVy cywgRGFuaWVsDQo+IA0KPiA+IA0KPiA+ICsJCXJldHVybjsNCj4gPiArDQo+ID4gKwlvYmotPmZi X21tYXBfd2FfZmxhZ3MgfD0gZmxhZ3M7DQo+ID4gKw0KPiA+ICsJaWYgKCFvYmotPmZyb250YnVm ZmVyX2JpdHMpDQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsNCj4gPiArCWludGVsX2ZiY19tbWFwX3dh KGRldl9wcml2LCBvYmotPmZyb250YnVmZmVyX2JpdHMsDQo+ID4gKwkJCcKgwqBvYmotPmZiX21t YXBfd2FfZmxhZ3MpOw0KPiA+ICt9DQo+IA0KPiA+IA0KPiA+IC0twqANCj4gPiAyLjcuMA0KPiA+ IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK