From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915/execlists: Refactor common engine setup Date: Thu, 28 Apr 2016 16:10:54 +0100 Message-ID: <572227FE.7090806@linux.intel.com> References: <1461851222-20557-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 5A8976ED52 for ; Thu, 28 Apr 2016 15:11:26 +0000 (UTC) In-Reply-To: <1461851222-20557-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 Ck9uIDI4LzA0LzE2IDE0OjQ3LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gTW92ZSBhbGwgb2YgdGhl IGNvbnN0YW50IGFzc2lnbm1lbnRzIHVwIGZyb250IGFuZCBpbnRvIGEgY29tbW9uCj4gZnVuY3Rp b24uIFRoaXMgaXMgcHJpbWFyaWx5IHRvIGVuc3VyZSB0aGUgYmFja3BvaW50ZXJzIGFyZSBzZXQg YXMgZWFybHkKPiBhcyBwb3NzaWJsZSBmb3IgbGF0ZXIgdXNlIGR1cmluZyBpbml0aWFsaXNhdGlv bi4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AbGludXguaW50ZWwuY29t Pgo+IC0tLQo+Cj4gSSdtIG5vdCB0b28gaGFwcHkgYWJvdXQgdXNpbmcgdGhlIGZ1bmN0aW9uIHBh cmFtZXRlcnMgd2l0aCBsb3RzIG9mCj4gc2ltaWxhciB0eXBlcywgdmVyeSBlYXN5IHRvIG11ZGRs ZSB0aGVtIHVwLiBJJ20gc2VuZGluZyB0aGlzIGFsbCBiZWNhdXNlCj4gaXQgcGxhY2VzIG9uZSBp bml0aWFsaXNlciBpbiBhIGNvbW1vbiBsb2NhdGlvbiByYXRoZXIgdGhhbiBwZXItZW5naW5lIQo+ IC1DaHJpcwo+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyB8IDE1 NyArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIDEgZmlsZSBjaGFu Z2VkLCA3OCBpbnNlcnRpb25zKCspLCA3OSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCj4gaW5kZXggODc0YzI1MTVmOWQ0Li5hNGE0ZjhlYWYwMDAgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0xOTIxLDggKzE5MjEsNyBAQCB2b2lkIGludGVsX2xv Z2ljYWxfcmluZ19jbGVhbnVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIH0K Pgo+ICAgc3RhdGljIHZvaWQKPiAtbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gLQkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Cj4gK2xvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gICB7Cj4gICAJLyogRGVmYXVsdCB2ZnVuY3Mgd2hpY2ggY2FuIGJlIG92ZXJyaWRl biBieSBlYWNoIGVuZ2luZS4gKi8KPiAgIAllbmdpbmUtPmluaXRfaHcgPSBnZW44X2luaXRfY29t bW9uX3Jpbmc7Cj4gQEAgLTE5MzMsNyArMTkzMiw3IEBAIGxvZ2ljYWxfcmluZ19kZWZhdWx0X3Zm dW5jcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCWVuZ2luZS0+ZW1pdF9iYl9zdGFydCA9 IGdlbjhfZW1pdF9iYl9zdGFydDsKPiAgIAllbmdpbmUtPmdldF9zZXFubyA9IGdlbjhfZ2V0X3Nl cW5vOwo+ICAgCWVuZ2luZS0+c2V0X3NlcW5vID0gZ2VuOF9zZXRfc2Vxbm87Cj4gLQlpZiAoSVNf QlhUX1JFVklEKGRldiwgMCwgQlhUX1JFVklEX0ExKSkgewo+ICsJaWYgKElTX0JYVF9SRVZJRChl bmdpbmUtPmRldiwgMCwgQlhUX1JFVklEX0ExKSkgewoKVGhpcyBtdXN0IGhhdmUgYmVlbiBoYXJk IHRvIHN3YWxsb3cuIDtECgo+ICAgCQllbmdpbmUtPmlycV9zZXFub19iYXJyaWVyID0gYnh0X2Ff c2Vxbm9fYmFycmllcjsKPiAgIAkJZW5naW5lLT5zZXRfc2Vxbm8gPSBieHRfYV9zZXRfc2Vxbm87 Cj4gICAJfQo+IEBAIC0xOTQ0LDYgKzE5NDMsNyBAQCBsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFz KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdW5zaWduZWQgc2hpZnQpCj4gICB7Cj4g ICAJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwg c2hpZnQ7Cj4gICAJZW5naW5lLT5pcnFfa2VlcF9tYXNrID0gR1RfQ09OVEVYVF9TV0lUQ0hfSU5U RVJSVVBUIDw8IHNoaWZ0Owo+ICsJaW5pdF93YWl0cXVldWVfaGVhZCgmZW5naW5lLT5pcnFfcXVl dWUpOwo+ICAgfQo+Cj4gICBzdGF0aWMgaW50Cj4gQEAgLTE5NjQsMzEgKzE5NjQsMjggQEAgbHJj X3NldHVwX2h3cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAJcmV0dXJuIDA7 Cj4gICB9Cj4KPiAtc3RhdGljIGludAo+IC1sb2dpY2FsX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3N0YXRpYyBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICoKPiArbG9naWNhbF9yaW5nX3NldHVwKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGludCBpZCwKCmVudW0gaW50ZWxfZW5naW5lX2lkIGlkCgo+ICsJCSAgIGNvbnN0 IGNoYXIgKm5hbWUsCj4gKwkJICAgdW5zaWduZWQgZXhlY19pZCwKPiArCQkgICB1bnNpZ25lZCBn dWNfaWQsCgpJZiBndWNfaWYgd2FzIGFuIGVudW0gaXQgY291bGQgZXZlbiBiZSB0eXBlc2FmZSBo ZXJlLiBTdHJ1Y3R1cmUgZm9yIApwYXJhbWV0ZXJzIGlzIHByb2JhYmx5IGFuIG92ZXJraWxsLkRv bid0IGtub3cuCgo+ICsJCSAgIHVuc2lnbmVkIG1taW9fYmFzZSwKClRoaXMgaXMgdTMyIGVsc2V3 aGVyZSBJIHRoaW5rLgoKPiArCQkgICB1bnNpZ25lZCBpcnEpCgppcnFfc2hpZnQgd291bGQgYmUg T0suCgo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpkY3R4ID0gZGV2X3ByaXYtPmtlcm5l bF9jb250ZXh0Owo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2 LT5lbmdpbmVbaWRdOwo+ICAgCWVudW0gZm9yY2V3YWtlX2RvbWFpbnMgZndfZG9tYWluczsKPiAt CWludCByZXQ7Cj4gLQo+IC0JLyogSW50ZW50aW9uYWxseSBsZWZ0IGJsYW5rLiAqLwo+IC0JZW5n aW5lLT5idWZmZXIgPSBOVUxMOwo+Cj4gICAJZW5naW5lLT5kZXYgPSBkZXY7CgpTZXR0aW5nIGVu Z2luZS0+ZGV2IHdhcyBsYXN0IGluIHNlcXVlbmNlIGJlZm9yZSBhbmQgbm93IGl0IGlzIGFoZWFk IG9mIApsb3Qgb2Ygb3RoZXIgdGhpbmdzLiBJIGFtIG5vdCBzdXJlIGhvdyBpbXBvcnRhbnQgdGhh dCB3YXMgYW5kIGlmIGl0IAp3b3VsZCBjYXVzZSBhbnkgdHJvdWJsZSBub3c/IEVzcGVjaWFsbHkg c2luY2UgdXNpbmcgZW5naW5lLT5kZXYgZm9yIAppbnRlbF9yaW5nX2luaXRpYWxpemVkIGlzIHNv IHRlcnJpYmx5IGFubm95aW5nIGFuZCBiaXRlcyB1bmV4cGVjdGVkbHkuCgo+IC0JSU5JVF9MSVNU X0hFQUQoJmVuZ2luZS0+YWN0aXZlX2xpc3QpOwo+IC0JSU5JVF9MSVNUX0hFQUQoJmVuZ2luZS0+ cmVxdWVzdF9saXN0KTsKPiAtCWk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5pdChkZXYsICZlbmdpbmUt PmJhdGNoX3Bvb2wpOwo+IC0JaW5pdF93YWl0cXVldWVfaGVhZCgmZW5naW5lLT5pcnFfcXVldWUp Owo+IC0KPiAtCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmJ1ZmZlcnMpOwo+IC0JSU5JVF9MSVNU X0hFQUQoJmVuZ2luZS0+ZXhlY2xpc3RfcXVldWUpOwo+IC0Jc3Bpbl9sb2NrX2luaXQoJmVuZ2lu ZS0+ZXhlY2xpc3RfbG9jayk7Cj4KPiAtCXRhc2tsZXRfaW5pdCgmZW5naW5lLT5pcnFfdGFza2xl dCwKPiAtCQkgICAgIGludGVsX2xyY19pcnFfaGFuZGxlciwgKHVuc2lnbmVkIGxvbmcpZW5naW5l KTsKPiArCWVuZ2luZS0+bmFtZSA9IG5hbWUsCj4gKwllbmdpbmUtPmlkID0gaWQ7Cj4gKwllbmdp bmUtPmV4ZWNfaWQgPSBleGVjX2lkOwo+ICsJZW5naW5lLT5ndWNfaWQgPSBndWNfaWQ7Cj4gKwll bmdpbmUtPm1taW9fYmFzZSA9IG1taW9fYmFzZTsKPgo+IC0JbG9naWNhbF9yaW5nX2luaXRfcGxh dGZvcm1faW52YXJpYW50cyhlbmdpbmUpOwo+ICsJLyogSW50ZW50aW9uYWxseSBsZWZ0IGJsYW5r LiAqLwo+ICsJZW5naW5lLT5idWZmZXIgPSBOVUxMOwo+Cj4gICAJZndfZG9tYWlucyA9IGludGVs X3VuY29yZV9mb3JjZXdha2VfZm9yX3JlZyhkZXZfcHJpdiwKPiAgIAkJCQkJCSAgICBSSU5HX0VM U1AoZW5naW5lKSwKPiBAQCAtMjAwNCw2ICsyMDAxLDMxIEBAIGxvZ2ljYWxfcmluZ19pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPgo+ ICAgCWVuZ2luZS0+ZndfZG9tYWlucyA9IGZ3X2RvbWFpbnM7Cj4KPiArCUlOSVRfTElTVF9IRUFE KCZlbmdpbmUtPmFjdGl2ZV9saXN0KTsKPiArCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPnJlcXVl c3RfbGlzdCk7Cj4gKwlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5idWZmZXJzKTsKPiArCUlOSVRf TElTVF9IRUFEKCZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKPiArCXNwaW5fbG9ja19pbml0KCZl bmdpbmUtPmV4ZWNsaXN0X2xvY2spOwo+ICsKPiArCXRhc2tsZXRfaW5pdCgmZW5naW5lLT5pcnFf dGFza2xldCwKPiArCQkgICAgIGludGVsX2xyY19pcnFfaGFuZGxlciwgKHVuc2lnbmVkIGxvbmcp ZW5naW5lKTsKPiArCj4gKwlsb2dpY2FsX3JpbmdfaW5pdF9wbGF0Zm9ybV9pbnZhcmlhbnRzKGVu Z2luZSk7Cj4gKwlsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3MoZW5naW5lKTsKPiArCWxvZ2lj YWxfcmluZ19kZWZhdWx0X2lycXMoZW5naW5lLCBpcnEpOwo+ICsKPiArCWludGVsX2VuZ2luZV9p bml0X2hhbmdjaGVjayhlbmdpbmUpOwo+ICsJaTkxNV9nZW1fYmF0Y2hfcG9vbF9pbml0KGVuZ2lu ZS0+ZGV2LCAmZW5naW5lLT5iYXRjaF9wb29sKTsKPiArCj4gKwlyZXR1cm4gZW5naW5lOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW50Cj4gK2xvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKPiArewo+ICsJc3RydWN0IGludGVsX2NvbnRleHQgKmRjdHggPSB0b19p OTE1KGVuZ2luZS0+ZGV2KS0+a2VybmVsX2NvbnRleHQ7Cj4gKwlpbnQgcmV0Owo+ICsKPiAgIAly ZXQgPSBpOTE1X2NtZF9wYXJzZXJfaW5pdF9yaW5nKGVuZ2luZSk7Cj4gICAJaWYgKHJldCkKPiAg IAkJZ290byBlcnJvcjsKPiBAQCAtMjAzNiwyMiArMjA1OCwxNyBAQCBlcnJvcjoKPgo+ICAgc3Rh dGljIGludCBsb2dpY2FsX3JlbmRlcl9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiAgIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYtPmVu Z2luZVtSQ1NdOwo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICAgCWludCBy ZXQ7Cj4KPiAtCWVuZ2luZS0+bmFtZSA9ICJyZW5kZXIgcmluZyI7Cj4gLQllbmdpbmUtPmlkID0g UkNTOwo+IC0JZW5naW5lLT5leGVjX2lkID0gSTkxNV9FWEVDX1JFTkRFUjsKPiAtCWVuZ2luZS0+ Z3VjX2lkID0gR1VDX1JFTkRFUl9FTkdJTkU7Cj4gLQllbmdpbmUtPm1taW9fYmFzZSA9IFJFTkRF Ul9SSU5HX0JBU0U7Cj4gLQo+IC0JbG9naWNhbF9yaW5nX2RlZmF1bHRfaXJxcyhlbmdpbmUsIEdF TjhfUkNTX0lSUV9TSElGVCk7Cj4gKwllbmdpbmUgPSBsb2dpY2FsX3Jpbmdfc2V0dXAoZGV2LCBS Q1MsICJyZW5kZXIgcmluZyIsCj4gKwkJCQkgICAgSTkxNV9FWEVDX1JFTkRFUiwKPiArCQkJCSAg ICBHVUNfUkVOREVSX0VOR0lORSwKPiArCQkJCSAgICBSRU5ERVJfUklOR19CQVNFLAo+ICsJCQkJ ICAgIEdFTjhfUkNTX0lSUV9TSElGVCk7Cj4gICAJaWYgKEhBU19MM19EUEYoZGV2KSkKPiAgIAkJ ZW5naW5lLT5pcnFfa2VlcF9tYXNrIHw9IEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJS VVBUOwo+Cj4gLQlsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3MoZGV2LCBlbmdpbmUpOwo+IC0K PiAgIAkvKiBPdmVycmlkZSBzb21lIGZvciByZW5kZXIgcmluZy4gKi8KPiAgIAlpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gOSkKPiAgIAkJZW5naW5lLT5pbml0X2h3ID0gZ2VuOV9pbml0X3Jl bmRlcl9yaW5nOwo+IEBAIC0yMDYyLDggKzIwNzksNiBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmVu ZGVyX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCWVuZ2luZS0+ZW1pdF9m bHVzaCA9IGdlbjhfZW1pdF9mbHVzaF9yZW5kZXI7Cj4gICAJZW5naW5lLT5lbWl0X3JlcXVlc3Qg PSBnZW44X2VtaXRfcmVxdWVzdF9yZW5kZXI7Cj4KPiAtCWVuZ2luZS0+ZGV2ID0gZGV2Owo+IC0K PiAgIAlyZXQgPSBpbnRlbF9pbml0X3BpcGVfY29udHJvbChlbmdpbmUpOwo+ICAgCWlmIChyZXQp Cj4gICAJCXJldHVybiByZXQ7Cj4gQEAgLTIwNzksNyArMjA5NCw3IEBAIHN0YXRpYyBpbnQgbG9n aWNhbF9yZW5kZXJfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCQkgIHJl dCk7Cj4gICAJfQo+Cj4gLQlyZXQgPSBsb2dpY2FsX3JpbmdfaW5pdChkZXYsIGVuZ2luZSk7Cj4g KwlyZXQgPSBsb2dpY2FsX3JpbmdfaW5pdChlbmdpbmUpOwo+ICAgCWlmIChyZXQpIHsKPiAgIAkJ bHJjX2Rlc3Ryb3lfd2FfY3R4X29iaihlbmdpbmUpOwo+ICAgCX0KPiBAQCAtMjA4OSw3MCArMjEw NCw1NCBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmVuZGVyX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+Cj4gICBzdGF0aWMgaW50IGxvZ2ljYWxfYnNkX3JpbmdfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSA9ICZkZXZfcHJpdi0+ZW5naW5lW1ZDU107Cj4gLQo+IC0JZW5naW5lLT5uYW1lID0gImJzZCBy aW5nIjsKPiAtCWVuZ2luZS0+aWQgPSBWQ1M7Cj4gLQllbmdpbmUtPmV4ZWNfaWQgPSBJOTE1X0VY RUNfQlNEOwo+IC0JZW5naW5lLT5ndWNfaWQgPSBHVUNfVklERU9fRU5HSU5FOwo+IC0JZW5naW5l LT5tbWlvX2Jhc2UgPSBHRU42X0JTRF9SSU5HX0JBU0U7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmU7Cj4KPiAtCWxvZ2ljYWxfcmluZ19kZWZhdWx0X2lycXMoZW5naW5lLCBHRU44 X1ZDUzFfSVJRX1NISUZUKTsKPiAtCWxvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhkZXYsIGVu Z2luZSk7Cj4gKwllbmdpbmUgPSBsb2dpY2FsX3Jpbmdfc2V0dXAoZGV2LCBWQ1MsICJic2Qgcmlu ZyIsCj4gKwkJCQkgICAgSTkxNV9FWEVDX0JTRCwKPiArCQkJCSAgICBHVUNfVklERU9fRU5HSU5F LAo+ICsJCQkJICAgIEdFTjZfQlNEX1JJTkdfQkFTRSwKPiArCQkJCSAgICBHRU44X1ZDUzFfSVJR X1NISUZUKTsKPgo+IC0JcmV0dXJuIGxvZ2ljYWxfcmluZ19pbml0KGRldiwgZW5naW5lKTsKPiAr CXJldHVybiBsb2dpY2FsX3JpbmdfaW5pdChlbmdpbmUpOwo+ICAgfQo+Cj4gICBzdGF0aWMgaW50 IGxvZ2ljYWxfYnNkMl9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIHsKPiAt CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g LQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYtPmVuZ2luZVtWQ1My XTsKPiAtCj4gLQllbmdpbmUtPm5hbWUgPSAiYnNkMiByaW5nIjsKPiAtCWVuZ2luZS0+aWQgPSBW Q1MyOwo+IC0JZW5naW5lLT5leGVjX2lkID0gSTkxNV9FWEVDX0JTRDsKPiAtCWVuZ2luZS0+Z3Vj X2lkID0gR1VDX1ZJREVPX0VOR0lORTI7Cj4gLQllbmdpbmUtPm1taW9fYmFzZSA9IEdFTjhfQlNE Ml9SSU5HX0JBU0U7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4KPiAtCWxv Z2ljYWxfcmluZ19kZWZhdWx0X2lycXMoZW5naW5lLCBHRU44X1ZDUzJfSVJRX1NISUZUKTsKPiAt CWxvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhkZXYsIGVuZ2luZSk7Cj4gKwllbmdpbmUgPSBs b2dpY2FsX3Jpbmdfc2V0dXAoZGV2LCBWQ1MyLCAiYnNkMiByaW5nIiwKPiArCQkJCSAgICBJOTE1 X0VYRUNfQlNELAo+ICsJCQkJICAgIEdVQ19WSURFT19FTkdJTkUyLAo+ICsJCQkJICAgIEdFTjhf QlNEMl9SSU5HX0JBU0UsCj4gKwkJCQkgICAgR0VOOF9WQ1MyX0lSUV9TSElGVCk7Cj4KPiAtCXJl dHVybiBsb2dpY2FsX3JpbmdfaW5pdChkZXYsIGVuZ2luZSk7Cj4gKwlyZXR1cm4gbG9naWNhbF9y aW5nX2luaXQoZW5naW5lKTsKPiAgIH0KPgo+ICAgc3RhdGljIGludCBsb2dpY2FsX2JsdF9yaW5n X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYtPmVuZ2luZVtCQ1NdOwo+IC0KPiAtCWVuZ2luZS0+ bmFtZSA9ICJibGl0dGVyIHJpbmciOwo+IC0JZW5naW5lLT5pZCA9IEJDUzsKPiAtCWVuZ2luZS0+ ZXhlY19pZCA9IEk5MTVfRVhFQ19CTFQ7Cj4gLQllbmdpbmUtPmd1Y19pZCA9IEdVQ19CTElUVEVS X0VOR0lORTsKPiAtCWVuZ2luZS0+bW1pb19iYXNlID0gQkxUX1JJTkdfQkFTRTsKPiArCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPgo+IC0JbG9naWNhbF9yaW5nX2RlZmF1bHRfaXJx cyhlbmdpbmUsIEdFTjhfQkNTX0lSUV9TSElGVCk7Cj4gLQlsb2dpY2FsX3JpbmdfZGVmYXVsdF92 ZnVuY3MoZGV2LCBlbmdpbmUpOwo+ICsJZW5naW5lID0gbG9naWNhbF9yaW5nX3NldHVwKGRldiwg QkNTLCAiYmxpdHRlciByaW5nIiwKPiArCQkJCSAgICBJOTE1X0VYRUNfQkxULAo+ICsJCQkJICAg IEdVQ19CTElUVEVSX0VOR0lORSwKPiArCQkJCSAgICBCTFRfUklOR19CQVNFLAo+ICsJCQkJICAg IEdFTjhfQkNTX0lSUV9TSElGVCk7Cj4KPiAtCXJldHVybiBsb2dpY2FsX3JpbmdfaW5pdChkZXYs IGVuZ2luZSk7Cj4gKwlyZXR1cm4gbG9naWNhbF9yaW5nX2luaXQoZW5naW5lKTsKPiAgIH0KPgo+ ICAgc3RhdGljIGludCBsb2dpY2FsX3ZlYm94X3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJp di0+ZW5naW5lW1ZFQ1NdOwo+IC0KPiAtCWVuZ2luZS0+bmFtZSA9ICJ2aWRlbyBlbmhhbmNlbWVu dCByaW5nIjsKPiAtCWVuZ2luZS0+aWQgPSBWRUNTOwo+IC0JZW5naW5lLT5leGVjX2lkID0gSTkx NV9FWEVDX1ZFQk9YOwo+IC0JZW5naW5lLT5ndWNfaWQgPSBHVUNfVklERU9FTkhBTkNFX0VOR0lO RTsKPiAtCWVuZ2luZS0+bW1pb19iYXNlID0gVkVCT1hfUklOR19CQVNFOwo+ICsJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+Cj4gLQlsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFzKGVu Z2luZSwgR0VOOF9WRUNTX0lSUV9TSElGVCk7Cj4gLQlsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVu Y3MoZGV2LCBlbmdpbmUpOwo+ICsJZW5naW5lID0gbG9naWNhbF9yaW5nX3NldHVwKGRldiwgVkVD UywgInZpZGVvIGVuaGFuY2VtZW50IHJpbmciLAo+ICsJCQkJICAgIEk5MTVfRVhFQ19WRUJPWCwK PiArCQkJCSAgICBHVUNfVklERU9FTkhBTkNFX0VOR0lORSwKPiArCQkJCSAgICBWRUJPWF9SSU5H X0JBU0UsCj4gKwkJCQkgICAgR0VOOF9WRUNTX0lSUV9TSElGVCk7Cj4KPiAtCXJldHVybiBsb2dp Y2FsX3JpbmdfaW5pdChkZXYsIGVuZ2luZSk7Cj4gKwlyZXR1cm4gbG9naWNhbF9yaW5nX2luaXQo ZW5naW5lKTsKPiAgIH0KPgo+ICAgLyoqCj4KCkkgc3RpbGwgbm90IHNlZSBhIHBvaW50LCBtYXli ZSBpdCBqdXN0IG5lZWQgdG8gYmUgZXhwbGFpbmVkIHRvIG1lLiA6KSAKQnV0IGFueXdheSB3aWxs IG5vdCBibG9jayBpdCBhZnRlciB0aGUgYWJvdmUgcG9pbnRzIGFyZSBhZGRyZXNzZWQgYW5kIApk aXNjdXNzZWQuCgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=