From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH v5 1/8] drm/i915/skl: Add support to load SKL CSR firmware. Date: Thu, 30 Apr 2015 16:02:34 +0300 Message-ID: <1430398954.9584.4.camel@intel.com> References: <1430232306.19128.30.camel@intel.com> <1430328560-24117-1-git-send-email-animesh.manna@intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 5120A6E805 for ; Thu, 30 Apr 2015 06:03:11 -0700 (PDT) In-Reply-To: <1430328560-24117-1-git-send-email-animesh.manna@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Animesh Manna Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24ga2UsIDIwMTUtMDQtMjkgYXQgMjI6NTkgKzA1MzAsIEFuaW1lc2ggTWFubmEgd3JvdGU6Cj4g RnJvbTogIkEuU3VuaWwgS2FtYXRoIiA8c3VuaWwua2FtYXRoQGludGVsLmNvbT4KPiAKPiBEaXNw bGF5IENvbnRleHQgU2F2ZSBhbmQgUmVzdG9yZSBzdXBwb3J0IGlzIG5lZWRlZCBmb3IKPiB2YXJp b3VzIFNLTCBEaXNwbGF5IEMgc3RhdGVzIGxpa2UgREM1LCBEQzYuCj4gCj4gVGhpcyBpbXBsZW1l bnRhdGlvbiBpcyBhZGRlZCBiYXNlZCBvbiBmaXJzdCB2ZXJzaW9uIG9mIERNQyBDU1IgcHJvZ3Jh bQo+IHRoYXQgd2UgcmVjZWl2ZWQgZnJvbSBoL3cgdGVhbS4KPiAKPiBIZXJlIHdlIGFyZSB1c2lu ZyByZXF1ZXN0X2Zpcm13YXJlIGJhc2VkIGRlc2lnbi4KPiBGaW5hbGx5IHRoaXMgZmlybXdhcmUg c2hvdWxkIGVuZCB1cCBpbiBsaW51eC1maXJtd2FyZSB0cmVlLgo+IAo+IEZvciBTS0wgcGxhdGZv cm0gaXRzIG1hbmRhdG9yeSB0byBlbnN1cmUgdGhhdCB3ZSBsb2FkIHRoaXMKPiBjc3IgcHJvZ3Jh bSBiZWZvcmUgZW5hYmxpbmcgREMgc3RhdGVzIGxpa2UgREM1L0RDNi4KPiAKPiBBcyBDU1IgcHJv Z3JhbSBnZXRzIHJlc2V0IG9uIHZhcmlvdXMgY29uZGl0aW9ucywgd2Ugc2hvdWxkIGVuc3VyZQo+ IHRvIGxvYWQgaXQgZHVyaW5nIGJvb3QgYW5kIGluIGZ1dHVyZSBjaGFuZ2UgdG8gYmUgYWRkZWQg dG8gbG9hZAo+IHRoaXMgc3lzdGVtIHJlc3VtZSBzZXF1ZW5jZSB0b28uCj4gCj4gdjE6IEluaXRp YWwgcmVsZXNlIGFzIFJGQyBwYXRjaAo+IAo+IHYyOiBEZXNpZ24gY2hhbmdlIGFzIHBlciBEYW5p ZWwsIERhbWllbiBhbmQgU2hvYml0J3MgcmV2aWV3IGNvbW1lbnRzCj4gcmVxdWVzdCBmaXJtd2Fy ZSBtZXRob2QgZm9sbG93ZWQuCj4gCj4gdjM6IFNvbWUgb3B0aW1pemF0aW9uIGFuZCBmdW5jdGlv bmFsIGNoYW5nZXMuCj4gUHVsbGVkIHJlZ2lzdGVyIGRlZmluZXMgaW50byBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCj4gVXNlZCBrbWVtZHVwIHRvIGFsbG9jYXRlIGFuZCBkdXBsaWNh dGUgZmlybXdhcmUgY29udGVudC4KPiBFbnN1cmVkIHRvIGZyZWUgYWxsb2NhdGVkIGJ1ZmZlci4K PiAKPiB2NDogTW9kaWZpZWQgYXMgcGVyIHJldmlldyBjb21tZW50cyBmcm9tIFNhdGhlZXNoIGFu ZCBEYW5pZWwKPiBSZW1vdmVkIHRlbXBvcmFyeSBidWZmZXIuCj4gT3B0aW1pemVkIG51bWJlciBv ZiB3cml0ZXMgYnkgcmVwbGFjaW5nIEk5MTVfV1JJVEUgd2l0aCBJOTE1X1dSSVRFNjQuCj4gCj4g djU6Cj4gTW9kaWZpZWQgYXMgcGVyIHJldmlldyBjb21lbW50cyBmcm9tIERhbWllbi4KPiAtIENo YW5nZWQgbmFtZSBmb3IgZnVuY3Rpb25zIGFuZCBmaXJtd2FyZS4KPiAtIEludHJvZHVjZWQgSEFT X0NTUi4KPiAtIFJldmVydGVkIGJhY2sgcHJldmlvdXMgY2hhbmdlIGFuZCB1c2VkIGNzcl9idWYg d2l0aCB1OCBzaXplLgo+IC0gVXNpbmcgY3B1X3RvX2JlNjQgZm9yIGVuZGlhbm5lc3MgY2hhbmdl Lgo+IAo+IE1vZGlmaWVkIGFzIHBlciByZXZpZXcgY29tbWVudHMgZnJvbSBJbXJlLgo+IC0gTW9k aWZpZWQgcmVnaXN0ZXJzIGFuZCBtYWNybyBuYW1lcyB0byBiZSBhIGJpdCBjbG9zZXIgdG8gYnNw ZWMgdGVybWlub2xvZ3kKPiBhbmQgdGhlIGV4aXN0aW5nIHJlZ2lzdGVyIG5hbWluZyBpbiB0aGUg ZHJpdmVyLgo+IC0gRWFybHkgcmV0dXJuIGZvciBub24gU0tMIHBsYXRmb3JtcyBpbiBpbnRlbF9s b2FkX2Nzcl9wcm9ncmFtIGZ1bmN0aW9uLgo+IC0gQWRkZWQgbG9ja2luZyBhcm91bmQgQ1NSIHBy b2dyYW0gbG9hZCBmdW5jdGlvbiBhcyBpdCBtYXkgYmUgY2FsbGVkCj4gY29uY3VycmVudGx5IGR1 cmluZyBzeXN0ZW0vcnVudGltZSByZXN1bWUuCj4gLSBSZWxlYXNpbmcgdGhlIGZ3IGJlZm9yZSBs b2FkaW5nIHRoZSBwcm9ncmFtIGZvciBjb25zaXN0ZW5jeQo+IC0gSGFuZGxlZCBlcnJvciBwYXRo IGR1cmluZyBmL3cgbG9hZC4KPiAKPiB2NjogTW9kaWZpZWQgYXMgcGVyIHJldmlldyBjb21tZW50 cyBmcm9tIEltcmUuCj4gLSBDb3JyZWN0ZWQgb3V0X2ZyZWVjc3Igc2VxdWVuY2UuCj4gCj4gdjc6 IE1vZGlmaWVkIGFzIHBlciByZXZpZXcgY29tbWVudHMgZnJvbSBJbXJlLgo+IEZhaWwgbG9hZGlu ZyBmdyBpZiBmdy0+c2l6ZSU4IT0wLgo+IAo+IHY4OiBSZWJhc2UgdG8gbGF0ZXN0Lgo+IAo+IHY5 OiBSZWJhc2Ugb24gdG9wIG9mIC1uaWdodGx5IChEYW1pZW4pCj4gCj4gdjEwOiBFbmFibGVkIHN1 cHBvcnQgZm9yIGRtYyBmaXJtd2FyZSB2ZXIgMS4wLgo+IEFjY29yZGluZyB0byB2ZXIgMS4wIGlu IGEgc2luZ2xlIGJpbmFyeSBwYWNrYWdlIGFsbCB0aGUgZmlybXdhcmUncyB0aGF0IGFyZQo+IHJl cXVpcmVkIGZvciBkaWZmZXJlbnQgc3RlcHBpbmcncyBvZiB0aGUgcHJvZHVjdCB3aWxsIGJlIHN0 b3JlZC4gVGhlIHBhY2thZ2UKPiBjb250YWlucyB0aGUgY3NzIGhlYWRlciwgZm9sbG93ZWQgYnkg dGhlIHBhY2thZ2UgaGVhZGVyIGFuZCB0aGUgYWN0dWFsIGRtYwo+IGZpcm13YXJlcy4gUGFja2Fn ZSBoZWFkZXIgY29udGFpbnMgdGhlIGZpcm13YXJlL3N0ZXBwaW5nIG1hcHBpbmcgdGFibGUgYW5k Cj4gdGhlIGNvcnJlc3BvbmRpbmcgZmlybXdhcmUgb2Zmc2V0cyB0byB0aGUgaW5kaXZpZHVhbCBi aW5hcmllcywgd2l0aGluIHRoZQo+IHBhY2thZ2UuIEVhY2ggaW5kaXZpZHVhbCBwcm9ncmFtIGJp bmFyeSBjb250YWlucyB0aGUgaGVhZGVyIGFuZCB0aGUgcGF5bG9hZAo+IHNlY3Rpb25zIHdob3Nl IHNpemUgaXMgc3BlY2lmaWVkIGluIHRoZSBoZWFkZXIgc2VjdGlvbi4gVGhpcyBjaGFuZ2VzIGFy ZSBkb25lCj4gdG8gZXh0cmFjdCB0aGUgc3BlY2lmaWMgZmlybWF3YXJlIGZyb20gdGhlIHBhY2th Z2UuIChBbmltZXNoKQo+IAo+IHYxMTogTW9kaWZpZWQgYXMgcGVyIHJldmlldyBjb21lbW50cyBm cm9tIEltcmUuCj4gLSBBZGRlZCBjb2RlIGNvbW1lbnQgZnJvbSBicGVjIGZvciBoZWFkZXIgc3Ry dWN0dXJlIGVsZW1lbnRzLgo+IC0gQWRkZWQgX19wYWNrZWQgdG8gYXZvaWQgc3RydWN0dXJlIHBh ZGRpbmcuCj4gLSBBZGRlZCBoZWxwZXIgZnVuY3Rpb25zIGZvciBzdGVwcGluZyBhbmQgc3Vic3Rl cHBpbmcgaW5mby4KPiAtIEFkZGVkIGNvZGUgY29tbWVudCBmb3IgQ1NSX01BWF9GV19TSVpFLgo+ IC0gRGlzYWJsZWQgQlhUIGZpcm13YXJlIGxvYWRpbmcsIHdpbGwgYmUgZW5hYmxlZCB3aXRoIGRt YyAxLjAgc3VwcG9ydC4KPiAtIENoYW5nZWQgc2tsX3N0ZXBwaW5nX2luZm8gYmFzZWQgb24gYnNw ZWMsIGVhcmxpZXIgdXNlZCBmcm9tIGNvbmZpZyBEQi4KPiAtIFJlbW92ZWQgZHVwbGljYXRlIGNh bGwgb2YgY3B1X3RvX2JlKiBmcm9tIGludGVsX2Nzcl9sb2FkX3Byb2dyYW0gZnVuY3Rpb24uCj4g LSBVc2VkIGNwdV90b19iZTMyIGluc3RlYWQgb2YgY3B1X3RvX2JlNjQgYXMgZmlybXdhcmUgYmlu YXJ5IGluIGR3b3JkIGFsaWduZWQuCj4gLSBBZGRlZCBzYW5pdHkgY2hlY2sgZm9yIGhlYWRlciBs ZW5ndGguCj4gLSBBZGRlZCBzYW5pdHkgY2hlY2sgZm9yIG1taW8gYWRkcmVzcyBnb3QgZnJvbSBm aXJtd2FyZSBiaW5hcnkuCj4gLSBrbWFsbG9jIGRvbmUgc2VwYXJhdGVseSBmb3IgZG1jIGhlYWRl ciBhbmQgZG1jIGZpcm13YXJlLiAoQW5pbWVzaCkKPiAKPiB2MTI6IE1vZGlmaWVkIGFzIHBlciBy ZXZpZXcgY29tZW1udHMgZnJvbSBJbXJlLgo+IC0gQ29ycmVjdGVkIHRoZSB0eXBvIGVycm9yIGlu IHNrbCBzdGVwcGluZyBpbmZvIHN0cnVjdHVyZS4KPiAtIEFkZGVkIG91dC1vZi1ib3VuZCBhY2Nl c3MgZm9yIHNrbF9zdGVwcGluZ19pbmZvLgo+IC0gU2FuaXR5IGNoZWNrIGZvciBtbWlvIGFkZHJl c3MgbW9kaWZpZWQuCj4gLSBTYW5pdHkgY2hlY2sgYWRkZWQgZm9yIHN0ZXBwaW5nIGFuZCBzdWJz dGVwcGlnLgo+IC0gTW9kaWZpZWQgdGhlIGludGVsX2RtY19pbmZvIHN0cnVjdHVyZSwgY2FjaGUg b25seSB0aGUgcmVxdWlyZWQgaGVhZGVyIGluZm8uIChBbmltZXNoKQo+IAo+IHYxMzogY2xhcmlm eSBmaXJtd2FyZSBsb2FkIGVycm9yIG1lc3NhZ2UuCj4gVGhlIHJlYXNvbiBmb3IgYSBmaXJtd2Fy ZSBsb2FkaW5nIGZhaWx1cmUgY2FuIGJlIG9ic2N1cmUgaWYgdGhlIGRyaXZlcgo+IGlzIGJ1aWx0 LWluLiBQcm92aWRlIGFuIGV4cGxhbmF0aW9uIHRvIHRoZSB1c2VyIGFib3V0IHRoZSBsaWtlbHkg cmVhc29uIGZvcgo+IHRoZSBmYWlsdXJlIGFuZCBob3cgdG8gcmVzb2x2ZSBpdC4gKEltcmUpCj4g Cj4gdjE0OiBTdWdnZXN0ZWQgYnkgSmFuaS4KPiAtIGZpeCBzL0k5MTUvQ09ORklHX0RSTV9JOTE1 LyB0eXBvCj4gLSBhZGQgZndfcGF0aCB0byB0aGUgZmlybXdhcmUgb2JqZWN0IGluc3RlYWQgb2Yg dXNpbmcgYSBzdGF0aWMgcHRyIChKYW5pKQo+IAo+IHYxNToKPiAxKSBDaGFuZ2VkIHRoZSBmaXJt d2FyZSBuYW1lIGFzIGRtY19nZW45LmJpbiwgZXZlcnl0aW1lIGZvciBhIG5ldyBmaXJtd2FyZSB2 ZXJzaW9uIGEgc3ltYm9saWMgbGluawo+IHdpdGggc2FtZSBuYW1lIHdpbGwgaGVscCBub3QgdG8g YnVpbGQga2VybmVsIGFnYWluLgo+IDIpIENoYW5nZXMgZG9uZSBhcyBwZXIgcmV2aWV3IGNvbW1l bnRzIGZyb20gSW1yZS4KPiAtIEVycm9yIGNoZWNrIHJlbW92ZWQgZm9yIGludGVsX2Nzcl91Y29k ZV9pbml0Lgo+IC0gTW92ZWQgY3NyLXNwZWNpZmljIGRhdGEgc3RydWN0dXJlIHRvIGludGVsX2Nz ci5oIGFuZCBvcHRpbWl6YXRpb24gZG9uZSBvbiBzdHJ1Y3R1cmUgZGVmaW5pdGlvbi4KPiAtIGZ3 LT5kYXRhIHVzZWQgZGlyZWN0bHkgZm9yIHBhcnNpbmcgdGhlIGhlYWRlciBpbmZvICYgbWVtb3J5 IGFsbG9jYXRpb24KPiBvbmx5IGRvbmUgc2VwYXJhdGVseSBmb3IgcGF5bG9hZC4gKEFuaW1lc2gp Cj4gCj4gdjE2Ogo+IC0gTm8gbmVlZCBmb3Igb3V0X3JlZ3MgbGFiZWwgaW4gaTkxNV9kcml2ZXJf bG9hZCgpLCBzbyByZW1vdmVkIGl0Lgo+IC0gQ2hhbmdlZCB0aGUgZmlybXdhcmUgbmFtZSBhcyBz a2xfZG1jX3ZlcjEuYmluLCBmb2xsb3dlZCBuYW1pbmcgY29udmVudGlvbiA8cGxhdGZvcm0+X2Rt Y188YXBpLXZlcnNpb24+LmJpbiAoQW5pbWVzaCkKPiAKPiBJc3N1ZTogVklaLTI1NjkKPiBTaWdu ZWQtb2ZmLWJ5OiBBLlN1bmlsIEthbWF0aCA8c3VuaWwua2FtYXRoQGludGVsLmNvbT4KPiBTaWdu ZWQtb2ZmLWJ5OiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAaW50ZWwuY29tPgo+IFNp Z25lZC1vZmYtYnk6IEFuaW1lc2ggTWFubmEgPGFuaW1lc2gubWFubmFAaW50ZWwuY29tPgo+IFNp Z25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KCkZvciB0aGUgZnV0 dXJlOiBzY3JpcHRzL2NoZWNrcGF0Y2gucGwgaGFzIGEgdmFsaWQgd2FybmluZyBhYm91dCB0aGUK Y29tbWl0IG1lc3NhZ2UsIHBsZWFzZSBmaXggdGhlIGlzc3VlcyByZXBvcnRlZCBieSB0aGlzIHRv b2wgbmV4dCB0aW1lLgoKUmV2aWV3ZWQtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNv bT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgIHwgICAzICstCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgIHwgIDExICstCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMgIHwgIDIwICsrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICB8ICAxNyArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYyB8 IDM2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgIDUgKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDQyMCBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+IGluZGV4 IGE2OTAwMmUuLjUyMzhkZWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr ZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+IEBAIC0xMiw3ICsx Miw4IEBAIGk5MTUteSA6PSBpOTE1X2Rydi5vIFwKPiAgICAgICAgICAgIGk5MTVfc3VzcGVuZC5v IFwKPiAgCSAgaTkxNV9zeXNmcy5vIFwKPiAgCSAgaW50ZWxfcG0ubyBcCj4gLQkgIGludGVsX3J1 bnRpbWVfcG0ubwo+ICsJICBpbnRlbF9ydW50aW1lX3BtLm8gXAo+ICsJICBpbnRlbF9jc3Iubwo+ ICAKPiAgaTkxNS0kKENPTkZJR19DT01QQVQpICAgKz0gaTkxNV9pb2MzMi5vCj4gIGk5MTUtJChD T05GSUdfREVCVUdfRlMpICs9IGk5MTVfZGVidWdmcy5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5j Cj4gaW5kZXggZTQ0MTE2Zi4uYTIzODg4OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RtYS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+ IEBAIC04MTYsNiArODE2LDcgQEAgaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKPiAgCXNwaW5fbG9ja19pbml0KCZkZXZfcHJp di0+bW1pb19mbGlwX2xvY2spOwo+ICAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPmRwaW9fbG9jayk7 Cj4gIAltdXRleF9pbml0KCZkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX2xvY2spOwo+ICsJbXV0 ZXhfaW5pdCgmZGV2X3ByaXYtPmNzcl9sb2NrKTsKPiAgCj4gIAlpbnRlbF9wbV9zZXR1cChkZXYp Owo+ICAKPiBAQCAtODYxLDkgKzg2MiwxMiBAQCBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQo+ICAKPiAgCWludGVsX3VuY29y ZV9pbml0KGRldik7Cj4gIAo+ICsJLyogTG9hZCBDU1IgRmlybXdhcmUgZm9yIFNLTCAqLwo+ICsJ aW50ZWxfY3NyX3Vjb2RlX2luaXQoZGV2KTsKPiArCj4gIAlyZXQgPSBpOTE1X2dlbV9ndHRfaW5p dChkZXYpOwo+ICAJaWYgKHJldCkKPiAtCQlnb3RvIG91dF9yZWdzOwo+ICsJCWdvdG8gb3V0X2Zy ZWVjc3I7Cj4gIAo+ICAJLyogV0FSTklORzogQXBwYXJlbnRseSB3ZSBtdXN0IGtpY2sgZmJkZXYg ZHJpdmVycyBiZWZvcmUgdmdhY29uLAo+ICAJICogb3RoZXJ3aXNlIHRoZSB2Z2EgZmJkZXYgZHJp dmVyIGZhbGxzIG92ZXIuICovCj4gQEAgLTEwMzMsNyArMTAzNyw4IEBAIG91dF9tdHJyZnJlZToK PiAgCWlvX21hcHBpbmdfZnJlZShkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlKTsKPiAgb3V0X2d0dDoK PiAgCWk5MTVfZ2xvYmFsX2d0dF9jbGVhbnVwKGRldik7Cj4gLW91dF9yZWdzOgo+ICtvdXRfZnJl ZWNzcjoKPiArCWludGVsX2Nzcl91Y29kZV9maW5pKGRldik7Cj4gIAlpbnRlbF91bmNvcmVfZmlu aShkZXYpOwo+ICAJcGNpX2lvdW5tYXAoZGV2LT5wZGV2LCBkZXZfcHJpdi0+cmVncyk7Cj4gIHB1 dF9icmlkZ2U6Cj4gQEAgLTExMTMsNiArMTExOCw4IEBAIGludCBpOTE1X2RyaXZlcl91bmxvYWQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0 ZXgpOwo+ICAJaTkxNV9nZW1fY2xlYW51cF9zdG9sZW4oZGV2KTsKPiAgCj4gKwlpbnRlbF9jc3Jf dWNvZGVfZmluaShkZXYpOwo+ICsKPiAgCWludGVsX3RlYXJkb3duX2dtYnVzKGRldik7Cj4gIAlp bnRlbF90ZWFyZG93bl9tY2hiYXIoZGV2KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4g aW5kZXggYzNmZGJiMC4uYWNkMGUyYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBA IC01NTYsNiArNTU2LDI2IEBAIHZvaWQgaW50ZWxfaHBkX2NhbmNlbF93b3JrKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmZGV2 X3ByaXYtPmhvdHBsdWdfcmVlbmFibGVfd29yayk7Cj4gIH0KPiAgCj4gK3ZvaWQgaTkxNV9maXJt d2FyZV9sb2FkX2Vycm9yX3ByaW50KGNvbnN0IGNoYXIgKmZ3X3BhdGgsIGludCBlcnIpCj4gK3sK PiArCURSTV9FUlJPUigiZmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgJXMgKCVkKVxuIiwgZndfcGF0 aCwgZXJyKTsKPiArCj4gKwkvKgo+ICsJICogSWYgdGhlIHJlYXNvbiBpcyBub3Qga25vd24gYXNz dW1lIC1FTk9FTlQgc2luY2UgdGhhdCdzIHRoZSBtb3N0Cj4gKwkgKiB1c3VhbCBmYWlsdXJlIG1v ZGUuCj4gKwkgKi8KPiArCWlmICghZXJyKQo+ICsJCWVyciA9IC1FTk9FTlQ7Cj4gKwo+ICsJaWYg KCEoSVNfQlVJTFRJTihDT05GSUdfRFJNX0k5MTUpICYmIGVyciA9PSAtRU5PRU5UKSkKPiArCQly ZXR1cm47Cj4gKwo+ICsJRFJNX0VSUk9SKAo+ICsJICAiVGhlIGRyaXZlciBpcyBidWlsdC1pbiwg c28gdG8gbG9hZCB0aGUgZmlybXdhcmUgeW91IG5lZWQgdG9cbiIKPiArCSAgImluY2x1ZGUgaXQg ZWl0aGVyIGluIHRoZSBrZXJuZWwgKHNlZSBDT05GSUdfRVhUUkFfRklSTVdBUkUpIG9yXG4iCj4g KwkgICJpbiB5b3VyIGluaXRyZC9pbml0cmFtZnMgaW1hZ2UuXG4iKTsKPiArfQo+ICsKPiAgc3Rh dGljIHZvaWQgaW50ZWxfc3VzcGVuZF9lbmNvZGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2 Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDQ3YmU0YTUuLjkwZTQ3YTkgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtNjY3LDYgKzY2NywxNSBAQCBzdHJ1Y3QgaW50 ZWxfdW5jb3JlIHsKPiAgI2RlZmluZSBmb3JfZWFjaF9md19kb21haW4oZG9tYWluX18sIGRldl9w cml2X18sIGlfXykgXAo+ICAJZm9yX2VhY2hfZndfZG9tYWluX21hc2soZG9tYWluX18sIEZPUkNF V0FLRV9BTEwsIGRldl9wcml2X18sIGlfXykKPiAgCj4gK3N0cnVjdCBpbnRlbF9jc3Igewo+ICsJ Y29uc3QgY2hhciAqZndfcGF0aDsKPiArCV9fYmUzMiAqZG1jX3BheWxvYWQ7Cj4gKwl1aW50MzJf dCBkbWNfZndfc2l6ZTsKPiArCXVpbnQzMl90IG1taW9fY291bnQ7Cj4gKwl1aW50MzJfdCBtbWlv YWRkcls4XTsKPiArCXVpbnQzMl90IG1taW9kYXRhWzhdOwo+ICt9Owo+ICsKPiAgI2RlZmluZSBE RVZfSU5GT19GT1JfRUFDSF9GTEFHKGZ1bmMsIHNlcCkgXAo+ICAJZnVuYyhpc19tb2JpbGUpIHNl cCBcCj4gIAlmdW5jKGlzX2k4NXgpIHNlcCBcCj4gQEAgLTE1NzMsNiArMTU4MiwxMSBAQCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gIAo+ICAJc3RydWN0IGk5MTVfdmlydHVhbF9ncHUgdmdw dTsKPiAgCj4gKwlzdHJ1Y3QgaW50ZWxfY3NyIGNzcjsKPiArCj4gKwkvKiBEaXNwbGF5IENTUi1y ZWxhdGVkIHByb3RlY3Rpb24gKi8KPiArCXN0cnVjdCBtdXRleCBjc3JfbG9jazsKPiArCj4gIAlz dHJ1Y3QgaW50ZWxfZ21idXMgZ21idXNbR01CVVNfTlVNX1BJTlNdOwo+ICAKPiAgCS8qKiBnbWJ1 c19tdXRleCBwcm90ZWN0cyBhZ2FpbnN0IGNvbmN1cnJlbnQgdXNhZ2Ugb2YgdGhlIHNpbmdsZSBo dyBnbWJ1cwo+IEBAIC0yNDI1LDYgKzI0MzksOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfY21kX3RhYmxl IHsKPiAgI2RlZmluZSBIQVNfUkM2KGRldikJCShJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KQo+ ICAjZGVmaW5lIEhBU19SQzZwKGRldikJCShJTlRFTF9JTkZPKGRldiktPmdlbiA9PSA2IHx8IElT X0lWWUJSSURHRShkZXYpKQo+ICAKPiArI2RlZmluZSBIQVNfQ1NSKGRldikJKElTX1NLWUxBS0Uo ZGV2KSkKPiArCj4gICNkZWZpbmUgSU5URUxfUENIX0RFVklDRV9JRF9NQVNLCQkweGZmMDAKPiAg I2RlZmluZSBJTlRFTF9QQ0hfSUJYX0RFVklDRV9JRF9UWVBFCQkweDNiMDAKPiAgI2RlZmluZSBJ TlRFTF9QQ0hfQ1BUX0RFVklDRV9JRF9UWVBFCQkweDFjMDAKPiBAQCAtMjUxNSw2ICsyNTMxLDcg QEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaTkxNV9nZnhfdmFsKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7Cj4gIGV4dGVybiB2b2lkIGk5MTVfdXBkYXRlX2dmeF92YWwoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgaW50IHZsdl9mb3JjZV9nZnhfY2xvY2so c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIG9uKTsKPiAgdm9pZCBpbnRl bF9ocGRfY2FuY2VsX3dvcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAr dm9pZCBpOTE1X2Zpcm13YXJlX2xvYWRfZXJyb3JfcHJpbnQoY29uc3QgY2hhciAqZndfcGF0aCwg aW50IGVycik7Cj4gIAo+ICAvKiBpOTE1X2lycS5jICovCj4gIHZvaWQgaTkxNV9xdWV1ZV9oYW5n Y2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Nzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMK PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmY1ZmE1NzQKPiAtLS0gL2Rl di9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMKPiBAQCAtMCww ICsxLDM2NyBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxNCBJbnRlbCBDb3Jwb3JhdGlv bgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg YW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsg KiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBm b2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBw YXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUg SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT UyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRI RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBE QU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBP UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB TElOR1MKPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKi8KPiArI2luY2x1ZGUgPGxp bnV4L2Zpcm13YXJlLmg+Cj4gKyNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICsjaW5jbHVkZSAiaTkx NV9yZWcuaCIKPiArCj4gKyNkZWZpbmUgSTkxNV9DU1JfU0tMICJpOTE1L3NrbF9kbWNfdmVyNC5i aW4iCj4gKwo+ICtNT0RVTEVfRklSTVdBUkUoSTkxNV9DU1JfU0tMKTsKPiArCj4gKy8qCj4gKyog U0tMIENTUiByZWdpc3RlcnMgZm9yIERDNSBhbmQgREM2Cj4gKyovCj4gKyNkZWZpbmUgQ1NSX1BS T0dSQU1fQkFTRQkJMHg4MDAwMAo+ICsjZGVmaW5lIENTUl9TU1BfQkFTRV9BRERSX0dFTjkJCTB4 MDAwMDJGQzAKPiArI2RlZmluZSBDU1JfSFRQX0FERFJfU0tMCQkweDAwNTAwMDM0Cj4gKyNkZWZp bmUgQ1NSX1NTUF9CQVNFCQkJMHg4RjA3NAo+ICsjZGVmaW5lIENTUl9IVFBfU0tMCQkJMHg4RjAw NAo+ICsjZGVmaW5lIENTUl9MQVNUX1dSSVRFCQkJMHg4RjAzNAo+ICsjZGVmaW5lIENTUl9MQVNU X1dSSVRFX1ZBTFVFCQkweGMwMDNiNDAwCj4gKy8qIE1NSU8gYWRkcmVzcyByYW5nZSBmb3IgQ1NS IHByb2dyYW0gKDB4ODAwMDAgLSAweDgyRkZGKSAqLwo+ICsjZGVmaW5lIENTUl9NQVhfRldfU0la RQkJCTB4MkZGRgo+ICsjZGVmaW5lIENTUl9ERUZBVUxUX0ZXX09GRlNFVAkJMHhGRkZGRkZGRgo+ ICsjZGVmaW5lIENTUl9NTUlPX1NUQVJUX1JBTkdFCTB4ODAwMDAKPiArI2RlZmluZSBDU1JfTU1J T19FTkRfUkFOR0UJCTB4OEZGRkYKPiArCj4gK3N0cnVjdCBpbnRlbF9jc3NfaGVhZGVyIHsKPiAr CS8qIDB4MDkgZm9yIERNQyAqLwo+ICsJdWludDMyX3QgbW9kdWxlX3R5cGU7Cj4gKwo+ICsJLyog SW5jbHVkZXMgdGhlIERNQyBzcGVjaWZpYyBoZWFkZXIgaW4gZHdvcmRzICovCj4gKwl1aW50MzJf dCBoZWFkZXJfbGVuOwo+ICsKPiArCS8qIGFsd2F5cyB2YWx1ZSB3b3VsZCBiZSAweDEwMDAwICov Cj4gKwl1aW50MzJfdCBoZWFkZXJfdmVyOwo+ICsKPiArCS8qIE5vdCB1c2VkICovCj4gKwl1aW50 MzJfdCBtb2R1bGVfaWQ7Cj4gKwo+ICsJLyogTm90IHVzZWQgKi8KPiArCXVpbnQzMl90IG1vZHVs ZV92ZW5kb3I7Cj4gKwo+ICsJLyogaW4gWVlZWU1NREQgZm9ybWF0ICovCj4gKwl1aW50MzJfdCBk YXRlOwo+ICsKPiArCS8qIFNpemUgaW4gZHdvcmRzIChDU1NfSGVhZGVybGVuICsgUGFja2FnZUhl YWRlckxlbiArIGRtYyBGV3NMZW4pLzQgKi8KPiArCXVpbnQzMl90IHNpemU7Cj4gKwo+ICsJLyog Tm90IHVzZWQgKi8KPiArCXVpbnQzMl90IGtleV9zaXplOwo+ICsKPiArCS8qIE5vdCB1c2VkICov Cj4gKwl1aW50MzJfdCBtb2R1bHVzX3NpemU7Cj4gKwo+ICsJLyogTm90IHVzZWQgKi8KPiArCXVp bnQzMl90IGV4cG9uZW50X3NpemU7Cj4gKwo+ICsJLyogTm90IHVzZWQgKi8KPiArCXVpbnQzMl90 IHJlc2VydmVkMVsxMl07Cj4gKwo+ICsJLyogTWFqb3IgTWlub3IgKi8KPiArCXVpbnQzMl90IHZl cnNpb247Cj4gKwo+ICsJLyogTm90IHVzZWQgKi8KPiArCXVpbnQzMl90IHJlc2VydmVkMls4XTsK PiArCj4gKwkvKiBOb3QgdXNlZCAqLwo+ICsJdWludDMyX3Qga2VybmVsX2hlYWRlcl9pbmZvOwo+ ICt9IF9fcGFja2VkOwo+ICsKPiArc3RydWN0IGludGVsX2Z3X2luZm8gewo+ICsJdWludDE2X3Qg cmVzZXJ2ZWQxOwo+ICsKPiArCS8qIFN0ZXBwaW5nIChBLCBCLCBDLCAuLi4sICopLiAqIGlzIGEg d2lsZGNhcmQgKi8KPiArCWNoYXIgc3RlcHBpbmc7Cj4gKwo+ICsJLyogU3ViLXN0ZXBwaW5nICgw LCAxLCAuLi4sICopLiAqIGlzIGEgd2lsZGNhcmQgKi8KPiArCWNoYXIgc3Vic3RlcHBpbmc7Cj4g Kwo+ICsJdWludDMyX3Qgb2Zmc2V0Owo+ICsJdWludDMyX3QgcmVzZXJ2ZWQyOwo+ICt9IF9fcGFj a2VkOwo+ICsKPiArc3RydWN0IGludGVsX3BhY2thZ2VfaGVhZGVyIHsKPiArCS8qIERNQyBjb250 YWluZXIgaGVhZGVyIGxlbmd0aCBpbiBkd29yZHMgKi8KPiArCXVuc2lnbmVkIGNoYXIgaGVhZGVy X2xlbjsKPiArCj4gKwkvKiBhbHdheXMgdmFsdWUgd291bGQgYmUgMHgwMSAqLwo+ICsJdW5zaWdu ZWQgY2hhciBoZWFkZXJfdmVyOwo+ICsKPiArCXVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWRbMTBdOwo+ ICsKPiArCS8qIE51bWJlciBvZiB2YWxpZCBlbnRyaWVzIGluIHRoZSBGV0luZm8gYXJyYXkgYmVs b3cgKi8KPiArCXVpbnQzMl90IG51bV9lbnRyaWVzOwo+ICsKPiArCXN0cnVjdCBpbnRlbF9md19p bmZvIGZ3X2luZm9bMjBdOwo+ICt9IF9fcGFja2VkOwo+ICsKPiArc3RydWN0IGludGVsX2RtY19o ZWFkZXIgewo+ICsJLyogYWx3YXlzIHZhbHVlIHdvdWxkIGJlIDB4NDA0MDNFM0UgKi8KPiArCXVp bnQzMl90IHNpZ25hdHVyZTsKPiArCj4gKwkvKiBETUMgYmluYXJ5IGhlYWRlciBsZW5ndGggKi8K PiArCXVuc2lnbmVkIGNoYXIgaGVhZGVyX2xlbjsKPiArCj4gKwkvKiAweDAxICovCj4gKwl1bnNp Z25lZCBjaGFyIGhlYWRlcl92ZXI7Cj4gKwo+ICsJLyogUmVzZXJ2ZWQgKi8KPiArCXVpbnQxNl90 IGRtY2NfdmVyOwo+ICsKPiArCS8qIE1ham9yLCBNaW5vciAqLwo+ICsJdWludDMyX3QJcHJvamVj dDsKPiArCj4gKwkvKiBGaXJtd2FyZSBwcm9ncmFtIHNpemUgKGV4Y2x1ZGluZyBoZWFkZXIpIGlu IGR3b3JkcyAqLwo+ICsJdWludDMyX3QJZndfc2l6ZTsKPiArCj4gKwkvKiBNYWpvciBNaW5vciB2 ZXJzaW9uICovCj4gKwl1aW50MzJfdCBmd192ZXJzaW9uOwo+ICsKPiArCS8qIE51bWJlciBvZiB2 YWxpZCBNTUlPIGN5Y2xlcyBwcmVzZW50LiAqLwo+ICsJdWludDMyX3QgbW1pb19jb3VudDsKPiAr Cj4gKwkvKiBNTUlPIGFkZHJlc3MgKi8KPiArCXVpbnQzMl90IG1taW9hZGRyWzhdOwo+ICsKPiAr CS8qIE1NSU8gZGF0YSAqLwo+ICsJdWludDMyX3QgbW1pb2RhdGFbOF07Cj4gKwo+ICsJLyogRlcg ZmlsZW5hbWUgICovCj4gKwl1bnNpZ25lZCBjaGFyIGRmaWxlWzMyXTsKPiArCj4gKwl1aW50MzJf dCByZXNlcnZlZDFbMl07Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICtzdHJ1Y3Qgc3RlcHBpbmdfaW5m byB7Cj4gKwljaGFyIHN0ZXBwaW5nOwo+ICsJY2hhciBzdWJzdGVwcGluZzsKPiArfTsKPiArCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RlcHBpbmdfaW5mbyBza2xfc3RlcHBpbmdfaW5mb1tdID0g ewo+ICsJCXsnQScsICcwJ30sIHsnQicsICcwJ30sIHsnQycsICcwJ30sCj4gKwkJeydEJywgJzAn fSwgeydFJywgJzAnfSwgeydGJywgJzAnfSwKPiArCQl7J0cnLCAnMCd9LCB7J0gnLCAnMCd9LCB7 J0knLCAnMCd9Cj4gK307Cj4gKwo+ICtzdGF0aWMgY2hhciBpbnRlbF9nZXRfc3RlcHBpbmcoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsJaWYgKElTX1NLWUxBS0UoZGV2KSAmJiAoZGV2 LT5wZGV2LT5yZXZpc2lvbiA8Cj4gKwkJCUFSUkFZX1NJWkUoc2tsX3N0ZXBwaW5nX2luZm8pKSkK PiArCQlyZXR1cm4gc2tsX3N0ZXBwaW5nX2luZm9bZGV2LT5wZGV2LT5yZXZpc2lvbl0uc3RlcHBp bmc7Cj4gKwllbHNlCj4gKwkJcmV0dXJuIC1FTk9EQVRBOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY2hh ciBpbnRlbF9nZXRfc3Vic3RlcHBpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsJ aWYgKElTX1NLWUxBS0UoZGV2KSAmJiAoZGV2LT5wZGV2LT5yZXZpc2lvbiA8Cj4gKwkJCUFSUkFZ X1NJWkUoc2tsX3N0ZXBwaW5nX2luZm8pKSkKPiArCQlyZXR1cm4gc2tsX3N0ZXBwaW5nX2luZm9b ZGV2LT5wZGV2LT5yZXZpc2lvbl0uc3Vic3RlcHBpbmc7Cj4gKwllbHNlCj4gKwkJcmV0dXJuIC1F Tk9EQVRBOwo+ICt9Cj4gKwo+ICt2b2lkIGludGVsX2Nzcl9sb2FkX3Byb2dyYW0oc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCV9fYmUzMiAqcGF5bG9hZCA9IGRldl9wcml2LT5jc3Iu ZG1jX3BheWxvYWQ7Cj4gKwl1aW50MzJfdCBpLCBmd19zaXplOwo+ICsKPiArCWlmICghSVNfR0VO OShkZXYpKSB7Cj4gKwkJRFJNX0VSUk9SKCJObyBDU1Igc3VwcG9ydCBhdmFpbGFibGUgZm9yIHRo aXMgcGxhdGZvcm1cbiIpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwltdXRleF9sb2NrKCZk ZXZfcHJpdi0+Y3NyX2xvY2spOwo+ICsJZndfc2l6ZSA9IGRldl9wcml2LT5jc3IuZG1jX2Z3X3Np emU7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgZndfc2l6ZTsgaSsrKQo+ICsJCUk5MTVfV1JJVEUoQ1NS X1BST0dSQU1fQkFTRSArIGkgKiA0LAo+ICsJCQkodTMyIF9fZm9yY2UpcGF5bG9hZFtpXSk7Cj4g Kwo+ICsJZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT5jc3IubW1pb19jb3VudDsgaSsrKSB7Cj4g KwkJSTkxNV9XUklURShkZXZfcHJpdi0+Y3NyLm1taW9hZGRyW2ldLAo+ICsJCQlkZXZfcHJpdi0+ Y3NyLm1taW9kYXRhW2ldKTsKPiArCX0KPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmNzcl9s b2NrKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZmluaXNoX2Nzcl9sb2FkKGNvbnN0IHN0cnVj dCBmaXJtd2FyZSAqZncsIHZvaWQgKmNvbnRleHQpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGNvbnRleHQ7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZGV2X3ByaXYtPmRldjsKPiArCXN0cnVjdCBpbnRlbF9jc3NfaGVhZGVyICpjc3NfaGVhZGVyOwo+ ICsJc3RydWN0IGludGVsX3BhY2thZ2VfaGVhZGVyICpwYWNrYWdlX2hlYWRlcjsKPiArCXN0cnVj dCBpbnRlbF9kbWNfaGVhZGVyICpkbWNfaGVhZGVyOwo+ICsJc3RydWN0IGludGVsX2NzciAqY3Ny ID0gJmRldl9wcml2LT5jc3I7Cj4gKwljaGFyIHN0ZXBwaW5nID0gaW50ZWxfZ2V0X3N0ZXBwaW5n KGRldik7Cj4gKwljaGFyIHN1YnN0ZXBwaW5nID0gaW50ZWxfZ2V0X3N1YnN0ZXBwaW5nKGRldik7 Cj4gKwl1aW50MzJfdCBkbWNfb2Zmc2V0ID0gQ1NSX0RFRkFVTFRfRldfT0ZGU0VULCByZWFkY291 bnQgPSAwLCBuYnl0ZXM7Cj4gKwl1aW50MzJfdCBpOwo+ICsJX19iZTMyICpkbWNfcGF5bG9hZDsK PiArCj4gKwlpZiAoIWZ3KSB7Cj4gKwkJaTkxNV9maXJtd2FyZV9sb2FkX2Vycm9yX3ByaW50KGNz ci0+ZndfcGF0aCwgMCk7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJaWYgKChzdGVwcGlu ZyA9PSAtRU5PREFUQSkgfHwgKHN1YnN0ZXBwaW5nID09IC1FTk9EQVRBKSkgewo+ICsJCURSTV9F UlJPUigiVW5rbm93biBzdGVwcGluZyBpbmZvLCBmaXJtd2FyZSBsb2FkaW5nIGZhaWxlZFxuIik7 Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJLyogRXh0cmFjdCBDU1MgSGVhZGVyIGluZm9y bWF0aW9uKi8KPiArCWNzc19oZWFkZXIgPSAoc3RydWN0IGludGVsX2Nzc19oZWFkZXIgKilmdy0+ ZGF0YTsKPiArCWlmIChzaXplb2Yoc3RydWN0IGludGVsX2Nzc19oZWFkZXIpICE9Cj4gKwkJKGNz c19oZWFkZXItPmhlYWRlcl9sZW4gKiA0KSkgewo+ICsJCURSTV9FUlJPUigiRmlybXdhcmUgaGFz IHdyb25nIENTUyBoZWFkZXIgbGVuZ3RoICV1IGJ5dGVzXG4iLAo+ICsJCQkoY3NzX2hlYWRlci0+ aGVhZGVyX2xlbiAqIDQpKTsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCXJlYWRjb3VudCArPSBz aXplb2Yoc3RydWN0IGludGVsX2Nzc19oZWFkZXIpOwo+ICsKPiArCS8qIEV4dHJhY3QgUGFja2Fn ZSBIZWFkZXIgaW5mb3JtYXRpb24qLwo+ICsJcGFja2FnZV9oZWFkZXIgPSAoc3RydWN0IGludGVs X3BhY2thZ2VfaGVhZGVyICopCj4gKwkJCQkJJmZ3LT5kYXRhW3JlYWRjb3VudF07Cj4gKwlpZiAo c2l6ZW9mKHN0cnVjdCBpbnRlbF9wYWNrYWdlX2hlYWRlcikgIT0KPiArCQkocGFja2FnZV9oZWFk ZXItPmhlYWRlcl9sZW4gKiA0KSkgewo+ICsJCURSTV9FUlJPUigiRmlybXdhcmUgaGFzIHdyb25n IHBhY2thZ2UgaGVhZGVyIGxlbmd0aCAldSBieXRlc1xuIiwKPiArCQkJKHBhY2thZ2VfaGVhZGVy LT5oZWFkZXJfbGVuICogNCkpOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsJcmVhZGNvdW50ICs9 IHNpemVvZihzdHJ1Y3QgaW50ZWxfcGFja2FnZV9oZWFkZXIpOwo+ICsKPiArCS8qIFNlYXJjaCBm b3IgZG1jX29mZnNldCB0byBmaW5kIGZpcndhcmUgYmluYXJ5LiAqLwo+ICsJZm9yIChpID0gMDsg aSA8IHBhY2thZ2VfaGVhZGVyLT5udW1fZW50cmllczsgaSsrKSB7Cj4gKwkJaWYgKHBhY2thZ2Vf aGVhZGVyLT5md19pbmZvW2ldLnN1YnN0ZXBwaW5nID09ICcqJyAmJgo+ICsJCQlzdGVwcGluZyA9 PSBwYWNrYWdlX2hlYWRlci0+ZndfaW5mb1tpXS5zdGVwcGluZykgewo+ICsJCQlkbWNfb2Zmc2V0 ID0gcGFja2FnZV9oZWFkZXItPmZ3X2luZm9baV0ub2Zmc2V0Owo+ICsJCQlicmVhazsKPiArCQl9 IGVsc2UgaWYgKHN0ZXBwaW5nID09IHBhY2thZ2VfaGVhZGVyLT5md19pbmZvW2ldLnN0ZXBwaW5n ICYmCj4gKwkJCXN1YnN0ZXBwaW5nID09IHBhY2thZ2VfaGVhZGVyLT5md19pbmZvW2ldLnN1YnN0 ZXBwaW5nKSB7Cj4gKwkJCWRtY19vZmZzZXQgPSBwYWNrYWdlX2hlYWRlci0+ZndfaW5mb1tpXS5v ZmZzZXQ7Cj4gKwkJCWJyZWFrOwo+ICsJCX0gZWxzZSBpZiAocGFja2FnZV9oZWFkZXItPmZ3X2lu Zm9baV0uc3RlcHBpbmcgPT0gJyonICYmCj4gKwkJCXBhY2thZ2VfaGVhZGVyLT5md19pbmZvW2ld LnN1YnN0ZXBwaW5nID09ICcqJykKPiArCQkJZG1jX29mZnNldCA9IHBhY2thZ2VfaGVhZGVyLT5m d19pbmZvW2ldLm9mZnNldDsKPiArCX0KPiArCWlmIChkbWNfb2Zmc2V0ID09IENTUl9ERUZBVUxU X0ZXX09GRlNFVCkgewo+ICsJCURSTV9FUlJPUigiRmlybXdhcmUgbm90IHN1cHBvcnRlZCBmb3Ig JWMgc3RlcHBpbmdcbiIsIHN0ZXBwaW5nKTsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCXJlYWRj b3VudCArPSBkbWNfb2Zmc2V0Owo+ICsKPiArCS8qIEV4dHJhY3QgZG1jX2hlYWRlciBpbmZvcm1h dGlvbi4gKi8KPiArCWRtY19oZWFkZXIgPSAoc3RydWN0IGludGVsX2RtY19oZWFkZXIgKikmZnct PmRhdGFbcmVhZGNvdW50XTsKPiArCWlmIChzaXplb2Yoc3RydWN0IGludGVsX2RtY19oZWFkZXIp ICE9IChkbWNfaGVhZGVyLT5oZWFkZXJfbGVuKSkgewo+ICsJCURSTV9FUlJPUigiRmlybXdhcmUg aGFzIHdyb25nIGRtYyBoZWFkZXIgbGVuZ3RoICV1IGJ5dGVzXG4iLAo+ICsJCQkJKGRtY19oZWFk ZXItPmhlYWRlcl9sZW4pKTsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCXJlYWRjb3VudCArPSBz aXplb2Yoc3RydWN0IGludGVsX2RtY19oZWFkZXIpOwo+ICsKPiArCS8qIENhY2hlIHRoZSBkbWMg aGVhZGVyIGluZm8uICovCj4gKwlpZiAoZG1jX2hlYWRlci0+bW1pb19jb3VudCA+IEFSUkFZX1NJ WkUoY3NyLT5tbWlvYWRkcikpIHsKPiArCQlEUk1fRVJST1IoIkZpcm13YXJlIGhhcyB3cm9uZyBt bWlvIGNvdW50ICV1XG4iLAo+ICsJCQkJCQlkbWNfaGVhZGVyLT5tbWlvX2NvdW50KTsKPiArCQln b3RvIG91dDsKPiArCX0KPiArCWNzci0+bW1pb19jb3VudCA9IGRtY19oZWFkZXItPm1taW9fY291 bnQ7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgZG1jX2hlYWRlci0+bW1pb19jb3VudDsgaSsrKSB7Cj4g KwkJaWYgKGRtY19oZWFkZXItPm1taW9hZGRyW2ldIDwgQ1NSX01NSU9fU1RBUlRfUkFOR0UgJiYK PiArCQkJZG1jX2hlYWRlci0+bW1pb2FkZHJbaV0gPiBDU1JfTU1JT19FTkRfUkFOR0UpIHsKPiAr CQkJRFJNX0VSUk9SKCIgRmlybXdhcmUgaGFzIHdyb25nIG1taW8gYWRkcmVzcyAweCV4XG4iLAo+ ICsJCQkJCQlkbWNfaGVhZGVyLT5tbWlvYWRkcltpXSk7Cj4gKwkJCWdvdG8gb3V0Owo+ICsJCX0K PiArCQljc3ItPm1taW9hZGRyW2ldID0gZG1jX2hlYWRlci0+bW1pb2FkZHJbaV07Cj4gKwkJY3Ny LT5tbWlvZGF0YVtpXSA9IGRtY19oZWFkZXItPm1taW9kYXRhW2ldOwo+ICsJfQo+ICsKPiArCS8q IGZ3X3NpemUgaXMgaW4gZHdvcmRzLCBzbyBtdWx0aXBsaWVkIGJ5IDQgdG8gY29udmVydCBpbnRv IGJ5dGVzLiAqLwo+ICsJbmJ5dGVzID0gZG1jX2hlYWRlci0+Zndfc2l6ZSAqIDQ7Cj4gKwlpZiAo bmJ5dGVzID4gQ1NSX01BWF9GV19TSVpFKSB7Cj4gKwkJRFJNX0VSUk9SKCJDU1IgZmlybXdhcmUg dG9vIGJpZyAoJXUpIGJ5dGVzXG4iLCBuYnl0ZXMpOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsJ Y3NyLT5kbWNfZndfc2l6ZSA9IGRtY19oZWFkZXItPmZ3X3NpemU7Cj4gKwo+ICsJY3NyLT5kbWNf cGF5bG9hZCA9IGttYWxsb2MobmJ5dGVzLCBHRlBfS0VSTkVMKTsKPiArCWlmICghY3NyLT5kbWNf cGF5bG9hZCkgewo+ICsJCURSTV9FUlJPUigiTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIGZvciBk bWMgcGF5bG9hZFxuIik7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJZG1jX3BheWxvYWQg PSBjc3ItPmRtY19wYXlsb2FkOwo+ICsJZm9yIChpID0gMDsgaSA8IGRtY19oZWFkZXItPmZ3X3Np emU7IGkrKykgewo+ICsJCXVpbnQzMl90ICp0bXAgPSAodTMyICopJmZ3LT5kYXRhW3JlYWRjb3Vu dCArIGkgKiA0XTsKPiArCQkvKgo+ICsJCSAqIFRoZSBmaXJtd2FyZSBwYXlsb2FkIGlzIGFuIGFy cmF5IG9mIDMyIGJpdCB3b3JkcyBzdG9yZWQgaW4KPiArCQkgKiBsaXR0bGUtZW5kaWFuIGZvcm1h dCBpbiB0aGUgZmlybXdhcmUgaW1hZ2UgYW5kIHByb2dyYW1tZWQKPiArCQkgKiBhcyAzMiBiaXQg YmlnLWVuZGlhbiBmb3JtYXQgdG8gbWVtb3J5Lgo+ICsJCSAqLwo+ICsJCWRtY19wYXlsb2FkW2ld ID0gY3B1X3RvX2JlMzIoKnRtcCk7Cj4gKwl9Cj4gKwo+ICsJLyogbG9hZCBjc3IgcHJvZ3JhbSBk dXJpbmcgc3lzdGVtIGJvb3QsIGFzIG5lZWRlZCBmb3IgREMgc3RhdGVzICovCj4gKwlpbnRlbF9j c3JfbG9hZF9wcm9ncmFtKGRldik7Cj4gK291dDoKPiArCXJlbGVhc2VfZmlybXdhcmUoZncpOwo+ ICt9Cj4gKwo+ICt2b2lkIGludGVsX2Nzcl91Y29kZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3NyICpjc3IgPSAmZGV2X3ByaXYtPmNzcjsKPiAr CWludCByZXQ7Cj4gKwo+ICsJaWYgKCFIQVNfQ1NSKGRldikpCj4gKwkJcmV0dXJuOwo+ICsKPiAr CWlmIChJU19TS1lMQUtFKGRldikpCj4gKwkJY3NyLT5md19wYXRoID0gSTkxNV9DU1JfU0tMOwo+ ICsJZWxzZSB7Cj4gKwkJRFJNX0VSUk9SKCJVbmV4cGVjdGVkOiBubyBrbm93biBDU1IgZmlybXdh cmUgZm9yIHBsYXRmb3JtXG4iKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJLyogQ1NSIHN1 cHBvcnRlZCBmb3IgcGxhdGZvcm0sIGxvYWQgZmlybXdhcmUgKi8KPiArCXJldCA9IHJlcXVlc3Rf ZmlybXdhcmVfbm93YWl0KFRISVNfTU9EVUxFLCB0cnVlLCBjc3ItPmZ3X3BhdGgsCj4gKwkJCQkm ZGV2X3ByaXYtPmRldi0+cGRldi0+ZGV2LAo+ICsJCQkJR0ZQX0tFUk5FTCwgZGV2X3ByaXYsCj4g KwkJCQlmaW5pc2hfY3NyX2xvYWQpOwo+ICsJaWYgKHJldCkKPiArCQlpOTE1X2Zpcm13YXJlX2xv YWRfZXJyb3JfcHJpbnQoY3NyLT5md19wYXRoLCByZXQpOwo+ICsKPiArfQo+ICsKPiArdm9pZCBp bnRlbF9jc3JfdWNvZGVfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICt7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsKPiAr CWlmICghSEFTX0NTUihkZXYpKQo+ICsJCXJldHVybjsKPiArCj4gKwlrZnJlZShkZXZfcHJpdi0+ Y3NyLmRtY19wYXlsb2FkKTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXgg N2EwYWEyNC4uZjNhMmQ4OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTEw NjIsNiArMTA2MiwxMSBAQCB2b2lkIGludGVsX21vZGVzZXRfcHJlY2xvc2Uoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKTsKPiAgdW5zaWduZWQgbG9uZyBpbnRl bF9wbGFuZV9vYmpfb2Zmc2V0KHN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUsCj4gIAkJ CQkgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwo+ICAKPiArLyogaW50ZWxf Y3NyLmMgKi8KPiArdm9pZCBpbnRlbF9jc3JfdWNvZGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKPiArdm9pZCBpbnRlbF9jc3JfbG9hZF9wcm9ncmFtKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpOwo+ICt2b2lkIGludGVsX2Nzcl91Y29kZV9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Owo+ICsKPiAgLyogaW50ZWxfZHAuYyAqLwo+ICB2b2lkIGludGVsX2RwX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IG91dHB1dF9yZWcsIGVudW0gcG9ydCBwb3J0KTsKPiAgYm9vbCBp bnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCwKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=