From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: [PATCH] drm/i915: add onoff utility function Date: Thu, 14 Jan 2016 12:53:34 +0200 Message-ID: <1452768814-29787-1-git-send-email-jani.nikula@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 0800C7A097 for ; Thu, 14 Jan 2016 02:53:49 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: jani.nikula@intel.com List-Id: intel-gfx@lists.freedesktop.org QWRkIGEgY29tbW9uIGZ1bmN0aW9uIHRvIHJldHVybiAib24iIG9yICJvZmYiIHN0cmluZyBiYXNl ZCBvbiB0aGUKYXJndW1lbnQsIGFuZCBkcm9wIHRoZSBsb2NhbCB2ZXJzaW9ucyBvZiBpdC4KClRo aXMgaXMgdGhlIG9ub2ZmIHZlcnNpb24gb2YKCmNvbW1pdCA0MmE4Y2E0Y2I0YTQ4ZGRiZjQwZThl ZGIyOTE0MjVlNzZiY2RjMjMwCkF1dGhvcjogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVs LmNvbT4KRGF0ZTogICBUaHUgQXVnIDI3IDE2OjIzOjMwIDIwMTUgKzAzMDAKCiAgICBkcm0vaTkx NTogYWRkIHllc25vIHV0aWxpdHkgZnVuY3Rpb24KClNpZ25lZC1vZmYtYnk6IEphbmkgTmlrdWxh IDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYyAgICAgIHwgIDYgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAg ICAgfCAgNSArKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMzAg KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jICAgICAgfCAgOSArKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMgICAgICB8IDExICsrKysrLS0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMo KyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IGYxN2EyYjBj MjQ5My4uOTc1YWYzNTY4NTIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTEzMzUsOCAr MTMzNSw4IEBAIHN0YXRpYyBpbnQgdmx2X3dhaXRfZm9yX2d0X3dlbGxzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkJcmV0dXJuIDA7CiAKIAlEUk1fREVCVUdfS01TKCJ3YWl0 aW5nIGZvciBHVCB3ZWxscyB0byBnbyAlcyAoJTA4eClcbiIsCi0JCQl3YWl0X2Zvcl9vbiA/ICJv biIgOiAib2ZmIiwKLQkJCUk5MTVfUkVBRChWTFZfR1RMQ19QV19TVEFUVVMpKTsKKwkJICAgICAg b25vZmYod2FpdF9mb3Jfb24pLAorCQkgICAgICBJOTE1X1JFQUQoVkxWX0dUTENfUFdfU1RBVFVT KSk7CiAKIAkvKgogCSAqIFJDNiB0cmFuc2l0aW9uaW5nIGNhbiBiZSBkZWxheWVkIHVwIHRvIDIg bXNlYyAoc2VlCkBAIC0xMzQ1LDcgKzEzNDUsNyBAQCBzdGF0aWMgaW50IHZsdl93YWl0X2Zvcl9n dF93ZWxscyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJZXJyID0gd2FpdF9m b3IoQ09ORCwgMyk7CiAJaWYgKGVycikKIAkJRFJNX0VSUk9SKCJ0aW1lb3V0IHdhaXRpbmcgZm9y IEdUIHdlbGxzIHRvIGdvICVzXG4iLAotCQkJICB3YWl0X2Zvcl9vbiA/ICJvbiIgOiAib2ZmIik7 CisJCQkgIG9ub2ZmKHdhaXRfZm9yX29uKSk7CiAKIAlyZXR1cm4gZXJyOwogI3VuZGVmIENPTkQK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDEwNGJkMTgwOTkzNi4uZWI3YmI5N2Y3MzE2IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTEwMiw2ICsxMDIsMTEgQEAgc3RhdGljIGlubGlu ZSBjb25zdCBjaGFyICp5ZXNubyhib29sIHYpCiAJcmV0dXJuIHYgPyAieWVzIiA6ICJubyI7CiB9 CiAKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqb25vZmYoYm9vbCB2KQoreworCXJldHVybiB2 ID8gIm9uIiA6ICJvZmYiOworfQorCiBlbnVtIHBpcGUgewogCUlOVkFMSURfUElQRSA9IC0xLAog CVBJUEVfQSA9IDAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggYTA4Nzg5 MmRkNzk3Li4wZjUyZjcxNDAyYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK QEAgLTExNTAsMTEgKzExNTAsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF93YWl0X2Zvcl9waXBlX29m ZihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAl9CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyICpz dGF0ZV9zdHJpbmcoYm9vbCBlbmFibGVkKQotewotCXJldHVybiBlbmFibGVkID8gIm9uIiA6ICJv ZmYiOwotfQotCiAvKiBPbmx5IGZvciBwcmUtSUxLIGNvbmZpZ3MgKi8KIHZvaWQgYXNzZXJ0X3Bs bChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWVudW0gcGlwZSBwaXBlLCBi b29sIHN0YXRlKQpAQCAtMTE2Niw3ICsxMTYxLDcgQEAgdm9pZCBhc3NlcnRfcGxsKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAljdXJfc3RhdGUgPSAhISh2YWwgJiBEUExMX1ZD T19FTkFCTEUpOwogCUk5MTVfU1RBVEVfV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCiAJICAgICAi UExMIHN0YXRlIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIs Ci0JICAgICBzdGF0ZV9zdHJpbmcoc3RhdGUpLCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7CisJ CQlvbm9mZihzdGF0ZSksIG9ub2ZmKGN1cl9zdGF0ZSkpOwogfQogCiAvKiBYWFg6IHRoZSBkc2kg cGxsIGlzIHNoYXJlZCBiZXR3ZWVuIE1JUEkgRFNJIHBvcnRzICovCkBAIC0xMTgyLDcgKzExNzcs NyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfZHNpX3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGJvb2wgc3RhdGUpCiAJY3VyX3N0YXRlID0gdmFsICYgRFNJX1BMTF9WQ09fRU47 CiAJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKIAkgICAgICJEU0kgUExMIHN0 YXRlIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCi0JICAg ICBzdGF0ZV9zdHJpbmcoc3RhdGUpLCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7CisJCQlvbm9m ZihzdGF0ZSksIG9ub2ZmKGN1cl9zdGF0ZSkpOwogfQogI2RlZmluZSBhc3NlcnRfZHNpX3BsbF9l bmFibGVkKGQpIGFzc2VydF9kc2lfcGxsKGQsIHRydWUpCiAjZGVmaW5lIGFzc2VydF9kc2lfcGxs X2Rpc2FibGVkKGQpIGFzc2VydF9kc2lfcGxsKGQsIGZhbHNlKQpAQCAtMTIwNiwxNCArMTIwMSwx MyBAQCB2b2lkIGFzc2VydF9zaGFyZWRfZHBsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJYm9vbCBjdXJfc3RhdGU7CiAJc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgaHdf c3RhdGU7CiAKLQlpZiAoV0FSTiAoIXBsbCwKLQkJICAiYXNzZXJ0aW5nIERQTEwgJXMgd2l0aCBu byBEUExMXG4iLCBzdGF0ZV9zdHJpbmcoc3RhdGUpKSkKKwlpZiAoV0FSTighcGxsLCAiYXNzZXJ0 aW5nIERQTEwgJXMgd2l0aCBubyBEUExMXG4iLCBvbm9mZihzdGF0ZSkpKQogCQlyZXR1cm47CiAK IAljdXJfc3RhdGUgPSBwbGwtPmdldF9od19zdGF0ZShkZXZfcHJpdiwgcGxsLCAmaHdfc3RhdGUp OwogCUk5MTVfU1RBVEVfV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCiAJICAgICAiJXMgYXNzZXJ0 aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxuIiwKLQkgICAgIHBsbC0+bmFt ZSwgc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkpOworCQkJcGxs LT5uYW1lLCBvbm9mZihzdGF0ZSksIG9ub2ZmKGN1cl9zdGF0ZSkpOwogfQogCiBzdGF0aWMgdm9p ZCBhc3NlcnRfZmRpX3R4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTEy MzMsNyArMTIyNyw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9mZGlfdHgoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCX0KIAlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0 YXRlLAogCSAgICAgIkZESSBUWCBzdGF0ZSBhc3NlcnRpb24gZmFpbHVyZSAoZXhwZWN0ZWQgJXMs IGN1cnJlbnQgJXMpXG4iLAotCSAgICAgc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5n KGN1cl9zdGF0ZSkpOworCQkJb25vZmYoc3RhdGUpLCBvbm9mZihjdXJfc3RhdGUpKTsKIH0KICNk ZWZpbmUgYXNzZXJ0X2ZkaV90eF9lbmFibGVkKGQsIHApIGFzc2VydF9mZGlfdHgoZCwgcCwgdHJ1 ZSkKICNkZWZpbmUgYXNzZXJ0X2ZkaV90eF9kaXNhYmxlZChkLCBwKSBhc3NlcnRfZmRpX3R4KGQs IHAsIGZhbHNlKQpAQCAtMTI0OCw3ICsxMjQyLDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2ZkaV9y eChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJY3VyX3N0YXRlID0gISEodmFs ICYgRkRJX1JYX0VOQUJMRSk7CiAJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwK IAkgICAgICJGREkgUlggc3RhdGUgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJy ZW50ICVzKVxuIiwKLQkgICAgIHN0YXRlX3N0cmluZyhzdGF0ZSksIHN0YXRlX3N0cmluZyhjdXJf c3RhdGUpKTsKKwkJCW9ub2ZmKHN0YXRlKSwgb25vZmYoY3VyX3N0YXRlKSk7CiB9CiAjZGVmaW5l IGFzc2VydF9mZGlfcnhfZW5hYmxlZChkLCBwKSBhc3NlcnRfZmRpX3J4KGQsIHAsIHRydWUpCiAj ZGVmaW5lIGFzc2VydF9mZGlfcnhfZGlzYWJsZWQoZCwgcCkgYXNzZXJ0X2ZkaV9yeChkLCBwLCBm YWxzZSkKQEAgLTEyODAsNyArMTI3NCw3IEBAIHZvaWQgYXNzZXJ0X2ZkaV9yeF9wbGwoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWN1cl9zdGF0ZSA9ICEhKHZhbCAmIEZESV9S WF9QTExfRU5BQkxFKTsKIAlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAogCSAg ICAgIkZESSBSWCBQTEwgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVz KVxuIiwKLQkgICAgIHN0YXRlX3N0cmluZyhzdGF0ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUp KTsKKwkJCW9ub2ZmKHN0YXRlKSwgb25vZmYoY3VyX3N0YXRlKSk7CiB9CiAKIHZvaWQgYXNzZXJ0 X3BhbmVsX3VubG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTEz MzgsNyArMTMzMiw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9jdXJzb3Ioc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCiAJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0 ZSwKIAkgICAgICJjdXJzb3Igb24gcGlwZSAlYyBhc3NlcnRpb24gZmFpbHVyZSAoZXhwZWN0ZWQg JXMsIGN1cnJlbnQgJXMpXG4iLAotCSAgICAgcGlwZV9uYW1lKHBpcGUpLCBzdGF0ZV9zdHJpbmco c3RhdGUpLCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7CisJCQlwaXBlX25hbWUocGlwZSksIG9u b2ZmKHN0YXRlKSwgb25vZmYoY3VyX3N0YXRlKSk7CiB9CiAjZGVmaW5lIGFzc2VydF9jdXJzb3Jf ZW5hYmxlZChkLCBwKSBhc3NlcnRfY3Vyc29yKGQsIHAsIHRydWUpCiAjZGVmaW5lIGFzc2VydF9j dXJzb3JfZGlzYWJsZWQoZCwgcCkgYXNzZXJ0X2N1cnNvcihkLCBwLCBmYWxzZSkKQEAgLTEzNjUs NyArMTM1OSw3IEBAIHZvaWQgYXNzZXJ0X3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCiAJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKIAkgICAgICJw aXBlICVjIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCi0J ICAgICBwaXBlX25hbWUocGlwZSksIHN0YXRlX3N0cmluZyhzdGF0ZSksIHN0YXRlX3N0cmluZyhj dXJfc3RhdGUpKTsKKwkJCXBpcGVfbmFtZShwaXBlKSwgb25vZmYoc3RhdGUpLCBvbm9mZihjdXJf c3RhdGUpKTsKIH0KIAogc3RhdGljIHZvaWQgYXNzZXJ0X3BsYW5lKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKQEAgLTEzNzgsNyArMTM3Miw3IEBAIHN0YXRpYyB2b2lkIGFzc2Vy dF9wbGFuZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJY3VyX3N0YXRlID0g ISEodmFsICYgRElTUExBWV9QTEFORV9FTkFCTEUpOwogCUk5MTVfU1RBVEVfV0FSTihjdXJfc3Rh dGUgIT0gc3RhdGUsCiAJICAgICAicGxhbmUgJWMgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVk ICVzLCBjdXJyZW50ICVzKVxuIiwKLQkgICAgIHBsYW5lX25hbWUocGxhbmUpLCBzdGF0ZV9zdHJp bmcoc3RhdGUpLCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7CisJCQlwbGFuZV9uYW1lKHBsYW5l KSwgb25vZmYoc3RhdGUpLCBvbm9mZihjdXJfc3RhdGUpKTsKIH0KIAogI2RlZmluZSBhc3NlcnRf cGxhbmVfZW5hYmxlZChkLCBwKSBhc3NlcnRfcGxhbmUoZCwgcCwgdHJ1ZSkKQEAgLTE2MzMyLDcg KzE2MzI2LDcgQEAgaW50ZWxfZGlzcGxheV9wcmludF9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJtX2k5 MTVfZXJyb3Jfc3RhdGVfYnVmICptLAogCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIGkpIHsKIAkJ ZXJyX3ByaW50ZihtLCAiUGlwZSBbJWRdOlxuIiwgaSk7CiAJCWVycl9wcmludGYobSwgIiAgUG93 ZXI6ICVzXG4iLAotCQkJICAgZXJyb3ItPnBpcGVbaV0ucG93ZXJfZG9tYWluX29uID8gIm9uIiA6 ICJvZmYiKTsKKwkJCSAgIG9ub2ZmKGVycm9yLT5waXBlW2ldLnBvd2VyX2RvbWFpbl9vbikpOwog CQllcnJfcHJpbnRmKG0sICIgIFNSQzogJTA4eFxuIiwgZXJyb3ItPnBpcGVbaV0uc291cmNlKTsK IAkJZXJyX3ByaW50ZihtLCAiICBTVEFUOiAlMDh4XG4iLCBlcnJvci0+cGlwZVtpXS5zdGF0KTsK IApAQCAtMTYzNjAsNyArMTYzNTQsNyBAQCBpbnRlbF9kaXNwbGF5X3ByaW50X2Vycm9yX3N0YXRl KHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKm0sCiAJCWVycl9wcmludGYobSwgIkNQ VSB0cmFuc2NvZGVyOiAlY1xuIiwKIAkJCSAgIHRyYW5zY29kZXJfbmFtZShlcnJvci0+dHJhbnNj b2RlcltpXS5jcHVfdHJhbnNjb2RlcikpOwogCQllcnJfcHJpbnRmKG0sICIgIFBvd2VyOiAlc1xu IiwKLQkJCSAgIGVycm9yLT50cmFuc2NvZGVyW2ldLnBvd2VyX2RvbWFpbl9vbiA/ICJvbiIgOiAi b2ZmIik7CisJCQkgICBvbm9mZihlcnJvci0+dHJhbnNjb2RlcltpXS5wb3dlcl9kb21haW5fb24p KTsKIAkJZXJyX3ByaW50ZihtLCAiICBDT05GOiAlMDh4XG4iLCBlcnJvci0+dHJhbnNjb2Rlcltp XS5jb25mKTsKIAkJZXJyX3ByaW50ZihtLCAiICBIVE9UQUw6ICUwOHhcbiIsIGVycm9yLT50cmFu c2NvZGVyW2ldLmh0b3RhbCk7CiAJCWVycl9wcmludGYobSwgIiAgSEJMQU5LOiAlMDh4XG4iLCBl cnJvci0+dHJhbnNjb2RlcltpXS5oYmxhbmspOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXgg YzhmNThhYjFiYWNjLi4xNzYxMjU0OGM1OGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAt MjIzOCwxMSArMjIzOCw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2VkcF9iYWNrbGlnaHRfcG93ZXIo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQlfaW50ZWxfZWRwX2JhY2tsaWdo dF9vZmYoaW50ZWxfZHApOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqc3RhdGVfc3RyaW5nKGJv b2wgZW5hYmxlZCkKLXsKLQlyZXR1cm4gZW5hYmxlZCA/ICJvbiIgOiAib2ZmIjsKLX0KLQogc3Rh dGljIHZvaWQgYXNzZXJ0X2RwX3BvcnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgYm9vbCBz dGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2Rp Z19wb3J0KGludGVsX2RwKTsKQEAgLTIyNTIsNyArMjI0Nyw3IEBAIHN0YXRpYyB2b2lkIGFzc2Vy dF9kcF9wb3J0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgc3RhdGUpCiAJSTkxNV9T VEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKIAkJCSJEUCBwb3J0ICVjIHN0YXRlIGFzc2Vy dGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCiAJCQlwb3J0X25hbWUo ZGlnX3BvcnQtPnBvcnQpLAotCQkJc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1 cl9zdGF0ZSkpOworCQkJb25vZmYoc3RhdGUpLCBvbm9mZihjdXJfc3RhdGUpKTsKIH0KICNkZWZp bmUgYXNzZXJ0X2RwX3BvcnRfZGlzYWJsZWQoZCkgYXNzZXJ0X2RwX3BvcnQoKGQpLCBmYWxzZSkK IApAQCAtMjI2Miw3ICsyMjU3LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2VkcF9wbGwoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHN0YXRlKQogCiAJSTkxNV9TVEFURV9X QVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKIAkJCSJlRFAgUExMIHN0YXRlIGFzc2VydGlvbiBmYWls dXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCi0JCQlzdGF0ZV9zdHJpbmcoc3RhdGUp LCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7CisJCQlvbm9mZihzdGF0ZSksIG9ub2ZmKGN1cl9z dGF0ZSkpOwogfQogI2RlZmluZSBhc3NlcnRfZWRwX3BsbF9lbmFibGVkKGQpIGFzc2VydF9lZHBf cGxsKChkKSwgdHJ1ZSkKICNkZWZpbmUgYXNzZXJ0X2VkcF9wbGxfZGlzYWJsZWQoZCkgYXNzZXJ0 X2VkcF9wbGwoKGQpLCBmYWxzZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDlkZjllOWEy MmYzYy4uNDY1Y2E3NmRmMjAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTQ1OTAsMTMg KzQ1OTAsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJpbnRfcmM2X2luZm8oc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdTMyIG1vZGUpCiAJfQogCWlmIChIQVNfUkM2cChkZXYpKQogCQlEUk1fREVC VUdfS01TKCJFbmFibGluZyBSQzYgc3RhdGVzOiBSQzYgJXMgUkM2cCAlcyBSQzZwcCAlc1xuIiwK LQkJCSAgICAgIChtb2RlICYgR0VONl9SQ19DVExfUkM2X0VOQUJMRSkgPyAib24iIDogIm9mZiIs Ci0JCQkgICAgICAobW9kZSAmIEdFTjZfUkNfQ1RMX1JDNnBfRU5BQkxFKSA/ICJvbiIgOiAib2Zm IiwKLQkJCSAgICAgIChtb2RlICYgR0VONl9SQ19DVExfUkM2cHBfRU5BQkxFKSA/ICJvbiIgOiAi b2ZmIik7CisJCQkgICAgICBvbm9mZihtb2RlICYgR0VONl9SQ19DVExfUkM2X0VOQUJMRSksCisJ CQkgICAgICBvbm9mZihtb2RlICYgR0VONl9SQ19DVExfUkM2cF9FTkFCTEUpLAorCQkJICAgICAg b25vZmYobW9kZSAmIEdFTjZfUkNfQ1RMX1JDNnBwX0VOQUJMRSkpOwogCiAJZWxzZQogCQlEUk1f REVCVUdfS01TKCJFbmFibGluZyBSQzYgc3RhdGVzOiBSQzYgJXNcbiIsCi0JCQkgICAgICAobW9k ZSAmIEdFTjZfUkNfQ1RMX1JDNl9FTkFCTEUpID8gIm9uIiA6ICJvZmYiKTsKKwkJCSAgICAgIG9u b2ZmKG1vZGUgJiBHRU42X1JDX0NUTF9SQzZfRU5BQkxFKSk7CiB9CiAKIHN0YXRpYyBpbnQgc2Fu aXRpemVfcmM2X29wdGlvbihjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZW5hYmxl X3JjNikKQEAgLTQ3NzQsOCArNDc3NCw3IEBAIHN0YXRpYyB2b2lkIGdlbjlfZW5hYmxlX3JjNihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCS8qIDNhOiBFbmFibGUgUkM2ICovCiAJaWYgKGludGVs X2VuYWJsZV9yYzYoZGV2KSAmIElOVEVMX1JDNl9FTkFCTEUpCiAJCXJjNl9tYXNrID0gR0VONl9S Q19DVExfUkM2X0VOQUJMRTsKLQlEUk1fSU5GTygiUkM2ICVzXG4iLCAocmM2X21hc2sgJiBHRU42 X1JDX0NUTF9SQzZfRU5BQkxFKSA/Ci0JCQkib24iIDogIm9mZiIpOworCURSTV9JTkZPKCJSQzYg JXNcbiIsIG9ub2ZmKHJjNl9tYXNrICYgR0VONl9SQ19DVExfUkM2X0VOQUJMRSkpOwogCS8qIFdh UnNVc2VUaW1lb3V0TW9kZSAqLwogCWlmIChJU19TS0xfUkVWSUQoZGV2LCAwLCBTS0xfUkVWSURf RDApIHx8CiAJICAgIElTX0JYVF9SRVZJRChkZXYsIDAsIEJYVF9SRVZJRF9BMSkpIHsKLS0gCjIu MS40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=