From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2 1/5] drm/i915/guc: add enable_guc_loading parameter Date: Fri, 29 Apr 2016 16:03:17 +0100 Message-ID: <572377B5.5000901@linux.intel.com> References: <1461780195-17434-1-git-send-email-david.s.gordon@intel.com> 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 ESMTP id 7F34F6EFB5 for ; Fri, 29 Apr 2016 15:03:30 +0000 (UTC) In-Reply-To: <1461780195-17434-1-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CkhpLAoKT24gMjcvMDQvMTYgMTk6MDMsIERhdmUgR29yZG9uIHdyb3RlOgo+IFNwbGl0IHRoZSBm dW5jdGlvbiBvZiAiZW5hYmxlX2d1Y19zdWJtaXNzaW9uIiBpbnRvIHR3byBzZXBhcmF0ZQo+IG9w dGlvbnMuICBUaGUgbmV3IG9uZSAoImVuYWJsZV9ndWNfbG9hZGluZyIpIGNvbnRyb2xzIG9ubHkg dGhlCj4gKmZldGNoaW5nIGFuZCBsb2FkaW5nKiBvZiB0aGUgR3VDIGZpcm13YXJlIGltYWdlLiBU aGUgZXhpc3RpbmcKPiBvbmUgaXMgcmVkZWZpbmVkIHRvIGNvbnRyb2wgb25seSB0aGUgKnVzZSog b2YgdGhlIEd1QyBmb3IgYmF0Y2gKPiBzdWJtaXNzaW9uIG9uY2UgdGhlIGZpcm13YXJlIGlzIGxv YWRlZC4KPgo+IEluIGFkZGl0aW9uLCB0aGUgZGVncmVlIG9mIGNvbnRyb2wgaGFzIGJlZW4gcmVm aW5lZCBmcm9tIGEgc2ltcGxlCj4gYm9vbCB0byBhbiBpbnRlZ2VyIGtleSwgYWxsb3dpbmcgc2V2 ZXJhbCBvcHRpb25zOgo+ICAgLTEgKGRlZmF1bHQpICAgICB3aGF0ZXZlciB0aGUgcGxhdGZvcm0g ZGVmYXVsdCBpcwo+ICAgIDAgIERJU0FCTEUgICAgICBkb24ndCBsb2FkL3VzZSB0aGUgR3VDCj4g ICAgMSAgQkVTVCBFRkZPUlQgIHRyeSB0byBsb2FkL3VzZSB0aGUgR3VDLCBmYWxsYmFjayBpZiBu b3QgYXZhaWxhYmxlCj4gICAgMiAgUkVRVUlSRSAgICAgIG11c3QgbG9hZC91c2UgdGhlIEd1Qywg ZWxzZSBsZWF2ZSB0aGUgR1BVIHdlZGdlZAo+Cj4gVGhlIG5ldyBwbGF0Zm9ybSBkZWZhdWx0IChh cyBjb2RlZCBoZXJlKSB3aWxsIGJlIHRvIGF0dGVtcHQgdG8KPiBsb2FkIHRoZSBHdUMgaWZmIHRo ZSBkZXZpY2UgaGFzIGEgR3VDIHRoYXQgcmVxdWlyZXMgZmlybXdhcmUsCj4gYnV0IG5vdCB5ZXQg dG8gdXNlIGl0IGZvciBzdWJtaXNzaW9uLiBBIGxhdGVyIHBhdGNoIHdpbGwgY2hhbmdlCj4gdG8g ZW5hYmxlIGl0IGlmIGFwcHJvcHJpYXRlLgo+Cj4gU2lnbmVkLW9mZi1ieTogRGF2ZSBHb3Jkb24g PGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMgICAgICAgICAgICB8ICAxIC0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3VjX3N1Ym1pc3Npb24uYyB8ICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BhcmFtcy5jICAgICAgICAgfCAxNCArKysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wYXJhbXMuaCAgICAgICAgIHwgIDMgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2d1Y19sb2FkZXIuYyAgICB8IDk4ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgICAgICAgIHwgIDIgKy0KPiAgIDYg ZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCj4KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBkNDkzZTc5Li5iMDRlZmZjIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCj4gQEAgLTQ5MTAsNyArNDkxMCw2IEBAIGludCBpOTE1X2dlbV9pbml0 X2VuZ2luZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAkJcmV0ID0gaW50ZWxfZ3VjX3Vj b2RlX2xvYWQoZGV2KTsKPiAgIAkJaWYgKHJldCkgewo+ICAgCQkJRFJNX0VSUk9SKCJGYWlsZWQg dG8gaW5pdGlhbGl6ZSBHdUMsIGVycm9yICVkXG4iLCByZXQpOwo+IC0JCQlyZXQgPSAtRUlPOwo+ ICAgCQkJZ290byBvdXQ7Cj4gICAJCX0KPiAgIAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IGluZGV4IDcyZDY2NjUuLjQyZDJlZmEgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gQEAgLTk3MCw3ICs5NzAs NyBAQCBpbnQgaW50ZWxfZ3VjX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4Owo+ICAgCXUzMiBkYXRhWzNdOwo+Cj4gLQlpZiAoIWk5 MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+ICsJaWYgKGd1Yy0+Z3VjX2Z3Lmd1Y19md19sb2Fk X3N0YXR1cyAhPSBHVUNfRklSTVdBUkVfU1VDQ0VTUykKPiAgIAkJcmV0dXJuIDA7Cj4KPiAgIAlj dHggPSBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQ7Cj4gQEAgLTk5Niw3ICs5OTYsNyBAQCBpbnQg aW50ZWxfZ3VjX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCXN0cnVjdCBpbnRl bF9jb250ZXh0ICpjdHg7Cj4gICAJdTMyIGRhdGFbM107Cj4KPiAtCWlmICghaTkxNS5lbmFibGVf Z3VjX3N1Ym1pc3Npb24pCj4gKwlpZiAoZ3VjLT5ndWNfZncuZ3VjX2Z3X2xvYWRfc3RhdHVzICE9 IEdVQ19GSVJNV0FSRV9TVUNDRVNTKQo+ICAgCQlyZXR1cm4gMDsKCk5vdCB0ZXJyaWJseSBpbXBv cnRhbnQgYW5kIHByb2JhYmx5IHByZWRhdGVzIHlvdXIgd29yaywgYnV0IGp1c3Qgc3BvdHRlZCAK aG93IHRoaXMgcmVhZHMgdmVyeSByZWR1bmRhbnQgLSBndWMtPmd1Y19mdy5ndWNfZndfc29tZXRo aW5nLCB3aGlsZSBpdCAKY291bGQgYmUgbXVjaCBtb3JlIHJlYWRhYmxlIGFzIGd1Yy0+ZncubG9h ZF9zdGF0dXMuIE9ic2VydmF0aW9uIG9ubHkuCgo+Cj4gICAJY3R4ID0gZGV2X3ByaXYtPmtlcm5l bF9jb250ZXh0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFt cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYwo+IGluZGV4IDM4M2MwNzYu LjZhNTU3OGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMKPiBAQCAtNTQsNyAr NTQsOCBAQCBzdHJ1Y3QgaTkxNV9wYXJhbXMgaTkxNSBfX3JlYWRfbW9zdGx5ID0gewo+ICAgCS52 ZXJib3NlX3N0YXRlX2NoZWNrcyA9IDEsCj4gICAJLm51Y2xlYXJfcGFnZWZsaXAgPSAwLAo+ICAg CS5lZHBfdnN3aW5nID0gMCwKPiAtCS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24gPSBmYWxzZSwKPiAr CS5lbmFibGVfZ3VjX2xvYWRpbmcgPSAtMSwKPiArCS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24gPSAw LAo+ICAgCS5ndWNfbG9nX2xldmVsID0gLTEsCj4gICAJLmVuYWJsZV9kcF9tc3QgPSB0cnVlLAo+ ICAgCS5pbmplY3RfbG9hZF9mYWlsdXJlID0gMCwKPiBAQCAtMTk4LDggKzE5OSwxNSBAQCBzdHJ1 Y3QgaTkxNV9wYXJhbXMgaTkxNSBfX3JlYWRfbW9zdGx5ID0gewo+ICAgCQkgIigwPXVzZSB2YWx1 ZSBmcm9tIHZidCBbZGVmYXVsdF0sIDE9bG93IHBvd2VyIHN3aW5nKDIwMG1WKSwiCj4gICAJCSAi Mj1kZWZhdWx0IHN3aW5nKDQwMG1WKSkiKTsKPgo+IC1tb2R1bGVfcGFyYW1fbmFtZWRfdW5zYWZl KGVuYWJsZV9ndWNfc3VibWlzc2lvbiwgaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24sIGJvb2ws IDA0MDApOwo+IC1NT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9ndWNfc3VibWlzc2lvbiwgIkVuYWJs ZSBHdUMgc3VibWlzc2lvbiAoZGVmYXVsdDpmYWxzZSkiKTsKPiArbW9kdWxlX3BhcmFtX25hbWVk X3Vuc2FmZShlbmFibGVfZ3VjX2xvYWRpbmcsIGk5MTUuZW5hYmxlX2d1Y19sb2FkaW5nLCBpbnQs IDA0MDApOwo+ICtNT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9ndWNfbG9hZGluZywKPiArCQkiRW5h YmxlIEd1QyBmaXJtd2FyZSBsb2FkaW5nICIKPiArCQkiKC0xPWF1dG8gW2RlZmF1bHRdLCAwPW5l dmVyLCAxPWlmIGF2YWlsYWJsZSwgMj1yZXF1aXJlZCkiKTsKPiArCj4gK21vZHVsZV9wYXJhbV9u YW1lZF91bnNhZmUoZW5hYmxlX2d1Y19zdWJtaXNzaW9uLCBpOTE1LmVuYWJsZV9ndWNfc3VibWlz c2lvbiwgaW50LCAwNDAwKTsKPiArTU9EVUxFX1BBUk1fREVTQyhlbmFibGVfZ3VjX3N1Ym1pc3Np b24sCj4gKwkJIkVuYWJsZSBHdUMgc3VibWlzc2lvbiAiCj4gKwkJIigtMT1hdXRvLCAwPW5ldmVy IFtkZWZhdWx0XSwgMT1pZiBhdmFpbGFibGUsIDI9cmVxdWlyZWQpIik7Cj4KPiAgIG1vZHVsZV9w YXJhbV9uYW1lZChndWNfbG9nX2xldmVsLCBpOTE1Lmd1Y19sb2dfbGV2ZWwsIGludCwgMDQwMCk7 Cj4gICBNT0RVTEVfUEFSTV9ERVNDKGd1Y19sb2dfbGV2ZWwsCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BhcmFtcy5oCj4gaW5kZXggNjVlNzNkZC4uMTMyMzI2MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9wYXJhbXMuaAo+IEBAIC00NSw2ICs0NSw4IEBAIHN0cnVjdCBpOTE1X3BhcmFtcyB7Cj4g ICAJaW50IGVuYWJsZV9pcHM7Cj4gICAJaW50IGludmVydF9icmlnaHRuZXNzOwo+ICAgCWludCBl bmFibGVfY21kX3BhcnNlcjsKPiArCWludCBlbmFibGVfZ3VjX2xvYWRpbmc7Cj4gKwlpbnQgZW5h YmxlX2d1Y19zdWJtaXNzaW9uOwo+ICAgCWludCBndWNfbG9nX2xldmVsOwo+ICAgCWludCB1c2Vf bW1pb19mbGlwOwo+ICAgCWludCBtbWlvX2RlYnVnOwo+IEBAIC01Nyw3ICs1OSw2IEBAIHN0cnVj dCBpOTE1X3BhcmFtcyB7Cj4gICAJYm9vbCBsb2FkX2RldGVjdF90ZXN0Owo+ICAgCWJvb2wgcmVz ZXQ7Cj4gICAJYm9vbCBkaXNhYmxlX2Rpc3BsYXk7Cj4gLQlib29sIGVuYWJsZV9ndWNfc3VibWlz c2lvbjsKPiAgIAlib29sIHZlcmJvc2Vfc3RhdGVfY2hlY2tzOwo+ICAgCWJvb2wgbnVjbGVhcl9w YWdlZmxpcDsKPiAgIAlib29sIGVuYWJsZV9kcF9tc3Q7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Y19sb2FkZXIuYwo+IGluZGV4IDg3NmU1ZGEuLjJlYzljZjEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gQEAgLTM4Nyw0OSArMzg3LDM3IEBAIGlu dCBpbnRlbF9ndWNfdWNvZGVfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgewo+ICAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g ICAJc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+ ICsJY29uc3QgY2hhciAqZndfcGF0aCA9IGd1Y19mdy0+Z3VjX2Z3X3BhdGg7Cj4gICAJaW50IHJl dHJpZXMsIGVyciA9IDA7Cj4KPiAtCWlmICghaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pCj4g LQkJcmV0dXJuIDA7Cj4gLQo+IC0JRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IHN0YXR1czogZmV0 Y2ggJXMsIGxvYWQgJXNcbiIsCj4gKwlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgc3RhdHVzOiBw YXRoICVzLCBmZXRjaCAlcywgbG9hZCAlc1xuIiwKPiArCQlmd19wYXRoLAo+ICAgCQlpbnRlbF9n dWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSwKPiAgIAkJaW50 ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7CgpTaG91 bGQgbG9hZCBzdGF0dXMgYmUgYW55dGhpbmcgb3RoZXIgdGhhbiBHVUNfRklSTVdBUkVfTk9ORSBo ZXJlPwoKPiAtCWRpcmVjdF9pbnRlcnJ1cHRzX3RvX2hvc3QoZGV2X3ByaXYpOwo+ICsJLyogTG9h ZGluZyBmb3JiaWRkZW4sIG9yIG5vIGZpcm13YXJlIHRvIGxvYWQ/ICovCj4gKwlpZiAoIWk5MTUu ZW5hYmxlX2d1Y19sb2FkaW5nKQoKTml0cGljaywgPT0gMCB3b3VsZCBwZXJoYXBzIG1ha2UgaXQg bW9yZSBvYnZpb3VzIHRoaXMgaXMgbm90IGEgYm9vbGVhbi4KCj4gKwkJZ290byBmYWlsOwo+ICsJ aWYgKGZ3X3BhdGggPT0gTlVMTCkKPiArCQlnb3RvIGZhaWw7Cj4gKwlpZiAoKmZ3X3BhdGggPT0g J1wwJykgewo+ICsJCURSTV9FUlJPUigiTm8gR3VDIGZpcm13YXJlIGtub3duIGZvciB0aGlzIHBs YXRmb3JtXG4iKTsKCkl0IGlzIG5vdCBhbiBlcnJvciB1bmxlc3MgaTkxNS5lbmFibGVfZ3VjX2xv YWRpbmcgPT0gMiwgbm8/IEFuZCBpZiBiZXN0IAplZmZvcnQgdGhlbiBpdCBpcyBwcm9iYWJseSBk ZWJ1ZyBvciBpbmZvcm1hdGlvbmFsLgoKQWxzbywgZG9uJ3QgdGhlIGNoZWNrcyBhZ2FpbnN0IGZ3 X3BhdGggKHRvZ2V0aGVyIHdpdGggdGhlIGVycm9yIG9yIGRlYnVnIAptZXNzYWdlKSBiZWxvbmcg aW4gdGhlIGZ3IGZldGNoIGZ1bmN0aW9uPyBJZiB0aGV5IGFyZSBpbnZhbGlkIGZ3IGZldGNoIAp3 b3VsZCBoYXZlIGZhaWxlZCBhbmQgdGhpcyBmdW5jdGlvbiB3b3VsZCBiZSBhYmxlIHRvIGluc3Bl Y3QgdGhlIGhpZ2ggCmxldmVsIHN0YXR1cyBvZiB0aGF0IHN0ZXAgaGVyZSwgbm8/Cgo+ICsJCWdv dG8gZmFpbDsKPiArCX0KPgo+IC0JaWYgKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9PSBH VUNfRklSTVdBUkVfTk9ORSkKPiAtCQlyZXR1cm4gMDsKPiArCS8qIEZldGNoIGZhaWxlZCwgb3Ig YWxyZWFkeSBmZXRjaGVkIGJ1dCBmYWlsZWQgdG8gbG9hZD8gKi8KPiArCWlmIChndWNfZnctPmd1 Y19md19mZXRjaF9zdGF0dXMgIT0gR1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCj4gKwkJZ290byBmYWls Owo+ICsJaWYgKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID09IEdVQ19GSVJNV0FSRV9GQUlM KQo+ICsJCWdvdG8gZmFpbDsKCkxlYWRzIGJhY2sgdG8gdGhlIHF1ZXN0aW9uIG9mIGxvYWQgc3Rh dHVzIGluIHRoaXMgZnVuY3Rpb24uIFNvIGl0IGlzIApleHBlY3RlZCB3ZSBhbHdheXMgZW50ZXIg aGVyZSB3aXRoIGxvYWQgc3RhdHVzIG9mIG5vbmU/IElzIGl0IHBvc3NpYmxlIAp0byBnZXQgaGVy ZSB3aXRoIHRoZSBmaXJtd2FyZSBhbHJlYWR5IGxvYWRlZCBhbHJlYWR5PwoKPgo+IC0JaWYgKGd1 Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9PSBHVUNfRklSTVdBUkVfU1VDQ0VTUyAmJgo+IC0J ICAgIGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID09IEdVQ19GSVJNV0FSRV9GQUlMKQo+IC0J CXJldHVybiAtRU5PRVhFQzsKPiArCWRpcmVjdF9pbnRlcnJ1cHRzX3RvX2hvc3QoZGV2X3ByaXYp Owo+Cj4gICAJZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfUEVORElO RzsKPgo+IC0JRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IGZldGNoIHN0YXR1cyAlc1xuIiwKPiAt CQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSk7 Cj4gLQo+IC0Jc3dpdGNoIChndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMpIHsKPiAtCWNhc2Ug R1VDX0ZJUk1XQVJFX0ZBSUw6Cj4gLQkJLyogc29tZXRoaW5nIHdlbnQgd3JvbmcgOiggKi8KPiAt CQllcnIgPSAtRUlPOwo+IC0JCWdvdG8gZmFpbDsKPiAtCj4gLQljYXNlIEdVQ19GSVJNV0FSRV9O T05FOgo+IC0JY2FzZSBHVUNfRklSTVdBUkVfUEVORElORzoKPiAtCWRlZmF1bHQ6Cj4gLQkJLyog ImNhbid0IGhhcHBlbiIgKi8KPiAtCQlXQVJOX09OQ0UoMSwgIkd1QyBmdyAlcyBpbnZhbGlkIGd1 Y19md19mZXRjaF9zdGF0dXMgJXMgWyVkXVxuIiwKPiAtCQkJZ3VjX2Z3LT5ndWNfZndfcGF0aCwK PiAtCQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1 cyksCj4gLQkJCWd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyk7Cj4gLQkJZXJyID0gLUVOWElP Owo+IC0JCWdvdG8gZmFpbDsKPiAtCj4gLQljYXNlIEdVQ19GSVJNV0FSRV9TVUNDRVNTOgo+IC0J CWJyZWFrOwo+IC0JfQo+ICsJRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IHN0YXR1czogZmV0Y2gg JXMsIGxvYWQgJXNcbiIsCj4gKwkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3Vj X2Z3X2ZldGNoX3N0YXR1cyksCj4gKwkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7Cj4KPiAgIAllcnIgPSBpOTE1X2d1Y19zdWJtaXNzaW9uX2lu aXQoZGV2KTsKPiAgIAlpZiAoZXJyKQo+IEBAIC00ODMsNiArNDcxLDcgQEAgaW50IGludGVsX2d1 Y191Y29kZV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4KPiAgIGZhaWw6Cj4gICAJRFJN X0VSUk9SKCJHdUMgZmlybXdhcmUgbG9hZCBmYWlsZWQsIGVyciAlZFxuIiwgZXJyKTsKClNhbWUg YXMgYWJvdmUgSSB0aGluayBlcnJvciBtdXN0IGJlIGRlcGVuZGVudCBvbiB0aGUgcmVxdWVzdGVk IG1vZGUuIApTb21lIGN1c3RvbWVycyBhcmUgdmVyeSBzZW5zaXRpdmUgdG8gZXJyb3JzIHdoaWNo IGFyZSBub3QgcmVhbGx5IGVycm9ycyAKc28gaXQgaXMgYmFkIHRvIGxvZyB0aGVtIHdoZW4gdGhl eSBhcmUgbm90LgoKPiArCj4gICAJaWYgKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID09IEdV Q19GSVJNV0FSRV9QRU5ESU5HKQo+ICAgCQlndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cyA9IEdV Q19GSVJNV0FSRV9GQUlMOwo+Cj4gQEAgLTQ5MCw2ICs0NzksMjkgQEAgaW50IGludGVsX2d1Y191 Y29kZV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJaTkxNV9ndWNfc3VibWlzc2lv bl9kaXNhYmxlKGRldik7Cj4gICAJaTkxNV9ndWNfc3VibWlzc2lvbl9maW5pKGRldik7Cj4KPiAr CS8qCj4gKwkgKiBXZSd2ZSBmYWlsZWQgdG8gbG9hZCB0aGUgZmlybXdhcmUgOigKPiArCSAqCj4g KwkgKiBEZWNpZGUgd2hldGhlciB0byBkaXNhYmxlIEd1QyBzdWJtaXNzaW9uIGFuZCBmYWxsIGJh Y2sgdG8KPiArCSAqIGV4ZWNsaXN0IG1vZGUsIGFuZCB3aGV0aGVyIHRvIGhpZGUgdGhlIGVycm9y IGJ5IHJldHVybmluZwo+ICsJICogemVybyBvciB0byByZXR1cm4gLUVJTywgd2hpY2ggdGhlIGNh bGxlciB3aWxsIHRyZWF0IGFzIGEKPiArCSAqIG5vbmZhdGFsIGVycm9yIChpLmUuIGl0IGRvZXNu J3QgcHJldmVudCBkcml2ZXIgbG9hZCwgYnV0Cj4gKwkgKiBtYXJrcyB0aGUgR1BVIGFzIHdlZGdl ZCB1bnRpbCByZXNldCkuCj4gKwkgKi8KPiArCWlmIChpOTE1LmVuYWJsZV9ndWNfbG9hZGluZyA+ IDEpIHsKPiArCQllcnIgPSAtRUlPOwo+ICsJfSBlbHNlIGlmIChIQVNfR1VDX1NDSEVEKGRldikg JiYgIUhBU19HVUNfVUNPREUoZGV2KSkgewo+ICsJCXJldHVybiAwOwoKaTkxNV9nZW1faW5pdF9o dyBhbHJlYWR5IGd1YXJkcyB0aGUgY2FsbCB0byBpbnRlbF9ndWNfdWNvZGVfbG9hZCB3aXRoIApI QVNfR1VDX1VDT0RFIHNvIGF0IHRoZSBtb21lbnQgYXQgbGVhc3QgdGhpcyBpcyBhIGRlYWQgYnJh bmNoLgoKSSBkb24ndCBldmVuIHVuZGVyc3RhbmQgd2hhdCBpcyB0aGlzIGJyYW5jaCBzdXBwb3Nl ZCB0byBkbz8gSG93IGNhbiAKdGhlcmUgYmUgYSBwbGF0Zm9ybSB3aXRoIG5vIGd1YyBmdyBidXQg Z3VjIHNjaGVkdWxpbmc/Cgo+ICsJfSBlbHNlIGlmIChpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lv biA+IDEpIHsKPiArCQllcnIgPSAtRUlPOwo+ICsJfSBlbHNlIHsKPiArCQllcnIgPSAwOwo+ICsJ fQo+ICsKPiArCWk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uID0gMDsKPiArCj4gKwlEUk1fREVC VUdfRFJJVkVSKCJmYWxsaW5nIGJhY2sgdG8gZXhlY2xpc3QgbW9kZSwgZXJyICVkXG4iLCBlcnIp Owo+ICsKClRoaXMgd291bGQgbG9nIHdoZW4gaTkxNS5lbmFibGVfZ3VjX2xvYWRpbmcgaXMgc2V0 IHRvIDAgd2hpY2ggd291bGQgYmUgCmNvbmZ1c2luZy4gSSB0aGluayBpbiB0aGlzIGNhc2UgdGhl IGZ1bmN0aW9uIHNob3VsZCBiYWlsIG91dCBtdWNoIGVhcmxpZXIuCgo+ICAgCXJldHVybiBlcnI7 Cj4gICB9Cj4KPiBAQCAtNjMxLDggKzY0MywxMSBAQCB2b2lkIGludGVsX2d1Y191Y29kZV9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3 ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+ICAgCWNvbnN0IGNoYXIgKmZ3X3BhdGg7Cj4KPiAt CWlmICghSEFTX0dVQ19TQ0hFRChkZXYpKQo+IC0JCWk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9u ID0gZmFsc2U7Cj4gKwkvKiBBIG5lZ2F0aXZlIHZhbHVlIG1lYW5zICJ1c2UgcGxhdGZvcm0gZGVm YXVsdCIgKi8KPiArCWlmIChpOTE1LmVuYWJsZV9ndWNfbG9hZGluZyA8IDApCj4gKwkJaTkxNS5l bmFibGVfZ3VjX2xvYWRpbmcgPSBIQVNfR1VDX1VDT0RFKGRldik7Cj4gKwlpZiAoaTkxNS5lbmFi bGVfZ3VjX3N1Ym1pc3Npb24gPCAwKQo+ICsJCWk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uID0g SEFTX0dVQ19TQ0hFRChkZXYpOwoKV2l0aCB0aGlzIHNldHVwIGN1cnJlbnRseSB0aGVyZSBpcyBu byBkaWZmZXJlbmNlIGJldHdlZW4gLTEgYW5kIDEuIEJ1dCBJIApjYW4gYXNzdW1lIG1heWJlIGlu IHRoZSBmdXR1cmUgd2UgY291bGQgaGF2ZSAtMSBtZWFuIDIgb24gc29tZSBwbGF0Zm9ybSAKd2hp Y2ggd291bGQgdGhlbiBqdXN0aWZ5IGhhdmluZyBmb3VyIHBvc3NpYmxlIHZhbHVlcyBmb3IgZWFj aD8KCj4KPiAgIAlpZiAoIUhBU19HVUNfVUNPREUoZGV2KSkgewo+ICAgCQlmd19wYXRoID0gTlVM TDsKPiBAQCAtNjQxLDI2ICs2NTYsMjEgQEAgdm9pZCBpbnRlbF9ndWNfdWNvZGVfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQgPSA2 Owo+ICAgCQlndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQgPSAxOwo+ICAgCX0gZWxzZSB7Cj4g LQkJaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24gPSBmYWxzZTsKPiAgIAkJZndfcGF0aCA9ICIi OwkvKiB1bmtub3duIGRldmljZSAqLwo+ICAgCX0KCkNvbmZ1c2luZyBibG9jaywgSEFTX0dVQ19V Q09ERSBpcyBkZWZpbmVkIGFzIChJU19HRU45KGRldikgJiYgCiFJU19LQUJZTEFLRShkZXYpKSBi dXQgdGhlbiBoZXJlIHdlIG9ubHkgc3VwcG9ydCBTS0wgaGVyZS4gV2h5IHRoZSAKZm9ybWVyIGlz IHRoZW4gbm90IGp1c3QgSVNfU0tZTEFLRT8KCldoZW4gQlhUIHN1cHBvcnQgaXMgYWRkZWQgdGhp cyBzdGlsbCBuZWVkcyB0byBiZSBtb2RpZmllZCBhbmQgd291bGQgb25seSAKc2F2ZSB0b3VjaGlu ZyBIQVNfR1VDX1VDT0RFIGluIHRoZSBoZWFkZXIuIEJ1dCBpdCBtdXN0IGJlIGEgYmV0dGVyIHJl YXNvbj8KCj4KPiAtCWlmICghaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pCj4gLQkJcmV0dXJu Owo+IC0KPiAgIAlndWNfZnctPmd1Y19kZXYgPSBkZXY7Cj4gICAJZ3VjX2Z3LT5ndWNfZndfcGF0 aCA9IGZ3X3BhdGg7Cj4gICAJZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1X QVJFX05PTkU7Cj4gICAJZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPSBHVUNfRklSTVdBUkVf Tk9ORTsKPgo+ICsJLyogRWFybHkgKGFuZCBzaWxlbnQpIHJldHVybiBpZiBHdUMgbG9hZGluZyBp cyBkaXNhYmxlZCAqLwo+ICsJaWYgKCFpOTE1LmVuYWJsZV9ndWNfbG9hZGluZykKPiArCQlyZXR1 cm47Cj4gICAJaWYgKGZ3X3BhdGggPT0gTlVMTCkKPiAgIAkJcmV0dXJuOwo+IC0KPiAtCWlmICgq ZndfcGF0aCA9PSAnXDAnKSB7Cj4gLQkJRFJNX0VSUk9SKCJObyBHdUMgZmlybXdhcmUga25vd24g Zm9yIHRoaXMgcGxhdGZvcm1cbiIpOwo+IC0JCWd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9 IEdVQ19GSVJNV0FSRV9GQUlMOwo+ICsJaWYgKCpmd19wYXRoID09ICdcMCcpCj4gICAJCXJldHVy bjsKPiAtCX0KCkkgYWxzbyBkbyBub3QgdW5kZXJzdGFuZCB0aGUgY29tcGxpY2F0aW9ucyB3aXRo IGZ3X3BhdGggKGVpdGhlciBOVUxMIG9yIAoiIikuIEluIHRoZSB0d28gY2FzZXMgZmV0Y2ggc3Rh dHVzIHdpbGwgYmUgZWl0aGVyIG5vbmUgb3IgZmFpbCwgCnJlc3BlY3RpdmVseSwgd2hpY2ggd2ls bCBlcXVhbGx5IGNhdXNlIGludGVsX2d1Y191Y29kZV9sb2FkIHRvIGhpdCB0aGUgCmZhaWx1cmUg cGF0aCAoZndfZmV0Y2hfc3RhdHVzICE9IHN1Y2Nlc3MpLgoKU28gSXMgaXQgcmVhbGx5IHJlcXVp cmVkIGZvciB0aGUgZndfcGF0aCB0byBjYW4gZWl0aGVyIGJlIE5VTEwgb3IgIiI/Cgo+Cj4gICAJ Z3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX1BFTkRJTkc7Cj4gICAJ RFJNX0RFQlVHX0RSSVZFUigiR3VDIGZpcm13YXJlIHBlbmRpbmcsIHBhdGggJXNcbiIsIGZ3X3Bh dGgpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gaW5kZXggNGYxZGZlNi4uZGY2 OThkNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gQEAgLTE3NTgsNyAr MTc1OCw3IEBAIGludCBpbnRlbF9ndWNfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICAgCWludCByZXQ7Cj4gICAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKPgo+IC0J aWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKPiArCWlmICghSEFTX0dVQ19VQ09ERShk ZXZfcHJpdikpCj4gICAJCXJldHVybiAtRUlOVkFMOwoKV2hhdCBpZiBIQVNfR1VDX1VDT0RFIGlz IHRydWUgYnV0IHRoZSBpOTE1LmxvYWRfZ3VjX2Zpcm13YXJlIGhhcyBiZWVuIApzZXQgdG8gemVy bz8gU2hvdWxkIGl0IHNraXAgdGhlIHJlc2V0IGluIHRoYXQgY2FzZSBhcyB3ZWxsPwoKPgo+ICAg CWludGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KGRldl9wcml2LCBGT1JDRVdBS0VfQUxMKTsKPgoK UmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK