From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/3] lib: Optionally initialize mmio register access without forcewake Date: Fri, 28 Aug 2015 18:12:02 +0300 Message-ID: <87eginxxa5.fsf@intel.com> References: <1440773507-21799-1-git-send-email-mika.kuoppala@intel.com> <1440773507-21799-2-git-send-email-mika.kuoppala@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 15B3D6EF2E for ; Fri, 28 Aug 2015 08:12:14 -0700 (PDT) In-Reply-To: <1440773507-21799-2-git-send-email-mika.kuoppala@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mika Kuoppala , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyOCBBdWcgMjAxNSwgTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IFNvbWV0aW1lcyBpdCBpcyBiZW5lZmljaWFsIHRvIGRlYnVnIHRo ZSBmb3JjZXdha2UgcmVnaXN0ZXJzCj4gdGhlbXNlbHZlcyBvciByZWdpc3RlcnMgdGhhdCBkb24n dCBuZWVkIG9yIGFyZSBpbnRlcmZlcmVkIGJ5Cj4gZm9yY2V3YWtlLiBBZGQgcGFyYW1ldGVyIHRv IGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KCkKPiB0byBvcHRpb25hbGx5IGF2b2lkIGZvcmNl d2FrZSBkYW5jZSBhcm91bmQgcmVnaXN0ZXIgYWNjZXNzLgo+Cj4gU2lnbmVkLW9mZi1ieTogTWlr YSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRlYnVnZ2VyL2Rl YnVnX3JkYXRhLmMgICAgICAgfCAgMiArLQo+ICBkZWJ1Z2dlci9ldWRiLmMgICAgICAgICAgICAg IHwgIDIgKy0KPiAgbGliL2ludGVsX2lvLmggICAgICAgICAgICAgICB8ICAyICstCj4gIGxpYi9p bnRlbF9tbWlvLmMgICAgICAgICAgICAgfCAgOSArKysrKysrLS0KPiAgdGVzdHMvZ2VtX3dvcmth cm91bmRzLmMgICAgICB8ICAyICstCj4gIHRlc3RzL3BtX2xwc3AuYyAgICAgICAgICAgICAgfCAg MiArLQo+ICB0b29scy9pbnRlbF9kaXNwbGF5X3BvbGxlci5jIHwgIDIgKy0KPiAgdG9vbHMvaW50 ZWxfZm9yY2V3YWtlZC5jICAgICB8ICA0ICsrLS0KPiAgdG9vbHMvaW50ZWxfZ3B1X3RvcC5jICAg ICAgICB8ICAyICstCj4gIHRvb2xzL2ludGVsX2luZm9mcmFtZXMuYyAgICAgfCAgMiArLQo+ICB0 b29scy9pbnRlbF9sM19wYXJpdHkuYyAgICAgIHwgIDIgKy0KPiAgdG9vbHMvaW50ZWxfcGFuZWxf Zml0dGVyLmMgICB8ICAyICstCj4gIHRvb2xzL2ludGVsX3BlcmZfY291bnRlcnMuYyAgfCAgMiAr LQo+ICB0b29scy9pbnRlbF9yZWcuYyAgICAgICAgICAgIHwgIDYgKysrLS0tCj4gIHRvb2xzL2lu dGVsX3dhdGVybWFyay5jICAgICAgfCAxNCArKysrKysrLS0tLS0tLQo+ICB0b29scy9xdWlja19k dW1wL2NoaXBzZXQuaSAgIHwgIDQgKystLQo+ICAxNiBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRp b25zKCspLCAyNyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kZWJ1Z2dlci9kZWJ1Z19y ZGF0YS5jIGIvZGVidWdnZXIvZGVidWdfcmRhdGEuYwo+IGluZGV4IDYxZDgyZDkuLjI2NDM1ODEg MTAwNjQ0Cj4gLS0tIGEvZGVidWdnZXIvZGVidWdfcmRhdGEuYwo+ICsrKyBiL2RlYnVnZ2VyL2Rl YnVnX3JkYXRhLmMKPiBAQCAtMTM1LDcgKzEzNSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pIHsKPiAgCXN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2Owo+ICAJcGNpX2RldiA9 IGludGVsX2dldF9wY2lfZGV2aWNlKCk7Cj4gIAo+IC0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2lu aXQocGNpX2RldiwgMSk7Cj4gKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChwY2lfZGV2LCAx LCAwKTsKPiAgCWZpbmRfc3R1Y2tfdGhyZWFkcygpOwo+ICAvLwljb2xsZWN0X3JkYXRhKGF0b2ko YXJndlsxXSksIGF0b2koYXJndlsyXSkpOwo+ICAJcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBhL2Rl YnVnZ2VyL2V1ZGIuYyBiL2RlYnVnZ2VyL2V1ZGIuYwo+IGluZGV4IDM5YzVjY2EuLjFkNmRhNDgg MTAwNjQ0Cj4gLS0tIGEvZGVidWdnZXIvZXVkYi5jCj4gKysrIGIvZGVidWdnZXIvZXVkYi5jCj4g QEAgLTU0MCw3ICs1NDAsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7Cj4g IAkJYWJvcnQoKTsKPiAgCX0KPiAgCj4gLQlhc3NlcnQoaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2lu aXQocGNpX2RldiwgMSkgPT0gMCk7Cj4gKwlhc3NlcnQoaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2lu aXQocGNpX2RldiwgMSwgMCkgPT0gMCk7Cj4gIAo+ICAJbWVtc2V0KGJpdHMsIC0xLCBzaXplb2Yo Yml0cykpOwo+ICAJLyoKPiBkaWZmIC0tZ2l0IGEvbGliL2ludGVsX2lvLmggYi9saWIvaW50ZWxf aW8uaAo+IGluZGV4IGUyZDZiNDcuLjNjZTk0NzQgMTAwNjQ0Cj4gLS0tIGEvbGliL2ludGVsX2lv LmgKPiArKysgYi9saWIvaW50ZWxfaW8uaAo+IEBAIC0zNiw3ICszNiw3IEBAIGV4dGVybiB2b2lk ICppZ3RfZ2xvYmFsX21taW87Cj4gIHZvaWQgaW50ZWxfbW1pb191c2VfcGNpX2JhcihzdHJ1Y3Qg cGNpX2RldmljZSAqcGNpX2Rldik7Cj4gIHZvaWQgaW50ZWxfbW1pb191c2VfZHVtcF9maWxlKGNo YXIgKmZpbGUpOwo+ICAKPiAtaW50IGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KHN0cnVjdCBw Y2lfZGV2aWNlICpwY2lfZGV2LCBpbnQgc2FmZSk7Cj4gK2ludCBpbnRlbF9yZWdpc3Rlcl9hY2Nl c3NfaW5pdChzdHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldiwgaW50IHNhZmUsIGludCBub2Z3KTsK CkZyaWRheSBuaWdodCBuaXRwaWNraW5nLCBpbiB0aGUgbG9uZyBydW4gYWRkaW5nIGJvb2xlYW4g cGFyYW1ldGVycyB0byBhCmZ1bmN0aW9uIG1ha2VzIGl0IGhhcmQgdG8gdXNlLiAoRXNwZWNpYWxs eSBzbyBpZiB0aGV5IGFyZSBpbnRzIHVzZWQgYXMKYm9vbGVhbiEgOykgSSdkIHJhdGhlciB5b3Ug ZWl0aGVyIHR1cm5lZCB0aGUgdHdvIHBhcmFtZXRlcnMgaW50byBvbmUKbW9kZSBwYXJhbWV0ZXIs IHNvIHlvdSdkIGNhbGwgaXQgd2l0aCBpbml0KGRldiwgU0FGRSB8IE5PRlcpLCBvciBhZGRlZAph biBpbml0X25vZncoKSB2YXJpYW50LgoKSnVzdCBzYXlpbicuIEknbSBub3QgaW5zaXN0aW5nIHRo b3VnaC4KCkJSLApKYW5pLgoKCgo+ICB2b2lkIGludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKHZv aWQpOwo+ICB1aW50MzJfdCBpbnRlbF9yZWdpc3Rlcl9yZWFkKHVpbnQzMl90IHJlZyk7Cj4gIHZv aWQgaW50ZWxfcmVnaXN0ZXJfd3JpdGUodWludDMyX3QgcmVnLCB1aW50MzJfdCB2YWwpOwo+IGRp ZmYgLS1naXQgYS9saWIvaW50ZWxfbW1pby5jIGIvbGliL2ludGVsX21taW8uYwo+IGluZGV4IGU1 ZTIzYzMuLjY0MWZiNGMgMTAwNjQ0Cj4gLS0tIGEvbGliL2ludGVsX21taW8uYwo+ICsrKyBiL2xp Yi9pbnRlbF9tbWlvLmMKPiBAQCAtMTU1LDYgKzE1NSw3IEBAIHJlbGVhc2VfZm9yY2V3YWtlX2xv Y2soaW50IGZkKQo+ICAgKiBpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdDoKPiAgICogQHBjaV9k ZXY6IGludGVsIGdyYXBoaWNzIHBjaSBkZXZpY2UKPiAgICogQHNhZmU6IHVzZSBzYWZlIHJlZ2lz dGVyIGFjY2VzcyB0YWJsZXMKPiArICogQG5vZnc6IGRvbid0IHRha2UgZm9yY2V3YWtlIGxvY2sg ZHVyaW5nIHJlZ2lzdGVyIGFjY2Vzcwo+ICAgKgo+ICAgKiBUaGlzIGluaXRpYWxpemVzIHRoZSBu ZXcgcmVnaXN0ZXIgYWNjZXNzIGxpYnJhcnksIHdoaWNoIHN1cHBvcnRzIGZvcmNld2FrZQo+ICAg KiBoYW5kbGluZyBhbmQgYWxzbyBhbGxvd3MgcmVnaXN0ZXIgYWNjZXNzIHRvIGJlIGNoZWNrZWQg d2l0aCBhbiBleHBsaWNpdAo+IEBAIC0xNjUsNyArMTY2LDcgQEAgcmVsZWFzZV9mb3JjZXdha2Vf bG9jayhpbnQgZmQpCj4gICAqIEBwY2lfZGV2IGNhbiBiZSBvYnRhaW5lZCBmcm9tIGludGVsX2dl dF9wY2lfZGV2aWNlKCkuCj4gICAqLwo+ICBpbnQKPiAtaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2lu aXQoc3RydWN0IHBjaV9kZXZpY2UgKnBjaV9kZXYsIGludCBzYWZlKQo+ICtpbnRlbF9yZWdpc3Rl cl9hY2Nlc3NfaW5pdChzdHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldiwgaW50IHNhZmUsIGludCBu b2Z3KQo+ICB7Cj4gIAlpbnQgcmV0Owo+ICAKPiBAQCAtMTg3LDcgKzE4OCwxMSBAQCBpbnRlbF9y ZWdpc3Rlcl9hY2Nlc3NfaW5pdChzdHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldiwgaW50IHNhZmUp Cj4gIAkvKiBGaW5kIHdoZXJlIHRoZSBmb3JjZXdha2UgbG9jayBpcy4gRm9yY2V3YWtlIGRvZXNu J3QgZXhpc3QKPiAgCSAqIGdlbiA8IDYsIGJ1dCB0aGUgZGVidWdmcyBzaG91bGQgZG8gdGhlIHJp Z2h0IHRoaW5ncyBmb3IgdXMuCj4gIAkgKi8KPiAtCXJldCA9IGlndF9vcGVuX2ZvcmNld2FrZV9o YW5kbGUoKTsKPiArCWlmIChub2Z3KQo+ICsJCXJldCA9IC0xOwo+ICsJZWxzZQo+ICsJCXJldCA9 IGlndF9vcGVuX2ZvcmNld2FrZV9oYW5kbGUoKTsKPiArCj4gIAlpZiAocmV0ID09IC0xKQo+ICAJ CW1taW9fZGF0YS5rZXkgPSBGQUtFS0VZOwo+ICAJZWxzZQo+IGRpZmYgLS1naXQgYS90ZXN0cy9n ZW1fd29ya2Fyb3VuZHMuYyBiL3Rlc3RzL2dlbV93b3JrYXJvdW5kcy5jCj4gaW5kZXggMzc1OWMy My4uODFkNjdkZCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9nZW1fd29ya2Fyb3VuZHMuYwo+ICsrKyBi L3Rlc3RzL2dlbV93b3JrYXJvdW5kcy5jCj4gQEAgLTExNyw3ICsxMTcsNyBAQCBzdGF0aWMgaW50 IHdvcmthcm91bmRfZmFpbF9jb3VudCh2b2lkKQo+ICB7Cj4gIAlpbnQgaSwgZmFpbF9jb3VudCA9 IDA7Cj4gIAo+IC0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZp Y2UoKSwgMCk7Cj4gKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2Rl dmljZSgpLCAwLCAwKTsKPiAgCj4gIAkvKiBUaGVyZSBpcyBhIHNtYWxsIGRlbGF5IGFmdGVyIGNv bWluZyBvdCBvZiByYzYgdG8gdGhlIGNvcnJlY3QKPiAgCSAgIHJlbmRlciBjb250ZXh0IHZhbHVl cyB3aWxsIGdldCBsb2FkZWQgYnkgaGFyZHdhcmUgKGJkdyxjaHYpLgo+IGRpZmYgLS1naXQgYS90 ZXN0cy9wbV9scHNwLmMgYi90ZXN0cy9wbV9scHNwLmMKPiBpbmRleCA0MzQ0NGQ4Li5mYWYyMGEy IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL3BtX2xwc3AuYwo+ICsrKyBiL3Rlc3RzL3BtX2xwc3AuYwo+ IEBAIC0yMzksNyArMjM5LDcgQEAgaWd0X21haW4KPiAgCj4gIAkJaWd0X3JlcXVpcmUoc3VwcG9y dHNfbHBzcChkZXZpZCkpOwo+ICAKPiAtCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRl bF9nZXRfcGNpX2RldmljZSgpLCAwKTsKPiArCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChp bnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCAwKTsKPiAgCj4gIAkJa21zdGVzdF9zZXRfdnRfZ3Jh cGhpY3NfbW9kZSgpOwo+ICAJfQo+IGRpZmYgLS1naXQgYS90b29scy9pbnRlbF9kaXNwbGF5X3Bv bGxlci5jIGIvdG9vbHMvaW50ZWxfZGlzcGxheV9wb2xsZXIuYwo+IGluZGV4IDZkNmVhMjEuLjRj MmJkZTcgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvaW50ZWxfZGlzcGxheV9wb2xsZXIuYwo+ICsrKyBi L3Rvb2xzL2ludGVsX2Rpc3BsYXlfcG9sbGVyLmMKPiBAQCAtMTM1MCw3ICsxMzUwLDcgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgCQlicmVhazsKPiAgCX0KPiAgCj4gLQlp bnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwKTsKPiAr CWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIDAp Owo+ICAKPiAgCXByaW50ZigiJXM/XG4iLCB0ZXN0X25hbWUodGVzdCwgcGlwZSwgYml0LCB0ZXN0 X3BpeGVsY291bnQpKTsKPiAgCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX2ZvcmNld2FrZWQu YyBiL3Rvb2xzL2ludGVsX2ZvcmNld2FrZWQuYwo+IGluZGV4IDAxY2EwMjUuLjk1ZTE3M2QgMTAw NjQ0Cj4gLS0tIGEvdG9vbHMvaW50ZWxfZm9yY2V3YWtlZC5jCj4gKysrIGIvdG9vbHMvaW50ZWxf Zm9yY2V3YWtlZC5jCj4gQEAgLTc5LDcgKzc5LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSkKPiAgCQlJTkZPX1BSSU5UKCJzdGFydGVkIGRhZW1vbiIpOwo+ICAJfQo+ICAKPiAt CXJldCA9IGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCks IDEpOwo+ICsJcmV0ID0gaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9k ZXZpY2UoKSwgMSwgMCk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJSU5GT19QUklOVCgiQ291bGRuJ3Qg aW5pdCByZWdpc3RlciBhY2Nlc3NcbiIpOwo+ICAJCWV4aXQoMSk7Cj4gQEAgLTkwLDcgKzkwLDcg QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgCQlpZiAoIWlzX2FsaXZlKCkp IHsKPiAgCQkJSU5GT19QUklOVCgiZ3B1IHJlc2V0PyByZXN0YXJ0aW5nIGRhZW1vblxuIik7Cj4g IAkJCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCk7Cj4gLQkJCXJldCA9IGludGVsX3JlZ2lz dGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDEpOwo+ICsJCQlyZXQgPSBp bnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAxLCAwKTsK PiAgCQkJaWYgKHJldCkKPiAgCQkJCUlORk9fUFJJTlQoIlJlZyBhY2Nlc3MgaW5pdCBmYWlsXG4i KTsKPiAgCQl9Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX2dwdV90b3AuYyBiL3Rvb2xzL2lu dGVsX2dwdV90b3AuYwo+IGluZGV4IGI1Y2ZkYTAuLjY2MjlkY2MgMTAwNjQ0Cj4gLS0tIGEvdG9v bHMvaW50ZWxfZ3B1X3RvcC5jCj4gKysrIGIvdG9vbHMvaW50ZWxfZ3B1X3RvcC5jCj4gQEAgLTUx MSw3ICs1MTEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gIAl9Cj4gIAo+ ICAJLyogR3JhYiBhY2Nlc3MgdG8gdGhlIHJlZ2lzdGVycyAqLwo+IC0JaW50ZWxfcmVnaXN0ZXJf YWNjZXNzX2luaXQocGNpX2RldiwgMCk7Cj4gKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChw Y2lfZGV2LCAwLCAwKTsKPiAgCj4gIAlyaW5nX2luaXQoJnJlbmRlcl9yaW5nKTsKPiAgCWlmIChJ U19HRU40KGRldmlkKSB8fCBJU19HRU41KGRldmlkKSkKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvaW50 ZWxfaW5mb2ZyYW1lcy5jIGIvdG9vbHMvaW50ZWxfaW5mb2ZyYW1lcy5jCj4gaW5kZXggZTAzY2Iy Yy4uNjNlYjEwYiAxMDA2NDQKPiAtLS0gYS90b29scy9pbnRlbF9pbmZvZnJhbWVzLmMKPiArKysg Yi90b29scy9pbnRlbF9pbmZvZnJhbWVzLmMKPiBAQCAtMTEwOCw3ICsxMTA4LDcgQEAgaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgCSAgICAgICAiIHBlcmZlY3RseTogdGhlIEtl cm5lbCBtaWdodCB1bmRvIG91ciBjaGFuZ2VzLlxuIik7Cj4gIAo+ICAJcGNpX2RldiA9IGludGVs X2dldF9wY2lfZGV2aWNlKCk7Cj4gLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChwY2lfZGV2 LCAwKTsKPiArCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KHBjaV9kZXYsIDAsIDApOwo+ICAJ aW50ZWxfY2hlY2tfcGNoKCk7Cj4gIAo+ICAJaWYgKElTX0dFTjQocGNpX2Rldi0+ZGV2aWNlX2lk KSkKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfbDNfcGFyaXR5LmMgYi90b29scy9pbnRlbF9s M19wYXJpdHkuYwo+IGluZGV4IGE0YjdkNzMuLmVmMzgxNzcgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMv aW50ZWxfbDNfcGFyaXR5LmMKPiArKysgYi90b29scy9pbnRlbF9sM19wYXJpdHkuYwo+IEBAIC0x OTYsNyArMTk2LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgCWlmIChp bnRlbF9nZW4oZGV2aWQpIDwgNyB8fCBJU19WQUxMRVlWSUVXKGRldmlkKSkKPiAgCQlleGl0KEVY SVRfU1VDQ0VTUyk7Cj4gIAo+IC0JYXNzZXJ0KGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGlu dGVsX2dldF9wY2lfZGV2aWNlKCksIDApID09IDApOwo+ICsJYXNzZXJ0KGludGVsX3JlZ2lzdGVy X2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIDApID09IDApOwo+ICAKPiAg CXJldCA9IGFzcHJpbnRmKCZwYXRoWzBdLCAiL3N5cy9jbGFzcy9kcm0vY2FyZCVkL2wzX3Bhcml0 eSIsIGRldmljZSk7Cj4gIAlhc3NlcnQocmV0ICE9IC0xKTsKPiBkaWZmIC0tZ2l0IGEvdG9vbHMv aW50ZWxfcGFuZWxfZml0dGVyLmMgYi90b29scy9pbnRlbF9wYW5lbF9maXR0ZXIuYwo+IGluZGV4 IDU1MTkzNjEuLjMxYjlmMGUgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvaW50ZWxfcGFuZWxfZml0dGVy LmMKPiArKysgYi90b29scy9pbnRlbF9wYW5lbF9maXR0ZXIuYwo+IEBAIC0yNzksNyArMjc5LDcg QEAgaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gIAkgICAgICAgInNvbHV0aW9u IHRoYXQgbWF5IG9yIG1heSBub3Qgd29yay4gVXNlIGl0IGF0IHlvdXIgb3duIHJpc2suXG4iKTsK PiAgCj4gIAlwY2lfZGV2ID0gaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKTsKPiAtCWludGVsX3JlZ2lz dGVyX2FjY2Vzc19pbml0KHBjaV9kZXYsIDApOwo+ICsJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2lu aXQocGNpX2RldiwgMCwgMCk7Cj4gIAlkZXZpZCA9IHBjaV9kZXYtPmRldmljZV9pZDsKPiAgCj4g IAlpZiAoIUhBU19QQ0hfU1BMSVQoZGV2aWQpKSB7Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVs X3BlcmZfY291bnRlcnMuYyBiL3Rvb2xzL2ludGVsX3BlcmZfY291bnRlcnMuYwo+IGluZGV4IDcz OWY5MjYuLmQyNmJiYTMgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvaW50ZWxfcGVyZl9jb3VudGVycy5j Cj4gKysrIGIvdG9vbHMvaW50ZWxfcGVyZl9jb3VudGVycy5jCj4gQEAgLTQ4Myw3ICs0ODMsNyBA QCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAgCj4gIAlpZiAob2Fjb250cm9sKSB7Cj4g IAkJLyogRm9yY2V3YWtlICovCj4gLQkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxf Z2V0X3BjaV9kZXZpY2UoKSwgMCk7Cj4gKwkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50 ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgMCk7Cj4gIAo+ICAJCS8qIEVuYWJsZSBwZXJmb3JtYW5j ZSBjb3VudGVycyAqLwo+ICAJCWludGVsX3JlZ2lzdGVyX3dyaXRlKE9BQ09OVFJPTCwKPiBkaWZm IC0tZ2l0IGEvdG9vbHMvaW50ZWxfcmVnLmMgYi90b29scy9pbnRlbF9yZWcuYwo+IGluZGV4IDJi NjBhODMuLmIwODI1NTUgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvaW50ZWxfcmVnLmMKPiArKysgYi90 b29scy9pbnRlbF9yZWcuYwo+IEBAIC00MDksNyArNDA5LDcgQEAgc3RhdGljIGludCBpbnRlbF9y ZWdfcmVhZChzdHJ1Y3QgY29uZmlnICpjb25maWcsIGludCBhcmdjLCBjaGFyICphcmd2W10pCj4g IAlpZiAoY29uZmlnLT5tbWlvZmlsZSkKPiAgCQlpbnRlbF9tbWlvX3VzZV9kdW1wX2ZpbGUoY29u ZmlnLT5tbWlvZmlsZSk7Cj4gIAllbHNlCj4gLQkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQo Y29uZmlnLT5wY2lfZGV2LCAwKTsKPiArCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChjb25m aWctPnBjaV9kZXYsIDAsIDApOwo+ICAKPiAgCWZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspIHsK PiAgCQlzdHJ1Y3QgcmVnIHJlZzsKPiBAQCAtNDM5LDcgKzQzOSw3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfcmVnX3dyaXRlKHN0cnVjdCBjb25maWcgKmNvbmZpZywgaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkKPiAgCQlyZXR1cm4gRVhJVF9GQUlMVVJFOwo+ICAJfQo+ICAKPiAtCWludGVsX3JlZ2lzdGVy X2FjY2Vzc19pbml0KGNvbmZpZy0+cGNpX2RldiwgMCk7Cj4gKwlpbnRlbF9yZWdpc3Rlcl9hY2Nl c3NfaW5pdChjb25maWctPnBjaV9kZXYsIDAsIDApOwo+ICAKPiAgCWZvciAoaSA9IDE7IGkgPCBh cmdjOyBpICs9IDIpIHsKPiAgCQlzdHJ1Y3QgcmVnIHJlZzsKPiBAQCAtNDc3LDcgKzQ3Nyw3IEBA IHN0YXRpYyBpbnQgaW50ZWxfcmVnX2R1bXAoc3RydWN0IGNvbmZpZyAqY29uZmlnLCBpbnQgYXJn YywgY2hhciAqYXJndltdKQo+ICAJaWYgKGNvbmZpZy0+bW1pb2ZpbGUpCj4gIAkJaW50ZWxfbW1p b191c2VfZHVtcF9maWxlKGNvbmZpZy0+bW1pb2ZpbGUpOwo+ICAJZWxzZQo+IC0JCWludGVsX3Jl Z2lzdGVyX2FjY2Vzc19pbml0KGNvbmZpZy0+cGNpX2RldiwgMCk7Cj4gKwkJaW50ZWxfcmVnaXN0 ZXJfYWNjZXNzX2luaXQoY29uZmlnLT5wY2lfZGV2LCAwLCAwKTsKPiAgCj4gIAlmb3IgKGkgPSAw OyBpIDwgY29uZmlnLT5yZWdjb3VudDsgaSsrKSB7Cj4gIAkJcmVnID0gJmNvbmZpZy0+cmVnc1tp XTsKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfd2F0ZXJtYXJrLmMgYi90b29scy9pbnRlbF93 YXRlcm1hcmsuYwo+IGluZGV4IDBiN2M1ZTUuLmYzOTllOTYgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMv aW50ZWxfd2F0ZXJtYXJrLmMKPiArKysgYi90b29scy9pbnRlbF93YXRlcm1hcmsuYwo+IEBAIC0x MzksNyArMTM5LDcgQEAgc3RhdGljIHZvaWQgaWxrX3dtX2R1bXAodm9pZCkKPiAgCWludCBudW1f cGlwZXMgPSBpc19nZW43X3BsdXMoZGV2aWQpID8gMyA6IDI7Cj4gIAlzdHJ1Y3QgaWxrX3dtIHdt ID0ge307Cj4gIAo+IC0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9k ZXZpY2UoKSwgMCk7Cj4gKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNp X2RldmljZSgpLCAwLCAwKTsKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgbnVtX3BpcGVzOyBpKysp IHsKPiAgCQlkc3BjbnRyW2ldID0gcmVhZF9yZWcoMHg3MDE4MCArIGkgKiAweDEwMDApOwo+IEBA IC0yNjUsNyArMjY1LDcgQEAgc3RhdGljIHZvaWQgdmx2X3dtX2R1bXAodm9pZCkKPiAgCXVpbnQz Ml90IGRzcF9zc19wbSwgZGRyX3NldHVwMjsKPiAgCXN0cnVjdCBnbWNoX3dtIHdtc1tNQVhfUExB TkVdID0ge307Cj4gIAo+IC0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3Bj aV9kZXZpY2UoKSwgMCk7Cj4gKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRf cGNpX2RldmljZSgpLCAwLCAwKTsKPiAgCj4gIAlkc3BhcmIgPSByZWFkX3JlZygweDcwMDMwKTsK PiAgCWRzcGFyYjIgPSByZWFkX3JlZygweDcwMDYwKTsKPiBAQCAtNDgxLDcgKzQ4MSw3IEBAIHN0 YXRpYyB2b2lkIGc0eF93bV9kdW1wKHZvaWQpCj4gIAl1aW50MzJfdCBtaV9hcmJfc3RhdGU7Cj4g IAlzdHJ1Y3QgZ21jaF93bSB3bXNbTUFYX1BMQU5FXSA9IHt9Owo+ICAKPiAtCWludGVsX3JlZ2lz dGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDApOwo+ICsJaW50ZWxfcmVn aXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgMCk7Cj4gIAo+ICAJ ZHNwYWNudHIgPSByZWFkX3JlZygweDcwMTgwKTsKPiAgCWRzcGJjbnRyID0gcmVhZF9yZWcoMHg3 MTE4MCk7Cj4gQEAgLTU2Nyw3ICs1NjcsNyBAQCBzdGF0aWMgdm9pZCBnZW40X3dtX2R1bXAodm9p ZCkKPiAgCXVpbnQzMl90IG1pX2FyYl9zdGF0ZTsKPiAgCXN0cnVjdCBnbWNoX3dtIHdtc1tNQVhf UExBTkVdID0ge307Cj4gIAo+IC0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0 X3BjaV9kZXZpY2UoKSwgMCk7Cj4gKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9n ZXRfcGNpX2RldmljZSgpLCAwLCAwKTsKPiAgCj4gIAlkc3BhcmIgPSByZWFkX3JlZygweDcwMDMw KTsKPiAgCWZ3MSA9IHJlYWRfcmVnKDB4NzAwMzQpOwo+IEBAIC02MzgsNyArNjM4LDcgQEAgc3Rh dGljIHZvaWQgcG52X3dtX2R1bXAodm9pZCkKPiAgCXVpbnQzMl90IGNicjsKPiAgCXN0cnVjdCBn bWNoX3dtIHdtc1tNQVhfUExBTkVdID0ge307Cj4gIAo+IC0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNz X2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCk7Cj4gKwlpbnRlbF9yZWdpc3Rlcl9hY2Nl c3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCAwKTsKPiAgCj4gIAlkc3BhcmIgPSBy ZWFkX3JlZygweDcwMDMwKTsKPiAgCWZ3MSA9IHJlYWRfcmVnKDB4NzAwMzQpOwo+IEBAIC03Mjgs NyArNzI4LDcgQEAgc3RhdGljIHZvaWQgZ2VuM193bV9kdW1wKHZvaWQpCj4gIAl1aW50MzJfdCBt aV9hcmJfc3RhdGU7Cj4gIAlzdHJ1Y3QgZ21jaF93bSB3bXNbTUFYX1BMQU5FXSA9IHt9Owo+ICAK PiAtCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAp Owo+ICsJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwg MCwgMCk7Cj4gIAo+ICAJZHNwYXJiID0gcmVhZF9yZWcoMHg3MDAzMCk7Cj4gIAlpbnN0cG0gPSBy ZWFkX3JlZygweDIwYzApOwo+IEBAIC03OTcsNyArNzk3LDcgQEAgc3RhdGljIHZvaWQgZ2VuMl93 bV9kdW1wKHZvaWQpCj4gIAl1aW50MzJfdCBtaV9zdGF0ZTsKPiAgCXN0cnVjdCBnbWNoX3dtIHdt c1tNQVhfUExBTkVdID0ge307Cj4gIAo+IC0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50 ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCk7Cj4gKwlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChp bnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCAwKTsKPiAgCj4gIAlkc3BhcmIgPSByZWFkX3JlZygw eDcwMDMwKTsKPiAgCW1lbV9tb2RlID0gcmVhZF9yZWcoMHgyMGNjKTsKPiBkaWZmIC0tZ2l0IGEv dG9vbHMvcXVpY2tfZHVtcC9jaGlwc2V0LmkgYi90b29scy9xdWlja19kdW1wL2NoaXBzZXQuaQo+ IGluZGV4IDkwZGI0MGUuLmU2OTIxY2YgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcXVpY2tfZHVtcC9j aGlwc2V0LmkKPiArKysgYi90b29scy9xdWlja19kdW1wL2NoaXBzZXQuaQo+IEBAIC0xMyw3ICsx Myw3IEBAIGV4dGVybiBpbnQgaXNfaGFzd2VsbCh1bnNpZ25lZCBzaG9ydCBwY2lpZCk7Cj4gIGV4 dGVybiBpbnQgaXNfYnJvYWR3ZWxsKHVuc2lnbmVkIHNob3J0IHBjaWlkKTsKPiAgZXh0ZXJuIGlu dCBpc19za3lsYWtlKHVuc2lnbmVkIHNob3J0IHBjaWlkKTsKPiAgZXh0ZXJuIHN0cnVjdCBwY2lf ZGV2aWNlICppbnRlbF9nZXRfcGNpX2RldmljZSgpOwo+IC1leHRlcm4gaW50IGludGVsX3JlZ2lz dGVyX2FjY2Vzc19pbml0KHN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2LCBpbnQgc2FmZSk7Cj4g K2V4dGVybiBpbnQgaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoc3RydWN0IHBjaV9kZXZpY2Ug KnBjaV9kZXYsIGludCBzYWZlLCBpbnQgbm9mdyk7Cj4gIGV4dGVybiB1aW50MzJfdCBpbnRlbF9y ZWdpc3Rlcl9yZWFkKHVpbnQzMl90IHJlZyk7Cj4gIGV4dGVybiB2b2lkIGludGVsX3JlZ2lzdGVy X3dyaXRlKHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsKTsKPiAgZXh0ZXJuIHZvaWQgaW50ZWxf cmVnaXN0ZXJfYWNjZXNzX2ZpbmkoKTsKPiBAQCAtMzEsNyArMzEsNyBAQCBleHRlcm4gaW50IGlz X2hhc3dlbGwodW5zaWduZWQgc2hvcnQgcGNpaWQpOwo+ICBleHRlcm4gaW50IGlzX2Jyb2Fkd2Vs bCh1bnNpZ25lZCBzaG9ydCBwY2lpZCk7Cj4gIGV4dGVybiBpbnQgaXNfc2t5bGFrZSh1bnNpZ25l ZCBzaG9ydCBwY2lpZCk7Cj4gIGV4dGVybiBzdHJ1Y3QgcGNpX2RldmljZSAqaW50ZWxfZ2V0X3Bj aV9kZXZpY2UoKTsKPiAtZXh0ZXJuIGludCBpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChzdHJ1 Y3QgcGNpX2RldmljZSAqcGNpX2RldiwgaW50IHNhZmUpOwo+ICtleHRlcm4gaW50IGludGVsX3Jl Z2lzdGVyX2FjY2Vzc19pbml0KHN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2LCBpbnQgc2FmZSwg aW50IG5vZncpOwo+ICBleHRlcm4gdWludDMyX3QgaW50ZWxfcmVnaXN0ZXJfcmVhZCh1aW50MzJf dCByZWcpOwo+ICBleHRlcm4gdm9pZCBpbnRlbF9yZWdpc3Rlcl93cml0ZSh1aW50MzJfdCByZWcs IHVpbnQzMl90IHZhbCk7Cj4gIGV4dGVybiB2b2lkIGludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5p KCk7Cj4gLS0gCj4gMi4xLjQKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hu b2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==