From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: add onoff utility function Date: Thu, 14 Jan 2016 15:07:01 +0200 Message-ID: <87d1t4xqbu.fsf@intel.com> References: <1452768814-29787-1-git-send-email-jani.nikula@intel.com> <20160114125458.GS23290@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 9FF5F6E046 for ; Thu, 14 Jan 2016 05:07:05 -0800 (PST) In-Reply-To: <20160114125458.GS23290@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxNCBKYW4gMjAxNiwgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gVGh1LCBKYW4gMTQsIDIwMTYgYXQgMTI6NTM6MzRQTSAr MDIwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+IEFkZCBhIGNvbW1vbiBmdW5jdGlvbiB0byByZXR1 cm4gIm9uIiBvciAib2ZmIiBzdHJpbmcgYmFzZWQgb24gdGhlCj4+IGFyZ3VtZW50LCBhbmQgZHJv cCB0aGUgbG9jYWwgdmVyc2lvbnMgb2YgaXQuCj4+IAo+PiBUaGlzIGlzIHRoZSBvbm9mZiB2ZXJz aW9uIG9mCj4+IAo+PiBjb21taXQgNDJhOGNhNGNiNGE0OGRkYmY0MGU4ZWRiMjkxNDI1ZTc2YmNk YzIzMAo+PiBBdXRob3I6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4+IERh dGU6ICAgVGh1IEF1ZyAyNyAxNjoyMzozMCAyMDE1ICswMzAwCj4+IAo+PiAgICAgZHJtL2k5MTU6 IGFkZCB5ZXNubyB1dGlsaXR5IGZ1bmN0aW9uCj4+IAo+PiBTaWduZWQtb2ZmLWJ5OiBKYW5pIE5p a3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+Cj4gUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CgpQdXNoZWQgdG8gZHJtLWludGVs LW5leHQtcXVldWVkLCB0aGFua3MgZm9yIHRoZSByZXZpZXcuCgpCUiwKSmFuaS4KCgo+Cj4+IC0t LQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgIHwgIDYgKysrLS0tCj4+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgNSArKysrKwo+PiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMzAgKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCAg OSArKy0tLS0tLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICB8IDEx ICsrKysrLS0tLS0tCj4+ICA1IGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDM0IGRl bGV0aW9ucygtKQo+PiAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+IGluZGV4IGYxN2EyYjBj MjQ5My4uOTc1YWYzNTY4NTIxIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPj4gQEAg LTEzMzUsOCArMTMzNSw4IEBAIHN0YXRpYyBpbnQgdmx2X3dhaXRfZm9yX2d0X3dlbGxzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gIAkJcmV0dXJuIDA7Cj4+ICAKPj4gIAlE Uk1fREVCVUdfS01TKCJ3YWl0aW5nIGZvciBHVCB3ZWxscyB0byBnbyAlcyAoJTA4eClcbiIsCj4+ IC0JCQl3YWl0X2Zvcl9vbiA/ICJvbiIgOiAib2ZmIiwKPj4gLQkJCUk5MTVfUkVBRChWTFZfR1RM Q19QV19TVEFUVVMpKTsKPj4gKwkJICAgICAgb25vZmYod2FpdF9mb3Jfb24pLAo+PiArCQkgICAg ICBJOTE1X1JFQUQoVkxWX0dUTENfUFdfU1RBVFVTKSk7Cj4+ICAKPj4gIAkvKgo+PiAgCSAqIFJD NiB0cmFuc2l0aW9uaW5nIGNhbiBiZSBkZWxheWVkIHVwIHRvIDIgbXNlYyAoc2VlCj4+IEBAIC0x MzQ1LDcgKzEzNDUsNyBAQCBzdGF0aWMgaW50IHZsdl93YWl0X2Zvcl9ndF93ZWxscyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAJZXJyID0gd2FpdF9mb3IoQ09ORCwgMyk7 Cj4+ICAJaWYgKGVycikKPj4gIAkJRFJNX0VSUk9SKCJ0aW1lb3V0IHdhaXRpbmcgZm9yIEdUIHdl bGxzIHRvIGdvICVzXG4iLAo+PiAtCQkJICB3YWl0X2Zvcl9vbiA/ICJvbiIgOiAib2ZmIik7Cj4+ ICsJCQkgIG9ub2ZmKHdhaXRfZm9yX29uKSk7Cj4+ICAKPj4gIAlyZXR1cm4gZXJyOwo+PiAgI3Vu ZGVmIENPTkQKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IGluZGV4IDEwNGJkMTgwOTkzNi4u ZWI3YmI5N2Y3MzE2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gQEAgLTEwMiw2 ICsxMDIsMTEgQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyICp5ZXNubyhib29sIHYpCj4+ICAJ cmV0dXJuIHYgPyAieWVzIiA6ICJubyI7Cj4+ICB9Cj4+ICAKPj4gK3N0YXRpYyBpbmxpbmUgY29u c3QgY2hhciAqb25vZmYoYm9vbCB2KQo+PiArewo+PiArCXJldHVybiB2ID8gIm9uIiA6ICJvZmYi Owo+PiArfQo+PiArCj4+ICBlbnVtIHBpcGUgewo+PiAgCUlOVkFMSURfUElQRSA9IC0xLAo+PiAg CVBJUEVfQSA9IDAsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gaW5kZXgg YTA4Nzg5MmRkNzk3Li4wZjUyZjcxNDAyYTAgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPj4gQEAgLTExNTAsMTEgKzExNTAsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF93 YWl0X2Zvcl9waXBlX29mZihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPj4gIAl9Cj4+ICB9Cj4+ ICAKPj4gLXN0YXRpYyBjb25zdCBjaGFyICpzdGF0ZV9zdHJpbmcoYm9vbCBlbmFibGVkKQo+PiAt ewo+PiAtCXJldHVybiBlbmFibGVkID8gIm9uIiA6ICJvZmYiOwo+PiAtfQo+PiAtCj4+ICAvKiBP bmx5IGZvciBwcmUtSUxLIGNvbmZpZ3MgKi8KPj4gIHZvaWQgYXNzZXJ0X3BsbChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAJCWVudW0gcGlwZSBwaXBlLCBib29sIHN0YXRl KQo+PiBAQCAtMTE2Niw3ICsxMTYxLDcgQEAgdm9pZCBhc3NlcnRfcGxsKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPj4gIAljdXJfc3RhdGUgPSAhISh2YWwgJiBEUExMX1ZDT19F TkFCTEUpOwo+PiAgCUk5MTVfU1RBVEVfV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCj4+ICAJICAg ICAiUExMIHN0YXRlIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylc biIsCj4+IC0JICAgICBzdGF0ZV9zdHJpbmcoc3RhdGUpLCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRl KSk7Cj4+ICsJCQlvbm9mZihzdGF0ZSksIG9ub2ZmKGN1cl9zdGF0ZSkpOwo+PiAgfQo+PiAgCj4+ ICAvKiBYWFg6IHRoZSBkc2kgcGxsIGlzIHNoYXJlZCBiZXR3ZWVuIE1JUEkgRFNJIHBvcnRzICov Cj4+IEBAIC0xMTgyLDcgKzExNzcsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfZHNpX3BsbChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgc3RhdGUpCj4+ICAJY3VyX3N0YXRl ID0gdmFsICYgRFNJX1BMTF9WQ09fRU47Cj4+ICAJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAh PSBzdGF0ZSwKPj4gIAkgICAgICJEU0kgUExMIHN0YXRlIGFzc2VydGlvbiBmYWlsdXJlIChleHBl Y3RlZCAlcywgY3VycmVudCAlcylcbiIsCj4+IC0JICAgICBzdGF0ZV9zdHJpbmcoc3RhdGUpLCBz dGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7Cj4+ICsJCQlvbm9mZihzdGF0ZSksIG9ub2ZmKGN1cl9z dGF0ZSkpOwo+PiAgfQo+PiAgI2RlZmluZSBhc3NlcnRfZHNpX3BsbF9lbmFibGVkKGQpIGFzc2Vy dF9kc2lfcGxsKGQsIHRydWUpCj4+ICAjZGVmaW5lIGFzc2VydF9kc2lfcGxsX2Rpc2FibGVkKGQp IGFzc2VydF9kc2lfcGxsKGQsIGZhbHNlKQo+PiBAQCAtMTIwNiwxNCArMTIwMSwxMyBAQCB2b2lk IGFzc2VydF9zaGFyZWRfZHBsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ ICAJYm9vbCBjdXJfc3RhdGU7Cj4+ICAJc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgaHdfc3Rh dGU7Cj4+ICAKPj4gLQlpZiAoV0FSTiAoIXBsbCwKPj4gLQkJICAiYXNzZXJ0aW5nIERQTEwgJXMg d2l0aCBubyBEUExMXG4iLCBzdGF0ZV9zdHJpbmcoc3RhdGUpKSkKPj4gKwlpZiAoV0FSTighcGxs LCAiYXNzZXJ0aW5nIERQTEwgJXMgd2l0aCBubyBEUExMXG4iLCBvbm9mZihzdGF0ZSkpKQo+PiAg CQlyZXR1cm47Cj4+ICAKPj4gIAljdXJfc3RhdGUgPSBwbGwtPmdldF9od19zdGF0ZShkZXZfcHJp diwgcGxsLCAmaHdfc3RhdGUpOwo+PiAgCUk5MTVfU1RBVEVfV0FSTihjdXJfc3RhdGUgIT0gc3Rh dGUsCj4+ICAJICAgICAiJXMgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50 ICVzKVxuIiwKPj4gLQkgICAgIHBsbC0+bmFtZSwgc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVf c3RyaW5nKGN1cl9zdGF0ZSkpOwo+PiArCQkJcGxsLT5uYW1lLCBvbm9mZihzdGF0ZSksIG9ub2Zm KGN1cl9zdGF0ZSkpOwo+PiAgfQo+PiAgCj4+ICBzdGF0aWMgdm9pZCBhc3NlcnRfZmRpX3R4KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gQEAgLTEyMzMsNyArMTIyNyw3IEBA IHN0YXRpYyB2b2lkIGFzc2VydF9mZGlfdHgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+PiAgCX0KPj4gIAlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAo+PiAg CSAgICAgIkZESSBUWCBzdGF0ZSBhc3NlcnRpb24gZmFpbHVyZSAoZXhwZWN0ZWQgJXMsIGN1cnJl bnQgJXMpXG4iLAo+PiAtCSAgICAgc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1 cl9zdGF0ZSkpOwo+PiArCQkJb25vZmYoc3RhdGUpLCBvbm9mZihjdXJfc3RhdGUpKTsKPj4gIH0K Pj4gICNkZWZpbmUgYXNzZXJ0X2ZkaV90eF9lbmFibGVkKGQsIHApIGFzc2VydF9mZGlfdHgoZCwg cCwgdHJ1ZSkKPj4gICNkZWZpbmUgYXNzZXJ0X2ZkaV90eF9kaXNhYmxlZChkLCBwKSBhc3NlcnRf ZmRpX3R4KGQsIHAsIGZhbHNlKQo+PiBAQCAtMTI0OCw3ICsxMjQyLDcgQEAgc3RhdGljIHZvaWQg YXNzZXJ0X2ZkaV9yeChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAJY3Vy X3N0YXRlID0gISEodmFsICYgRkRJX1JYX0VOQUJMRSk7Cj4+ICAJSTkxNV9TVEFURV9XQVJOKGN1 cl9zdGF0ZSAhPSBzdGF0ZSwKPj4gIAkgICAgICJGREkgUlggc3RhdGUgYXNzZXJ0aW9uIGZhaWx1 cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxuIiwKPj4gLQkgICAgIHN0YXRlX3N0cmluZyhz dGF0ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUpKTsKPj4gKwkJCW9ub2ZmKHN0YXRlKSwgb25v ZmYoY3VyX3N0YXRlKSk7Cj4+ICB9Cj4+ICAjZGVmaW5lIGFzc2VydF9mZGlfcnhfZW5hYmxlZChk LCBwKSBhc3NlcnRfZmRpX3J4KGQsIHAsIHRydWUpCj4+ICAjZGVmaW5lIGFzc2VydF9mZGlfcnhf ZGlzYWJsZWQoZCwgcCkgYXNzZXJ0X2ZkaV9yeChkLCBwLCBmYWxzZSkKPj4gQEAgLTEyODAsNyAr MTI3NCw3IEBAIHZvaWQgYXNzZXJ0X2ZkaV9yeF9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+PiAgCWN1cl9zdGF0ZSA9ICEhKHZhbCAmIEZESV9SWF9QTExfRU5BQkxFKTsK Pj4gIAlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAo+PiAgCSAgICAgIkZESSBS WCBQTEwgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxuIiwKPj4g LQkgICAgIHN0YXRlX3N0cmluZyhzdGF0ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUpKTsKPj4g KwkJCW9ub2ZmKHN0YXRlKSwgb25vZmYoY3VyX3N0YXRlKSk7Cj4+ICB9Cj4+ICAKPj4gIHZvaWQg YXNzZXJ0X3BhbmVsX3VubG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK Pj4gQEAgLTEzMzgsNyArMTMzMiw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9jdXJzb3Ioc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgCj4+ICAJSTkxNV9TVEFURV9XQVJOKGN1 cl9zdGF0ZSAhPSBzdGF0ZSwKPj4gIAkgICAgICJjdXJzb3Igb24gcGlwZSAlYyBhc3NlcnRpb24g ZmFpbHVyZSAoZXhwZWN0ZWQgJXMsIGN1cnJlbnQgJXMpXG4iLAo+PiAtCSAgICAgcGlwZV9uYW1l KHBpcGUpLCBzdGF0ZV9zdHJpbmcoc3RhdGUpLCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7Cj4+ ICsJCQlwaXBlX25hbWUocGlwZSksIG9ub2ZmKHN0YXRlKSwgb25vZmYoY3VyX3N0YXRlKSk7Cj4+ ICB9Cj4+ICAjZGVmaW5lIGFzc2VydF9jdXJzb3JfZW5hYmxlZChkLCBwKSBhc3NlcnRfY3Vyc29y KGQsIHAsIHRydWUpCj4+ICAjZGVmaW5lIGFzc2VydF9jdXJzb3JfZGlzYWJsZWQoZCwgcCkgYXNz ZXJ0X2N1cnNvcihkLCBwLCBmYWxzZSkKPj4gQEAgLTEzNjUsNyArMTM1OSw3IEBAIHZvaWQgYXNz ZXJ0X3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgCj4+ICAJSTkx NV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKPj4gIAkgICAgICJwaXBlICVjIGFzc2Vy dGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCj4+IC0JICAgICBwaXBl X25hbWUocGlwZSksIHN0YXRlX3N0cmluZyhzdGF0ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUp KTsKPj4gKwkJCXBpcGVfbmFtZShwaXBlKSwgb25vZmYoc3RhdGUpLCBvbm9mZihjdXJfc3RhdGUp KTsKPj4gIH0KPj4gIAo+PiAgc3RhdGljIHZvaWQgYXNzZXJ0X3BsYW5lKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPj4gQEAgLTEzNzgsNyArMTM3Miw3IEBAIHN0YXRpYyB2b2lk IGFzc2VydF9wbGFuZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAJY3Vy X3N0YXRlID0gISEodmFsICYgRElTUExBWV9QTEFORV9FTkFCTEUpOwo+PiAgCUk5MTVfU1RBVEVf V0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCj4+ICAJICAgICAicGxhbmUgJWMgYXNzZXJ0aW9uIGZh aWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxuIiwKPj4gLQkgICAgIHBsYW5lX25hbWUo cGxhbmUpLCBzdGF0ZV9zdHJpbmcoc3RhdGUpLCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7Cj4+ ICsJCQlwbGFuZV9uYW1lKHBsYW5lKSwgb25vZmYoc3RhdGUpLCBvbm9mZihjdXJfc3RhdGUpKTsK Pj4gIH0KPj4gIAo+PiAgI2RlZmluZSBhc3NlcnRfcGxhbmVfZW5hYmxlZChkLCBwKSBhc3NlcnRf cGxhbmUoZCwgcCwgdHJ1ZSkKPj4gQEAgLTE2MzMyLDcgKzE2MzI2LDcgQEAgaW50ZWxfZGlzcGxh eV9wcmludF9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAo+ PiAgCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIGkpIHsKPj4gIAkJZXJyX3ByaW50ZihtLCAiUGlw ZSBbJWRdOlxuIiwgaSk7Cj4+ICAJCWVycl9wcmludGYobSwgIiAgUG93ZXI6ICVzXG4iLAo+PiAt CQkJICAgZXJyb3ItPnBpcGVbaV0ucG93ZXJfZG9tYWluX29uID8gIm9uIiA6ICJvZmYiKTsKPj4g KwkJCSAgIG9ub2ZmKGVycm9yLT5waXBlW2ldLnBvd2VyX2RvbWFpbl9vbikpOwo+PiAgCQllcnJf cHJpbnRmKG0sICIgIFNSQzogJTA4eFxuIiwgZXJyb3ItPnBpcGVbaV0uc291cmNlKTsKPj4gIAkJ ZXJyX3ByaW50ZihtLCAiICBTVEFUOiAlMDh4XG4iLCBlcnJvci0+cGlwZVtpXS5zdGF0KTsKPj4g IAo+PiBAQCAtMTYzNjAsNyArMTYzNTQsNyBAQCBpbnRlbF9kaXNwbGF5X3ByaW50X2Vycm9yX3N0 YXRlKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCj4+ICAJCWVycl9wcmludGYo bSwgIkNQVSB0cmFuc2NvZGVyOiAlY1xuIiwKPj4gIAkJCSAgIHRyYW5zY29kZXJfbmFtZShlcnJv ci0+dHJhbnNjb2RlcltpXS5jcHVfdHJhbnNjb2RlcikpOwo+PiAgCQllcnJfcHJpbnRmKG0sICIg IFBvd2VyOiAlc1xuIiwKPj4gLQkJCSAgIGVycm9yLT50cmFuc2NvZGVyW2ldLnBvd2VyX2RvbWFp bl9vbiA/ICJvbiIgOiAib2ZmIik7Cj4+ICsJCQkgICBvbm9mZihlcnJvci0+dHJhbnNjb2Rlcltp XS5wb3dlcl9kb21haW5fb24pKTsKPj4gIAkJZXJyX3ByaW50ZihtLCAiICBDT05GOiAlMDh4XG4i LCBlcnJvci0+dHJhbnNjb2RlcltpXS5jb25mKTsKPj4gIAkJZXJyX3ByaW50ZihtLCAiICBIVE9U QUw6ICUwOHhcbiIsIGVycm9yLT50cmFuc2NvZGVyW2ldLmh0b3RhbCk7Cj4+ICAJCWVycl9wcmlu dGYobSwgIiAgSEJMQU5LOiAlMDh4XG4iLCBlcnJvci0+dHJhbnNjb2RlcltpXS5oYmxhbmspOwo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gaW5kZXggYzhmNThhYjFiYWNjLi4xNzYxMjU0OGM1 OGQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiBAQCAtMjIzOCwxMSArMjIzOCw2 IEBAIHN0YXRpYyB2b2lkIGludGVsX2VkcF9iYWNrbGlnaHRfcG93ZXIoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+PiAgCQlfaW50ZWxfZWRwX2JhY2tsaWdodF9vZmYoaW50ZWxf ZHApOwo+PiAgfQo+PiAgCj4+IC1zdGF0aWMgY29uc3QgY2hhciAqc3RhdGVfc3RyaW5nKGJvb2wg ZW5hYmxlZCkKPj4gLXsKPj4gLQlyZXR1cm4gZW5hYmxlZCA/ICJvbiIgOiAib2ZmIjsKPj4gLX0K Pj4gLQo+PiAgc3RhdGljIHZvaWQgYXNzZXJ0X2RwX3BvcnQoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwgYm9vbCBzdGF0ZSkKPj4gIHsKPj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPj4gQEAgLTIyNTIsNyArMjI0Nyw3 IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9kcF9wb3J0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs IGJvb2wgc3RhdGUpCj4+ICAJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKPj4g IAkJCSJEUCBwb3J0ICVjIHN0YXRlIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3Vy cmVudCAlcylcbiIsCj4+ICAJCQlwb3J0X25hbWUoZGlnX3BvcnQtPnBvcnQpLAo+PiAtCQkJc3Rh dGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkpOwo+PiArCQkJb25vZmYo c3RhdGUpLCBvbm9mZihjdXJfc3RhdGUpKTsKPj4gIH0KPj4gICNkZWZpbmUgYXNzZXJ0X2RwX3Bv cnRfZGlzYWJsZWQoZCkgYXNzZXJ0X2RwX3BvcnQoKGQpLCBmYWxzZSkKPj4gIAo+PiBAQCAtMjI2 Miw3ICsyMjU3LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2VkcF9wbGwoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHN0YXRlKQo+PiAgCj4+ICAJSTkxNV9TVEFURV9XQVJO KGN1cl9zdGF0ZSAhPSBzdGF0ZSwKPj4gIAkJCSJlRFAgUExMIHN0YXRlIGFzc2VydGlvbiBmYWls dXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCj4+IC0JCQlzdGF0ZV9zdHJpbmcoc3Rh dGUpLCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7Cj4+ICsJCQlvbm9mZihzdGF0ZSksIG9ub2Zm KGN1cl9zdGF0ZSkpOwo+PiAgfQo+PiAgI2RlZmluZSBhc3NlcnRfZWRwX3BsbF9lbmFibGVkKGQp IGFzc2VydF9lZHBfcGxsKChkKSwgdHJ1ZSkKPj4gICNkZWZpbmUgYXNzZXJ0X2VkcF9wbGxfZGlz YWJsZWQoZCkgYXNzZXJ0X2VkcF9wbGwoKGQpLCBmYWxzZSkKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCj4+IGluZGV4IDlkZjllOWEyMmYzYy4uNDY1Y2E3NmRmMjAxIDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKPj4gQEAgLTQ1OTAsMTMgKzQ1OTAsMTMgQEAgc3RhdGljIHZvaWQgaW50 ZWxfcHJpbnRfcmM2X2luZm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIG1vZGUpCj4+ICAJ fQo+PiAgCWlmIChIQVNfUkM2cChkZXYpKQo+PiAgCQlEUk1fREVCVUdfS01TKCJFbmFibGluZyBS QzYgc3RhdGVzOiBSQzYgJXMgUkM2cCAlcyBSQzZwcCAlc1xuIiwKPj4gLQkJCSAgICAgIChtb2Rl ICYgR0VONl9SQ19DVExfUkM2X0VOQUJMRSkgPyAib24iIDogIm9mZiIsCj4+IC0JCQkgICAgICAo bW9kZSAmIEdFTjZfUkNfQ1RMX1JDNnBfRU5BQkxFKSA/ICJvbiIgOiAib2ZmIiwKPj4gLQkJCSAg ICAgIChtb2RlICYgR0VONl9SQ19DVExfUkM2cHBfRU5BQkxFKSA/ICJvbiIgOiAib2ZmIik7Cj4+ ICsJCQkgICAgICBvbm9mZihtb2RlICYgR0VONl9SQ19DVExfUkM2X0VOQUJMRSksCj4+ICsJCQkg ICAgICBvbm9mZihtb2RlICYgR0VONl9SQ19DVExfUkM2cF9FTkFCTEUpLAo+PiArCQkJICAgICAg b25vZmYobW9kZSAmIEdFTjZfUkNfQ1RMX1JDNnBwX0VOQUJMRSkpOwo+PiAgCj4+ICAJZWxzZQo+ PiAgCQlEUk1fREVCVUdfS01TKCJFbmFibGluZyBSQzYgc3RhdGVzOiBSQzYgJXNcbiIsCj4+IC0J CQkgICAgICAobW9kZSAmIEdFTjZfUkNfQ1RMX1JDNl9FTkFCTEUpID8gIm9uIiA6ICJvZmYiKTsK Pj4gKwkJCSAgICAgIG9ub2ZmKG1vZGUgJiBHRU42X1JDX0NUTF9SQzZfRU5BQkxFKSk7Cj4+ICB9 Cj4+ICAKPj4gIHN0YXRpYyBpbnQgc2FuaXRpemVfcmM2X29wdGlvbihjb25zdCBzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBpbnQgZW5hYmxlX3JjNikKPj4gQEAgLTQ3NzQsOCArNDc3NCw3IEBAIHN0 YXRpYyB2b2lkIGdlbjlfZW5hYmxlX3JjNihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgCS8q IDNhOiBFbmFibGUgUkM2ICovCj4+ICAJaWYgKGludGVsX2VuYWJsZV9yYzYoZGV2KSAmIElOVEVM X1JDNl9FTkFCTEUpCj4+ICAJCXJjNl9tYXNrID0gR0VONl9SQ19DVExfUkM2X0VOQUJMRTsKPj4g LQlEUk1fSU5GTygiUkM2ICVzXG4iLCAocmM2X21hc2sgJiBHRU42X1JDX0NUTF9SQzZfRU5BQkxF KSA/Cj4+IC0JCQkib24iIDogIm9mZiIpOwo+PiArCURSTV9JTkZPKCJSQzYgJXNcbiIsIG9ub2Zm KHJjNl9tYXNrICYgR0VONl9SQ19DVExfUkM2X0VOQUJMRSkpOwo+PiAgCS8qIFdhUnNVc2VUaW1l b3V0TW9kZSAqLwo+PiAgCWlmIChJU19TS0xfUkVWSUQoZGV2LCAwLCBTS0xfUkVWSURfRDApIHx8 Cj4+ICAJICAgIElTX0JYVF9SRVZJRChkZXYsIDAsIEJYVF9SRVZJRF9BMSkpIHsKPj4gLS0gCj4+ IDIuMS40Cj4+IAo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5 IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=