From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Dai Subject: Re: [PATCH] drm/i915: add enable_guc_loading parameter Date: Fri, 19 Feb 2016 10:23:00 -0800 Message-ID: <56C75D84.7060305@intel.com> References: <1454504168-29891-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id C60996F03E for ; Fri, 19 Feb 2016 18:27:27 +0000 (UTC) In-Reply-To: <1454504168-29891-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org TEdUTS4KClJldmlld2VkLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KClRoYW5rcywK QWxleAoKT24gMDIvMDMvMjAxNiAwNDo1NiBBTSwgRGF2ZSBHb3Jkb24gd3JvdGU6Cj4gU3BsaXQg dGhlIGZ1bmN0aW9uIG9mICJlbmFibGVfZ3VjX3N1Ym1pc3Npb24iIGludG8gdHdvIHNlcGFyYXRl IG9wdGlvbnMuCj4gVGhlIG5ldyBvbmUgImVuYWJsZV9ndWNfbG9hZGluZyIgY29udHJvbHMgb25s eSB0aGUgKmZldGNoaW5nIGFuZCBsb2FkaW5nKgo+IG9mIHRoZSBHdUMgZmlybXdhcmUgaW1hZ2Uu IFRoZSBleGlzdGluZyBvbmUgaXMgcmVkZWZpbmVkIHRvIGNvbnRyb2wgb25seQo+IHRoZSAqdXNl KiBvZiB0aGUgR3VDIGZvciBiYXRjaCBzdWJtaXNzaW9uIG9uY2UgdGhlIGZpcm13YXJlIGlzIGxv YWRlZC4KPgo+IEluIGFkZGl0aW9uLCB0aGUgZGVncmVlIG9mIGNvbnRyb2wgaGFzIGJlZW4gcmVm aW5lZCBmcm9tIGEgc2ltcGxlIGJvb2wKPiB0byBhbiBpbnRlZ2VyIGtleSwgYWxsb3dpbmcgc2V2 ZXJhbCBvcHRpb25zOgo+ICAgLTEgIChkZWZhdWx0KSAgICB3aGF0ZXZlciB0aGUgcGxhdGZvcm0g ZGVmYXVsdCBpcwo+ICAgIDAgIERJU0FCTEUgICAgICBkb24ndCBsb2FkL3VzZSB0aGUgR3VDCj4g ICAgMSAgQkVTVCBFRkZPUlQgIHRyeSB0byBsb2FkL3VzZSB0aGUgR3VDLCBmYWxsYmFjayBpZiBu b3QgYXZhaWxhYmxlCj4gICAgMiAgUkVRVUlSRSAgICAgIG11c3QgbG9hZC91c2UgdGhlIEd1Qywg ZWxzZSBsZWF2ZSB0aGUgR1BVIHdlZGdlZAo+Cj4gVGhlIG5ldyBwbGF0Zm9ybSBkZWZhdWx0IChh cyBjb2RlZCBoZXJlKSB3aWxsIGJlIHRvIGF0dGVtcHQgdG8gbG9hZAo+IHRoZSBHdUMgaWZmIHRo ZSBkZXZpY2UgaGFzIGEgR3VDIHRoYXQgcmVxdWlyZXMgZmlybXdhcmUsIHRvIGF0dGVtcHQgdG8K PiB1c2UgaXQgaWZmIHRoZSBkZXZpY2UgaGFzIGEgR3VDIHRoYXQgc3VwcG9ydHMgdGhlIHN1Ym1p c3Npb24gcHJvdG9jb2wKPiAod2l0aCBvciB3aXRob3V0IGZpcm13YXJlKSwgYW5kIHRvIGZhbGwg YmFjayB0byBleGVjbGlzdCBtb2RlIGlmIGFueQo+IHJlcXVpcmVkIGZpcm13YXJlIGNhbm5vdCBi ZSBmb3VuZCBvciBmYWlscyB0byBsb2FkLgo+Cj4gU2lnbmVkLW9mZi1ieTogRGF2ZSBHb3Jkb24g PGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxh QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMgICAgICAgICB8ICAxIC0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMg ICAgICB8IDE0ICsrKystCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oICAg ICAgfCAgMyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIHwg OTkgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gICA0IGZpbGVzIGNoYW5nZWQs IDY4IGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4gaW5kZXggYTkyODgyMy4uY2Q3YWFkYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u Ywo+IEBAIC00ODkyLDcgKzQ4OTIsNiBAQCBpbnQgaTkxNV9nZW1faW5pdF9yaW5ncyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ICAgCQlyZXQgPSBpbnRlbF9ndWNfdWNvZGVfbG9hZChkZXYpOwo+ ICAgCQlpZiAocmV0KSB7Cj4gICAJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBpbml0aWFsaXplIEd1 QywgZXJyb3IgJWRcbiIsIHJldCk7Cj4gLQkJCXJldCA9IC1FSU87Cj4gICAJCQlnb3RvIG91dDsK PiAgIAkJfQo+ICAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w YXJhbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMKPiBpbmRleCA4Yjlm MzY4Li5hZDc4NWFkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFy YW1zLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jCj4gQEAgLTU1 LDcgKzU1LDggQEAgc3RydWN0IGk5MTVfcGFyYW1zIGk5MTUgX19yZWFkX21vc3RseSA9IHsKPiAg IAkudmVyYm9zZV9zdGF0ZV9jaGVja3MgPSAxLAo+ICAgCS5udWNsZWFyX3BhZ2VmbGlwID0gMCwK PiAgIAkuZWRwX3Zzd2luZyA9IDAsCj4gLQkuZW5hYmxlX2d1Y19zdWJtaXNzaW9uID0gZmFsc2Us Cj4gKwkuZW5hYmxlX2d1Y19sb2FkaW5nID0gLTEsCj4gKwkuZW5hYmxlX2d1Y19zdWJtaXNzaW9u ID0gLTEsCj4gICAJLmd1Y19sb2dfbGV2ZWwgPSAtMSwKPiAgIH07Cj4gICAKPiBAQCAtMTk4LDgg KzE5OSwxNSBAQCBzdHJ1Y3QgaTkxNV9wYXJhbXMgaTkxNSBfX3JlYWRfbW9zdGx5ID0gewo+ICAg CQkgIigwPXVzZSB2YWx1ZSBmcm9tIHZidCBbZGVmYXVsdF0sIDE9bG93IHBvd2VyIHN3aW5nKDIw MG1WKSwiCj4gICAJCSAiMj1kZWZhdWx0IHN3aW5nKDQwMG1WKSkiKTsKPiAgIAo+IC1tb2R1bGVf cGFyYW1fbmFtZWRfdW5zYWZlKGVuYWJsZV9ndWNfc3VibWlzc2lvbiwgaTkxNS5lbmFibGVfZ3Vj X3N1Ym1pc3Npb24sIGJvb2wsIDA0MDApOwo+IC1NT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9ndWNf c3VibWlzc2lvbiwgIkVuYWJsZSBHdUMgc3VibWlzc2lvbiAoZGVmYXVsdDpmYWxzZSkiKTsKPiAr bW9kdWxlX3BhcmFtX25hbWVkX3Vuc2FmZShlbmFibGVfZ3VjX2xvYWRpbmcsIGk5MTUuZW5hYmxl X2d1Y19sb2FkaW5nLCBpbnQsIDA0MDApOwo+ICtNT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9ndWNf c3VibWlzc2lvbiwKPiArCQkiRW5hYmxlIEd1QyBmaXJtd2FyZSBsb2FkaW5nICIKPiArCQkiKC0x PWF1dG8gW2RlZmF1bHRdLCAwPW5ldmVyLCAxPWlmIGF2YWlsYWJsZSwgMj1yZXF1aXJlZCkiKTsK PiArCj4gK21vZHVsZV9wYXJhbV9uYW1lZF91bnNhZmUoZW5hYmxlX2d1Y19zdWJtaXNzaW9uLCBp OTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbiwgaW50LCAwNDAwKTsKPiArTU9EVUxFX1BBUk1fREVT QyhlbmFibGVfZ3VjX3N1Ym1pc3Npb24sCj4gKwkJIkVuYWJsZSBHdUMgc3VibWlzc2lvbiAiCj4g KwkJIigtMT1hdXRvIFtkZWZhdWx0XSwgMD1uZXZlciwgMT1pZiBhdmFpbGFibGUsIDI9cmVxdWly ZWQpIik7Cj4gICAKPiAgIG1vZHVsZV9wYXJhbV9uYW1lZChndWNfbG9nX2xldmVsLCBpOTE1Lmd1 Y19sb2dfbGV2ZWwsIGludCwgMDQwMCk7Cj4gICBNT0RVTEVfUEFSTV9ERVNDKGd1Y19sb2dfbGV2 ZWwsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oCj4gaW5kZXggNTI5OTI5MC4uNzE4MDI2 MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaAo+IEBAIC00NSw2ICs0NSw4IEBA IHN0cnVjdCBpOTE1X3BhcmFtcyB7Cj4gICAJaW50IGVuYWJsZV9pcHM7Cj4gICAJaW50IGludmVy dF9icmlnaHRuZXNzOwo+ICAgCWludCBlbmFibGVfY21kX3BhcnNlcjsKPiArCWludCBlbmFibGVf Z3VjX2xvYWRpbmc7Cj4gKwlpbnQgZW5hYmxlX2d1Y19zdWJtaXNzaW9uOwo+ICAgCWludCBndWNf bG9nX2xldmVsOwo+ICAgCWludCB1c2VfbW1pb19mbGlwOwo+ICAgCWludCBtbWlvX2RlYnVnOwo+ IEBAIC01Nyw3ICs1OSw2IEBAIHN0cnVjdCBpOTE1X3BhcmFtcyB7Cj4gICAJYm9vbCByZXNldDsK PiAgIAlib29sIGRpc2FibGVfZGlzcGxheTsKPiAgIAlib29sIGRpc2FibGVfdnRkX3dhOwo+IC0J Ym9vbCBlbmFibGVfZ3VjX3N1Ym1pc3Npb247Cj4gICAJYm9vbCB2ZXJib3NlX3N0YXRlX2NoZWNr czsKPiAgIAlib29sIG51Y2xlYXJfcGFnZWZsaXA7Cj4gICB9Owo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWNfbG9hZGVyLmMKPiBpbmRleCAzYWNjZDkxLi5lN2ViM2RiIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+IEBAIC0zNjksNDkgKzM2OSwzNyBA QCBpbnQgaW50ZWxfZ3VjX3Vjb2RlX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIHsK PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl Owo+ICAgCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19m dzsKPiArCWNvbnN0IGNoYXIgKmZ3X3BhdGggPSBndWNfZnctPmd1Y19md19wYXRoOwo+ICAgCWlu dCBlcnIgPSAwOwo+ICAgCj4gLQlpZiAoIWk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+IC0J CXJldHVybiAwOwo+IC0KPiAtCURSTV9ERUJVR19EUklWRVIoIkd1QyBmdyBzdGF0dXM6IGZldGNo ICVzLCBsb2FkICVzXG4iLAo+ICsJRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IHN0YXR1czogcGF0 aCAlcywgZmV0Y2ggJXMsIGxvYWQgJXNcbiIsCj4gKwkJZndfcGF0aCwKPiAgIAkJaW50ZWxfZ3Vj X2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyksCj4gICAJCWludGVs X2d1Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cykpOwo+ICAgCj4g LQlkaXJlY3RfaW50ZXJydXB0c190b19ob3N0KGRldl9wcml2KTsKPiArCS8qIExvYWRpbmcgZm9y YmlkZGVuLCBvciBubyBmaXJtd2FyZSB0byBsb2FkPyAqLwo+ICsJaWYgKCFpOTE1LmVuYWJsZV9n dWNfbG9hZGluZykKPiArCQlnb3RvIGZhaWw7Cj4gKwlpZiAoZndfcGF0aCA9PSBOVUxMKQo+ICsJ CWdvdG8gZmFpbDsKPiArCWlmICgqZndfcGF0aCA9PSAnXDAnKSB7Cj4gKwkJRFJNX0VSUk9SKCJO byBHdUMgZmlybXdhcmUga25vd24gZm9yIHRoaXMgcGxhdGZvcm1cbiIpOwo+ICsJCWdvdG8gZmFp bDsKPiArCX0KPiAgIAo+IC0JaWYgKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9PSBHVUNf RklSTVdBUkVfTk9ORSkKPiAtCQlyZXR1cm4gMDsKPiArCS8qIEZldGNoIGZhaWxlZCwgb3IgYWxy ZWFkeSBmZXRjaGVkIGJ1dCBmYWlsZWQgdG8gbG9hZD8gKi8KPiArCWlmIChndWNfZnctPmd1Y19m d19mZXRjaF9zdGF0dXMgIT0gR1VDX0ZJUk1XQVJFX1NVQ0NFU1MpCj4gKwkJZ290byBmYWlsOwo+ ICsJaWYgKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID09IEdVQ19GSVJNV0FSRV9GQUlMKQo+ ICsJCWdvdG8gZmFpbDsKPiAgIAo+IC0JaWYgKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9 PSBHVUNfRklSTVdBUkVfU1VDQ0VTUyAmJgo+IC0JICAgIGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3Rh dHVzID09IEdVQ19GSVJNV0FSRV9GQUlMKQo+IC0JCXJldHVybiAtRU5PRVhFQzsKPiArCWRpcmVj dF9pbnRlcnJ1cHRzX3RvX2hvc3QoZGV2X3ByaXYpOwo+ICAgCj4gICAJZ3VjX2Z3LT5ndWNfZndf bG9hZF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfUEVORElORzsKPiAgIAo+IC0JRFJNX0RFQlVHX0RS SVZFUigiR3VDIGZ3IGZldGNoIHN0YXR1cyAlc1xuIiwKPiAtCQlpbnRlbF9ndWNfZndfc3RhdHVz X3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSk7Cj4gLQo+IC0Jc3dpdGNoIChndWNf ZnctPmd1Y19md19mZXRjaF9zdGF0dXMpIHsKPiAtCWNhc2UgR1VDX0ZJUk1XQVJFX0ZBSUw6Cj4g LQkJLyogc29tZXRoaW5nIHdlbnQgd3JvbmcgOiggKi8KPiAtCQllcnIgPSAtRUlPOwo+IC0JCWdv dG8gZmFpbDsKPiAtCj4gLQljYXNlIEdVQ19GSVJNV0FSRV9OT05FOgo+IC0JY2FzZSBHVUNfRklS TVdBUkVfUEVORElORzoKPiAtCWRlZmF1bHQ6Cj4gLQkJLyogImNhbid0IGhhcHBlbiIgKi8KPiAt CQlXQVJOX09OQ0UoMSwgIkd1QyBmdyAlcyBpbnZhbGlkIGd1Y19md19mZXRjaF9zdGF0dXMgJXMg WyVkXVxuIiwKPiAtCQkJZ3VjX2Z3LT5ndWNfZndfcGF0aCwKPiAtCQkJaW50ZWxfZ3VjX2Z3X3N0 YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyksCj4gLQkJCWd1Y19mdy0+Z3Vj X2Z3X2ZldGNoX3N0YXR1cyk7Cj4gLQkJZXJyID0gLUVOWElPOwo+IC0JCWdvdG8gZmFpbDsKPiAt Cj4gLQljYXNlIEdVQ19GSVJNV0FSRV9TVUNDRVNTOgo+IC0JCWJyZWFrOwo+IC0JfQo+ICsJRFJN X0RFQlVHX0RSSVZFUigiR3VDIGZ3IHN0YXR1czogZmV0Y2ggJXMsIGxvYWQgJXNcbiIsCj4gKwkJ aW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyksCj4g KwkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7 Cj4gICAKPiAgIAllcnIgPSBpOTE1X2d1Y19zdWJtaXNzaW9uX2luaXQoZGV2KTsKPiAgIAlpZiAo ZXJyKQo+IEBAIC00NDAsNiArNDI4LDggQEAgaW50IGludGVsX2d1Y191Y29kZV9sb2FkKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gICAJcmV0dXJuIDA7Cj4gICAKPiAgIGZhaWw6Cj4gKwlEUk1f REVCVUdfRFJJVkVSKCJHdUMgZmlybXdhcmUgbG9hZCBmYWlsLCBlcnIgJWRcbiIsIGVycik7Cj4g Kwo+ICAgCWlmIChndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cyA9PSBHVUNfRklSTVdBUkVfUEVO RElORykKPiAgIAkJZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfRkFJ TDsKPiAgIAo+IEBAIC00NDcsNiArNDM3LDI5IEBAIGludCBpbnRlbF9ndWNfdWNvZGVfbG9hZChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShk ZXYpOwo+ICAgCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShkZXYpOwo+ICAgCj4gKwkvKgo+ICsJ ICogV2UndmUgZmFpbGVkIHRvIGxvYWQgdGhlIGZpcm13YXJlIDooCj4gKwkgKgo+ICsJICogRGVj aWRlIHdoZXRoZXIgdG8gZGlzYWJsZSBHdUMgc3VibWlzc2lvbiBhbmQgZmFsbCBiYWNrIHRvCj4g KwkgKiBleGVjbGlzdCBtb2RlLCBhbmQgd2hldGhlciB0byBoaWRlIHRoZSBlcnJvciBieSByZXR1 cm5pbmcKPiArCSAqIHplcm8gb3IgdG8gcmV0dXJuIC1FSU8sIHdoaWNoIHRoZSBjYWxsZXIgd2ls bCB0cmVhdCBhcyBhCj4gKwkgKiBub25mYXRhbCBlcnJvciAoaS5lLiBpdCBkb2Vzbid0IHByZXZl bnQgZHJpdmVyIGxvYWQsIGJ1dAo+ICsJICogbWFya3MgdGhlIEdQVSBhcyB3ZWRnZWQgdW50aWwg cmVzZXQpLgo+ICsJICovCj4gKwlpZiAoaTkxNS5lbmFibGVfZ3VjX2xvYWRpbmcgPiAxKSB7Cj4g KwkJZXJyID0gLUVJTzsKPiArCX0gZWxzZSBpZiAoSEFTX0dVQ19TQ0hFRChkZXYpICYmICFIQVNf R1VDX1VDT0RFKGRldikpIHsKPiArCQlyZXR1cm4gMDsKPiArCX0gZWxzZSBpZiAoaTkxNS5lbmFi bGVfZ3VjX3N1Ym1pc3Npb24gPiAxKSB7Cj4gKwkJZXJyID0gLUVJTzsKPiArCX0gZWxzZSB7Cj4g KwkJZXJyID0gMDsKPiArCX0KPiArCj4gKwlpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbiA9IDA7 Cj4gKwo+ICsJRFJNX0RFQlVHX0RSSVZFUigiZmFsbGluZyBiYWNrIHRvIGV4ZWNsaXN0IG1vZGUs IGVyciAlZFxuIiwgZXJyKTsKPiArCj4gICAJcmV0dXJuIGVycjsKPiAgIH0KPiAgIAo+IEBAIC01 ODgsOCArNjAxLDExIEBAIHZvaWQgaW50ZWxfZ3VjX3Vjb2RlX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgIAlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1 Yy5ndWNfZnc7Cj4gICAJY29uc3QgY2hhciAqZndfcGF0aDsKPiAgIAo+IC0JaWYgKCFIQVNfR1VD X1NDSEVEKGRldikpCj4gLQkJaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24gPSBmYWxzZTsKPiAr CS8qIEEgbmVnYXRpdmUgdmFsdWUgbWVhbnMgInVzZSBwbGF0Zm9ybSBkZWZhdWx0IiAqLwo+ICsJ aWYgKGk5MTUuZW5hYmxlX2d1Y19sb2FkaW5nIDwgMCkKPiArCQlpOTE1LmVuYWJsZV9ndWNfbG9h ZGluZyA9IEhBU19HVUNfVUNPREUoZGV2KTsKPiArCWlmIChpOTE1LmVuYWJsZV9ndWNfc3VibWlz c2lvbiA8IDApCj4gKwkJaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24gPSBIQVNfR1VDX1NDSEVE KGRldik7Cj4gICAKPiAgIAlpZiAoIUhBU19HVUNfVUNPREUoZGV2KSkgewo+ICAgCQlmd19wYXRo ID0gTlVMTDsKPiBAQCAtNTk4LDI2ICs2MTQsMjEgQEAgdm9pZCBpbnRlbF9ndWNfdWNvZGVfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50 ZWQgPSA0Owo+ICAgCQlndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQgPSAzOwo+ICAgCX0gZWxz ZSB7Cj4gLQkJaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24gPSBmYWxzZTsKPiAgIAkJZndfcGF0 aCA9ICIiOwkvKiB1bmtub3duIGRldmljZSAqLwo+ICAgCX0KPiAgIAo+IC0JaWYgKCFpOTE1LmVu YWJsZV9ndWNfc3VibWlzc2lvbikKPiAtCQlyZXR1cm47Cj4gLQo+ICAgCWd1Y19mdy0+Z3VjX2Rl diA9IGRldjsKPiAgIAlndWNfZnctPmd1Y19md19wYXRoID0gZndfcGF0aDsKPiAgIAlndWNfZnct Pmd1Y19md19mZXRjaF9zdGF0dXMgPSBHVUNfRklSTVdBUkVfTk9ORTsKPiAgIAlndWNfZnctPmd1 Y19md19sb2FkX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9OT05FOwo+ICAgCj4gKwkvKiBFYXJseSAo YW5kIHNpbGVudCkgcmV0dXJuIGlmIEd1QyBsb2FkaW5nIGlzIGRpc2FibGVkICovCj4gKwlpZiAo IWk5MTUuZW5hYmxlX2d1Y19sb2FkaW5nKQo+ICsJCXJldHVybjsKPiAgIAlpZiAoZndfcGF0aCA9 PSBOVUxMKQo+ICAgCQlyZXR1cm47Cj4gLQo+IC0JaWYgKCpmd19wYXRoID09ICdcMCcpIHsKPiAt CQlEUk1fRVJST1IoIk5vIEd1QyBmaXJtd2FyZSBrbm93biBmb3IgdGhpcyBwbGF0Zm9ybVxuIik7 Cj4gLQkJZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX0ZBSUw7Cj4g KwlpZiAoKmZ3X3BhdGggPT0gJ1wwJykKPiAgIAkJcmV0dXJuOwo+IC0JfQo+ICAgCj4gICAJZ3Vj X2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX1BFTkRJTkc7Cj4gICAJRFJN X0RFQlVHX0RSSVZFUigiR3VDIGZpcm13YXJlIHBlbmRpbmcsIHBhdGggJXNcbiIsIGZ3X3BhdGgp OwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==