From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2] drm/i915/execlists: Refactor common engine setup Date: Fri, 29 Apr 2016 10:04:35 +0100 Message-ID: <572323A3.2000902@linux.intel.com> References: <1461851222-20557-1-git-send-email-chris@chris-wilson.co.uk> <1461864932-26230-1-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 060936EE6A for ; Fri, 29 Apr 2016 09:04:36 +0000 (UTC) In-Reply-To: <1461864932-26230-1-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 Ck9uIDI4LzA0LzE2IDE4OjM1LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gTW92ZSBhbGwgb2YgdGhl IGNvbnN0YW50IGFzc2lnbm1lbnRzIHVwIGZyb250IGFuZCBpbnRvIGEgY29tbW9uCj4gZnVuY3Rp b24uIFRoaXMgaXMgcHJpbWFyaWx5IHRvIGVuc3VyZSB0aGUgYmFja3BvaW50ZXJzIGFyZSBzZXQg YXMgZWFybHkKPiBhcyBwb3NzaWJsZSBmb3IgbGF0ZXIgdXNlIGR1cmluZyBpbml0aWFsaXNhdGlv bi4KPgo+IHYyOiBVc2UgYSBjb25zdGFudCBzdHJ1Y3Qgc28gdGhhdCBhbGwgdGhlIHNpbWlsYXIg dmFsdWVzIGFyZSBzZXQKPiB0b2dldGhlci4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtv LnVyc3VsaW5AbGludXguaW50ZWwuY29tPgo+IENjOiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jk b25AaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMg fCAxNzYgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCj4gICAxIGZpbGUg Y2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgODMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYwo+IGluZGV4IDg3NGMyNTE1ZjlkNC4uMmUwZWFhOWZhMjQwIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtMTkyMSw4ICsxOTIxLDcgQEAgdm9pZCBpbnRl bF9sb2dpY2FsX3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4g ICB9Cj4KPiAgIHN0YXRpYyB2b2lkCj4gLWxvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICtsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3Moc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQo+ICAgewo+ICAgCS8qIERlZmF1bHQgdmZ1bmNzIHdoaWNoIGNhbiBiZSBvdmVy cmlkZW4gYnkgZWFjaCBlbmdpbmUuICovCj4gICAJZW5naW5lLT5pbml0X2h3ID0gZ2VuOF9pbml0 X2NvbW1vbl9yaW5nOwo+IEBAIC0xOTMzLDcgKzE5MzIsNyBAQCBsb2dpY2FsX3JpbmdfZGVmYXVs dF92ZnVuY3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAllbmdpbmUtPmVtaXRfYmJfc3Rh cnQgPSBnZW44X2VtaXRfYmJfc3RhcnQ7Cj4gICAJZW5naW5lLT5nZXRfc2Vxbm8gPSBnZW44X2dl dF9zZXFubzsKPiAgIAllbmdpbmUtPnNldF9zZXFubyA9IGdlbjhfc2V0X3NlcW5vOwo+IC0JaWYg KElTX0JYVF9SRVZJRChkZXYsIDAsIEJYVF9SRVZJRF9BMSkpIHsKPiArCWlmIChJU19CWFRfUkVW SUQoZW5naW5lLT5kZXYsIDAsIEJYVF9SRVZJRF9BMSkpIHsKPiAgIAkJZW5naW5lLT5pcnFfc2Vx bm9fYmFycmllciA9IGJ4dF9hX3NlcW5vX2JhcnJpZXI7Cj4gICAJCWVuZ2luZS0+c2V0X3NlcW5v ID0gYnh0X2Ffc2V0X3NlcW5vOwo+ICAgCX0KPiBAQCAtMTk0NCw2ICsxOTQzLDcgQEAgbG9naWNh bF9yaW5nX2RlZmF1bHRfaXJxcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHVuc2ln bmVkIHNoaWZ0KQo+ICAgewo+ICAgCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0gR1RfUkVOREVS X1VTRVJfSU5URVJSVVBUIDw8IHNoaWZ0Owo+ICAgCWVuZ2luZS0+aXJxX2tlZXBfbWFzayA9IEdU X0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBzaGlmdDsKPiArCWluaXRfd2FpdHF1ZXVlX2hl YWQoJmVuZ2luZS0+aXJxX3F1ZXVlKTsKPiAgIH0KPgo+ICAgc3RhdGljIGludAo+IEBAIC0xOTY0 LDMxICsxOTY0LDY4IEBAIGxyY19zZXR1cF9od3Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLAo+ICAgCXJldHVybiAwOwo+ICAgfQo+Cj4gLXN0YXRpYyBpbnQKPiAtbG9naWNhbF9yaW5n X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGxvZ2ljYWxfcmluZ19pbmZvIHsKPiArCWNvbnN0 IGNoYXIgKm5hbWU7Cj4gKwl1bnNpZ25lZCBleGVjX2lkOwo+ICsJdW5zaWduZWQgZ3VjX2lkOwo+ ICsJdTMyIG1taW9fYmFzZTsKPiArCXVuc2lnbmVkIGlycV9zaGlmdDsKPiArfSBsb2dpY2FsX3Jp bmdzW10gPSB7Cj4gKwlbUkNTXSA9IHsKPiArCQkubmFtZSA9ICJyZW5kZXIgcmluZyIsCj4gKwkJ LmV4ZWNfaWQgPSBJOTE1X0VYRUNfUkVOREVSLAo+ICsJCS5ndWNfaWQgPSBHVUNfUkVOREVSX0VO R0lORSwKPiArCQkubW1pb19iYXNlID0gUkVOREVSX1JJTkdfQkFTRSwKPiArCQkuaXJxX3NoaWZ0 ID0gR0VOOF9SQ1NfSVJRX1NISUZULAo+ICsJfSwKPiArCVtCQ1NdID0gewo+ICsJCS5uYW1lID0g ImJsaXR0ZXIgcmluZyIsCj4gKwkJLmV4ZWNfaWQgPSBJOTE1X0VYRUNfQkxULAo+ICsJCS5ndWNf aWQgPSBHVUNfQkxJVFRFUl9FTkdJTkUsCj4gKwkJLm1taW9fYmFzZSA9IEJMVF9SSU5HX0JBU0Us Cj4gKwkJLmlycV9zaGlmdCA9IEdFTjhfQkNTX0lSUV9TSElGVCwKPiArCX0sCj4gKwlbVkNTXSA9 IHsKPiArCQkubmFtZSA9ICJic2QgcmluZyIsCj4gKwkJLmV4ZWNfaWQgPSBJOTE1X0VYRUNfQlNE LAo+ICsJCS5ndWNfaWQgPSBHVUNfVklERU9fRU5HSU5FLAo+ICsJCS5tbWlvX2Jhc2UgPSBHRU42 X0JTRF9SSU5HX0JBU0UsCj4gKwkJLmlycV9zaGlmdCA9IEdFTjhfVkNTMV9JUlFfU0hJRlQsCj4g Kwl9LAo+ICsJW1ZDUzJdID0gewo+ICsJCS5uYW1lID0gImJzZDIgcmluZyIsCj4gKwkJLmV4ZWNf aWQgPSBJOTE1X0VYRUNfQlNELAo+ICsJCS5ndWNfaWQgPSBHVUNfVklERU9fRU5HSU5FMiwKPiAr CQkubW1pb19iYXNlID0gR0VOOF9CU0QyX1JJTkdfQkFTRSwKPiArCQkuaXJxX3NoaWZ0ID0gR0VO OF9WQ1MyX0lSUV9TSElGVCwKPiArCX0sCj4gKwlbVkVDU10gPSB7Cj4gKwkJLm5hbWUgPSAidmlk ZW8gZW5oYW5jZW1lbnQgcmluZyIsCj4gKwkJLmV4ZWNfaWQgPSBJOTE1X0VYRUNfVkVCT1gsCj4g KwkJLmd1Y19pZCA9IEdVQ19WSURFT0VOSEFOQ0VfRU5HSU5FLAo+ICsJCS5tbWlvX2Jhc2UgPSBW RUJPWF9SSU5HX0JBU0UsCj4gKwkJLmlycV9zaGlmdCA9IEdFTjhfVkVDU19JUlFfU0hJRlQsCj4g Kwl9LAo+ICt9Owo+ICsKPiArc3RhdGljIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKgo+ICtsb2dp Y2FsX3Jpbmdfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBpbnRlbF9lbmdpbmVf aWQgaWQpCj4gICB7CgpXb3VsZCBkZXZfcHJpdiBiZSBiZXR0ZXI/IEp1c3QgdG8gZ3JhZHVhbGx5 IG1vdmUgdG93YXJkcyB0aGUgY29ycmVjdCAKc3RhdGUgb2YgdGhpbmdzLgoKPiArCWNvbnN0IHN0 cnVjdCBsb2dpY2FsX3JpbmdfaW5mbyAqaW5mbyA9ICZsb2dpY2FsX3JpbmdzW2lkXTsKPiAgIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gLQlzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqZGN0eCA9IGRldl9wcml2LT5rZXJuZWxfY29udGV4dDsKPiArCXN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW2lkXTsKPiAg IAllbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2RvbWFpbnM7Cj4gLQlpbnQgcmV0Owo+IC0KPiAt CS8qIEludGVudGlvbmFsbHkgbGVmdCBibGFuay4gKi8KPiAtCWVuZ2luZS0+YnVmZmVyID0gTlVM TDsKPgo+ICAgCWVuZ2luZS0+ZGV2ID0gZGV2OwoKTG9va2luZyBhdCB1c2FnZXMgb2YgaW50ZWxf ZW5naW5lX2luaXRpYWxpemVkLi4uIG9uZSBwb3RlbnRpYWwgZGFuZ2VyIApzY2VuYXJpbyB3b3Vs ZCBiZSBpbnRlcnJ1cHQgbm9pc2UgZHVyaW5nIGRyaXZlciBsb2FkIGVuZCBpbiBub3RpZnkgcmlu ZyAKYW5kIGV4cGxvZGVzLiBTb3VuZHMgdmVyeSB1bmxpa2VseSBidXQgdGhlb3JldGljYWxseSBp dCBpcyBhIHJlZ3Jlc3Npb24gCmNvbXBhcmVkIHRvIHdoZXJlIGVuZ2luZS0+ZGV2IGluaXRpYWxp emF0aW9uIHdhcyBiZWZvcmUuCgpXZSBzaG91bGQgcmVhbGx5IG1vdmUgYXdheSBmcm9tIGVuZ2lu ZS0+ZGV2IGZvciB0aGlzIGFuZCBqdXN0IGFkZCBhbiAKZXhwbGljaXQgZmxhZy4KCj4gLQlJTklU X0xJU1RfSEVBRCgmZW5naW5lLT5hY3RpdmVfbGlzdCk7Cj4gLQlJTklUX0xJU1RfSEVBRCgmZW5n aW5lLT5yZXF1ZXN0X2xpc3QpOwo+IC0JaTkxNV9nZW1fYmF0Y2hfcG9vbF9pbml0KGRldiwgJmVu Z2luZS0+YmF0Y2hfcG9vbCk7Cj4gLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZlbmdpbmUtPmlycV9x dWV1ZSk7Cj4KPiAtCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmJ1ZmZlcnMpOwo+IC0JSU5JVF9M SVNUX0hFQUQoJmVuZ2luZS0+ZXhlY2xpc3RfcXVldWUpOwo+IC0Jc3Bpbl9sb2NrX2luaXQoJmVu Z2luZS0+ZXhlY2xpc3RfbG9jayk7Cj4gKwllbmdpbmUtPmlkID0gaWQ7Cj4gKwllbmdpbmUtPm5h bWUgPSBpbmZvLT5uYW1lOwo+ICsJZW5naW5lLT5leGVjX2lkID0gaW5mby0+ZXhlY19pZDsKPiAr CWVuZ2luZS0+Z3VjX2lkID0gaW5mby0+Z3VjX2lkOwo+ICsJZW5naW5lLT5tbWlvX2Jhc2UgPSBp bmZvLT5tbWlvX2Jhc2U7Cj4KPiAtCXRhc2tsZXRfaW5pdCgmZW5naW5lLT5pcnFfdGFza2xldCwK PiAtCQkgICAgIGludGVsX2xyY19pcnFfaGFuZGxlciwgKHVuc2lnbmVkIGxvbmcpZW5naW5lKTsK PiAtCj4gLQlsb2dpY2FsX3JpbmdfaW5pdF9wbGF0Zm9ybV9pbnZhcmlhbnRzKGVuZ2luZSk7Cj4g KwkvKiBJbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsuICovCj4gKwllbmdpbmUtPmJ1ZmZlciA9IE5V TEw7Cj4KPiAgIAlmd19kb21haW5zID0gaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9mb3JfcmVnKGRl dl9wcml2LAo+ICAgCQkJCQkJICAgIFJJTkdfRUxTUChlbmdpbmUpLAo+IEBAIC0yMDA0LDYgKzIw NDEsMzEgQEAgbG9naWNhbF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+Cj4gICAJZW5naW5lLT5md19kb21haW5zID0gZndf ZG9tYWluczsKPgo+ICsJSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+YWN0aXZlX2xpc3QpOwo+ICsJ SU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+cmVxdWVzdF9saXN0KTsKPiArCUlOSVRfTElTVF9IRUFE KCZlbmdpbmUtPmJ1ZmZlcnMpOwo+ICsJSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+ZXhlY2xpc3Rf cXVldWUpOwo+ICsJc3Bpbl9sb2NrX2luaXQoJmVuZ2luZS0+ZXhlY2xpc3RfbG9jayk7Cj4gKwo+ ICsJdGFza2xldF9pbml0KCZlbmdpbmUtPmlycV90YXNrbGV0LAo+ICsJCSAgICAgaW50ZWxfbHJj X2lycV9oYW5kbGVyLCAodW5zaWduZWQgbG9uZyllbmdpbmUpOwo+ICsKPiArCWxvZ2ljYWxfcmlu Z19pbml0X3BsYXRmb3JtX2ludmFyaWFudHMoZW5naW5lKTsKPiArCWxvZ2ljYWxfcmluZ19kZWZh dWx0X3ZmdW5jcyhlbmdpbmUpOwo+ICsJbG9naWNhbF9yaW5nX2RlZmF1bHRfaXJxcyhlbmdpbmUs IGluZm8tPmlycV9zaGlmdCk7Cj4gKwo+ICsJaW50ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKGVu Z2luZSk7Cj4gKwlpOTE1X2dlbV9iYXRjaF9wb29sX2luaXQoZW5naW5lLT5kZXYsICZlbmdpbmUt PmJhdGNoX3Bvb2wpOwo+ICsKPiArCXJldHVybiBlbmdpbmU7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQKPiArbG9naWNhbF9yaW5nX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqZGN0eCA9IHRvX2k5MTUoZW5naW5lLT5kZXYp LT5rZXJuZWxfY29udGV4dDsKPiArCWludCByZXQ7Cj4gKwo+ICAgCXJldCA9IGk5MTVfY21kX3Bh cnNlcl9pbml0X3JpbmcoZW5naW5lKTsKPiAgIAlpZiAocmV0KQo+ICAgCQlnb3RvIGVycm9yOwo+ IEBAIC0yMDM2LDIyICsyMDk4LDEyIEBAIGVycm9yOgo+Cj4gICBzdGF0aWMgaW50IGxvZ2ljYWxf cmVuZGVyX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgewo+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW1JDU107Cj4gKwlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBsb2dpY2FsX3Jpbmdfc2V0dXAoZGV2LCBS Q1MpOwo+ICAgCWludCByZXQ7Cj4KPiAtCWVuZ2luZS0+bmFtZSA9ICJyZW5kZXIgcmluZyI7Cj4g LQllbmdpbmUtPmlkID0gUkNTOwo+IC0JZW5naW5lLT5leGVjX2lkID0gSTkxNV9FWEVDX1JFTkRF UjsKPiAtCWVuZ2luZS0+Z3VjX2lkID0gR1VDX1JFTkRFUl9FTkdJTkU7Cj4gLQllbmdpbmUtPm1t aW9fYmFzZSA9IFJFTkRFUl9SSU5HX0JBU0U7Cj4gLQo+IC0JbG9naWNhbF9yaW5nX2RlZmF1bHRf aXJxcyhlbmdpbmUsIEdFTjhfUkNTX0lSUV9TSElGVCk7Cj4gICAJaWYgKEhBU19MM19EUEYoZGV2 KSkKPiAgIAkJZW5naW5lLT5pcnFfa2VlcF9tYXNrIHw9IEdUX1JFTkRFUl9MM19QQVJJVFlfRVJS T1JfSU5URVJSVVBUOwo+Cj4gLQlsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3MoZGV2LCBlbmdp bmUpOwo+IC0KPiAgIAkvKiBPdmVycmlkZSBzb21lIGZvciByZW5kZXIgcmluZy4gKi8KPiAgIAlp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKPiAgIAkJZW5naW5lLT5pbml0X2h3ID0gZ2Vu OV9pbml0X3JlbmRlcl9yaW5nOwo+IEBAIC0yMDYyLDggKzIxMTQsNiBAQCBzdGF0aWMgaW50IGxv Z2ljYWxfcmVuZGVyX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCWVuZ2lu ZS0+ZW1pdF9mbHVzaCA9IGdlbjhfZW1pdF9mbHVzaF9yZW5kZXI7Cj4gICAJZW5naW5lLT5lbWl0 X3JlcXVlc3QgPSBnZW44X2VtaXRfcmVxdWVzdF9yZW5kZXI7Cj4KPiAtCWVuZ2luZS0+ZGV2ID0g ZGV2Owo+IC0KPiAgIAlyZXQgPSBpbnRlbF9pbml0X3BpcGVfY29udHJvbChlbmdpbmUpOwo+ICAg CWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4gQEAgLTIwNzksNyArMjEyOSw3IEBAIHN0YXRp YyBpbnQgbG9naWNhbF9yZW5kZXJfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g ICAJCQkgIHJldCk7Cj4gICAJfQo+Cj4gLQlyZXQgPSBsb2dpY2FsX3JpbmdfaW5pdChkZXYsIGVu Z2luZSk7Cj4gKwlyZXQgPSBsb2dpY2FsX3JpbmdfaW5pdChlbmdpbmUpOwo+ICAgCWlmIChyZXQp IHsKPiAgIAkJbHJjX2Rlc3Ryb3lfd2FfY3R4X29iaihlbmdpbmUpOwo+ICAgCX0KPiBAQCAtMjA4 OSw3MCArMjEzOSwzMCBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmVuZGVyX3JpbmdfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+Cj4gICBzdGF0aWMgaW50IGxvZ2ljYWxfYnNkX3JpbmdfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW1ZDU107Cj4gLQo+IC0JZW5naW5lLT5uYW1l ID0gImJzZCByaW5nIjsKPiAtCWVuZ2luZS0+aWQgPSBWQ1M7Cj4gLQllbmdpbmUtPmV4ZWNfaWQg PSBJOTE1X0VYRUNfQlNEOwo+IC0JZW5naW5lLT5ndWNfaWQgPSBHVUNfVklERU9fRU5HSU5FOwo+ IC0JZW5naW5lLT5tbWlvX2Jhc2UgPSBHRU42X0JTRF9SSU5HX0JBU0U7Cj4gKwlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUgPSBsb2dpY2FsX3Jpbmdfc2V0dXAoZGV2LCBWQ1MpOwo+Cj4g LQlsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFzKGVuZ2luZSwgR0VOOF9WQ1MxX0lSUV9TSElGVCk7 Cj4gLQlsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3MoZGV2LCBlbmdpbmUpOwo+IC0KPiAtCXJl dHVybiBsb2dpY2FsX3JpbmdfaW5pdChkZXYsIGVuZ2luZSk7Cj4gKwlyZXR1cm4gbG9naWNhbF9y aW5nX2luaXQoZW5naW5lKTsKPiAgIH0KPgo+ICAgc3RhdGljIGludCBsb2dpY2FsX2JzZDJfcmlu Z19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5lbmdpbmVbVkNTMl07Cj4gLQo+IC0JZW5naW5l LT5uYW1lID0gImJzZDIgcmluZyI7Cj4gLQllbmdpbmUtPmlkID0gVkNTMjsKPiAtCWVuZ2luZS0+ ZXhlY19pZCA9IEk5MTVfRVhFQ19CU0Q7Cj4gLQllbmdpbmUtPmd1Y19pZCA9IEdVQ19WSURFT19F TkdJTkUyOwo+IC0JZW5naW5lLT5tbWlvX2Jhc2UgPSBHRU44X0JTRDJfUklOR19CQVNFOwo+ICsJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gbG9naWNhbF9yaW5nX3NldHVwKGRldiwg VkNTMik7Cj4KPiAtCWxvZ2ljYWxfcmluZ19kZWZhdWx0X2lycXMoZW5naW5lLCBHRU44X1ZDUzJf SVJRX1NISUZUKTsKPiAtCWxvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhkZXYsIGVuZ2luZSk7 Cj4gLQo+IC0JcmV0dXJuIGxvZ2ljYWxfcmluZ19pbml0KGRldiwgZW5naW5lKTsKPiArCXJldHVy biBsb2dpY2FsX3JpbmdfaW5pdChlbmdpbmUpOwo+ICAgfQo+Cj4gICBzdGF0aWMgaW50IGxvZ2lj YWxfYmx0X3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgewo+IC0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW0JDU107Cj4gLQo+ IC0JZW5naW5lLT5uYW1lID0gImJsaXR0ZXIgcmluZyI7Cj4gLQllbmdpbmUtPmlkID0gQkNTOwo+ IC0JZW5naW5lLT5leGVjX2lkID0gSTkxNV9FWEVDX0JMVDsKPiAtCWVuZ2luZS0+Z3VjX2lkID0g R1VDX0JMSVRURVJfRU5HSU5FOwo+IC0JZW5naW5lLT5tbWlvX2Jhc2UgPSBCTFRfUklOR19CQVNF Owo+IC0KPiAtCWxvZ2ljYWxfcmluZ19kZWZhdWx0X2lycXMoZW5naW5lLCBHRU44X0JDU19JUlFf U0hJRlQpOwo+IC0JbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKGRldiwgZW5naW5lKTsKPiAr CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGxvZ2ljYWxfcmluZ19zZXR1cChkZXYs IEJDUyk7Cj4KPiAtCXJldHVybiBsb2dpY2FsX3JpbmdfaW5pdChkZXYsIGVuZ2luZSk7Cj4gKwly ZXR1cm4gbG9naWNhbF9yaW5nX2luaXQoZW5naW5lKTsKPiAgIH0KPgo+ICAgc3RhdGljIGludCBs b2dpY2FsX3ZlYm94X3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgewo+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAt CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW1ZFQ1Nd Owo+IC0KPiAtCWVuZ2luZS0+bmFtZSA9ICJ2aWRlbyBlbmhhbmNlbWVudCByaW5nIjsKPiAtCWVu Z2luZS0+aWQgPSBWRUNTOwo+IC0JZW5naW5lLT5leGVjX2lkID0gSTkxNV9FWEVDX1ZFQk9YOwo+ IC0JZW5naW5lLT5ndWNfaWQgPSBHVUNfVklERU9FTkhBTkNFX0VOR0lORTsKPiAtCWVuZ2luZS0+ bW1pb19iYXNlID0gVkVCT1hfUklOR19CQVNFOwo+IC0KPiAtCWxvZ2ljYWxfcmluZ19kZWZhdWx0 X2lycXMoZW5naW5lLCBHRU44X1ZFQ1NfSVJRX1NISUZUKTsKPiAtCWxvZ2ljYWxfcmluZ19kZWZh dWx0X3ZmdW5jcyhkZXYsIGVuZ2luZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPSBsb2dpY2FsX3Jpbmdfc2V0dXAoZGV2LCBWRUNTKTsKPgo+IC0JcmV0dXJuIGxvZ2ljYWxf cmluZ19pbml0KGRldiwgZW5naW5lKTsKPiArCXJldHVybiBsb2dpY2FsX3JpbmdfaW5pdChlbmdp bmUpOwo+ICAgfQo+Cj4gICAvKioKPgoKT3RoZXJ3aXNlIEkgbGlrZSBob3cgdGhpcyBsb29rcywg anVzdCBlbmdpbmUtPmRldiBidWdnaW5nIG1lIQoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK