From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 10/20] drm/i915: Isolate i915_getparam_ioctl() Date: Mon, 22 Jul 2019 13:53:58 +0100 Message-ID: <86e1775f-c19c-4124-702b-b3da70869e48@linux.intel.com> References: <20190718070024.21781-1-chris@chris-wilson.co.uk> <20190718070024.21781-10-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id BC3F5897D4 for ; Mon, 22 Jul 2019 12:54:00 +0000 (UTC) In-Reply-To: <20190718070024.21781-10-chris@chris-wilson.co.uk> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE4LzA3LzIwMTkgMDg6MDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBUaGlzIGdpYW50IHN3 aXRjaCBoYXMgdGVuZHJpbHMgb3ZlciBvdGhlciB0aGUgc3RydWN0IGFuZCBkb2VzIG5vdCBmaXQK PiBpbnRvIHRoZSByZXN0IG9mIHRoZSBkcml2ZXIgYnJpbmcgdXAgYW5kIGNvbnRyb2wgb2YgaTkx NV9kcnYuYy4gUHVzaCBpdAo+IHRvIG9uZSBzaWRlIHNvIHRoYXQgaXQgY2FuIGdyb3cgaW4gcGVh Y2UuCgpObyBjb21wbGFpbnRzIG9uIHRoaXMgb25lIHNvIGFja2VkLgoKUmVnYXJkcywKClR2cnRr bwoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5j by51az4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICB8ICAg MSArCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgfCAxNjkgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o ICAgICAgfCAgIDMgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZXRwYXJhbS5jIHwg MTY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICA0IGZpbGVzIGNoYW5nZWQsIDE3MiBp bnNlcnRpb25zKCspLCAxNjkgZGVsZXRpb25zKC0pCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZXRwYXJhbS5jCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUK PiBpbmRleCBmYWZjMzc2M2RjMmQuLmQyYzFkY2RhMjBhMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlCj4gQEAgLTQyLDYgKzQyLDcgQEAgc3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoc3JjdHJlZSkv JChzcmMpCj4gICAjIGNvcmUgZHJpdmVyIGNvZGUKPiAgIGk5MTUteSArPSBpOTE1X2Rydi5vIFwK PiAgIAkgIGk5MTVfaXJxLm8gXAo+ICsJICBpOTE1X2dldHBhcmFtLm8gXAo+ICAgCSAgaTkxNV9w YXJhbXMubyBcCj4gICAJICBpOTE1X3BjaS5vIFwKPiAgIAkgIGk5MTVfc2NhdHRlcmxpc3QubyBc Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggMzY3YmRjNDY4OWYxLi5jOTk4YWYxMzg2 ODkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBAQCAtNjEsMjIgKzYxLDE1IEBACj4g ICAKPiAgICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fY29udGV4dC5oIgo+ICAgI2luY2x1ZGUgImdl bS9pOTE1X2dlbV9pb2N0bHMuaCIKPiAtI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV91c2VyLmgi Cj4gICAjaW5jbHVkZSAiZ3QvaW50ZWxfZ3QuaCIKPiAgICNpbmNsdWRlICJndC9pbnRlbF9ndF9w bS5oIgo+IC0jaW5jbHVkZSAiZ3QvaW50ZWxfcmVzZXQuaCIKPiAtI2luY2x1ZGUgImd0L2ludGVs X3dvcmthcm91bmRzLmgiCj4gLSNpbmNsdWRlICJndC91Yy9pbnRlbF91Yy5oIgo+ICAgCj4gICAj aW5jbHVkZSAiaTkxNV9kZWJ1Z2ZzLmgiCj4gICAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiAgICNp bmNsdWRlICJpOTE1X2lycS5oIgo+IC0jaW5jbHVkZSAiaTkxNV9wbXUuaCIKPiAgICNpbmNsdWRl ICJpOTE1X3F1ZXJ5LmgiCj4gLSNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCj4gICAjaW5jbHVkZSAi aTkxNV92Z3B1LmgiCj4gICAjaW5jbHVkZSAiaW50ZWxfY3NyLmgiCj4gLSNpbmNsdWRlICJpbnRl bF9kcnYuaCIKPiAgICNpbmNsdWRlICJpbnRlbF9wbS5oIgo+ICAgCj4gICBzdGF0aWMgc3RydWN0 IGRybV9kcml2ZXIgZHJpdmVyOwo+IEBAIC0zNDMsMTY4ICszMzYsNiBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kZXRlY3RfcGNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlw Y2lfZGV2X3B1dChwY2gpOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQgaTkxNV9nZXRwYXJhbV9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+IC0JCQkgICAgICAgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2 X3ByaXYtPmRybS5wZGV2Owo+IC0JY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAm UlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldTsKPiAtCWRybV9pOTE1X2dldHBhcmFtX3QgKnBh cmFtID0gZGF0YTsKPiAtCWludCB2YWx1ZTsKPiAtCj4gLQlzd2l0Y2ggKHBhcmFtLT5wYXJhbSkg ewo+IC0JY2FzZSBJOTE1X1BBUkFNX0lSUV9BQ1RJVkU6Cj4gLQljYXNlIEk5MTVfUEFSQU1fQUxM T1dfQkFUQ0hCVUZGRVI6Cj4gLQljYXNlIEk5MTVfUEFSQU1fTEFTVF9ESVNQQVRDSDoKPiAtCWNh c2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19DT05TVEFOVFM6Cj4gLQkJLyogUmVqZWN0IGFsbCBvbGQg dW1zL2RyaSBwYXJhbXMuICovCj4gLQkJcmV0dXJuIC1FTk9ERVY7Cj4gLQljYXNlIEk5MTVfUEFS QU1fQ0hJUFNFVF9JRDoKPiAtCQl2YWx1ZSA9IHBkZXYtPmRldmljZTsKPiAtCQlicmVhazsKPiAt CWNhc2UgSTkxNV9QQVJBTV9SRVZJU0lPTjoKPiAtCQl2YWx1ZSA9IHBkZXYtPnJldmlzaW9uOwo+ IC0JCWJyZWFrOwo+IC0JY2FzZSBJOTE1X1BBUkFNX05VTV9GRU5DRVNfQVZBSUw6Cj4gLQkJdmFs dWUgPSBkZXZfcHJpdi0+Z2d0dC5udW1fZmVuY2VzOwo+IC0JCWJyZWFrOwo+IC0JY2FzZSBJOTE1 X1BBUkFNX0hBU19PVkVSTEFZOgo+IC0JCXZhbHVlID0gZGV2X3ByaXYtPm92ZXJsYXkgPyAxIDog MDsKPiAtCQlicmVhazsKPiAtCWNhc2UgSTkxNV9QQVJBTV9IQVNfQlNEOgo+IC0JCXZhbHVlID0g ISFpbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoZGV2X3ByaXYsCj4gLQkJCQkJCSAgIEk5MTVfRU5H SU5FX0NMQVNTX1ZJREVPLCAwKTsKPiAtCQlicmVhazsKPiAtCWNhc2UgSTkxNV9QQVJBTV9IQVNf QkxUOgo+IC0JCXZhbHVlID0gISFpbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoZGV2X3ByaXYsCj4g LQkJCQkJCSAgIEk5MTVfRU5HSU5FX0NMQVNTX0NPUFksIDApOwo+IC0JCWJyZWFrOwo+IC0JY2Fz ZSBJOTE1X1BBUkFNX0hBU19WRUJPWDoKPiAtCQl2YWx1ZSA9ICEhaW50ZWxfZW5naW5lX2xvb2t1 cF91c2VyKGRldl9wcml2LAo+IC0JCQkJCQkgICBJOTE1X0VOR0lORV9DTEFTU19WSURFT19FTkhB TkNFLCAwKTsKPiAtCQlicmVhazsKPiAtCWNhc2UgSTkxNV9QQVJBTV9IQVNfQlNEMjoKPiAtCQl2 YWx1ZSA9ICEhaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKGRldl9wcml2LAo+IC0JCQkJCQkgICBJ OTE1X0VOR0lORV9DTEFTU19WSURFTywgMSk7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIEk5MTVfUEFS QU1fSEFTX0xMQzoKPiAtCQl2YWx1ZSA9IEhBU19MTEMoZGV2X3ByaXYpOwo+IC0JCWJyZWFrOwo+ IC0JY2FzZSBJOTE1X1BBUkFNX0hBU19XVDoKPiAtCQl2YWx1ZSA9IEhBU19XVChkZXZfcHJpdik7 Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIEk5MTVfUEFSQU1fSEFTX0FMSUFTSU5HX1BQR1RUOgo+IC0J CXZhbHVlID0gSU5URUxfUFBHVFQoZGV2X3ByaXYpOwo+IC0JCWJyZWFrOwo+IC0JY2FzZSBJOTE1 X1BBUkFNX0hBU19TRU1BUEhPUkVTOgo+IC0JCXZhbHVlID0gISEoZGV2X3ByaXYtPmNhcHMuc2No ZWR1bGVyICYgSTkxNV9TQ0hFRFVMRVJfQ0FQX1NFTUFQSE9SRVMpOwo+IC0JCWJyZWFrOwo+IC0J Y2FzZSBJOTE1X1BBUkFNX0hBU19TRUNVUkVfQkFUQ0hFUzoKPiAtCQl2YWx1ZSA9IGNhcGFibGUo Q0FQX1NZU19BRE1JTik7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIEk5MTVfUEFSQU1fQ01EX1BBUlNF Ul9WRVJTSU9OOgo+IC0JCXZhbHVlID0gaTkxNV9jbWRfcGFyc2VyX2dldF92ZXJzaW9uKGRldl9w cml2KTsKPiAtCQlicmVhazsKPiAtCWNhc2UgSTkxNV9QQVJBTV9TVUJTTElDRV9UT1RBTDoKPiAt CQl2YWx1ZSA9IGludGVsX3NzZXVfc3Vic2xpY2VfdG90YWwoc3NldSk7Cj4gLQkJaWYgKCF2YWx1 ZSkKPiAtCQkJcmV0dXJuIC1FTk9ERVY7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIEk5MTVfUEFSQU1f RVVfVE9UQUw6Cj4gLQkJdmFsdWUgPSBzc2V1LT5ldV90b3RhbDsKPiAtCQlpZiAoIXZhbHVlKQo+ IC0JCQlyZXR1cm4gLUVOT0RFVjsKPiAtCQlicmVhazsKPiAtCWNhc2UgSTkxNV9QQVJBTV9IQVNf R1BVX1JFU0VUOgo+IC0JCXZhbHVlID0gaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVjayAm Jgo+IC0JCQlpbnRlbF9oYXNfZ3B1X3Jlc2V0KGRldl9wcml2KTsKPiAtCQlpZiAodmFsdWUgJiYg aW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShkZXZfcHJpdikpCj4gLQkJCXZhbHVlID0gMjsKPiAtCQli cmVhazsKPiAtCWNhc2UgSTkxNV9QQVJBTV9IQVNfUkVTT1VSQ0VfU1RSRUFNRVI6Cj4gLQkJdmFs dWUgPSAwOwo+IC0JCWJyZWFrOwo+IC0JY2FzZSBJOTE1X1BBUkFNX0hBU19QT09MRURfRVU6Cj4g LQkJdmFsdWUgPSBIQVNfUE9PTEVEX0VVKGRldl9wcml2KTsKPiAtCQlicmVhazsKPiAtCWNhc2Ug STkxNV9QQVJBTV9NSU5fRVVfSU5fUE9PTDoKPiAtCQl2YWx1ZSA9IHNzZXUtPm1pbl9ldV9pbl9w b29sOwo+IC0JCWJyZWFrOwo+IC0JY2FzZSBJOTE1X1BBUkFNX0hVQ19TVEFUVVM6Cj4gLQkJdmFs dWUgPSBpbnRlbF9odWNfY2hlY2tfc3RhdHVzKCZkZXZfcHJpdi0+Z3QudWMuaHVjKTsKPiAtCQlp ZiAodmFsdWUgPCAwKQo+IC0JCQlyZXR1cm4gdmFsdWU7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIEk5 MTVfUEFSQU1fTU1BUF9HVFRfVkVSU0lPTjoKPiAtCQkvKiBUaG91Z2ggd2UndmUgc3RhcnRlZCBv dXIgbnVtYmVyaW5nIGZyb20gMSwgYW5kIHNvIGNsYXNzIGFsbAo+IC0JCSAqIGVhcmxpZXIgdmVy c2lvbnMgYXMgMCwgaW4gZWZmZWN0IHRoZWlyIHZhbHVlIGlzIHVuZGVmaW5lZCBhcwo+IC0JCSAq IHRoZSBpb2N0bCB3aWxsIHJlcG9ydCBFSU5WQUwgZm9yIHRoZSB1bmtub3duIHBhcmFtIQo+IC0J CSAqLwo+IC0JCXZhbHVlID0gaTkxNV9nZW1fbW1hcF9ndHRfdmVyc2lvbigpOwo+IC0JCWJyZWFr Owo+IC0JY2FzZSBJOTE1X1BBUkFNX0hBU19TQ0hFRFVMRVI6Cj4gLQkJdmFsdWUgPSBkZXZfcHJp di0+Y2Fwcy5zY2hlZHVsZXI7Cj4gLQkJYnJlYWs7Cj4gLQo+IC0JY2FzZSBJOTE1X1BBUkFNX01N QVBfVkVSU0lPTjoKPiAtCQkvKiBSZW1lbWJlciB0byBidW1wIHRoaXMgaWYgdGhlIHZlcnNpb24g Y2hhbmdlcyEgKi8KPiAtCWNhc2UgSTkxNV9QQVJBTV9IQVNfR0VNOgo+IC0JY2FzZSBJOTE1X1BB UkFNX0hBU19QQUdFRkxJUFBJTkc6Cj4gLQljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNCVUYyOiAv KiBkZXBlbmRzIG9uIEdFTSAqLwo+IC0JY2FzZSBJOTE1X1BBUkFNX0hBU19SRUxBWEVEX0ZFTkNJ Tkc6Cj4gLQljYXNlIEk5MTVfUEFSQU1fSEFTX0NPSEVSRU5UX1JJTkdTOgo+IC0JY2FzZSBJOTE1 X1BBUkFNX0hBU19SRUxBWEVEX0RFTFRBOgo+IC0JY2FzZSBJOTE1X1BBUkFNX0hBU19HRU43X1NP TF9SRVNFVDoKPiAtCWNhc2UgSTkxNV9QQVJBTV9IQVNfV0FJVF9USU1FT1VUOgo+IC0JY2FzZSBJ OTE1X1BBUkFNX0hBU19QUklNRV9WTUFQX0ZMVVNIOgo+IC0JY2FzZSBJOTE1X1BBUkFNX0hBU19Q SU5ORURfQkFUQ0hFUzoKPiAtCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19OT19SRUxPQzoKPiAt CWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19IQU5ETEVfTFVUOgo+IC0JY2FzZSBJOTE1X1BBUkFN X0hBU19DT0hFUkVOVF9QSFlTX0dUVDoKPiAtCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19TT0ZU UElOOgo+IC0JY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0FTWU5DOgo+IC0JY2FzZSBJOTE1X1BB UkFNX0hBU19FWEVDX0ZFTkNFOgo+IC0JY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0NBUFRVUkU6 Cj4gLQljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfQkFUQ0hfRklSU1Q6Cj4gLQljYXNlIEk5MTVf UEFSQU1fSEFTX0VYRUNfRkVOQ0VfQVJSQVk6Cj4gLQljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNf U1VCTUlUX0ZFTkNFOgo+IC0JCS8qIEZvciB0aGUgdGltZSBiZWluZyBhbGwgb2YgdGhlc2UgYXJl IGFsd2F5cyB0cnVlOwo+IC0JCSAqIGlmIHNvbWUgc3VwcG9ydGVkIGhhcmR3YXJlIGRvZXMgbm90 IGhhdmUgb25lIG9mIHRoZXNlCj4gLQkJICogZmVhdHVyZXMgdGhpcyB2YWx1ZSBuZWVkcyB0byBi ZSBwcm92aWRlZCBmcm9tCj4gLQkJICogSU5URUxfSU5GTygpLCBhIGZlYXR1cmUgbWFjcm8sIG9y IHNpbWlsYXIuCj4gLQkJICovCj4gLQkJdmFsdWUgPSAxOwo+IC0JCWJyZWFrOwo+IC0JY2FzZSBJ OTE1X1BBUkFNX0hBU19DT05URVhUX0lTT0xBVElPTjoKPiAtCQl2YWx1ZSA9IGludGVsX2VuZ2lu ZXNfaGFzX2NvbnRleHRfaXNvbGF0aW9uKGRldl9wcml2KTsKPiAtCQlicmVhazsKPiAtCWNhc2Ug STkxNV9QQVJBTV9TTElDRV9NQVNLOgo+IC0JCXZhbHVlID0gc3NldS0+c2xpY2VfbWFzazsKPiAt CQlpZiAoIXZhbHVlKQo+IC0JCQlyZXR1cm4gLUVOT0RFVjsKPiAtCQlicmVhazsKPiAtCWNhc2Ug STkxNV9QQVJBTV9TVUJTTElDRV9NQVNLOgo+IC0JCXZhbHVlID0gc3NldS0+c3Vic2xpY2VfbWFz a1swXTsKPiAtCQlpZiAoIXZhbHVlKQo+IC0JCQlyZXR1cm4gLUVOT0RFVjsKPiAtCQlicmVhazsK PiAtCWNhc2UgSTkxNV9QQVJBTV9DU19USU1FU1RBTVBfRlJFUVVFTkNZOgo+IC0JCXZhbHVlID0g MTAwMCAqIFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6 Owo+IC0JCWJyZWFrOwo+IC0JY2FzZSBJOTE1X1BBUkFNX01NQVBfR1RUX0NPSEVSRU5UOgo+IC0J CXZhbHVlID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmhhc19jb2hlcmVudF9nZ3R0Owo+IC0JCWJy ZWFrOwo+IC0JZGVmYXVsdDoKPiAtCQlEUk1fREVCVUcoIlVua25vd24gcGFyYW1ldGVyICVkXG4i LCBwYXJhbS0+cGFyYW0pOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0JfQo+IC0KPiAtCWlmIChw dXRfdXNlcih2YWx1ZSwgcGFyYW0tPnZhbHVlKSkKPiAtCQlyZXR1cm4gLUVGQVVMVDsKPiAtCj4g LQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgIHN0YXRpYyBpbnQgaTkxNV9nZXRfYnJpZGdlX2Rldihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB7Cj4gICAJaW50IGRvbWFpbiA9 IHBjaV9kb21haW5fbnIoZGV2X3ByaXYtPmRybS5wZGV2LT5idXMpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+IGluZGV4IDhkMWFkMjdiMTMyZC4uZGZmMjhmNTA1OGJjIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gQEAgLTI0MDcsNiArMjQwNyw5IEBAIHN0YXRpYyBpbmxpbmUgYm9v bCBpbnRlbF92Z3B1X2FjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g ICAJcmV0dXJuIGRldl9wcml2LT52Z3B1LmFjdGl2ZTsKPiAgIH0KPiAgIAo+ICtpbnQgaTkxNV9n ZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICsJCQlz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gKwo+ICAgLyogaTkxNV9nZW0uYyAqLwo+ICAg aW50IGk5MTVfZ2VtX2luaXRfdXNlcnB0cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+ICAgdm9pZCBpOTE1X2dlbV9jbGVhbnVwX3VzZXJwdHIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZXRwYXJhbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZXRwYXJhbS5jCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjVkOTEwMTM3NmEzZAo+IC0t LSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dldHBhcmFtLmMK PiBAQCAtMCwwICsxLDE2OCBAQAo+ICsvKgo+ICsgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog TUlUCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImd0L2ludGVsX2VuZ2luZV91c2VyLmgiCj4gKwo+ ICsjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiArCj4gK2ludCBpOTE1X2dldHBhcmFtX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gKwkJCXN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5 MTUoZGV2KTsKPiArCWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVf SU5GTyhpOTE1KS0+c3NldTsKPiArCWRybV9pOTE1X2dldHBhcmFtX3QgKnBhcmFtID0gZGF0YTsK PiArCWludCB2YWx1ZTsKPiArCj4gKwlzd2l0Y2ggKHBhcmFtLT5wYXJhbSkgewo+ICsJY2FzZSBJ OTE1X1BBUkFNX0lSUV9BQ1RJVkU6Cj4gKwljYXNlIEk5MTVfUEFSQU1fQUxMT1dfQkFUQ0hCVUZG RVI6Cj4gKwljYXNlIEk5MTVfUEFSQU1fTEFTVF9ESVNQQVRDSDoKPiArCWNhc2UgSTkxNV9QQVJB TV9IQVNfRVhFQ19DT05TVEFOVFM6Cj4gKwkJLyogUmVqZWN0IGFsbCBvbGQgdW1zL2RyaSBwYXJh bXMuICovCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwljYXNlIEk5MTVfUEFSQU1fQ0hJUFNFVF9J RDoKPiArCQl2YWx1ZSA9IGk5MTUtPmRybS5wZGV2LT5kZXZpY2U7Cj4gKwkJYnJlYWs7Cj4gKwlj YXNlIEk5MTVfUEFSQU1fUkVWSVNJT046Cj4gKwkJdmFsdWUgPSBpOTE1LT5kcm0ucGRldi0+cmV2 aXNpb247Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIEk5MTVfUEFSQU1fTlVNX0ZFTkNFU19BVkFJTDoK PiArCQl2YWx1ZSA9IGk5MTUtPmdndHQubnVtX2ZlbmNlczsKPiArCQlicmVhazsKPiArCWNhc2Ug STkxNV9QQVJBTV9IQVNfT1ZFUkxBWToKPiArCQl2YWx1ZSA9ICEhaTkxNS0+b3ZlcmxheTsKPiAr CQlicmVhazsKPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfQlNEOgo+ICsJCXZhbHVlID0gISFpbnRl bF9lbmdpbmVfbG9va3VwX3VzZXIoaTkxNSwKPiArCQkJCQkJICAgSTkxNV9FTkdJTkVfQ0xBU1Nf VklERU8sIDApOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBJOTE1X1BBUkFNX0hBU19CTFQ6Cj4gKwkJ dmFsdWUgPSAhIWludGVsX2VuZ2luZV9sb29rdXBfdXNlcihpOTE1LAo+ICsJCQkJCQkgICBJOTE1 X0VOR0lORV9DTEFTU19DT1BZLCAwKTsKPiArCQlicmVhazsKPiArCWNhc2UgSTkxNV9QQVJBTV9I QVNfVkVCT1g6Cj4gKwkJdmFsdWUgPSAhIWludGVsX2VuZ2luZV9sb29rdXBfdXNlcihpOTE1LAo+ ICsJCQkJCQkgICBJOTE1X0VOR0lORV9DTEFTU19WSURFT19FTkhBTkNFLCAwKTsKPiArCQlicmVh azsKPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfQlNEMjoKPiArCQl2YWx1ZSA9ICEhaW50ZWxfZW5n aW5lX2xvb2t1cF91c2VyKGk5MTUsCj4gKwkJCQkJCSAgIEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVP LCAxKTsKPiArCQlicmVhazsKPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfTExDOgo+ICsJCXZhbHVl ID0gSEFTX0xMQyhpOTE1KTsKPiArCQlicmVhazsKPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfV1Q6 Cj4gKwkJdmFsdWUgPSBIQVNfV1QoaTkxNSk7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIEk5MTVfUEFS QU1fSEFTX0FMSUFTSU5HX1BQR1RUOgo+ICsJCXZhbHVlID0gSU5URUxfUFBHVFQoaTkxNSk7Cj4g KwkJYnJlYWs7Cj4gKwljYXNlIEk5MTVfUEFSQU1fSEFTX1NFTUFQSE9SRVM6Cj4gKwkJdmFsdWUg PSAhIShpOTE1LT5jYXBzLnNjaGVkdWxlciAmIEk5MTVfU0NIRURVTEVSX0NBUF9TRU1BUEhPUkVT KTsKPiArCQlicmVhazsKPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfU0VDVVJFX0JBVENIRVM6Cj4g KwkJdmFsdWUgPSBjYXBhYmxlKENBUF9TWVNfQURNSU4pOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBJ OTE1X1BBUkFNX0NNRF9QQVJTRVJfVkVSU0lPTjoKPiArCQl2YWx1ZSA9IGk5MTVfY21kX3BhcnNl cl9nZXRfdmVyc2lvbihpOTE1KTsKPiArCQlicmVhazsKPiArCWNhc2UgSTkxNV9QQVJBTV9TVUJT TElDRV9UT1RBTDoKPiArCQl2YWx1ZSA9IGludGVsX3NzZXVfc3Vic2xpY2VfdG90YWwoc3NldSk7 Cj4gKwkJaWYgKCF2YWx1ZSkKPiArCQkJcmV0dXJuIC1FTk9ERVY7Cj4gKwkJYnJlYWs7Cj4gKwlj YXNlIEk5MTVfUEFSQU1fRVVfVE9UQUw6Cj4gKwkJdmFsdWUgPSBzc2V1LT5ldV90b3RhbDsKPiAr CQlpZiAoIXZhbHVlKQo+ICsJCQlyZXR1cm4gLUVOT0RFVjsKPiArCQlicmVhazsKPiArCWNhc2Ug STkxNV9QQVJBTV9IQVNfR1BVX1JFU0VUOgo+ICsJCXZhbHVlID0gaTkxNV9tb2RwYXJhbXMuZW5h YmxlX2hhbmdjaGVjayAmJgo+ICsJCQlpbnRlbF9oYXNfZ3B1X3Jlc2V0KGk5MTUpOwo+ICsJCWlm ICh2YWx1ZSAmJiBpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGk5MTUpKQo+ICsJCQl2YWx1ZSA9IDI7 Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIEk5MTVfUEFSQU1fSEFTX1JFU09VUkNFX1NUUkVBTUVSOgo+ ICsJCXZhbHVlID0gMDsKPiArCQlicmVhazsKPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfUE9PTEVE X0VVOgo+ICsJCXZhbHVlID0gSEFTX1BPT0xFRF9FVShpOTE1KTsKPiArCQlicmVhazsKPiArCWNh c2UgSTkxNV9QQVJBTV9NSU5fRVVfSU5fUE9PTDoKPiArCQl2YWx1ZSA9IHNzZXUtPm1pbl9ldV9p bl9wb29sOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBJOTE1X1BBUkFNX0hVQ19TVEFUVVM6Cj4gKwkJ dmFsdWUgPSBpbnRlbF9odWNfY2hlY2tfc3RhdHVzKCZpOTE1LT5ndC51Yy5odWMpOwo+ICsJCWlm ICh2YWx1ZSA8IDApCj4gKwkJCXJldHVybiB2YWx1ZTsKPiArCQlicmVhazsKPiArCWNhc2UgSTkx NV9QQVJBTV9NTUFQX0dUVF9WRVJTSU9OOgo+ICsJCS8qIFRob3VnaCB3ZSd2ZSBzdGFydGVkIG91 ciBudW1iZXJpbmcgZnJvbSAxLCBhbmQgc28gY2xhc3MgYWxsCj4gKwkJICogZWFybGllciB2ZXJz aW9ucyBhcyAwLCBpbiBlZmZlY3QgdGhlaXIgdmFsdWUgaXMgdW5kZWZpbmVkIGFzCj4gKwkJICog dGhlIGlvY3RsIHdpbGwgcmVwb3J0IEVJTlZBTCBmb3IgdGhlIHVua25vd24gcGFyYW0hCj4gKwkJ ICovCj4gKwkJdmFsdWUgPSBpOTE1X2dlbV9tbWFwX2d0dF92ZXJzaW9uKCk7Cj4gKwkJYnJlYWs7 Cj4gKwljYXNlIEk5MTVfUEFSQU1fSEFTX1NDSEVEVUxFUjoKPiArCQl2YWx1ZSA9IGk5MTUtPmNh cHMuc2NoZWR1bGVyOwo+ICsJCWJyZWFrOwo+ICsKPiArCWNhc2UgSTkxNV9QQVJBTV9NTUFQX1ZF UlNJT046Cj4gKwkJLyogUmVtZW1iZXIgdG8gYnVtcCB0aGlzIGlmIHRoZSB2ZXJzaW9uIGNoYW5n ZXMhICovCj4gKwljYXNlIEk5MTVfUEFSQU1fSEFTX0dFTToKPiArCWNhc2UgSTkxNV9QQVJBTV9I QVNfUEFHRUZMSVBQSU5HOgo+ICsJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDQlVGMjogLyogZGVw ZW5kcyBvbiBHRU0gKi8KPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfUkVMQVhFRF9GRU5DSU5HOgo+ ICsJY2FzZSBJOTE1X1BBUkFNX0hBU19DT0hFUkVOVF9SSU5HUzoKPiArCWNhc2UgSTkxNV9QQVJB TV9IQVNfUkVMQVhFRF9ERUxUQToKPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfR0VON19TT0xfUkVT RVQ6Cj4gKwljYXNlIEk5MTVfUEFSQU1fSEFTX1dBSVRfVElNRU9VVDoKPiArCWNhc2UgSTkxNV9Q QVJBTV9IQVNfUFJJTUVfVk1BUF9GTFVTSDoKPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfUElOTkVE X0JBVENIRVM6Cj4gKwljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfTk9fUkVMT0M6Cj4gKwljYXNl IEk5MTVfUEFSQU1fSEFTX0VYRUNfSEFORExFX0xVVDoKPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNf Q09IRVJFTlRfUEhZU19HVFQ6Cj4gKwljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfU09GVFBJTjoK PiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19BU1lOQzoKPiArCWNhc2UgSTkxNV9QQVJBTV9I QVNfRVhFQ19GRU5DRToKPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19DQVBUVVJFOgo+ICsJ Y2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0JBVENIX0ZJUlNUOgo+ICsJY2FzZSBJOTE1X1BBUkFN X0hBU19FWEVDX0ZFTkNFX0FSUkFZOgo+ICsJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX1NVQk1J VF9GRU5DRToKPiArCQkvKiBGb3IgdGhlIHRpbWUgYmVpbmcgYWxsIG9mIHRoZXNlIGFyZSBhbHdh eXMgdHJ1ZTsKPiArCQkgKiBpZiBzb21lIHN1cHBvcnRlZCBoYXJkd2FyZSBkb2VzIG5vdCBoYXZl IG9uZSBvZiB0aGVzZQo+ICsJCSAqIGZlYXR1cmVzIHRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgcHJv dmlkZWQgZnJvbQo+ICsJCSAqIElOVEVMX0lORk8oKSwgYSBmZWF0dXJlIG1hY3JvLCBvciBzaW1p bGFyLgo+ICsJCSAqLwo+ICsJCXZhbHVlID0gMTsKPiArCQlicmVhazsKPiArCWNhc2UgSTkxNV9Q QVJBTV9IQVNfQ09OVEVYVF9JU09MQVRJT046Cj4gKwkJdmFsdWUgPSBpbnRlbF9lbmdpbmVzX2hh c19jb250ZXh0X2lzb2xhdGlvbihpOTE1KTsKPiArCQlicmVhazsKPiArCWNhc2UgSTkxNV9QQVJB TV9TTElDRV9NQVNLOgo+ICsJCXZhbHVlID0gc3NldS0+c2xpY2VfbWFzazsKPiArCQlpZiAoIXZh bHVlKQo+ICsJCQlyZXR1cm4gLUVOT0RFVjsKPiArCQlicmVhazsKPiArCWNhc2UgSTkxNV9QQVJB TV9TVUJTTElDRV9NQVNLOgo+ICsJCXZhbHVlID0gc3NldS0+c3Vic2xpY2VfbWFza1swXTsKPiAr CQlpZiAoIXZhbHVlKQo+ICsJCQlyZXR1cm4gLUVOT0RFVjsKPiArCQlicmVhazsKPiArCWNhc2Ug STkxNV9QQVJBTV9DU19USU1FU1RBTVBfRlJFUVVFTkNZOgo+ICsJCXZhbHVlID0gMTAwMCAqIFJV TlRJTUVfSU5GTyhpOTE1KS0+Y3NfdGltZXN0YW1wX2ZyZXF1ZW5jeV9raHo7Cj4gKwkJYnJlYWs7 Cj4gKwljYXNlIEk5MTVfUEFSQU1fTU1BUF9HVFRfQ09IRVJFTlQ6Cj4gKwkJdmFsdWUgPSBJTlRF TF9JTkZPKGk5MTUpLT5oYXNfY29oZXJlbnRfZ2d0dDsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6 Cj4gKwkJRFJNX0RFQlVHKCJVbmtub3duIHBhcmFtZXRlciAlZFxuIiwgcGFyYW0tPnBhcmFtKTsK PiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4gKwlpZiAocHV0X3VzZXIodmFsdWUsIHBh cmFtLT52YWx1ZSkpCj4gKwkJcmV0dXJuIC1FRkFVTFQ7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30K PiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4