From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 02/19] drm/i915/execlists: Refactor common engine setup Date: Thu, 5 May 2016 11:18:41 +0100 Message-ID: <572B1E01.3000508@linux.intel.com> References: <1462439768-8615-1-git-send-email-chris@chris-wilson.co.uk> <1462439768-8615-2-git-send-email-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id AFF606E97E for ; Thu, 5 May 2016 10:18:43 +0000 (UTC) In-Reply-To: <1462439768-8615-2-git-send-email-chris@chris-wilson.co.uk> 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 CkhpLAoKT24gMDUvMDUvMTYgMTA6MTUsIENocmlzIFdpbHNvbiB3cm90ZToKPiBNb3ZlIGFsbCBv ZiB0aGUgY29uc3RhbnQgYXNzaWdubWVudHMgdXAgZnJvbnQgYW5kIGludG8gYSBjb21tb24KPiBm dW5jdGlvbi4gVGhpcyBpcyBwcmltYXJpbHkgdG8gZW5zdXJlIHRoZSBiYWNrcG9pbnRlcnMgYXJl IHNldCBhcyBlYXJseQo+IGFzIHBvc3NpYmxlIGZvciBsYXRlciB1c2UgZHVyaW5nIGluaXRpYWxp c2F0aW9uLgo+Cj4gdjI6IFVzZSBhIGNvbnN0YW50IHN0cnVjdCBzbyB0aGF0IGFsbCB0aGUgc2lt aWxhciB2YWx1ZXMgYXJlIHNldAo+IHRvZ2V0aGVyLgo+IHYzOiBTYW5pdGl6ZSB0aGUgZW5naW5l J3MgSU1SIHRvIGRpc2FibGUgYW55IHBvdGVudGlhbCBpbnRlcnJ1cHQgYmVmb3JlCj4gd2UgYXJl IHJlYWR5IChlbmFibGVkIGluIGluaXRfaHcpLgoKU2FtZSBhcyBiZWZvcmUgLSBJIGRvbid0IGxp a2UgaGFyZHdhcmUgYWNjZXNzIGluIHRoaXMgY29kZSBwYXRoIHNpbmNlIHdlIApvdGhlcndpc2Ug aGF2ZSBpdCBzcGxpdCBpbnRvIGEgbGF0ZXIgaW5pdF9odyBwaGFzZS4gQW5kIEkgZG9uJ3QgbGlr ZSAKZW5naW5lLT5kZXYgYmVpbmcgdXNlZCBmb3IgaW50ZWxfZW5naW5lX2luaXRpYWxpemVkLgoK T24gcmV0cm9zcGVjdCwgaW50ZXJydXB0IHZzIGVuZ2luZS0+aXJxX3F1ZXVlIHJhY2UgaXMgYWxy ZWFkeSB0aGVyZSBub3csIApmb3IgdGhlIHJlbmRlciByaW5nIGF0IGxlYXN0LiBTbyBtYXliZSBq dXN0IGRyb3AgdGhlIElNUiBiaXQgd2hpY2ggd291bGQgCm1ha2UgdGhlIHBhdGNoIHB1cmUgcmVm YWN0b3JpbmcgYW5kIGNhbiBoYXZlIG15IFItYiB0aGVuLgoKUmVnYXJkcywKClR2cnRrbwoKPiBT aWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBD YzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVsLmNvbT4KPiBDYzog RGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIHwgMTgwICsrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDgzIGRl bGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCBkODc2MzUyNDMx OWQuLjgxMDYzMTZjZTU2ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTE5 MTgsOCArMTkxOCw3IEBAIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2NsZWFudXAoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgfQo+Cj4gICBzdGF0aWMgdm9pZAo+IC1sb2dpY2Fs X3JpbmdfZGVmYXVsdF92ZnVuY3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkJICAgIHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1 bmNzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAgIAkvKiBEZWZhdWx0 IHZmdW5jcyB3aGljaCBjYW4gYmUgb3ZlcnJpZGVuIGJ5IGVhY2ggZW5naW5lLiAqLwo+ICAgCWVu Z2luZS0+aW5pdF9odyA9IGdlbjhfaW5pdF9jb21tb25fcmluZzsKPiBAQCAtMTkzMCw3ICsxOTI5 LDcgQEAgbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gICAJZW5naW5lLT5lbWl0X2JiX3N0YXJ0ID0gZ2VuOF9lbWl0X2JiX3N0YXJ0Owo+ICAgCWVu Z2luZS0+Z2V0X3NlcW5vID0gZ2VuOF9nZXRfc2Vxbm87Cj4gICAJZW5naW5lLT5zZXRfc2Vxbm8g PSBnZW44X3NldF9zZXFubzsKPiAtCWlmIChJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRfUkVWSURf QTEpKSB7Cj4gKwlpZiAoSVNfQlhUX1JFVklEKGVuZ2luZS0+ZGV2LCAwLCBCWFRfUkVWSURfQTEp KSB7Cj4gICAJCWVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIgPSBieHRfYV9zZXFub19iYXJyaWVy Owo+ICAgCQllbmdpbmUtPnNldF9zZXFubyA9IGJ4dF9hX3NldF9zZXFubzsKPiAgIAl9Cj4gQEAg LTE5NDEsNiArMTk0MCw3IEBAIGxvZ2ljYWxfcmluZ19kZWZhdWx0X2lycXMoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLCB1bnNpZ25lZCBzaGlmdCkKPiAgIHsKPiAgIAllbmdpbmUtPmly cV9lbmFibGVfbWFzayA9IEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBzaGlmdDsKPiAgIAll bmdpbmUtPmlycV9rZWVwX21hc2sgPSBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgc2hp ZnQ7Cj4gKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZlbmdpbmUtPmlycV9xdWV1ZSk7Cj4gICB9Cj4K PiAgIHN0YXRpYyBpbnQKPiBAQCAtMTk2MSwzMSArMTk2MSw3MiBAQCBscmNfc2V0dXBfaHdzKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPgo+IC1z dGF0aWMgaW50Cj4gLWxvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBsb2dp Y2FsX3JpbmdfaW5mbyB7Cj4gKwljb25zdCBjaGFyICpuYW1lOwo+ICsJdW5zaWduZWQgZXhlY19p ZDsKPiArCXVuc2lnbmVkIGd1Y19pZDsKPiArCXUzMiBtbWlvX2Jhc2U7Cj4gKwl1bnNpZ25lZCBp cnFfc2hpZnQ7Cj4gK30gbG9naWNhbF9yaW5nc1tdID0gewo+ICsJW1JDU10gPSB7Cj4gKwkJLm5h bWUgPSAicmVuZGVyIHJpbmciLAo+ICsJCS5leGVjX2lkID0gSTkxNV9FWEVDX1JFTkRFUiwKPiAr CQkuZ3VjX2lkID0gR1VDX1JFTkRFUl9FTkdJTkUsCj4gKwkJLm1taW9fYmFzZSA9IFJFTkRFUl9S SU5HX0JBU0UsCj4gKwkJLmlycV9zaGlmdCA9IEdFTjhfUkNTX0lSUV9TSElGVCwKPiArCX0sCj4g KwlbQkNTXSA9IHsKPiArCQkubmFtZSA9ICJibGl0dGVyIHJpbmciLAo+ICsJCS5leGVjX2lkID0g STkxNV9FWEVDX0JMVCwKPiArCQkuZ3VjX2lkID0gR1VDX0JMSVRURVJfRU5HSU5FLAo+ICsJCS5t bWlvX2Jhc2UgPSBCTFRfUklOR19CQVNFLAo+ICsJCS5pcnFfc2hpZnQgPSBHRU44X0JDU19JUlFf U0hJRlQsCj4gKwl9LAo+ICsJW1ZDU10gPSB7Cj4gKwkJLm5hbWUgPSAiYnNkIHJpbmciLAo+ICsJ CS5leGVjX2lkID0gSTkxNV9FWEVDX0JTRCwKPiArCQkuZ3VjX2lkID0gR1VDX1ZJREVPX0VOR0lO RSwKPiArCQkubW1pb19iYXNlID0gR0VONl9CU0RfUklOR19CQVNFLAo+ICsJCS5pcnFfc2hpZnQg PSBHRU44X1ZDUzFfSVJRX1NISUZULAo+ICsJfSwKPiArCVtWQ1MyXSA9IHsKPiArCQkubmFtZSA9 ICJic2QyIHJpbmciLAo+ICsJCS5leGVjX2lkID0gSTkxNV9FWEVDX0JTRCwKPiArCQkuZ3VjX2lk ID0gR1VDX1ZJREVPX0VOR0lORTIsCj4gKwkJLm1taW9fYmFzZSA9IEdFTjhfQlNEMl9SSU5HX0JB U0UsCj4gKwkJLmlycV9zaGlmdCA9IEdFTjhfVkNTMl9JUlFfU0hJRlQsCj4gKwl9LAo+ICsJW1ZF Q1NdID0gewo+ICsJCS5uYW1lID0gInZpZGVvIGVuaGFuY2VtZW50IHJpbmciLAo+ICsJCS5leGVj X2lkID0gSTkxNV9FWEVDX1ZFQk9YLAo+ICsJCS5ndWNfaWQgPSBHVUNfVklERU9FTkhBTkNFX0VO R0lORSwKPiArCQkubW1pb19iYXNlID0gVkVCT1hfUklOR19CQVNFLAo+ICsJCS5pcnFfc2hpZnQg PSBHRU44X1ZFQ1NfSVJRX1NISUZULAo+ICsJfSwKPiArfTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICoKPiArbG9naWNhbF9yaW5nX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGVudW0gaW50ZWxfZW5naW5lX2lkIGlkKQo+ICAgewo+ICsJY29uc3Qgc3RydWN0IGxv Z2ljYWxfcmluZ19pbmZvICppbmZvID0gJmxvZ2ljYWxfcmluZ3NbaWRdOwo+ICAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRl bF9jb250ZXh0ICpkY3R4ID0gZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0Owo+ICsJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5lbmdpbmVbaWRdOwo+ICAgCWVudW0g Zm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWluczsKPiAtCWludCByZXQ7Cj4KPiAtCS8qIEludGVu dGlvbmFsbHkgbGVmdCBibGFuay4gKi8KPiAtCWVuZ2luZS0+YnVmZmVyID0gTlVMTDsKPiArCWVu Z2luZS0+aWQgPSBpZDsKPiArCWVuZ2luZS0+bmFtZSA9IGluZm8tPm5hbWU7Cj4gKwllbmdpbmUt PmV4ZWNfaWQgPSBpbmZvLT5leGVjX2lkOwo+ICsJZW5naW5lLT5ndWNfaWQgPSBpbmZvLT5ndWNf aWQ7Cj4gKwllbmdpbmUtPm1taW9fYmFzZSA9IGluZm8tPm1taW9fYmFzZTsKPgo+IC0JZW5naW5l LT5kZXYgPSBkZXY7Cj4gLQlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5hY3RpdmVfbGlzdCk7Cj4g LQlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5yZXF1ZXN0X2xpc3QpOwo+IC0JaTkxNV9nZW1fYmF0 Y2hfcG9vbF9pbml0KGRldiwgJmVuZ2luZS0+YmF0Y2hfcG9vbCk7Cj4gLQlpbml0X3dhaXRxdWV1 ZV9oZWFkKCZlbmdpbmUtPmlycV9xdWV1ZSk7Cj4gKwkvKiBkaXNhYmxlIGludGVycnVwdHMgdG8g dGhpcyBlbmdpbmUgYmVmb3JlIHdlIGluc3RhbGwgb3Vyc2VsdmVzICovCj4gKwlJOTE1X1dSSVRF X0lNUihlbmdpbmUsIH4wKTsKPiArCVBPU1RJTkdfUkVBRChSSU5HX0lNUihlbmdpbmUtPm1taW9f YmFzZSkpOwo+Cj4gLQlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5idWZmZXJzKTsKPiAtCUlOSVRf TElTVF9IRUFEKCZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKPiAtCXNwaW5fbG9ja19pbml0KCZl bmdpbmUtPmV4ZWNsaXN0X2xvY2spOwo+IC0KPiAtCXRhc2tsZXRfaW5pdCgmZW5naW5lLT5pcnFf dGFza2xldCwKPiAtCQkgICAgIGludGVsX2xyY19pcnFfaGFuZGxlciwgKHVuc2lnbmVkIGxvbmcp ZW5naW5lKTsKPiArCWVuZ2luZS0+ZGV2ID0gZGV2Owo+Cj4gLQlsb2dpY2FsX3JpbmdfaW5pdF9w bGF0Zm9ybV9pbnZhcmlhbnRzKGVuZ2luZSk7Cj4gKwkvKiBJbnRlbnRpb25hbGx5IGxlZnQgYmxh bmsuICovCj4gKwllbmdpbmUtPmJ1ZmZlciA9IE5VTEw7Cj4KPiAgIAlmd19kb21haW5zID0gaW50 ZWxfdW5jb3JlX2ZvcmNld2FrZV9mb3JfcmVnKGRldl9wcml2LAo+ICAgCQkJCQkJICAgIFJJTkdf RUxTUChlbmdpbmUpLAo+IEBAIC0yMDAxLDYgKzIwNDIsMzEgQEAgbG9naWNhbF9yaW5nX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ Cj4gICAJZW5naW5lLT5md19kb21haW5zID0gZndfZG9tYWluczsKPgo+ICsJSU5JVF9MSVNUX0hF QUQoJmVuZ2luZS0+YWN0aXZlX2xpc3QpOwo+ICsJSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+cmVx dWVzdF9saXN0KTsKPiArCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmJ1ZmZlcnMpOwo+ICsJSU5J VF9MSVNUX0hFQUQoJmVuZ2luZS0+ZXhlY2xpc3RfcXVldWUpOwo+ICsJc3Bpbl9sb2NrX2luaXQo JmVuZ2luZS0+ZXhlY2xpc3RfbG9jayk7Cj4gKwo+ICsJdGFza2xldF9pbml0KCZlbmdpbmUtPmly cV90YXNrbGV0LAo+ICsJCSAgICAgaW50ZWxfbHJjX2lycV9oYW5kbGVyLCAodW5zaWduZWQgbG9u ZyllbmdpbmUpOwo+ICsKPiArCWxvZ2ljYWxfcmluZ19pbml0X3BsYXRmb3JtX2ludmFyaWFudHMo ZW5naW5lKTsKPiArCWxvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhlbmdpbmUpOwo+ICsJbG9n aWNhbF9yaW5nX2RlZmF1bHRfaXJxcyhlbmdpbmUsIGluZm8tPmlycV9zaGlmdCk7Cj4gKwo+ICsJ aW50ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKGVuZ2luZSk7Cj4gKwlpOTE1X2dlbV9iYXRjaF9w b29sX2luaXQoZW5naW5lLT5kZXYsICZlbmdpbmUtPmJhdGNoX3Bvb2wpOwo+ICsKPiArCXJldHVy biBlbmdpbmU7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQKPiArbG9naWNhbF9yaW5nX2luaXQoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29udGV4 dCAqZGN0eCA9IHRvX2k5MTUoZW5naW5lLT5kZXYpLT5rZXJuZWxfY29udGV4dDsKPiArCWludCBy ZXQ7Cj4gKwo+ICAgCXJldCA9IGk5MTVfY21kX3BhcnNlcl9pbml0X3JpbmcoZW5naW5lKTsKPiAg IAlpZiAocmV0KQo+ICAgCQlnb3RvIGVycm9yOwo+IEBAIC0yMDMzLDIyICsyMDk5LDEyIEBAIGVy cm9yOgo+Cj4gICBzdGF0aWMgaW50IGxvZ2ljYWxfcmVuZGVyX3JpbmdfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9 ICZkZXZfcHJpdi0+ZW5naW5lW1JDU107Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPSBsb2dpY2FsX3Jpbmdfc2V0dXAoZGV2LCBSQ1MpOwo+ICAgCWludCByZXQ7Cj4KPiAtCWVu Z2luZS0+bmFtZSA9ICJyZW5kZXIgcmluZyI7Cj4gLQllbmdpbmUtPmlkID0gUkNTOwo+IC0JZW5n aW5lLT5leGVjX2lkID0gSTkxNV9FWEVDX1JFTkRFUjsKPiAtCWVuZ2luZS0+Z3VjX2lkID0gR1VD X1JFTkRFUl9FTkdJTkU7Cj4gLQllbmdpbmUtPm1taW9fYmFzZSA9IFJFTkRFUl9SSU5HX0JBU0U7 Cj4gLQo+IC0JbG9naWNhbF9yaW5nX2RlZmF1bHRfaXJxcyhlbmdpbmUsIEdFTjhfUkNTX0lSUV9T SElGVCk7Cj4gICAJaWYgKEhBU19MM19EUEYoZGV2KSkKPiAgIAkJZW5naW5lLT5pcnFfa2VlcF9t YXNrIHw9IEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUOwo+Cj4gLQlsb2dpY2Fs X3JpbmdfZGVmYXVsdF92ZnVuY3MoZGV2LCBlbmdpbmUpOwo+IC0KPiAgIAkvKiBPdmVycmlkZSBz b21lIGZvciByZW5kZXIgcmluZy4gKi8KPiAgIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g OSkKPiAgIAkJZW5naW5lLT5pbml0X2h3ID0gZ2VuOV9pbml0X3JlbmRlcl9yaW5nOwo+IEBAIC0y MDU5LDggKzIxMTUsNiBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmVuZGVyX3JpbmdfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCWVuZ2luZS0+ZW1pdF9mbHVzaCA9IGdlbjhfZW1pdF9m bHVzaF9yZW5kZXI7Cj4gICAJZW5naW5lLT5lbWl0X3JlcXVlc3QgPSBnZW44X2VtaXRfcmVxdWVz dF9yZW5kZXI7Cj4KPiAtCWVuZ2luZS0+ZGV2ID0gZGV2Owo+IC0KPiAgIAlyZXQgPSBpbnRlbF9p bml0X3BpcGVfY29udHJvbChlbmdpbmUpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7 Cj4gQEAgLTIwNzYsNyArMjEzMCw3IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yZW5kZXJfcmluZ19p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCQkgIHJldCk7Cj4gICAJfQo+Cj4gLQly ZXQgPSBsb2dpY2FsX3JpbmdfaW5pdChkZXYsIGVuZ2luZSk7Cj4gKwlyZXQgPSBsb2dpY2FsX3Jp bmdfaW5pdChlbmdpbmUpOwo+ICAgCWlmIChyZXQpIHsKPiAgIAkJbHJjX2Rlc3Ryb3lfd2FfY3R4 X29iaihlbmdpbmUpOwo+ICAgCX0KPiBAQCAtMjA4Niw3MCArMjE0MCwzMCBAQCBzdGF0aWMgaW50 IGxvZ2ljYWxfcmVuZGVyX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+Cj4gICBz dGF0aWMgaW50IGxvZ2ljYWxfYnNkX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5n aW5lW1ZDU107Cj4gLQo+IC0JZW5naW5lLT5uYW1lID0gImJzZCByaW5nIjsKPiAtCWVuZ2luZS0+ aWQgPSBWQ1M7Cj4gLQllbmdpbmUtPmV4ZWNfaWQgPSBJOTE1X0VYRUNfQlNEOwo+IC0JZW5naW5l LT5ndWNfaWQgPSBHVUNfVklERU9fRU5HSU5FOwo+IC0JZW5naW5lLT5tbWlvX2Jhc2UgPSBHRU42 X0JTRF9SSU5HX0JBU0U7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBsb2dp Y2FsX3Jpbmdfc2V0dXAoZGV2LCBWQ1MpOwo+Cj4gLQlsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFz KGVuZ2luZSwgR0VOOF9WQ1MxX0lSUV9TSElGVCk7Cj4gLQlsb2dpY2FsX3JpbmdfZGVmYXVsdF92 ZnVuY3MoZGV2LCBlbmdpbmUpOwo+IC0KPiAtCXJldHVybiBsb2dpY2FsX3JpbmdfaW5pdChkZXYs IGVuZ2luZSk7Cj4gKwlyZXR1cm4gbG9naWNhbF9yaW5nX2luaXQoZW5naW5lKTsKPiAgIH0KPgo+ ICAgc3RhdGljIGludCBsb2dpY2FsX2JzZDJfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2 LT5lbmdpbmVbVkNTMl07Cj4gLQo+IC0JZW5naW5lLT5uYW1lID0gImJzZDIgcmluZyI7Cj4gLQll bmdpbmUtPmlkID0gVkNTMjsKPiAtCWVuZ2luZS0+ZXhlY19pZCA9IEk5MTVfRVhFQ19CU0Q7Cj4g LQllbmdpbmUtPmd1Y19pZCA9IEdVQ19WSURFT19FTkdJTkUyOwo+IC0JZW5naW5lLT5tbWlvX2Jh c2UgPSBHRU44X0JTRDJfUklOR19CQVNFOwo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lID0gbG9naWNhbF9yaW5nX3NldHVwKGRldiwgVkNTMik7Cj4KPiAtCWxvZ2ljYWxfcmluZ19k ZWZhdWx0X2lycXMoZW5naW5lLCBHRU44X1ZDUzJfSVJRX1NISUZUKTsKPiAtCWxvZ2ljYWxfcmlu Z19kZWZhdWx0X3ZmdW5jcyhkZXYsIGVuZ2luZSk7Cj4gLQo+IC0JcmV0dXJuIGxvZ2ljYWxfcmlu Z19pbml0KGRldiwgZW5naW5lKTsKPiArCXJldHVybiBsb2dpY2FsX3JpbmdfaW5pdChlbmdpbmUp Owo+ICAgfQo+Cj4gICBzdGF0aWMgaW50IGxvZ2ljYWxfYmx0X3JpbmdfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9 ICZkZXZfcHJpdi0+ZW5naW5lW0JDU107Cj4gLQo+IC0JZW5naW5lLT5uYW1lID0gImJsaXR0ZXIg cmluZyI7Cj4gLQllbmdpbmUtPmlkID0gQkNTOwo+IC0JZW5naW5lLT5leGVjX2lkID0gSTkxNV9F WEVDX0JMVDsKPiAtCWVuZ2luZS0+Z3VjX2lkID0gR1VDX0JMSVRURVJfRU5HSU5FOwo+IC0JZW5n aW5lLT5tbWlvX2Jhc2UgPSBCTFRfUklOR19CQVNFOwo+IC0KPiAtCWxvZ2ljYWxfcmluZ19kZWZh dWx0X2lycXMoZW5naW5lLCBHRU44X0JDU19JUlFfU0hJRlQpOwo+IC0JbG9naWNhbF9yaW5nX2Rl ZmF1bHRfdmZ1bmNzKGRldiwgZW5naW5lKTsKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSA9IGxvZ2ljYWxfcmluZ19zZXR1cChkZXYsIEJDUyk7Cj4KPiAtCXJldHVybiBsb2dpY2Fs X3JpbmdfaW5pdChkZXYsIGVuZ2luZSk7Cj4gKwlyZXR1cm4gbG9naWNhbF9yaW5nX2luaXQoZW5n aW5lKTsKPiAgIH0KPgo+ICAgc3RhdGljIGludCBsb2dpY2FsX3ZlYm94X3JpbmdfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW1ZFQ1NdOwo+IC0KPiAtCWVuZ2luZS0+bmFtZSA9ICJ2 aWRlbyBlbmhhbmNlbWVudCByaW5nIjsKPiAtCWVuZ2luZS0+aWQgPSBWRUNTOwo+IC0JZW5naW5l LT5leGVjX2lkID0gSTkxNV9FWEVDX1ZFQk9YOwo+IC0JZW5naW5lLT5ndWNfaWQgPSBHVUNfVklE RU9FTkhBTkNFX0VOR0lORTsKPiAtCWVuZ2luZS0+bW1pb19iYXNlID0gVkVCT1hfUklOR19CQVNF Owo+IC0KPiAtCWxvZ2ljYWxfcmluZ19kZWZhdWx0X2lycXMoZW5naW5lLCBHRU44X1ZFQ1NfSVJR X1NISUZUKTsKPiAtCWxvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhkZXYsIGVuZ2luZSk7Cj4g KwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBsb2dpY2FsX3Jpbmdfc2V0dXAoZGV2 LCBWRUNTKTsKPgo+IC0JcmV0dXJuIGxvZ2ljYWxfcmluZ19pbml0KGRldiwgZW5naW5lKTsKPiAr CXJldHVybiBsb2dpY2FsX3JpbmdfaW5pdChlbmdpbmUpOwo+ICAgfQo+Cj4gICAvKioKPgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK