From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/4] drm/i915: opt-out CPU and WC mmaps from FBC Date: Wed, 23 Mar 2016 09:53:20 +0100 Message-ID: <20160323085320.GI28483@phenom.ffwll.local> 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> <1458683279.2189.32.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x232.google.com (mail-wm0-x232.google.com [IPv6:2a00:1450:400c:c09::232]) by gabe.freedesktop.org (Postfix) with ESMTPS id 03B4D89358 for ; Wed, 23 Mar 2016 08:52:34 +0000 (UTC) Received: by mail-wm0-x232.google.com with SMTP id r129so125859060wmr.1 for ; Wed, 23 Mar 2016 01:52:33 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1458683279.2189.32.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" Cc: "daniel.vetter@ffwll.ch" , "intel-gfx@lists.freedesktop.org" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXIgMjIsIDIwMTYgYXQgMDk6NDg6MDBQTSArMDAwMCwgWmFub25pLCBQYXVsbyBS IHdyb3RlOgo+IEVtIFRlciwgMjAxNi0wMy0yMiDDoHMgMTI6MjkgKzAxMDAsIERhbmllbCBWZXR0 ZXIgZXNjcmV2ZXU6Cj4gPiBPbiBNb24sIE1hciAyMSwgMjAxNiBhdCAwNDoyNjo1N1BNIC0wMzAw LCBQYXVsbyBaYW5vbmkgd3JvdGU6Cj4gPiA+IAo+ID4gPiBGQkMgYW5kIHRoZSBmcm9udGJ1ZmZl ciB0cmFja2luZyBpbmZyYXN0cnVjdHVyZSB3ZXJlIGRlc2lnbmVkCj4gPiA+IGFzc3VtaW5nCj4g PiA+IHRoYXQgdXNlciBzcGFjZSBhcHBsaWNhdGlvbnMgd291bGQgZm9sbG93IGEgc3BlY2lmaWMg c2V0IG9mIHJ1bGVzCj4gPiA+IHJlZ2FyZGluZyBmcm9udGJ1ZmZlciBtYW5hZ2VtZW50IGFuZCBt bWFwcGluZy4gSSByZWNlbnRseQo+ID4gPiBkaXNjb3ZlcmVkCj4gPiA+IHRoYXQgY3VycmVudCB1 c2VyIHNwYWNlIGlzIG5vdCBleGFjdGx5IGZvbGxvd2luZyB0aGVzZSBydWxlczogbXkKPiA+ID4g aW52ZXN0aWdhdGlvbiBsZWQgbWUgdG8gdGhlIGNvbmNsdXNpb24gdGhhdCB0aGUgZ2VuZXJpYyBi YWNrZW5kCj4gPiA+IGZyb20KPiA+ID4gU05BIC0gdXNlZCBieSBTS0wgYW5kIHRoZSBvdGhlciBu ZXcgcGxhdGZvcm1zIHdpdGhvdXQgYSBzcGVjaWZpYwo+ID4gPiBiYWNrZW5kIC0gaXMgbm90IGlz c3Vpbmcgc3dfZmluaXNoL2RpcnR5X2ZiIElPQ1RMcyB3aGVuIHVzaW5nIHRoZQo+ID4gPiBDUFUK PiA+ID4gYW5kIFdDIG1tYXBzLiBJIGRpc2NvdmVyZWQgdGhpcyB3aGVuIHJ1bm5pbmcgbGlnaHRk bTogSSB3b3VsZCB0eXBlCj4gPiA+IHRoZQo+ID4gPiBwYXNzd29yZCBhbmQgbm90aGluZyB3b3Vs ZCBhcHBlYXIgb24gdGhlIHNjcmVlbiB1bmxlc3MgSSBtb3ZlZCB0aGUKPiA+ID4gbW91c2Ugb3Zl ciB0aGUgcGxhY2Ugd2hlcmUgdGhlIGxldHRlcnMgd2VyZSBzdXBwb3NlZCB0byBhcHBlYXIuCj4g PiA+IAo+ID4gPiBTaW5jZSB3ZSBjYW4ndCBkZXRlY3Qgd2hldGhlciB0aGUgY3VycmVudCBEUk0g bWFzdGVyIGlzIGEgd2VsbC0KPiA+ID4gYmVoYXZlZAo+ID4gPiBhcHBsaWNhdGlvbiBvciBub3Qs IGxldCdzIHVzZSB0aGUgc2xlZGdlaGFtbWVyIGFwcHJvYWNoIGFuZCBhc3N1bWUKPiA+ID4gdGhh dCBldmVyeSB1c2VyIHNwYWNlIGNsaWVudCBvbiBldmVyeSBnZW4gaXMgYmFkIGJ5IGRpc2FibGlu ZyBGQkMKPiA+ID4gd2hlbgo+ID4gPiB0aGUgZnJvbnRidWZmZXIgaXMgQ1BVL1dDIG1tYXBwZWQu wqDCoFRoaXMgd2lsbCBhbGxvdyB1cyB0byBlbmFibGUKPiA+ID4gRkJDCj4gPiA+IG9uIFNLTCwg bW92aW5nIGl0cyBGQkMtcmVsYXRlZCBwb3dlciBzYXZpbmdzIGZyb20gImFsd2F5cyAwJSIgdG8g Ij4KPiA+ID4gMCUKPiA+ID4gaW4gc29tZSBjYXNlcyIuCj4gPiA+IAo+ID4gPiBUaGVyZSdzIGFs c28gc29tZSBhZGRpdGlvbmFsIGNvZGUgdG8gZGlzYWJsZSB0aGUgd29ya2Fyb3VuZCBmb3IKPiA+ ID4gZnJvbnRidWZmZXJzIHRoYXQgZXZlciByZWNlaXZlZCBhIHN3X2ZpbmlzaCBvciBkaXJ0eV9m YiBJT0NUTCwKPiA+ID4gc2luY2UKPiA+ID4gdGhlIGN1cnJlbnQgYmFkIHVzZXIgc3BhY2UgbmV2 ZXIgaXNzdWVzIHRob3NlIGNhbGxzLiBUaGlzIHNob3VsZAo+ID4gPiBoZWxwCj4gPiA+IGZvciBz b21lIHNwZWNpZmljIGNhc2VzIGFuZCBvdXIgSUdUIHRlc3RzLCBidXQgd29uJ3QgYmUgZW5vdWdo IGZvcgo+ID4gPiBhCj4gPiA+IG5ldyB4Zjg2LXZpZGVvLWludGVsIHVzaW5nIFRlYXJGcmVlLgo+ ID4gPiAKPiA+ID4gTm90aWNlIHRoYXQgd2UgbWF5IG5lZWQgYW4gZXF1aXZhbGVudCBjb21taXQg Zm9yIFBTUiB0b28uIFdlIGFsc28KPiA+ID4gbmVlZAo+ID4gPiB0byBpbnZlc3RpZ2F0ZSB3aGV0 aGVyIFBTUiBuZWVkcyB0byBiZSBkaXNhYmxlZCBvbiBHVFQgbW1hcHM6IGlmCj4gPiA+IHRoYXQn cyB0aGUgY2FzZSwgd2UnbGwgaGF2ZSBwcm9ibGVtcyBzaW5jZSB3ZSBzZWVtIHRvIGFsd2F5cyBo YXZlCj4gPiA+IEdUVAo+ID4gPiBtbWFwcyBvbiBvdXIgY3VycmVudCB1c2VyIHNwYWNlLCBzbyB3 ZSB3b3VsZCBlbmQgdXAga2VlcGluZyBQU1IKPiA+ID4gZGlzYWJsZWQgZm9yZXZlci4KPiA+ID4g Cj4gPiA+IHYyOgo+ID4gPiDCoCAtIFJlbmFtZSBzb21lIHRoaW5ncy4KPiA+ID4gwqAgLSBEaXNh YmxlIHRoZSBXQSBvbiBzd19maW5pc2gvZGlydHlfZmIgKERhbmllbCkuCj4gPiA+IMKgIC0gRml4 IE5VTEwgb2JqIGNoZWNraW5nLgo+ID4gPiDCoCAtIFJlc3RyaWMgdG8gR2VuIDkuCj4gPiA+IAo+ ID4gPiBDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gPiBDYzog RGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ID4gQ2M6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQYXVs byBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+IMKgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqA5ICsr KysrKysrKwo+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmPCoMKgwqDCoMKg wqDCoMKgwqDCoHwgMTkgKysrKysrKysrKystLS0tLS0tCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jwqDCoMKgwqDCoHzCoMKgMSArCj4gPiA+IMKgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmjCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDMgKysrCj4gPiA+ IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmPCoMKgwqDCoMKgwqDCoMKgwqB8IDMz Cj4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+IMKgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYyB8IDMxCj4gPiA+ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+ID4gPiDCoDYgZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+ID4gPiBpbmRleCBlZmNhNTM0Li40NWUzMWQyIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiA+ID4gQEAgLTg3Myw2ICs4NzMsMTMgQEAgZW51bSBmYl9vcF9vcmlnaW4g ewo+ID4gPiDCoAlPUklHSU5fRElSVFlGQiwKPiA+ID4gwqB9Owo+ID4gPiDCoAo+ID4gPiArZW51 bSBmYl9tbWFwX3dhX2ZsYWdzIHsKPiA+ID4gKwlGQl9NTUFQX1dBX0NQVSA9CTEgPDwgMCwKPiA+ ID4gKwlGQl9NTUFQX1dBX0dUVCA9CTEgPDwgMSwKPiA+ID4gKwlGQl9NTUFQX1dBX0RJU0FCTEUg PcKgCTEgPDwgMiwKPiA+ID4gKwlGQl9NTUFQX1dBX0ZMQUdfQ09VTlQgPQkzLAo+ID4gPiArfTsK PiA+ID4gKwo+IAo+IEknbGwgZG8gdGhlIGNoYW5nZSB0byBtYWNyb3MgeW91L0phbmkgbWVudGlv bmVkIGluIHRoZSBvdGhlciBlbWFpbHMuCj4gCj4gPiA+IMKgc3RydWN0IGludGVsX2ZiYyB7Cj4g PiA+IMKgCS8qIFRoaXMgaXMgYWx3YXlzIHRoZSBpbm5lciBsb2NrIHdoZW4gb3ZlcmxhcHBpbmcg d2l0aAo+ID4gPiBzdHJ1Y3RfbXV0ZXggYW5kCj4gPiA+IMKgCcKgKiBpdCdzIHRoZSBvdXRlciBs b2NrIHdoZW4gb3ZlcmxhcHBpbmcgd2l0aCBzdG9sZW5fbG9jay4KPiA+ID4gKi8KPiA+ID4gQEAg LTkxMCw2ICs5MTcsNyBAQCBzdHJ1Y3QgaW50ZWxfZmJjIHsKPiA+ID4gwqAJCQl1bnNpZ25lZCBp bnQgc3RyaWRlOwo+ID4gPiDCoAkJCWludCBmZW5jZV9yZWc7Cj4gPiA+IMKgCQkJdW5zaWduZWQg aW50IHRpbGluZ19tb2RlOwo+ID4gPiArCQkJdW5zaWduZWQgaW50IG1tYXBfd2FfZmxhZ3M7Cj4g PiA+IMKgCQl9IGZiOwo+ID4gPiDCoAl9IHN0YXRlX2NhY2hlOwo+ID4gPiDCoAo+ID4gPiBAQCAt MjE0Myw2ICsyMTUxLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qgewo+ID4gPiDCoAl1 bnNpZ25lZCBpbnQgY2FjaGVfZGlydHk6MTsKPiA+ID4gwqAKPiA+ID4gwqAJdW5zaWduZWQgaW50 IGZyb250YnVmZmVyX2JpdHM6SU5URUxfRlJPTlRCVUZGRVJfQklUUzsKPiA+ID4gKwl1bnNpZ25l ZCBpbnQgZmJfbW1hcF93YV9mbGFnczpGQl9NTUFQX1dBX0ZMQUdfQ09VTlQ7Cj4gPiA+IMKgCj4g PiA+IMKgCXVuc2lnbmVkIGludCBwaW5fZGlzcGxheTsKPiA+ID4gwqAKPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCj4gPiA+IGluZGV4IDg1ODhjODMuLmQ0NGYyN2UgMTAwNjQ0Cj4g PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ID4gPiBAQCAtMTY5Miw2ICsxNjkyLDggQEAg aTkxNV9nZW1fc3dfZmluaXNoX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlCj4gPiA+ICpkZXYsIHZv aWQgKmRhdGEsCj4gPiA+IMKgCQlnb3RvIHVubG9jazsKPiA+ID4gwqAJfQo+ID4gPiDCoAo+ID4g PiArCWludGVsX2ZiX29ial9tbWFwX3dhKG9iaiwgRkJfTU1BUF9XQV9ESVNBQkxFKTsKPiA+ID4g Kwo+ID4gPiDCoAkvKiBQaW5uZWQgYnVmZmVycyBtYXkgYmUgc2Nhbm91dCwgc28gZmx1c2ggdGhl IGNhY2hlICovCj4gPiA+IMKgCWlmIChvYmotPnBpbl9kaXNwbGF5KQo+ID4gPiDCoAkJaTkxNV9n ZW1fb2JqZWN0X2ZsdXNoX2NwdV93cml0ZV9kb21haW4ob2JqKTsKPiA+ID4gQEAgLTE3MjQsNyAr MTcyNiw3IEBAIGk5MTVfZ2VtX21tYXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ ID4gdm9pZCAqZGF0YSwKPiA+ID4gwqAJCcKgwqDCoMKgc3RydWN0IGRybV9maWxlICpmaWxlKQo+ ID4gPiDCoHsKPiA+ID4gwqAJc3RydWN0IGRybV9pOTE1X2dlbV9tbWFwICphcmdzID0gZGF0YTsK PiA+ID4gLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqOwo+ID4gPiDCoAl1bnNpZ25lZCBsb25nIGFkZHI7Cj4gPiA+IMKg Cj4gPiA+IMKgCWlmIChhcmdzLT5mbGFncyAmIH4oSTkxNV9NTUFQX1dDKSkKPiA+ID4gQEAgLTE3 MzMsMTkgKzE3MzUsMTkgQEAgaTkxNV9nZW1fbW1hcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ID4gPiB2b2lkICpkYXRhLAo+ID4gPiDCoAlpZiAoYXJncy0+ZmxhZ3MgJiBJOTE1X01N QVBfV0MgJiYgIWNwdV9oYXNfcGF0KQo+ID4gPiDCoAkJcmV0dXJuIC1FTk9ERVY7Cj4gPiA+IMKg Cj4gPiA+IC0Jb2JqID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGRldiwgZmlsZSwgYXJncy0+aGFu ZGxlKTsKPiA+ID4gLQlpZiAob2JqID09IE5VTEwpCj4gPiA+ICsJb2JqID0gdG9faW50ZWxfYm8o ZHJtX2dlbV9vYmplY3RfbG9va3VwKGRldiwgZmlsZSwgYXJncy0KPiA+ID4gPmhhbmRsZSkpOwo+ ID4gPiArCWlmICgmb2JqLT5iYXNlID09IE5VTEwpCj4gPiA+IMKgCQlyZXR1cm4gLUVOT0VOVDsK PiA+ID4gwqAKPiA+ID4gwqAJLyogcHJpbWUgb2JqZWN0cyBoYXZlIG5vIGJhY2tpbmcgZmlscCB0 byBHRU0gbW1hcAo+ID4gPiDCoAnCoCogcGFnZXMgZnJvbS4KPiA+ID4gwqAJwqAqLwo+ID4gPiAt CWlmICghb2JqLT5maWxwKSB7Cj4gPiA+IC0JCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3Vu bG9ja2VkKG9iaik7Cj4gPiA+ICsJaWYgKCFvYmotPmJhc2UuZmlscCkgewo+ID4gPiArCQlkcm1f Z2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZCgmb2JqLT5iYXNlKTsKPiA+ID4gwqAJCXJl dHVybiAtRUlOVkFMOwo+ID4gPiDCoAl9Cj4gPiA+IMKgCj4gPiA+IC0JYWRkciA9IHZtX21tYXAo b2JqLT5maWxwLCAwLCBhcmdzLT5zaXplLAo+ID4gPiArCWFkZHIgPSB2bV9tbWFwKG9iai0+YmFz ZS5maWxwLCAwLCBhcmdzLT5zaXplLAo+ID4gPiDCoAkJwqDCoMKgwqDCoMKgwqBQUk9UX1JFQUQg fCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELAo+ID4gPiDCoAkJwqDCoMKgwqDCoMKgwqBhcmdzLT5v ZmZzZXQpOwo+ID4gPiDCoAlpZiAoYXJncy0+ZmxhZ3MgJiBJOTE1X01NQVBfV0MpIHsKPiA+ID4g QEAgLTE3NjEsMTAgKzE3NjMsMTIgQEAgaTkxNV9nZW1fbW1hcF9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ID4gPiB2b2lkICpkYXRhLAo+ID4gPiDCoAkJCWFkZHIgPSAtRU5PTUVNOwo+ ID4gPiDCoAkJdXBfd3JpdGUoJm1tLT5tbWFwX3NlbSk7Cj4gPiA+IMKgCX0KPiA+ID4gLQlkcm1f Z2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChvYmopOwo+ID4gPiArCWRybV9nZW1fb2Jq ZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKCZvYmotPmJhc2UpOwo+ID4gPiDCoAlpZiAoSVNfRVJS KCh2b2lkICopYWRkcikpCj4gPiA+IMKgCQlyZXR1cm4gYWRkcjsKPiA+ID4gwqAKPiA+ID4gKwlp bnRlbF9mYl9vYmpfbW1hcF93YShvYmosIEZCX01NQVBfV0FfQ1BVKTsKPiA+ID4gKwo+ID4gPiDC oAlhcmdzLT5hZGRyX3B0ciA9ICh1aW50NjRfdCkgYWRkcjsKPiA+ID4gwqAKPiA+ID4gwqAJcmV0 dXJuIDA7Cj4gPiA+IEBAIC0yMDk5LDYgKzIxMDMsNyBAQCBpOTE1X2dlbV9tbWFwX2d0dChzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGUsCj4gPiA+IMKgCQlnb3RvIG91dDsKPiA+ID4gwqAKPiA+ID4gwqAJ Km9mZnNldCA9IGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigmb2JqLT5iYXNlLnZtYV9ub2RlKTsK PiA+ID4gKwlpbnRlbF9mYl9vYmpfbW1hcF93YShvYmosIEZCX01NQVBfV0FfR1RUKTsKPiA+ID4g wqAKPiA+ID4gwqBvdXQ6Cj4gPiA+IMKgCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmot PmJhc2UpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ IGluZGV4IDI4ZWFkNjYuLjZlN2FhOWUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiA+ID4gQEAgLTE0NzA1LDYgKzE0NzA1LDcgQEAgc3RhdGljIGludAo+ ID4gPiBpbnRlbF91c2VyX2ZyYW1lYnVmZmVyX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiLAo+ID4gPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmIt Pm9iajsKPiA+ID4gwqAKPiA+ID4gwqAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ ID4gPiArCWludGVsX2ZiX29ial9tbWFwX3dhKG9iaiwgRkJfTU1BUF9XQV9ESVNBQkxFKTsKPiA+ ID4gwqAJaW50ZWxfZmJfb2JqX2ZsdXNoKG9iaiwgZmFsc2UsIE9SSUdJTl9ESVJUWUZCKTsKPiA+ ID4gwqAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gPiA+IMKgCj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+IGluZGV4IGJhNDUyNDUuLmJiZWE3YzQg MTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+IEBAIC0xMDgyLDYg KzEwODIsNyBAQCB2b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsaXBfY29tcGxldGUoc3RydWN0Cj4g PiA+IGRybV9kZXZpY2UgKmRldiwKPiA+ID4gwqAJCQkJwqDCoMKgwqDCoHVuc2lnbmVkIGZyb250 YnVmZmVyX2JpdHMpOwo+ID4gPiDCoHZvaWQgaW50ZWxfZnJvbnRidWZmZXJfZmxpcChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ID4gPiDCoAkJCcKgwqDCoMKgdW5zaWduZWQgZnJvbnRidWZmZXJf Yml0cyk7Cj4gPiA+ICt2b2lkIGludGVsX2ZiX29ial9tbWFwX3dhKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCj4gPiA+IHVuc2lnbmVkIGludCBmbGFncyk7Cj4gPiA+IMKgdW5zaWdu ZWQgaW50IGludGVsX2ZiX2FsaWduX2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4g PiDCoAkJCQnCoMKgwqB1bnNpZ25lZCBpbnQgaGVpZ2h0LAo+ID4gPiDCoAkJCQnCoMKgwqB1aW50 MzJfdCBwaXhlbF9mb3JtYXQsCj4gPiA+IEBAIC0xMzcxLDYgKzEzNzIsOCBAQCB2b2lkIGludGVs X2ZiY19pbnZhbGlkYXRlKHN0cnVjdAo+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiA+ID4gwqAJCQnCoMKgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKTsKPiA+ID4gwqB2b2lkIGlu dGVsX2ZiY19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+IMKg CQnCoMKgwqDCoMKgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMsIGVudW0KPiA+ID4gZmJf b3Bfb3JpZ2luIG9yaWdpbik7Cj4gPiA+ICt2b2lkIGludGVsX2ZiY19tbWFwX3dhKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gKwkJwqDCoMKgwqDCoMKgwqB1bnNpZ25l ZCBpbnQgZnJvbnRidWZmZXJfYml0cywgdW5zaWduZWQgaW50Cj4gPiA+IGZsYWdzKTsKPiA+ID4g wqB2b2lkIGludGVsX2ZiY19jbGVhbnVwX2NmYihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwo+ID4gPiDCoAo+ID4gPiDCoC8qIGludGVsX2hkbWkuYyAqLwo+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiBpbmRleCA3MTAxODgwLi43MThhYzM4IDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiBAQCAtNzQ1LDYgKzc0NSwx NCBAQCBzdGF0aWMgdm9pZAo+ID4gPiBpbnRlbF9mYmNfdXBkYXRlX3N0YXRlX2NhY2hlKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjKQo+ID4gPiDCoAljYWNoZS0+ZmIuc3RyaWRlID0gZmItPnBpdGNo ZXNbMF07Cj4gPiA+IMKgCWNhY2hlLT5mYi5mZW5jZV9yZWcgPSBvYmotPmZlbmNlX3JlZzsKPiA+ ID4gwqAJY2FjaGUtPmZiLnRpbGluZ19tb2RlID0gb2JqLT50aWxpbmdfbW9kZTsKPiA+ID4gKwlj YWNoZS0+ZmIubW1hcF93YV9mbGFncyA9IG9iai0+ZmJfbW1hcF93YV9mbGFnczsKPiA+ID4gK30K PiA+ID4gKwo+ID4gPiArc3RhdGljIGJvb2wgbmVlZF9tbWFwX2Rpc2FibGVfd29ya2Fyb3VuZChz dHJ1Y3QgaW50ZWxfZmJjICpmYmMpCj4gPiA+ICt7Cj4gPiA+ICsJdW5zaWduZWQgaW50IGZsYWdz ID0gZmJjLT5zdGF0ZV9jYWNoZS5mYi5tbWFwX3dhX2ZsYWdzOwo+ID4gPiArCj4gPiA+ICsJcmV0 dXJuIChmbGFncyAmIEZCX01NQVBfV0FfQ1BVKSAmJiAhKGZsYWdzICYKPiA+ID4gRkJfTU1BUF9X QV9ESVNBQkxFKTsKPiA+ID4gwqB9Cj4gPiA+IMKgCj4gPiA+IMKgc3RhdGljIGJvb2wgaW50ZWxf ZmJjX2Nhbl9hY3RpdmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+ID4gQEAgLTgxNiw2 ICs4MjQsMTEgQEAgc3RhdGljIGJvb2wgaW50ZWxfZmJjX2Nhbl9hY3RpdmF0ZShzdHJ1Y3QKPiA+ ID4gaW50ZWxfY3J0YyAqY3J0YykKPiA+ID4gwqAJCXJldHVybiBmYWxzZTsKPiA+ID4gwqAJfQo+ ID4gPiDCoAo+ID4gPiArCWlmIChuZWVkX21tYXBfZGlzYWJsZV93b3JrYXJvdW5kKGZiYykpIHsK PiA+ID4gKwkJZmJjLT5ub19mYmNfcmVhc29uID0gIkZCIGlzIENQVSBvciBXQyBtbWFwcGVkIjsK PiA+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiDCoAlyZXR1cm4g dHJ1ZTsKPiA+ID4gwqB9Cj4gPiA+IMKgCj4gPiA+IEBAIC0xMDA4LDYgKzEwMjEsMjYgQEAgb3V0 Ogo+ID4gPiDCoAltdXRleF91bmxvY2soJmZiYy0+bG9jayk7Cj4gPiA+IMKgfQo+ID4gPiDCoAo+ ID4gPiArdm9pZCBpbnRlbF9mYmNfbW1hcF93YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPiA+ICsJCcKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2Jp dHMsIHVuc2lnbmVkIGludAo+ID4gPiBmbGFncykKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgaW50 ZWxfZmJjICpmYmMgPSAmZGV2X3ByaXYtPmZiYzsKPiA+ID4gKwo+ID4gPiArCWlmICghZmJjX3N1 cHBvcnRlZChkZXZfcHJpdikpCj4gPiA+ICsJCXJldHVybjsKPiA+ID4gKwo+ID4gPiArCW11dGV4 X2xvY2soJmZiYy0+bG9jayk7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoZmJjLT5lbmFibGVkICYmCj4g PiA+ICsJwqDCoMKgwqAoaW50ZWxfZmJjX2dldF9mcm9udGJ1ZmZlcl9iaXQoZmJjKSAmCj4gPiA+ IGZyb250YnVmZmVyX2JpdHMpKSB7Cj4gPiA+ICsJCWZiYy0+c3RhdGVfY2FjaGUuZmIubW1hcF93 YV9mbGFncyA9IGZsYWdzOwo+ID4gPiArCQlpZiAobmVlZF9tbWFwX2Rpc2FibGVfd29ya2Fyb3Vu ZChmYmMpKQo+ID4gPiArCQkJaW50ZWxfZmJjX2RlYWN0aXZhdGUoZGV2X3ByaXYpOwo+ID4gPiAr CX0KPiA+ID4gKwo+ID4gPiArCW11dGV4X3VubG9jaygmZmJjLT5sb2NrKTsKPiA+ID4gK30KPiA+ ID4gKwo+ID4gPiDCoC8qKgo+ID4gPiDCoCAqIGludGVsX2ZiY19jaG9vc2VfY3J0YyAtIHNlbGVj dCBhIENSVEMgdG8gZW5hYmxlIEZCQyBvbgo+ID4gPiDCoCAqIEBkZXZfcHJpdjogaTkxNSBkZXZp Y2UgaW5zdGFuY2UKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Zyb250YnVmZmVyLmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1 ZmZlci5jCj4gPiA+IGluZGV4IGFjODUzNTcuLjhkOWIzMjcgMTAwNjQ0Cj4gPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMKPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYwo+ID4gPiBAQCAtMjQxLDMgKzI0MSwz NCBAQCB2b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UKPiA+ID4g KmRldiwKPiA+ID4gwqAKPiA+ID4gwqAJaW50ZWxfZnJvbnRidWZmZXJfZmx1c2goZGV2LCBmcm9u dGJ1ZmZlcl9iaXRzLAo+ID4gPiBPUklHSU5fRkxJUCk7Cj4gPiA+IMKgfQo+ID4gPiArCj4gPiA+ ICsvKioKPiA+ID4gKyAqIGludGVsX2ZiX29ial9tbWFwX3dhIC0gbm90aWZpZXMgYWJvdXQgb2Jq ZWN0cyBiZWluZyBtbWFwcGVkCj4gPiA+ICsgKiBAb2JqOiBHRU0gb2JqZWN0IGJlaW5nIG1tYXBw ZWQKPiA+ID4gKyAqCj4gPiA+ICsgKiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdoZW5ldmVy IGFuIG9iamVjdCBnZXRzIG1tYXBwZWQuIE5vdAo+ID4gPiBldmVyeSB1c2VyCj4gPiA+ICsgKiBz cGFjZSBhcHBsaWNhdGlvbiBmb2xsb3dzIHRoZSBwcm90b2NvbCBhc3N1bWVkIGJ5IHRoZQo+ID4g PiBmcm9udGJ1ZmZlciB0cmFja2luZwo+ID4gPiArICogc3Vic3lzdGVtIHdoZW4gaXQgd2FzIGNy ZWF0ZWQsIHNvIHRoaXMgbW1hcCBub3RpZnkgY2FsbGJhY2sgY2FuCj4gPiA+IGJlIHVzZWQgdG8K PiA+ID4gKyAqIGNvbXBsZXRlbHkgZGlzYWJsZSBmcm9udGJ1ZmZlciBmZWF0dXJlcyBzdWNoIGFz IEZCQyBhbmQgUFNSLgo+ID4gPiBFdmVuIGlmIGF0IHNvbWUKPiA+ID4gKyAqIHBvaW50IHdlIGZp eCBldmVyIHVzZXIgc3BhY2UgYXBwbGljYXRpb24sIHRoZXJlJ3Mgc3RpbGwgdGhlCj4gPiA+IHBv c3NpYmlsaXR5IHRoYXQKPiA+ID4gKyAqIHRoZSB1c2VyIG1heSBoYXZlIGEgbmV3IEtlcm5lbCB3 aXRoIHRoZSBvbGQgdXNlciBzcGFjZS4KPiA+ID4gKyAqCj4gPiA+ICsgKiBBbHNvIG5vdGljZSB0 aGF0IHRoZXJlJ3Mgbm8gbXVubWFwIEFQSSBiZWNhdXNlIHVzZXIgc3BhY2UgY2FsbHMKPiA+ID4g bXVubWFwKCkKPiA+ID4gKyAqIGRpcmVjdGx5LiBFdmVuIGlmIHdlIGhhZCwgaXQgcHJvYmFibHkg d291bGRuJ3QgaGVscCBzaW5jZQo+ID4gPiBtdW5tYXAoKSBjYWxscyBhcmUKPiA+ID4gKyAqIG5v dCBjb21tb24uCj4gPiA+ICsgKi8KPiA+ID4gK3ZvaWQgaW50ZWxfZmJfb2JqX21tYXBfd2Eoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+ID4gdW5zaWduZWQgaW50IGZsYWdzKQo+ ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG9iai0+ YmFzZS5kZXYtCj4gPiA+ID5kZXZfcHJpdmF0ZTsKPiA+ID4gKwo+ID4gPiArCWlmICghSVNfR0VO OShkZXZfcHJpdikpCj4gPiBQbGVhc2Ugb25seSBJU19TS1lMQUtFLCBJIGRvbid0IHdhbnQgdG8g ZXh0ZW5kIHRoaXMgdG8gZWl0aGVyIGJ4dCBvcgo+ID4ga2JsLAo+ID4gYW5kIGJvdGggYXJlIHN0 aWxsIHVuZGVyIHByZWxpbV9od19zdXBwb3J0IGFuZCBub3QgeWV0IHNoaXBwaW5nLCBpLmUuCj4g PiB3ZQo+ID4gY2FuIGJyZWFrIHRoZW0gOy0pCj4gCj4gTW1ta2F5Lgo+IAo+ID4gCj4gPiBXcnQg dGhlIGltcGxlbWVudGF0aW9uOiBJIHRoaW5rIGl0IHdvdWxkIGJlIGdyZWF0IHRvIGdldCBQU1Ig b24gYm9hcmQKPiA+IHRvCj4gPiBhdm9pZCBkdXBsaWNhdGluZyB0aGUgbG9naWMuCj4gCj4gVGhl IGdvYWwgb2YgdGhpcyBwYXRjaCBnb2luZyB0aHJvdWdoIGludGVsX2Zyb250YnVmZmVyLmMgaW5z dGVhZCBvZgo+IGRpcmVjdGx5IHRvIGludGVsX2ZiYy5jIGlzIGV4YWN0bHkgdG8gYWxsb3cgZm9y IFBTUiB0byBkbyBzb21ldGhpbmcKPiBzaW1pbGFyLgo+IAo+IAo+ID4gIE9uZSBvcHRpb24gdGhh dCBtaWdodCB3b3VsZCBiZSB0byBjcmVhdGUgYW4KPiA+IGludmxpZGF0ZSBvbiBza2wgd2l0aCBP UklHSU5fTU1BUF9XQSwgYW5kIGFzIGxvbmcgYXMgdGhhdCdzIGluIGVmZmVjdAo+ID4gKHVudGls IHRoZSBmaXJzdCBzd19maW5pc2ggb3IgZGlydHlfZmIpIHRoZSBmcm9udGJ1ZmZlciB0cmFja2lu ZyBjb2RlCj4gPiBpdHNlbGYgd291bGQgZmlsdGVyIGFsbCBmbHVzaGVzLgo+IAo+IFRoYXQncyBh biBub24tdHJpdmlhbCBkaXN0b3J0aW9uIG9mIHRoZSB0cml2aWFsIGludmFsaWRhdGUvZmx1c2gg QVBJLiBJCj4gcHJlZmVyIGhhdmluZyBhIHNwZWNpYWwgY29kZXBhdGggZm9yIHRoaXMgc3BlY2lh bCBjYXNlIGluc3RlYWQgb2YKPiBhZGRpbmcgc2Vjb25kIG1lYW5pbmdzIHRvIGZsdXNoL2ludmFs aWRhdGUuCj4gCj4gQmVzaWRlcywgZXZlbiB3aXRoIHRoZSBpbnZhbGlkYXRlL2ZsdXNoIEFQSSBi ZWluZyBzaW1wbGUsIGxvb2sgYXQgaG93Cj4gbWFueSB0aW1lcyB3ZSBhbHJlYWR5IHR3ZWFrZWQv YnJva2UvZml4ZWQgdGhvc2UgZnVuY3Rpb25zLCBib3RoIGZvciBQU1IKPiBhbmQgRkJDLgoKSG0g Z29vZCBwb2ludC4gSXQgd291bGQgaW5kZWVkIG5vdCBuZWF0bHkgZml0IGludG8gdGhlIGV4aXN0 aW5nCmludmFsaWRhdGUvZmx1c2ggc2NoZW1lICh3aGljaCBhc3N1bWVzIHRoYXQgdGhlcmUncyBv bmx5IGV2ZXIgb25lIHRoaW5nCnRoYXQgY2FuIGFjY2VzcyBhIGJ1ZmZlciwgbm90IGEgcGVybWFu ZW50IG1tYXAgdGhhdCBjYW4gYWx3YXlzIGJlIHVzZWQpLgpBZ3JlZWQgdGhhdCBoYXZpbmcgYSBz cGVjaWFsIGNhc2UgbWFrZXMgc2Vuc2UuCgo+ID4gIGZiYyBjb3VsZCB0aGVuIHVzZSBPUklHSU5f TU1BUF9XQQo+ID4gaW52YWxpZGF0ZSB0byBwZXJtYW5lbnRseSBkaXNhYmxlICh3ZWxsLCBub3Qg cmUtZW5hYmxlIGFmdGVyIGZsaXApCj4gPiB1bnRpbAo+ID4gaXQgc2VlcyBhIGZsdXNoLiBBbmQg UFNSIHdvdWxkIEp1c3QgV29yayAoSSBob3BlKS4KPiAKPiBJIHRoaW5rIGFueSBQU1IgZml4ZXMg cmVsYXRlZCB0byB0aGlzIHNob3VsZCBiZSBzZXBhcmF0ZSBwYXRjaGVzLiBJCj4gaGF2ZSB0byBj b25mZXNzIEkndmUganVzdCBiZWVuIHN0dWR5aW5nIHRoZSBGQkMgcGFydCBvZiB0aGUgcHJvYmxl bSwgc28KPiBJIHdhcyB3YWl0aW5nIGZvciBSb2RyaWdvJ3Mgb3BpbmlvbnMgaGVyZSBiZWZvcmUg YW55IGNvbmNsdXNpb25zLgo+IEFueXdheSwgd2UgY2FuIGFsd2F5cyBjaGFuZ2UgdGhpcyBjb2Rl IChpbiB0aGlzIHBhdGNoIG9yIGxhdGVyKSB0bwo+IGJldHRlciBzdWl0IFBTUi4KCkknZCBsaWtl IHRvIGF0IGxlYXN0IGhhdmUgYW4gYWNrIGZyb20gUnJvZGlnbywgZXZlbiBiZXR0ZXIgaWYgaGUg Y2FuIGhhY2sKdXAgc29tZXRoaW5nIHF1aWNrbHkuIEJ1dCB5ZWFoIGl0J3MgY29kZSwgd2UgY2Fu IGNoYW5nZSBpdCBhZ2FpbiA7LSkKLURhbmllbAotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBF bmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==