From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 2/3] drm/i915: Use atomic helpers for suspend, v2. Date: Tue, 16 Feb 2016 11:55:37 +0200 Message-ID: <20160216095537.GC23290@intel.com> References: <20160203163408.GF23290@intel.com> <1455022343-15222-1-git-send-email-maarten.lankhorst@linux.intel.com> <1455022343-15222-2-git-send-email-maarten.lankhorst@linux.intel.com> <20160209133747.GN23290@intel.com> <56B9F23F.9080502@linux.intel.com> <20160209145834.GQ23290@intel.com> <56C2E686.5060803@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 58BB86E1FD for ; Tue, 16 Feb 2016 09:55:40 +0000 (UTC) Content-Disposition: inline In-Reply-To: <56C2E686.5060803@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMTYsIDIwMTYgYXQgMTA6MDY6MTRBTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMDktMDItMTYgb20gMTU6NTggc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6 Cj4gPiBPbiBUdWUsIEZlYiAwOSwgMjAxNiBhdCAwMzowNTo1MVBNICswMTAwLCBNYWFydGVuIExh bmtob3JzdCB3cm90ZToKPiA+PiBPcCAwOS0wMi0xNiBvbSAxNDozNyBzY2hyZWVmIFZpbGxlIFN5 cmrDpGzDpDoKPiA+Pj4gT24gVHVlLCBGZWIgMDksIDIwMTYgYXQgMDE6NTI6MjJQTSArMDEwMCwg TWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6Cj4gPj4+PiBJbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIHRo ZSBmdW5jdGlvbmFsaXR5IG5vdyB0aGF0IHdlIG5vIGxvbmdlciBuZWVkCj4gPj4+PiB0byBwcmVz ZXJ2ZSBkcGxsIHN0YXRlIHdlIGNhbiBtb3ZlIHRvIHVzaW5nIHRoZSB1cHN0cmVhbSBzdXNwZW5k IGhlbHBlci4KPiA+Pj4+Cj4gPj4+PiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8 bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ID4+Pj4gLS0tCj4gPj4+PiAgZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgIHwgICAzICsKPiA+Pj4+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgfCAgIDggLS0tCj4gPj4+PiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgICAxICsKPiA+Pj4+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMTcgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiA+Pj4+ICA0IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDg3IGRl bGV0aW9ucygtKQo+ID4+Pj4KPiA+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4g Pj4+PiBpbmRleCAyYjQzMGIwNWYzNWQuLmEyZDNiMDk0ZjI3YyAxMDA2NDQKPiA+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4+Pj4gQEAgLTIxMDIsNiArMjEwMiw5IEBA IGludCBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ Pj4+ICAJZXJyID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwo+ID4+Pj4gIAlkcm1fbW9kZXNl dF91bmxvY2tfYWxsKGRldik7Cj4gPj4+PiAgCj4gPj4+PiArCWlmIChlcnIpCj4gPj4+PiArCQlk cm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ID4+Pj4gKwo+ID4+Pj4gIAlyZXR1cm4gZXJy Owo+ID4+Pj4gIH0KPiA+Pj4+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3Jlc3Vt ZSk7Cj4gPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+Pj4+IGluZGV4IDExZDg0MTRlZGJi ZS4uZmM5YjU1MmJmY2QxIDEwMDY0NAo+ID4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuYwo+ID4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ ID4+Pj4gQEAgLTYwMCwxMyArNjAwLDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPj4+PiAgCj4gPj4+PiAgCWludGVsX3N1c3BlbmRfZ3Rf cG93ZXJzYXZlKGRldik7Cj4gPj4+PiAgCj4gPj4+PiAtCS8qCj4gPj4+PiAtCSAqIERpc2FibGUg Q1JUQ3MgZGlyZWN0bHkgc2luY2Ugd2Ugd2FudCB0byBwcmVzZXJ2ZSBzdyBzdGF0ZQo+ID4+Pj4g LQkgKiBmb3IgX3RoYXcuIEFsc28sIHBvd2VyIGdhdGUgdGhlIENSVEMgcG93ZXIgd2VsbHMuCj4g Pj4+PiAtCSAqLwo+ID4+Pj4gLQlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOwo+ID4+Pj4gIAlp bnRlbF9kaXNwbGF5X3N1c3BlbmQoZGV2KTsKPiA+Pj4+IC0JZHJtX21vZGVzZXRfdW5sb2NrX2Fs bChkZXYpOwo+ID4+Pj4gIAo+ID4+Pj4gIAlpbnRlbF9kcF9tc3Rfc3VzcGVuZChkZXYpOwo+ID4+ Pj4gIAo+ID4+Pj4gQEAgLTc2MSw5ICs3NTUsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3Vt ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4+Pj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuaHBk X2lycV9zZXR1cChkZXYpOwo+ID4+Pj4gIAlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFf bG9jayk7Cj4gPj4+PiAgCj4gPj4+PiAtCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldik7Cj4gPj4+ PiAgCWludGVsX2Rpc3BsYXlfcmVzdW1lKGRldik7Cj4gPj4+PiAtCWRybV9tb2Rlc2V0X3VubG9j a19hbGwoZGV2KTsKPiA+Pj4+ICAKPiA+Pj4+ICAJaW50ZWxfZHBfbXN0X3Jlc3VtZShkZXYpOwo+ ID4+Pj4gIAo+ID4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPj4+PiBpbmRleCA4MjE2NjY1 NDA1ZWIuLmVmMjg5NTE0Yjk3ZSAxMDA2NDQKPiA+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiA+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiA+Pj4+IEBAIC0xODQ4LDYgKzE4NDgsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7 Cj4gPj4+PiAgCj4gPj4+PiAgCWVudW0gbW9kZXNldF9yZXN0b3JlIG1vZGVzZXRfcmVzdG9yZTsK PiA+Pj4+ICAJc3RydWN0IG11dGV4IG1vZGVzZXRfcmVzdG9yZV9sb2NrOwo+ID4+Pj4gKwlzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqbW9kZXNldF9yZXN0b3JlX3N0YXRlOwo+ID4+Pj4gIAo+ID4+ Pj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIHZtX2xpc3Q7IC8qIEdsb2JhbCBsaXN0IG9mIGFsbCBhZGRy ZXNzIHNwYWNlcyAqLwo+ID4+Pj4gIAlzdHJ1Y3QgaTkxNV9ndHQgZ3R0OyAvKiBWTSByZXByZXNl bnRpbmcgdGhlIGdsb2JhbCBhZGRyZXNzIHNwYWNlICovCj4gPj4+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gPj4+PiBpbmRleCBlNDk2YzEzMDM2NGQuLjRjOTFmZDFjNTIyMiAx MDA2NDQKPiA+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4+PiBA QCAtNjM5Myw1OCArNjM5MywxOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfbm9h dG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4+Pj4gICAqLwo+ID4+Pj4gIGludCBpbnRl bF9kaXNwbGF5X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+Pj4+ICB7Cj4gPj4+ PiAtCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwo+ ID4+Pj4gLQlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCA9IGNvbmZpZy0+YWNx dWlyZV9jdHg7Cj4gPj4+PiAtCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiA+Pj4+ IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4+Pj4gLQl1bnNpZ25lZCBjcnRjX21hc2sgPSAw Owo+ID4+Pj4gLQlpbnQgcmV0ID0gMDsKPiA+Pj4+IC0KPiA+Pj4+IC0JaWYgKFdBUk5fT04oIWN0 eCkpCj4gPj4+PiAtCQlyZXR1cm4gMDsKPiA+Pj4+IC0KPiA+Pj4+IC0JbG9ja2RlcF9hc3NlcnRf aGVsZCgmY3R4LT53d19jdHgpOwo+ID4+Pj4gLQlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxs b2MoZGV2KTsKPiA+Pj4+IC0JaWYgKFdBUk5fT04oIXN0YXRlKSkKPiA+Pj4+IC0JCXJldHVybiAt RU5PTUVNOwo+ID4+Pj4gLQo+ID4+Pj4gLQlzdGF0ZS0+YWNxdWlyZV9jdHggPSBjdHg7Cj4gPj4+ PiAtCXN0YXRlLT5hbGxvd19tb2Rlc2V0ID0gdHJ1ZTsKPiA+Pj4+IC0KPiA+Pj4+IC0JZm9yX2Vh Y2hfY3J0YyhkZXYsIGNydGMpIHsKPiA+Pj4+IC0JCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSA9Cj4gPj4+PiAtCQkJZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0 Yyk7Cj4gPj4+PiAtCj4gPj4+PiAtCQlyZXQgPSBQVFJfRVJSX09SX1pFUk8oY3J0Y19zdGF0ZSk7 Cj4gPj4+PiAtCQlpZiAocmV0KQo+ID4+Pj4gLQkJCWdvdG8gZnJlZTsKPiA+Pj4+IC0KPiA+Pj4+ IC0JCWlmICghY3J0Y19zdGF0ZS0+YWN0aXZlKQo+ID4+Pj4gLQkJCWNvbnRpbnVlOwo+ID4+Pj4g LQo+ID4+Pj4gLQkJY3J0Y19zdGF0ZS0+YWN0aXZlID0gZmFsc2U7Cj4gPj4+PiAtCQljcnRjX21h c2sgfD0gMSA8PCBkcm1fY3J0Y19pbmRleChjcnRjKTsKPiA+Pj4+IC0JfQo+ID4+Pj4gLQo+ID4+ Pj4gLQlpZiAoY3J0Y19tYXNrKSB7Cj4gPj4+PiAtCQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChz dGF0ZSk7Cj4gPj4+PiAtCj4gPj4+PiAtCQlpZiAoIXJldCkgewo+ID4+Pj4gLQkJCWZvcl9lYWNo X2NydGMoZGV2LCBjcnRjKQo+ID4+Pj4gLQkJCQlpZiAoY3J0Y19tYXNrICYgKDEgPDwgZHJtX2Ny dGNfaW5kZXgoY3J0YykpKQo+ID4+Pj4gLQkJCQkJY3J0Yy0+c3RhdGUtPmFjdGl2ZSA9IHRydWU7 Cj4gPj4+PiAtCj4gPj4+PiAtCQkJcmV0dXJuIHJldDsKPiA+Pj4+IC0JCX0KPiA+Pj4+IC0JfQo+ ID4+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7 Cj4gPj4+PiArCWludCByZXQ7Cj4gPj4+PiAgCj4gPj4+PiAtZnJlZToKPiA+Pj4+IC0JaWYgKHJl dCkKPiA+Pj4+ICsJZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9zdGF0ZSA9IGRybV9hdG9taWNf aGVscGVyX3N1c3BlbmQoZGV2KTsKPiA+Pj4+ICsJcmV0ID0gUFRSX0VSUl9PUl9aRVJPKGRldl9w cml2LT5tb2Rlc2V0X3Jlc3RvcmVfc3RhdGUpOwo+ID4+Pj4gKwlpZiAocmV0KSB7Cj4gPj4+PiAg CQlEUk1fRVJST1IoIlN1c3BlbmRpbmcgY3J0YydzIGZhaWxlZCB3aXRoICVpXG4iLCByZXQpOwo+ ID4+Pj4gLQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ID4+Pj4gKwkJZGV2X3ByaXYt Pm1vZGVzZXRfcmVzdG9yZV9zdGF0ZSA9IE5VTEw7Cj4gPj4+PiArCX0KPiA+Pj4gSSB3b3VsZCB1 c2UgYSBsb2NhbCBzdGF0ZSBwb2ludGVyIGFuZCBvbmx5IGFzc2lnbiBpdCB0bwo+ID4+PiBtb2Rl c2V0X3Jlc3RvcmVfc3RhdGUgb25jZSB3ZSBrbm93IGl0J3MgZ29vZC4KPiA+Pj4KPiA+Pj4+ICAJ cmV0dXJuIHJldDsKPiA+Pj4+ICB9Cj4gPj4+PiAgCj4gPj4+PiArCj4gPj4+IFNwdXJpb3VzIG5l d2xpbmUuCj4gPj4+Cj4gPj4+PiAgdm9pZCBpbnRlbF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyKQo+ID4+Pj4gIHsKPiA+Pj4+ICAJc3RydWN0IGludGVsX2VuY29k ZXIgKmludGVsX2VuY29kZXIgPSB0b19pbnRlbF9lbmNvZGVyKGVuY29kZXIpOwo+ID4+Pj4gQEAg LTE1OTA5LDUxICsxNTg3MCw0OSBAQCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gPj4+PiAgCj4gPj4+PiAgdm9pZCBpbnRlbF9kaXNwbGF5X3Jl c3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4+Pj4gIHsKPiA+Pj4+IC0Jc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhkZXYpOwo+ID4+ Pj4gLQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uOwo+ID4+Pj4gLQlzdHJ1Y3QgaW50ZWxf cGxhbmUgKnBsYW5lOwo+ID4+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7Cj4gPj4+PiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9 IGRldl9wcml2LT5tb2Rlc2V0X3Jlc3RvcmVfc3RhdGU7Cj4gPj4+PiArCXN0cnVjdCBkcm1fbW9k ZXNldF9hY3F1aXJlX2N0eCBjdHg7Cj4gPj4+PiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ Pj4+IC0JaW50IHJldDsKPiA+Pj4+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRl Owo+ID4+Pj4gKwlpbnQgcmV0LCBpOwo+ID4+Pj4gKwo+ID4+Pj4gKwlpbnRlbF9tb2Rlc2V0X3Nl dHVwX2h3X3N0YXRlKGRldik7Cj4gPj4+IElzbid0IHNvbWV0aGluZyBpbiB0aGVyZSBnb2luZyB0 byBzY3JlYW0gYWJvdXQgbG9ja2luZz8KPiA+PiBJIHdhcyBob3BpbmcgdG8gZmluZCBvdXQgYnkg cnVubmluZyBpdCB0aHJvdWdoIENJLi4KPiA+Pgo+ID4+IEkgZG9uJ3Qgc2VlIHdoYXQgcG9zc2li bHkgY291bGQgc2NyZWFtIGhvd2V2ZXIsIGZyb20gYSBnbGFuY2UgaXQgc2VlbXMgbm90aGluZyBk ZXBlbmRzIG9uIGl0Lgo+ID4+Pj4gKwlpOTE1X3JlZGlzYWJsZV92Z2EoZGV2KTsKPiA+Pj4+ICsJ ZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9zdGF0ZSA9IE5VTEw7Cj4gPj4+PiAgCj4gPj4+PiAg CWlmICghc3RhdGUpCj4gPj4+PiAgCQlyZXR1cm47Cj4gPj4+PiAgCj4gPj4+PiAtCXN0YXRlLT5h Y3F1aXJlX2N0eCA9IGRldi0+bW9kZV9jb25maWcuYWNxdWlyZV9jdHg7Cj4gPj4+PiAtCj4gPj4+ PiAtCWZvcl9lYWNoX2NydGMoZGV2LCBjcnRjKSB7Cj4gPj4+PiAtCQlzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKmNydGNfc3RhdGUgPQo+ID4+Pj4gLQkJCWRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUo c3RhdGUsIGNydGMpOwo+ID4+Pj4gLQo+ID4+Pj4gLQkJcmV0ID0gUFRSX0VSUl9PUl9aRVJPKGNy dGNfc3RhdGUpOwo+ID4+Pj4gLQkJaWYgKHJldCkKPiA+Pj4+IC0JCQlnb3RvIGVycjsKPiA+Pj4+ ICsJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOwo+ID4+Pj4gKwlzdGF0ZS0+YWNx dWlyZV9jdHggPSAmY3R4Owo+ID4+Pj4gIAo+ID4+Pj4gLQkJLyogZm9yY2UgYSByZXN0b3JlICov Cj4gPj4+PiArCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUs IGkpIHsKPiA+Pj4+ICsJCS8qCj4gPj4+PiArCQkgKiBGb3JjZSByZWNhbGN1bGF0aW9uIGV2ZW4g aWYgd2UgcmVzdG9yZQo+ID4+Pj4gKwkJICogY3VycmVudCBzdGF0ZS4gV2l0aCBmYXN0IG1vZGVz ZXQgdGhpcyBtYXkgbm90IHJlc3VsdAo+ID4+Pj4gKwkJICogaW4gYSBtb2Rlc2V0IHdoZW4gdGhl IHN0YXRlIGlzIGNvbXBhdGlibGUuCj4gPj4+PiArCQkgKi8KPiA+Pj4+ICAJCWNydGNfc3RhdGUt Pm1vZGVfY2hhbmdlZCA9IHRydWU7Cj4gPj4+PiAgCX0KPiA+Pj4gSG1tLiBXaHkgZG8gd2UgbmVl ZCB0byBzZXQgdGhhdCBleGFjdGx5PyBJZiB0aGUgY3VycmVudCBzdGF0ZSBkb2Vzbid0Cj4gPj4+ IG1hdGNoIHRoZSAidG8gYmUgcmVzdG9yZWQiIHN0YXRlLCBzaG91bGRuJ3Qgc29tZXRoaW5nIHNv bWV3aGVyZSBmaWd1cmUKPiA+Pj4gb3V0IHRoYXQgd2UgcmVhbGx5IG5lZWQgYSBtb2Rlc2V0Pwo+ ID4+IFdlIGhhdmUgYSB3aG9sZSBidW5jaCBvZiBodyBzdGF0ZSBmcm9tIHN1c3BlbmQgdGhhdCBt YXkgYmUgZGlmZmVyZW50IGZyb20gdGhlIGh3IHJlYWRvdXQgaW4gcmVzdW1lLiBUaGlzIGlzIG5v dCBoYW5kbGVkIGJ5IHRoZSBjb3JlIGJlY2F1c2UgaXQgZG9lc24ndCBrbm93IGFib3V0IGRyaXZl ciBzcGVjaWZpYyBwbGwncyBldGMuIFNvIHRoYXQncyB3aGF0IHRoZSBtb2RlX2NoYW5nZWQgPSB0 cnVlIGlzIGZvci4gSXQncyBhIGhpbnQgdG8gaW50ZWxfYXRvbWljX2NoZWNrIHRoYXQgbWlnaHQg Z2V0IGRvd25ncmFkZWQgdG8gdXBkYXRlX3BpcGUgaWYgaTkxNS5mYXN0Ym9vdCBpcyB0cnVlIGFu ZCB0aGUgaHcgcmVhZG91dCBhbmQgcmVzdW1lIHN0YXRlcyBhcmUgY29tcGF0aWJsZS4KPiA+IEht bS4gU28gaXQncyBhIGJpdCBvZiBhIHdvcmthcm91bmQgZHVlIHRvIHRoZSBmYWN0IHRoYXQKPiA+ IGludGVsX2F0b21pY19jaGVjaygpIGRvZXNuJ3QgYWN0dWFsbHkgY2hlY2svdXBkYXRlIGV2ZXJ5 dGhpbmcsIGFuZAo+ID4gaW5zdGVhZCB0cmllcyB0byBza2lwIGEgYnVuY2ggb2Ygc3R1ZmYgaWYg dGhlIGNvcmUgZGlkbid0IGRldGVjdCBhbnkKPiA+IG1lYW5pbmdmdWwgY2hhbmdlcz8gSSBndWVz cyB0aGF0IG1ha2VzIHNvbWUgc2Vuc2UgYXMgYW4gb3B0aW1pemF0aW9uLgo+ID4gVGhhdCBpcywg dGhlcmUncyBubyBuZWVkIHRvIGNoZWNrIHN0dWZmIGlmIG5vdGhpbmcgdXNlciB2aXNpYmxlIAo+ ID4gY2hhbmdlZCBhbnl3YXkgYmVjYXVzZSB3ZSBzaG91bGQgYW55d2F5IGVuZCB1cCB3aXRoIHRo ZSBzYW1lIHN0YXRlCj4gPiB0aGF0IHdlIGhhZCBzaG91bGQgd2UgZG8gYSBmdWxsIHJlY29tcHV0 ZS4KPiA+Cj4gSG93IGFib3V0IHRoaXM/IHdpdGggLS1zY2lzc29ycwo+IAo+IC0tLT44LS0tLQo+ IAo+IEluc3RlYWQgb2YgZHVwbGljYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgbm93IHRoYXQgd2Ug bm8gbG9uZ2VyIG5lZWQKPiB0byBwcmVzZXJ2ZSBkcGxsIHN0YXRlIHdlIGNhbiBtb3ZlIHRvIHVz aW5nIHRoZSB1cHN0cmVhbSBzdXNwZW5kIGhlbHBlci4KPiAKPiBDaGFuZ2VzIHNpbmNlIHYxOgo+ IC0gQ2FsbCBodyByZWFkb3V0IHdpdGggYWxsIG11dGV4ZXMgaGVsZC4KPiAtIFJld29yayBpbnRl bF9kaXNwbGF5X3N1c3BlbmQgdG8gb25seSBhc3NpZ24gbW9kZXNldF9yZXN0b3JlX3N0YXRlCj4g ICBvbiBzdWNjZXNzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFy dGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jCj4gaW5kZXggNDQ5MTJlY2ViYzFhLi4yMGU4MjAwOGI4YjYgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKPiBAQCAtNjAzLDEzICs2MDMsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3N1 c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIAlpbnRlbF9zdXNwZW5kX2d0X3Bv d2Vyc2F2ZShkZXYpOwo+ICAKPiAtCS8qCj4gLQkgKiBEaXNhYmxlIENSVENzIGRpcmVjdGx5IHNp bmNlIHdlIHdhbnQgdG8gcHJlc2VydmUgc3cgc3RhdGUKPiAtCSAqIGZvciBfdGhhdy4gQWxzbywg cG93ZXIgZ2F0ZSB0aGUgQ1JUQyBwb3dlciB3ZWxscy4KPiAtCSAqLwo+IC0JZHJtX21vZGVzZXRf bG9ja19hbGwoZGV2KTsKPiAgCWludGVsX2Rpc3BsYXlfc3VzcGVuZChkZXYpOwo+IC0JZHJtX21v ZGVzZXRfdW5sb2NrX2FsbChkZXYpOwo+ICAKPiAgCWludGVsX2RwX21zdF9zdXNwZW5kKGRldik7 Cj4gIAo+IEBAIC03NjQsOSArNzU4LDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9yZXN1bWUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVw KGRldik7Cj4gIAlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gIAo+IC0J ZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKPiAgCWludGVsX2Rpc3BsYXlfcmVzdW1lKGRldik7 Cj4gLQlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7Cj4gIAo+ICAJaW50ZWxfZHBfbXN0X3Jl c3VtZShkZXYpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCAyMGQ5ZGJkOWY5 Y2YuLjY2NDRjMmUzNTRjMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0xODQ4 LDYgKzE4NDgsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gIAo+ICAJZW51bSBtb2Rl c2V0X3Jlc3RvcmUgbW9kZXNldF9yZXN0b3JlOwo+ICAJc3RydWN0IG11dGV4IG1vZGVzZXRfcmVz dG9yZV9sb2NrOwo+ICsJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm1vZGVzZXRfcmVzdG9yZV9z dGF0ZTsKPiAgCj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIHZtX2xpc3Q7IC8qIEdsb2JhbCBsaXN0IG9m IGFsbCBhZGRyZXNzIHNwYWNlcyAqLwo+ICAJc3RydWN0IGk5MTVfZ3R0IGd0dDsgLyogVk0gcmVw cmVzZW50aW5nIHRoZSBnbG9iYWwgYWRkcmVzcyBzcGFjZSAqLwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBpbmRleCBhMThiZDEyOTZjZTguLmVhZmYzMmY1OTk1MyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNjM5Myw1NSArNjM5MywxNiBA QCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9taWMoc3RydWN0IGRybV9jcnRj ICpjcnRjKQo+ICAgKi8KPiAgaW50IGludGVsX2Rpc3BsYXlfc3VzcGVuZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2 LT5tb2RlX2NvbmZpZzsKPiAtCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4ID0g Y29uZmlnLT5hY3F1aXJlX2N0eDsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiAt CXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAtCXVuc2lnbmVkIGNydGNfbWFzayA9IDA7Cj4gLQlp bnQgcmV0ID0gMDsKPiAtCj4gLQlpZiAoV0FSTl9PTighY3R4KSkKPiAtCQlyZXR1cm4gMDsKPiAt Cj4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjdHgtPnd3X2N0eCk7Cj4gLQlzdGF0ZSA9IGRybV9h dG9taWNfc3RhdGVfYWxsb2MoZGV2KTsKPiAtCWlmIChXQVJOX09OKCFzdGF0ZSkpCj4gLQkJcmV0 dXJuIC1FTk9NRU07Cj4gLQo+IC0Jc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4Owo+IC0Jc3RhdGUt PmFsbG93X21vZGVzZXQgPSB0cnVlOwo+IC0KPiAtCWZvcl9lYWNoX2NydGMoZGV2LCBjcnRjKSB7 Cj4gLQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KPiAtCQkJZHJtX2F0b21p Y19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gLQo+IC0JCXJldCA9IFBUUl9FUlJfT1Jf WkVSTyhjcnRjX3N0YXRlKTsKPiAtCQlpZiAocmV0KQo+IC0JCQlnb3RvIGZyZWU7Cj4gLQo+IC0J CWlmICghY3J0Y19zdGF0ZS0+YWN0aXZlKQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJY3J0Y19z dGF0ZS0+YWN0aXZlID0gZmFsc2U7Cj4gLQkJY3J0Y19tYXNrIHw9IDEgPDwgZHJtX2NydGNfaW5k ZXgoY3J0Yyk7Cj4gLQl9Cj4gLQo+IC0JaWYgKGNydGNfbWFzaykgewo+IC0JCXJldCA9IGRybV9h dG9taWNfY29tbWl0KHN0YXRlKTsKPiAtCj4gLQkJaWYgKCFyZXQpIHsKPiAtCQkJZm9yX2VhY2hf Y3J0YyhkZXYsIGNydGMpCj4gLQkJCQlpZiAoY3J0Y19tYXNrICYgKDEgPDwgZHJtX2NydGNfaW5k ZXgoY3J0YykpKQo+IC0JCQkJCWNydGMtPnN0YXRlLT5hY3RpdmUgPSB0cnVlOwo+IC0KPiAtCQkJ cmV0dXJuIHJldDsKPiAtCQl9Cj4gLQl9Cj4gKwlpbnQgcmV0Owo+ICAKPiAtZnJlZToKPiArCXN0 YXRlID0gZHJtX2F0b21pY19oZWxwZXJfc3VzcGVuZChkZXYpOwo+ICsJcmV0ID0gUFRSX0VSUl9P Ul9aRVJPKHN0YXRlKTsKPiAgCWlmIChyZXQpCj4gIAkJRFJNX0VSUk9SKCJTdXNwZW5kaW5nIGNy dGMncyBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKPiAtCWRybV9hdG9taWNfc3RhdGVfZnJlZShz dGF0ZSk7Cj4gKwllbHNlCj4gKwkJZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9zdGF0ZSA9IHN0 YXRlOwo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiBAQCAtMTU5MTQsNTEgKzE1ODc1LDU3IEBA IGludGVsX21vZGVzZXRfc2V0dXBfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg Cj4gIHZvaWQgaW50ZWxfZGlzcGxheV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg ewo+IC0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9h bGxvYyhkZXYpOwo+IC0Jc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubjsKPiAtCXN0cnVjdCBp bnRlbF9wbGFuZSAqcGxhbmU7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUgPSBkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX3N0YXRlOwo+ ICsJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKPiAgCWludCByZXQ7Cj4gKwli b29sIHNldHVwID0gZmFsc2U7Cj4gIAo+IC0JaWYgKCFzdGF0ZSkKPiAtCQlyZXR1cm47Cj4gKwlk ZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX3N0YXRlID0gTlVMTDsKPiAgCj4gLQlzdGF0ZS0+YWNx dWlyZV9jdHggPSBkZXYtPm1vZGVfY29uZmlnLmFjcXVpcmVfY3R4Owo+ICsJZHJtX21vZGVzZXRf YWNxdWlyZV9pbml0KCZjdHgsIDApOwo+ICAKPiAtCWZvcl9lYWNoX2NydGMoZGV2LCBjcnRjKSB7 Cj4gLQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KPiAtCQkJZHJtX2F0b21p Y19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gK3JldHJ5Ogo+ICsJcmV0ID0gZHJtX21v ZGVzZXRfbG9ja19hbGxfY3R4KGRldiwgJmN0eCk7Cj4gIAo+IC0JCXJldCA9IFBUUl9FUlJfT1Jf WkVSTyhjcnRjX3N0YXRlKTsKPiAtCQlpZiAocmV0KQo+IC0JCQlnb3RvIGVycjsKPiArCWlmIChy ZXQgPT0gMCAmJiAhc2V0dXApIHsKCkkgZGlkbid0IGNvbnNpZGVyIHRoaXMgYXNwZWN0IHdoZW4g SSBzdWdnZXN0ZWQgdGhlIGlkZWEgb2YgZG9pbmcgdGhlCnJlYWRvdXQgd2l0aCB0aGUgbG9ja3Mg aGVsZC4gQSBiaXQgdWdseSwgYnV0IEkgc3VwcG9zZSB0aGVyZSdzIG5vIHJlYWxseQpuZWF0IHdh eSB0byBnbyBhYm91dCBpdC4KCldlbGwsIGluIHByYWN0aWNlIHdlIHNob3VsZG4ndCBnZXQgRURF QURMSyBmcm9tIGFueXdoZXJlIGFmdGVyCmRybV9tb2Rlc2V0X2xvY2tfYWxsX2N0eCgpIHNvIHdl IGNvdWxkIGF2b2lkIHRoZSAhc2V0dXAgcGFydCBwZXJoYXBzLApidXQgdGhlbiBpdCdzIGdvaW5n IHRvIGxvb2sgbGlrZSBubyBvdGhlciBhdG9taWMgY29tbWl0IHBhdGggd2hpY2ggbWlnaHQKYmUg d29yc2UuCgo+ICsJCXNldHVwID0gdHJ1ZTsKPiAgCj4gLQkJLyogZm9yY2UgYSByZXN0b3JlICov Cj4gLQkJY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKPiArCQlpbnRlbF9tb2Rlc2V0 X3NldHVwX2h3X3N0YXRlKGRldik7Cj4gKwkJaTkxNV9yZWRpc2FibGVfdmdhKGRldik7Cj4gIAl9 Cj4gIAo+IC0JZm9yX2VhY2hfaW50ZWxfcGxhbmUoZGV2LCBwbGFuZSkgewo+IC0JCXJldCA9IFBU Ul9FUlJfT1JfWkVSTyhkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgJnBsYW5lLT5i YXNlKSk7Cj4gLQkJaWYgKHJldCkKPiAtCQkJZ290byBlcnI7Cj4gLQl9Cj4gKwlpZiAocmV0ID09 IDAgJiYgc3RhdGUpIHsKCkFub3RoZXIgYSBiaXQgdWdseSB0aGluZy4gQnV0IHllYWggd2UgZG8g d2FudCB0byBjaGVjayB0aGUgTlVMTCBzdGF0ZQphbnl3YXksIHNvIHNlZW1zIGxpa2UgdGhpcyBp cyB0aGUgZWFzaWVzdCB3YXkuCgpTbyB5ZWFoLCBJIHRoaW5rIGl0IGxvb2tzIGFsbCByaWdodCAo YXBhcnQgZnJvbSBkaWZmIGhhdmluZyBnZW5lcmF0ZWQKYSBuYXN0eSBoYWlyYmFsbCBpbnN0ZWFk IG9mIHNvbWV0aGluZyB5b3UgY2FuIHJlYWQgZWFzaWx5KSwgc28KUmV2aWV3ZWQtYnk6IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cgo+ICsJCXN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiArCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4g KwkJaW50IGk7Cj4gIAo+IC0JZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yKGRldiwgY29ubikgewo+ IC0JCXJldCA9IFBUUl9FUlJfT1JfWkVSTyhkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUo c3RhdGUsICZjb25uLT5iYXNlKSk7Cj4gLQkJaWYgKHJldCkKPiAtCQkJZ290byBlcnI7Cj4gKwkJ c3RhdGUtPmFjcXVpcmVfY3R4ID0gJmN0eDsKPiArCj4gKwkJZm9yX2VhY2hfY3J0Y19pbl9zdGF0 ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ICsJCQkvKgo+ICsJCQkgKiBGb3JjZSBy ZWNhbGN1bGF0aW9uIGV2ZW4gaWYgd2UgcmVzdG9yZQo+ICsJCQkgKiBjdXJyZW50IHN0YXRlLiBX aXRoIGZhc3QgbW9kZXNldCB0aGlzIG1heSBub3QgcmVzdWx0Cj4gKwkJCSAqIGluIGEgbW9kZXNl dCB3aGVuIHRoZSBzdGF0ZSBpcyBjb21wYXRpYmxlLgo+ICsJCQkgKi8KPiArCQkJY3J0Y19zdGF0 ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKPiArCQl9Cj4gKwo+ICsJCXJldCA9IGRybV9hdG9taWNf Y29tbWl0KHN0YXRlKTsKPiAgCX0KPiAgCj4gLQlpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRl KGRldik7Cj4gKwlpZiAocmV0ID09IC1FREVBRExLKSB7Cj4gKwkJZHJtX21vZGVzZXRfYmFja29m ZigmY3R4KTsKPiArCQlnb3RvIHJldHJ5Owo+ICsJfQo+ICAKPiAtCWk5MTVfcmVkaXNhYmxlX3Zn YShkZXYpOwo+IC0JcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwo+IC0JaWYgKCFyZXQp Cj4gLQkJcmV0dXJuOwo+ICsJZHJtX21vZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKPiArCWRybV9t b2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsKPiAgCj4gLWVycjoKPiAtCURSTV9FUlJPUigiUmVz dG9yaW5nIG9sZCBzdGF0ZSBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKPiAtCWRybV9hdG9taWNf c3RhdGVfZnJlZShzdGF0ZSk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0VSUk9SKCJSZXN0b3Jp bmcgb2xkIHN0YXRlIGZhaWxlZCB3aXRoICVpXG4iLCByZXQpOwo+ICsJCWRybV9hdG9taWNfc3Rh dGVfZnJlZShzdGF0ZSk7Cj4gKwl9Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfbW9kZXNldF9nZW1f aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBP VEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==