From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/5] drm/i915: Add sys PSR toggle interface Date: Thu, 14 Apr 2016 10:58:40 +0300 Message-ID: <87twj4r58v.fsf@intel.com> References: <1460488728-23319-1-git-send-email-alexandra.yates@linux.intel.com> <1460488728-23319-2-git-send-email-alexandra.yates@linux.intel.com> <1460553974.8441.22.camel@intel.com> <1460580255.7829.110.camel@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 CDF696E9F2 for ; Thu, 14 Apr 2016 07:58:43 +0000 (UTC) In-Reply-To: <1460580255.7829.110.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Vivi, Rodrigo" , "intel-gfx@lists.freedesktop.org" , "alexandra.yates@linux.intel.com" , "Konno, Joe" , "Zanoni, Paulo R" , "Swaminathan, Nivedita" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAxMyBBcHIgMjAxNiwgIlZpdmksIFJvZHJpZ28iIDxyb2RyaWdvLnZpdmlAaW50ZWwu Y29tPiB3cm90ZToKPiBPbiBXZWQsIDIwMTYtMDQtMTMgYXQgMTM6MjYgKzAwMDAsIFphbm9uaSwg UGF1bG8gUiB3cm90ZToKPj4gRW0gVGVyLCAyMDE2LTA0LTEyIMOgcyAxMjoxOCAtMDcwMCwgQWxl eGFuZHJhIFlhdGVzIGVzY3JldmV1Ogo+PiA+IFRoaXMgaW50ZXJmYWNlIGFsbG93cyBhbiBpbW1l ZGlhdGUgZW5hYmxpbmcgb2YgUFNSIGZlYXR1cmUuIFdoYXQKPj4gPiBhbGxvdyB1cwo+PiA+IHRv IHNlZSBpbW1lZGlhdGVseSB0aGUgUFNSIHNhdmluZ3MgYW5kIHdpbGwgYWxsb3cgdXMgdG8gZXhw b3NlIHRoaXMKPj4gPiB0aHJvdWdoIHN5c2ZzIGludGVyZmFjZSBmb3IgcG93ZXJ0b3AgdG8gbGV2 ZXJhZ2UgaXRzIGZ1bmN0aW9uYWxpdHkuCj4+ID4gCj4+ID4gU2lnbmVkLW9mZi1ieTogQWxleGFu ZHJhIFlhdGVzIDxhbGV4YW5kcmEueWF0ZXNAbGludXguaW50ZWwuY29tPgo+PiA+IC0tLQo+PiA+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgfCAgMSArCj4+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYyB8IDc5Cj4+ID4gKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5j ICB8ICA2ICsrLQo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgfCAxMSAr KysrLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggIHwgIDQgKy0KPj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgIHwgMzYgKysrKysrKysrKysrKyst LS0tCj4+ID4gIDYgZmlsZXMgY2hhbmdlZCwgMTIyIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9u cygtKQo+PiA+IAo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ID4gaW5kZXggZjVj OTFiMC4uYzk2ZGE0ZCAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiA+IEBA IC05NzYsNiArOTc2LDcgQEAgc3RydWN0IGk5MTVfcHNyIHsKPj4gPiAgCWJvb2wgcHNyMl9zdXBw b3J0Owo+PiA+ICAJYm9vbCBhdXhfZnJhbWVfc3luYzsKPj4gPiAgCWJvb2wgbGlua19zdGFuZGJ5 Owo+PiA+ICsJYm9vbCBzeXNmc19zZXQ7Cj4+ID4gIH07Cj4+ID4gIAo+PiA+ICBlbnVtIGludGVs X3BjaCB7Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMu Ywo+PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCj4+ID4gaW5kZXggMmQ1 NzZiNy4uMjA4YzZlYyAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3N5c2ZzLmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMKPj4g PiBAQCAtMTA2LDEyICsxMDYsODQgQEAgc2hvd19tZWRpYV9yYzZfbXMoc3RydWN0IGRldmljZSAq a2Rldiwgc3RydWN0Cj4+ID4gZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQo+PiA+ ICAJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXVcbiIsIHJjNl9yZXNpZGVuY3kp Owo+PiA+ICB9Cj4+ID4gIAo+PiA+ICtzdGF0aWMgc3NpemVfdAo+PiA+ICtzaG93X3BzcihzdHJ1 Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhcgo+PiA+ ICpidWYpCj4+ID4gK3sKPj4gPiArCXN0cnVjdCBkcm1fbWlub3IgKmRtaW5vciA9IGRldl90b19k cm1fbWlub3Ioa2Rldik7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZG1pbm9yLT5k ZXY7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwo+PiA+ICsJc3NpemVfdCByZXQ7Cj4+ID4gKwo+PiA+ICsJbXV0ZXhfbG9jaygmZGV2 X3ByaXYtPnBzci5sb2NrKTsKPj4gPiArCXJldCA9IHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAi JXNcbiIsIGRldl9wcml2Cj4+ID4gLT5wc3IuZW5hYmxlZCAKPj4gPiA/Cj4+ID4gKwkJCSJlbmFi bGVkIjoiZGlzYWJsZWQiKTsKPj4gPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBzci5sb2Nr KTsKPj4gPiArCXJldHVybiByZXQ7Cj4+ID4gK30KPj4gPiArCj4+ID4gK3N0YXRpYyBzc2l6ZV90 Cj4+ID4gK3RvZ2dsZV9wc3Ioc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsCj4+ID4gKwljb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKPj4gPiAr ewo+PiA+ICsJc3RydWN0IGRybV9taW5vciAqZG1pbm9yID0gZGV2X3RvX2RybV9taW5vcihrZGV2 KTsKPj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkbWlub3ItPmRldjsKPj4gPiArCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPj4gPiArCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyOwo+PiA+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSBOVUxMOwo+PiA+ ICsJdTMyIHZhbDsKPj4gPiArCXNzaXplX3QgcmV0Owo+PiA+ICsJc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCA9IE5VTEw7Cj4+ID4gKwlib29sIHN5c2ZzX3NldCA9IHRydWU7Cj4+ID4gKwo+PiA+ ICsJcmV0ID0ga3N0cnRvdTMyKGJ1ZiwgMCwgJnZhbCk7Cj4+ID4gKwlpZiAocmV0KQo+PiA+ICsJ CXJldHVybiByZXQ7Cj4+ID4gKwo+PiA+ICsJZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yKGRldiwg Y29ubmVjdG9yKSB7Cj4+ID4gKwkJaWYgKCFjb25uZWN0b3ItPmJhc2UuZW5jb2RlcikKPj4gPiAr CQkJY29udGludWU7Cj4+ID4gKwkJZW5jb2RlciA9IHRvX2ludGVsX2VuY29kZXIoY29ubmVjdG9y Cj4+ID4gLT5iYXNlLmVuY29kZXIpOwo+PiA+ICsJCWNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29k ZXItPmJhc2UuY3J0Yyk7Cj4+ID4gKwkJaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29k ZXItPmJhc2UpOwo+PiA+ICsJfQo+PiAKPj4gU2FtZSBwcm9ibGVtIGhlcmU6IG5vIGd1YXJhbnRl ZSB0aGF0IHRoZSBlbmNvZGVyIGlzIERQLCBub3IgdGhhdCBpdAo+PiBzdXBwb3J0cyBQU1IsIG5v ciB0aGF0IGl0IGlzIGVuYWJsZWQgYW5kIGhhcyBhIG1vZGUgc2V0Lgo+Cj4gSSBhZ3JlZS4gQWxz byB3ZSBoYXZlIGFuIGlzc3VlIHdpdGggbmV3IHBsYXRmb3JtcyBpZiB3ZSBlbmQgdXAgaGF2aW5n Cj4gYW55IGxhcHRvcCB3aXRoIDIgZURQcyBzdXBwb3J0aW5nIFBTUiB0aGluZ3MgY291bGQgZ2V0 IGNyYXp5Lgo+Cj4gU28gd2UgY291bGQgYWN0dWFsbHkgY3JlYXRlIGEgCj4gc3RydWN0IGludGVs X2RwICplZHBfd2l0aF9wc3Jfc3VwcG9ydDsgaW5zaWRlIHBzciBzdHJ1Y3R1cmUgdGhhdCB3ZSBz ZXQKPiBpbiB0aGUgbW9tZW50IHdlIGZpbmQgdGhlIGZpcnN0IGVEUCBwYW5lbCB0aGF0IHN1cHBv cnRzIFBTUgo+IGFuZCBjaGFuZ2UgdGhlIGVuYWJsZWQgZnJvbSBpbnRlbF9kcCBwb2ludGVyIHRv IGEgYm9vbGVhbi4KCkl0IHNlZW1zIHRvIG1lIGF0IHRoYXQgcG9pbnQgdGhlIHNhbmUgdGhpbmcg dG8gZG8gaXMgdG8gbW92ZSBhbGwKc2luay9lbmNvZGVyIHNwZWNpZmljIHN0dWZmIHRvIHN0cnVj dCBpbnRlbF9kcCwgYW5kIG9ubHkgbGVhdmUgY29tbW9uCnNvdXJjZSBzcGVjaWZpYyBzdHVmZiB0 byBkZXZfcHJpdi0+cHNyLgoKSXQgbWlnaHQgbWFrZSBzZW5zZSB0byBtb3ZlIHRvd2FyZHMgdGhh dCBkaXJlY3Rpb24gYWxyZWFkeSBub3csIGxpa2UKd2UndmUgZG9uZSBmb3IgYWxsIGJhY2tsaWdo dCByZWxhdGVkIHN0dWZmLiBBbGwgdGhlIGJhY2tsaWdodCBzdHVmZiBpcwp1bmRlciBjb25uZWN0 b3ItPnBhbmVsIGV2ZW4gdGhvdWdoIHdlIGdsb2JhbGx5IG9ubHkgc3VwcG9ydCBvbmUKY29ubmVj dG9yIHdpdGggYmFja2xpZ2h0LgoKQlIsCkphbmkuCgo+Cj4+IAo+PiA+ICsKPj4gPiArCWlmICgh Y3J0YykKPj4gPiArCQlyZXR1cm4gLUVOT0RFVjsKPj4gPiArCXN3aXRjaCAodmFsKSB7Cj4+ID4g KwljYXNlIDA6Cj4+ID4gKwkJcmV0ID0gaW50ZWxfcHNyX2Rpc2FibGUoaW50ZWxfZHAsIHN5c2Zz X3NldCk7Cj4+ID4gKwkJaWYgKHJldCkKPj4gPiArCQkJcmV0dXJuIHJldDsKPj4gPiArCQlicmVh azsKPj4gPiArCWNhc2UgMToKPj4gPiArCQlyZXQgPSBpbnRlbF9wc3JfZW5hYmxlKGludGVsX2Rw LCBzeXNmc19zZXQpOwo+PiA+ICsJCWlmIChyZXQpCj4+ID4gKwkJCXJldHVybiByZXQ7Cj4+ID4g KwkJYnJlYWs7Cj4+ID4gKwlkZWZhdWx0Ogo+PiA+ICsJCXJldHVybiAtRUlOVkFMOwo+PiA+ICsK Pj4gPiArCX0KPj4gPiArCXJldHVybiBjb3VudDsKPj4gPiArfQo+PiA+ICsKPj4gPiArc3RhdGlj IERFVklDRV9BVFRSKHBzcl9lbmFibGUsIFNfSVJVR08gfCBTX0lXVVNSLCBzaG93X3BzciwKPj4g PiB0b2dnbGVfcHNyKTsKPj4gPiAgc3RhdGljIERFVklDRV9BVFRSKHJjNl9lbmFibGUsIFNfSVJV R08sIHNob3dfcmM2X21hc2ssIE5VTEwpOwo+PiA+ICBzdGF0aWMgREVWSUNFX0FUVFIocmM2X3Jl c2lkZW5jeV9tcywgU19JUlVHTywgc2hvd19yYzZfbXMsIE5VTEwpOwo+PiA+ICBzdGF0aWMgREVW SUNFX0FUVFIocmM2cF9yZXNpZGVuY3lfbXMsIFNfSVJVR08sIHNob3dfcmM2cF9tcywKPj4gPiBO VUxMKTsKPj4gPiAgc3RhdGljIERFVklDRV9BVFRSKHJjNnBwX3Jlc2lkZW5jeV9tcywgU19JUlVH Tywgc2hvd19yYzZwcF9tcywKPj4gPiBOVUxMKTsKPj4gPiAgc3RhdGljIERFVklDRV9BVFRSKG1l ZGlhX3JjNl9yZXNpZGVuY3lfbXMsIFNfSVJVR08sCj4+ID4gc2hvd19tZWRpYV9yYzZfbXMsIE5V TEwpOwo+PiA+ICAKPj4gPiArc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnBzcl9hdHRyc1tdID0g ewo+PiA+ICsJJmRldl9hdHRyX3Bzcl9lbmFibGUuYXR0ciwKPj4gPiArCU5VTEwKPj4gPiArfTsK Pj4gPiArCj4+ID4gK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHBzcl9hdHRyX2dyb3Vw ID0gewo+PiA+ICsJLm5hbWUgPSBwb3dlcl9ncm91cF9uYW1lLAo+PiA+ICsJLmF0dHJzID0gcHNy X2F0dHJzCj4+ID4gK307Cj4+ID4gKwo+PiA+ICBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqcmM2 X2F0dHJzW10gPSB7Cj4+ID4gIAkmZGV2X2F0dHJfcmM2X2VuYWJsZS5hdHRyLAo+PiA+ICAJJmRl dl9hdHRyX3JjNl9yZXNpZGVuY3lfbXMuYXR0ciwKPj4gPiBAQCAtNTk2LDYgKzY2OCwxMiBAQCB2 b2lkIGk5MTVfc2V0dXBfc3lzZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gPiAgCWludCBy ZXQ7Cj4+ID4gIAo+PiA+ICAjaWZkZWYgQ09ORklHX1BNCj4+ID4gKwlpZiAoSEFTX1BTUihkZXYp KSB7Cj4+ID4gKwkJcmV0ID0gc3lzZnNfbWVyZ2VfZ3JvdXAoJmRldi0+cHJpbWFyeS0+a2Rldi0+ a29iaiwKPj4gPiArCQkJCQkmcHNyX2F0dHJfZ3JvdXApOwo+PiA+ICsJCWlmIChyZXQpCj4+ID4g KwkJCURSTV9FUlJPUigiUFNSIHN5c2ZzIHNldHVwIGZhaWxlZFxuIik7Cj4+ID4gKwl9Cj4+ID4g IAlpZiAoSEFTX1JDNihkZXYpKSB7Cj4+ID4gIAkJcmV0ID0gc3lzZnNfbWVyZ2VfZ3JvdXAoJmRl di0+cHJpbWFyeS0+a2Rldi0+a29iaiwKPj4gPiAgCQkJCQkmcmM2X2F0dHJfZ3JvdXApOwo+PiA+ IEBAIC02NTIsNiArNzMwLDcgQEAgdm9pZCBpOTE1X3RlYXJkb3duX3N5c2ZzKHN0cnVjdCBkcm1f ZGV2aWNlCj4+ID4gKmRldikKPj4gPiAgCWRldmljZV9yZW1vdmVfYmluX2ZpbGUoZGV2LT5wcmlt YXJ5LT5rZGV2LCAgJmRwZl9hdHRyc18xKTsKPj4gPiAgCWRldmljZV9yZW1vdmVfYmluX2ZpbGUo ZGV2LT5wcmltYXJ5LT5rZGV2LCAgJmRwZl9hdHRycyk7Cj4+ID4gICNpZmRlZiBDT05GSUdfUE0K Pj4gPiArCXN5c2ZzX3VubWVyZ2VfZ3JvdXAoJmRldi0+cHJpbWFyeS0+a2Rldi0+a29iaiwKPj4g PiAmcHNyX2F0dHJfZ3JvdXApOwo+PiA+ICAJc3lzZnNfdW5tZXJnZV9ncm91cCgmZGV2LT5wcmlt YXJ5LT5rZGV2LT5rb2JqLAo+PiA+ICZyYzZfYXR0cl9ncm91cCk7Cj4+ID4gIAlzeXNmc191bm1l cmdlX2dyb3VwKCZkZXYtPnByaW1hcnktPmtkZXYtPmtvYmosCj4+ID4gJnJjNnBfYXR0cl9ncm91 cCk7Cj4+ID4gICNlbmRpZgo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gPiBp bmRleCA5MjFlZGYxLi44ZTM4NGU1IDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMKPj4gPiBAQCAtMTY4OSw3ICsxNjg5LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2Rk aShzdHJ1Y3QKPj4gPiBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+PiA+ICAJCQlpbnRl bF9kcF9zdG9wX2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+PiA+ICAKPj4gPiAgCQlpbnRlbF9lZHBf YmFja2xpZ2h0X29uKGludGVsX2RwKTsKPj4gPiAtCQlpbnRlbF9wc3JfZW5hYmxlKGludGVsX2Rw KTsKPj4gPiArCQlpZiAoZGV2X3ByaXYtPnBzci5zeXNmc19zZXQgIT0gdHJ1ZSkKPj4gPiArCQkJ aW50ZWxfcHNyX2VuYWJsZShpbnRlbF9kcCwgZGV2X3ByaXYtCj4+ID4gPiBwc3Iuc3lzZnNfc2V0 KTsKPj4gPiAgCQlpbnRlbF9lZHBfZHJyc19lbmFibGUoaW50ZWxfZHApOwo+PiA+ICAJfQo+PiA+ ICAKPj4gPiBAQCAtMTcxNyw3ICsxNzE4LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9k ZGkoc3RydWN0Cj4+ID4gaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPj4gPiAgCQlzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwID0KPj4gPiBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7Cj4+ ID4gIAo+PiA+ICAJCWludGVsX2VkcF9kcnJzX2Rpc2FibGUoaW50ZWxfZHApOwo+PiA+IC0JCWlu dGVsX3Bzcl9kaXNhYmxlKGludGVsX2RwKTsKPj4gPiArCQlpZiAoZGV2X3ByaXYtPnBzci5zeXNm c19zZXQgIT0gdHJ1ZSkKPj4gPiArCQkJaW50ZWxfcHNyX2Rpc2FibGUoaW50ZWxfZHAsIGRldl9w cml2LQo+PiA+ID4gcHNyLnN5c2ZzX3NldCk7Cj4+ID4gIAkJaW50ZWxfZWRwX2JhY2tsaWdodF9v ZmYoaW50ZWxfZHApOwo+PiA+ICAJfQo+PiA+ICB9Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKPj4gPiBpbmRleCA3NTIzNTU4Li4xODNhNjBhIDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCj4+ID4gQEAgLTI0MjEsMTMgKzI0MjEsMTYgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZGlzYWJsZV9kcChzdHJ1Y3QKPj4gPiBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+PiA+ICB7 Cj4+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNv ZGVyCj4+ID4gLT5iYXNlKTsKPj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVy LT5iYXNlLmRldjsKPj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7Cj4+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoZW5jb2Rlcgo+PiA+IC0+YmFzZS5jcnRjKTsKPj4gPiAgCj4+ID4gIAlpZiAoY3J0Yy0+ Y29uZmlnLT5oYXNfYXVkaW8pCj4+ID4gIAkJaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShlbmNv ZGVyKTsKPj4gPiAgCj4+ID4gLQlpZiAoSEFTX1BTUihkZXYpICYmICFIQVNfRERJKGRldikpCj4+ ID4gLQkJaW50ZWxfcHNyX2Rpc2FibGUoaW50ZWxfZHApOwo+PiA+ICsJaWYgKEhBU19QU1IoZGV2 KSAmJiAhSEFTX0RESShkZXYpKSB7Cj4+ID4gKwkJaWYgKGRldl9wcml2LT5wc3Iuc3lzZnNfc2V0 ICE9IHRydWUpCj4+ID4gKwkJCWludGVsX3Bzcl9kaXNhYmxlKGludGVsX2RwLCBkZXZfcHJpdi0K Pj4gPiA+IHBzci5zeXNmc19zZXQpOwo+PiA+ICsJfQo+PiA+ICAKPj4gPiAgCS8qIE1ha2Ugc3Vy ZSB0aGUgcGFuZWwgaXMgb2ZmIGJlZm9yZSB0cnlpbmcgdG8gY2hhbmdlIHRoZQo+PiA+IG1vZGUu IEJ1dCBhbHNvCj4+ID4gIAkgKiBlbnN1cmUgdGhhdCB3ZSBoYXZlIHZkZCB3aGlsZSB3ZSBzd2l0 Y2ggb2ZmIHRoZSBwYW5lbC4KPj4gPiAqLwo+PiA+IEBAIC0yNjg5LDkgKzI2OTIsMTEgQEAgc3Rh dGljIHZvaWQgZzR4X2VuYWJsZV9kcChzdHJ1Y3QKPj4gPiBpbnRlbF9lbmNvZGVyCj4+ID4gKmVu Y29kZXIpCj4+ID4gIHN0YXRpYyB2b2lkIHZsdl9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCj4+ID4gIHsKPj4gPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAoJmVuY29kZXIKPj4gPiAtPmJhc2UpOwo+PiA+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLQo+PiA+ID4gYmFzZS5kZXYp Owo+PiA+ICAKPj4gPiAgCWludGVsX2VkcF9iYWNrbGlnaHRfb24oaW50ZWxfZHApOwo+PiA+IC0J aW50ZWxfcHNyX2VuYWJsZShpbnRlbF9kcCk7Cj4+ID4gKwlpZiAoZGV2X3ByaXYtPnBzci5zeXNm c19zZXQgIT0gdHJ1ZSkKPj4gPiArCQlpbnRlbF9wc3JfZW5hYmxlKGludGVsX2RwLCBkZXZfcHJp dgo+PiA+IC0+cHNyLnN5c2ZzX3NldCk7Cj4+ID4gIH0KPj4gPiAgCj4+ID4gIHN0YXRpYyB2b2lk IGc0eF9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+PiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiA+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gPiBpbmRleCBlMGZjZmExLi4xOTllOGNjIDEw MDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gPiBAQCAtMTQ0Niw4ICsxNDQ2 LDggQEAgdm9pZCBpbnRlbF9iYWNrbGlnaHRfdW5yZWdpc3RlcihzdHJ1Y3QKPj4gPiBkcm1fZGV2 aWNlICpkZXYpOwo+PiA+ICAKPj4gPiAgCj4+ID4gIC8qIGludGVsX3Bzci5jICovCj4+ID4gLXZv aWQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPj4gPiAtdm9p ZCBpbnRlbF9wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPj4gPiAraW50 IGludGVsX3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgYm9vbCBzeXNmc19z ZXQpOwo+PiA+ICtpbnQgaW50ZWxfcHNyX2Rpc2FibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwgYm9vbCBzeXNmc19zZXQpOwo+PiA+ICB2b2lkIGludGVsX3Bzcl9pbnZhbGlkYXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4+ID4gIAkJCSAgdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cyk7 Cj4+ID4gIHZvaWQgaW50ZWxfcHNyX2ZsdXNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4+ID4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+PiA+IGluZGV4IGMzYWJhZTQuLjY0Y2I3MTQg MTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+PiA+IEBAIC0zNzgsMzQgKzM3 OCw0MyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfYWN0aXZhdGUoc3RydWN0Cj4+ID4gaW50ZWxf ZHAKPj4gPiAqaW50ZWxfZHApCj4+ID4gIC8qKgo+PiA+ICAgKiBpbnRlbF9wc3JfZW5hYmxlIC0g RW5hYmxlIFBTUgo+PiA+ICAgKiBAaW50ZWxfZHA6IEludGVsIERQCj4+ID4gKyAqIEBzeXNmc19z ZXQ6IElkZW50aWZpZXMgaWYgdGhpcyBmZWF0dXJlIGlzIHNldCBmcm9tIHN5c2ZzCj4+ID4gICAq Cj4+ID4gICAqIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgY2FsbGVkIGFmdGVyIHRoZSBwaXBl IGlzIGZ1bGx5Cj4+ID4gdHJhaW5lZAo+PiA+IGFuZCBlbmFibGVkLgo+PiA+ICsgKgo+PiA+ICsg KiBSZXR1cm5zOgo+PiA+ICsgKiAwIG9uIHN1Y2Nlc3MgYW5kIC1lcnJubyBvdGhlcndpc2UuCj4+ ID4gICAqLwo+PiA+IC12b2lkIGludGVsX3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKPj4gPiAraW50IGludGVsX3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwgYm9vbCBzeXNmc19zZXQpCj4+ID4gIHsKPj4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0ID0KPj4gPiBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4+ID4g IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7 Cj4+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+PiA+ICAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGludGVs X2RpZ19wb3J0LQo+PiA+ID4gYmFzZS5iYXNlLmNydGMpOwo+PiA+ICsJaW50IHJldCA9IDA7Cj4+ ID4gKwo+PiA+ICAKPj4gPiAgCWlmICghSEFTX1BTUihkZXYpKSB7Cj4+ID4gIAkJRFJNX0RFQlVH X0tNUygiUFNSIG5vdCBzdXBwb3J0ZWQgb24gdGhpcwo+PiA+IHBsYXRmb3JtXG4iKTsKPj4gPiAt CQlyZXR1cm47Cj4+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+ID4gIAl9Cj4+ID4gIAo+PiA+ICAJ aWYgKCFpc19lZHBfcHNyKGludGVsX2RwKSkgewo+PiA+ICAJCURSTV9ERUJVR19LTVMoIlBTUiBu b3Qgc3VwcG9ydGVkIGJ5IHRoaXMKPj4gPiBwYW5lbFxuIik7Cj4+ID4gLQkJcmV0dXJuOwo+PiA+ ICsJCXJldHVybiAtRUlOVkFMOwo+PiA+ICAJfQo+PiA+ICAKPj4gPiAgCW11dGV4X2xvY2soJmRl dl9wcml2LT5wc3IubG9jayk7Cj4+ID4gIAlpZiAoZGV2X3ByaXYtPnBzci5lbmFibGVkKSB7Cj4+ ID4gIAkJRFJNX0RFQlVHX0tNUygiUFNSIGFscmVhZHkgaW4gdXNlXG4iKTsKPj4gPiArCQlyZXQg PSAtRUFMUkVBRFk7Cj4+ID4gIAkJZ290byB1bmxvY2s7Cj4+ID4gIAl9Cj4+ID4gIAo+PiA+IC0J aWYgKCFpbnRlbF9wc3JfbWF0Y2hfY29uZGl0aW9ucyhpbnRlbF9kcCkpCj4+ID4gKwlpZiAoIWlu dGVsX3Bzcl9tYXRjaF9jb25kaXRpb25zKGludGVsX2RwKSkgewo+PiA+ICsJCXJldCA9IC1FTk9U VFk7Cj4+ID4gIAkJZ290byB1bmxvY2s7Cj4+ID4gKwl9Cj4+ID4gIAo+PiA+ICAJZGV2X3ByaXYt PnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMgPSAwOwo+PiA+ICAKPj4gPiBAQCAtNDY0LDggKzQ3 MywxMiBAQCB2b2lkIGludGVsX3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwCj4+ID4gKmludGVs X2RwKQo+PiA+ICAJCQkJICAgICAgbXNlY3NfdG9famlmZmllcyhpbnRlbF9kcC0KPj4gPiA+IHBh bmVsX3Bvd2VyX2N5Y2xlX2RlbGF5ICogNSkpOwo+PiA+ICAKPj4gPiAgCWRldl9wcml2LT5wc3Iu ZW5hYmxlZCA9IGludGVsX2RwOwo+PiA+ICsJaWYgKHN5c2ZzX3NldCkKPj4gPiArCQlkZXZfcHJp di0+cHNyLnN5c2ZzX3NldCA9IHN5c2ZzX3NldDsKPj4gPiArCj4+ID4gIHVubG9jazoKPj4gPiAg CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBzci5sb2NrKTsKPj4gPiArCXJldHVybiByZXQ7Cj4+ ID4gIH0KPj4gPiAgCj4+ID4gIHN0YXRpYyB2b2lkIHZsdl9wc3JfZGlzYWJsZShzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQo+PiA+IEBAIC01MjAsMTAgKzUzMywxMSBAQCBzdGF0aWMgdm9pZCBo c3dfcHNyX2Rpc2FibGUoc3RydWN0IGludGVsX2RwCj4+ID4gKmludGVsX2RwKQo+PiA+ICAvKioK Pj4gPiAgICogaW50ZWxfcHNyX2Rpc2FibGUgLSBEaXNhYmxlIFBTUgo+PiA+ICAgKiBAaW50ZWxf ZHA6IEludGVsIERQCj4+ID4gKyAqIEBzeXNmc19zZXQ6IElkZW50aWZpZXMgaWYgdGhpcyBmZWF0 dXJlIGlzIHNldCBmcm9tIHN5c2ZzCj4+ID4gICAqCj4+ID4gICAqIFRoaXMgZnVuY3Rpb24gbmVl ZHMgdG8gYmUgY2FsbGVkIGJlZm9yZSBkaXNhYmxpbmcgcGlwZS4KPj4gPiAgICovCj4+ID4gLXZv aWQgaW50ZWxfcHNyX2Rpc2FibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPj4gPiAraW50 IGludGVsX3Bzcl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgc3lzZnNf c2V0KQo+PiA+ICB7Cj4+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9Cj4+ID4gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+PiA+ICAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+PiA+IEBAIC01MzIs NyArNTQ2LDcgQEAgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZHAKPj4gPiAq aW50ZWxfZHApCj4+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+PiA+ICAJ aWYgKCFkZXZfcHJpdi0+cHNyLmVuYWJsZWQpIHsKPj4gPiAgCQltdXRleF91bmxvY2soJmRldl9w cml2LT5wc3IubG9jayk7Cj4+ID4gLQkJcmV0dXJuOwo+PiA+ICsJCXJldHVybiAtRUFMUkVBRFk7 Cj4+ID4gIAl9Cj4+ID4gIAo+PiA+ICAJLyogRGlzYWJsZSBQU1Igb24gU291cmNlICovCj4+ID4g QEAgLTU0NSw5ICs1NTksMTMgQEAgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxf ZHAKPj4gPiAqaW50ZWxfZHApCj4+ID4gIAlkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5h dXgsIERQX1BTUl9FTl9DRkcsIDApOwo+PiA+ICAKPj4gPiAgCWRldl9wcml2LT5wc3IuZW5hYmxl ZCA9IE5VTEw7Cj4+ID4gKwlpZiAoc3lzZnNfc2V0KQo+PiA+ICsJCWRldl9wcml2LT5wc3Iuc3lz ZnNfc2V0ID0gc3lzZnNfc2V0Owo+PiA+ICsKPj4gPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PnBzci5sb2NrKTsKPj4gPiAgCj4+ID4gIAljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmRldl9w cml2LT5wc3Iud29yayk7Cj4+ID4gKwlyZXR1cm4gMDsKPj4gPiAgfQo+PiA+ICAKPj4gPiAgc3Rh dGljIHZvaWQgaW50ZWxfcHNyX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+PiA+IEBA IC03ODEsOCArNzk5LDEwIEBAIHZvaWQgaW50ZWxfcHNyX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPj4gPiAgCj4+ID4gIAkvKiBQZXIgcGxhdGZvcm0gZGVmYXVsdCAqLwo+PiA+ICAJaWYg KGk5MTUuZW5hYmxlX3BzciA9PSAtMSkgewo+PiA+IC0JCWlmIChJU19IQVNXRUxMKGRldikgfHwg SVNfQlJPQURXRUxMKGRldikpCj4+ID4gLQkJCWk5MTUuZW5hYmxlX3BzciA9IDE7Cj4+ID4gKwkJ aWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkgewo+PiA+ICsJCQlpZiAo ZGV2X3ByaXYtPnBzci5zeXNmc19zZXQgIT0gdHJ1ZSkKPj4gPiArCQkJCWk5MTUuZW5hYmxlX3Bz ciA9IDE7Cj4+ID4gKwkJfQo+PiA+ICAJCWVsc2UKPj4gPiAgCQkJaTkxNS5lbmFibGVfcHNyID0g MDsKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IElu dGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4g aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK Ci0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==