From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH] drm/i915: Add Baytrail PSR Support. Date: Wed, 29 Jan 2014 10:47:54 -0200 Message-ID: <1390999674-7982-1-git-send-email-rodrigo.vivi@gmail.com> References: <1390938445-4666-1-git-send-email-rodrigo.vivi@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pd0-f181.google.com (mail-pd0-f181.google.com [209.85.192.181]) by gabe.freedesktop.org (Postfix) with ESMTP id AC314106919 for ; Wed, 29 Jan 2014 04:48:00 -0800 (PST) Received: by mail-pd0-f181.google.com with SMTP id y10so1654252pdj.40 for ; Wed, 29 Jan 2014 04:48:00 -0800 (PST) In-Reply-To: <1390938445-4666-1-git-send-email-rodrigo.vivi@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIFBTUiBTdXBwb3J0IHRvIEJheXRyYWlsLgoKQmF5dHJhaWwgY2Fubm90 IGVhc2lseSBkZXRlY3Qgc2NyZWVuIHVwZGF0ZXMgYW5kIGZvcmNlIFBTUiBleGl0LgpTbyB3ZSBp bmFjdGl2YXRlIGl0IG9uIHtidXN5X2lvY3RsLCBzZXRfZG9tYWluLCBzd19maW5pc2ggYW5kIG1h cmtfYnVzeQphbmQgdXBkYXRlIHRvIGVuYWJsZSBpdCBiYWNrIG9uIG5leHQgZGlzcGxheSBtYXJr X2lkbGUuCgp2MjogQWxzbyBpbmFjdGl2YXRlIFBTUiBvbiBjdXJzb3IgdXBkYXRlLgp2MzogSW5h Y3RpdmF0ZSBQU1Igb24gbWFya19idXN5LCBkc2V0X2RvbWFpbiBhbmQgc3dfZmluaXNoX2lvY3Rs LCBhbmQKICAgIGVhcmx5IG9uIHBhZ2UgZmxpcCBiZXNpZGVzIGF2b2lkIGluaXRpYWxpemluZyBp bmFjdGl2ZS9hY3RpdmUgZmxhZwogICAgbW9yZSB0aGFuIG9uY2UuCnY0OiBGaXggaWRlbnRhdGlv biBpc3N1ZXMuCnY1OiBSZWJhc2UgYW5kIGFkZCBCYXl0cmFpbCBwZXIgcGlwZSBzdXBwb3J0IGFs dGhvdWdoIGxlYXZpbmcgUElQRV9CCiAgICBzdXBwb3J0IGRpc2FibGVkIGJ5IGZvciBub3cgc2lu Y2UgaXQgaXNuJ3Qgd29ya2luZyBwcm9wZXJseSB5ZXQuCnY2OiBSZW1vdmluZyBmb3Jnb3R0ZW4g Y29tbWVudCBhbmQgdXNlbGVzcyBjbGtnYXRpbmcgZGVmaW5pdGlvbi4KCkNjOiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBSb2Ry aWdvIFZpdmkgPHJvZHJpZ28udml2aUBnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMgIHwgIDM2ICsrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAg ICAgIHwgICA5ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgfCAgMzcg KysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDE1ICsrLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgMjA0ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAg ICAgfCAgIDEgKwogNyBmaWxlcyBjaGFuZ2VkLCAyNjcgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCA0Yjg1MmM2Li5jMjhk ZTY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMTkwMCw2ICsxOTAwLDgg QEAgc3RhdGljIGludCBpOTE1X2VkcF9wc3Jfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqZGF0YSkKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXUz MiBwc3JwZXJmID0gMDsKKwl1MzIgc3RhdEEgPSAwOworCXUzMiBzdGF0QiA9IDA7CiAJYm9vbCBl bmFibGVkID0gZmFsc2U7CiAKIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CkBAIC0x OTA3LDE0ICsxOTA5LDM4IEBAIHN0YXRpYyBpbnQgaTkxNV9lZHBfcHNyX3N0YXR1cyhzdHJ1Y3Qg c2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJc2VxX3ByaW50ZihtLCAiU2lua19TdXBwb3J0OiAl c1xuIiwgeWVzbm8oZGV2X3ByaXYtPnBzci5zaW5rX3N1cHBvcnQpKTsKIAlzZXFfcHJpbnRmKG0s ICJTb3VyY2VfT0s6ICVzXG4iLCB5ZXNubyhkZXZfcHJpdi0+cHNyLnNvdXJjZV9vaykpOwogCi0J ZW5hYmxlZCA9IEhBU19QU1IoZGV2KSAmJgotCQlJOTE1X1JFQUQoRURQX1BTUl9DVEwoZGV2KSkg JiBFRFBfUFNSX0VOQUJMRTsKLQlzZXFfcHJpbnRmKG0sICJFbmFibGVkOiAlc1xuIiwgeWVzbm8o ZW5hYmxlZCkpOworCWlmIChIQVNfUFNSKGRldikpIHsKKwkJaWYgKElTX1ZBTExFWVZJRVcoZGV2 KSkgeworCQkJc3RhdEEgPSBJOTE1X1JFQUQoVkxWX0VEUF9QU1JfU1RBVFVTX0NUTChQSVBFX0Ep KSAmCisJCQkJVkxWX0VEUF9QU1JfQ1VSUl9TVEFURV9NQVNLOworCQkJc3RhdEIgPSBJOTE1X1JF QUQoVkxWX0VEUF9QU1JfU1RBVFVTX0NUTChQSVBFX0IpKSAmCisJCQkJVkxWX0VEUF9QU1JfQ1VS Ul9TVEFURV9NQVNLOworCQkJZW5hYmxlZCA9ICgoc3RhdEEgPT0gVkxWX0VEUF9QU1JfQUNUSVZF X05PUkZCX1VQKSB8fAorCQkJCSAgIChzdGF0QSA9PSBWTFZfRURQX1BTUl9BQ1RJVkVfU0ZfVVBE QVRFKSB8fAorCQkJCSAgIChzdGF0QiA9PSBWTFZfRURQX1BTUl9BQ1RJVkVfTk9SRkJfVVApIHx8 CisJCQkJICAgKHN0YXRCID09IFZMVl9FRFBfUFNSX0FDVElWRV9TRl9VUERBVEUpKTsKKwkJfSBl bHNlCisJCQllbmFibGVkID0gSTkxNV9SRUFEKEVEUF9QU1JfQ1RMKGRldikpICYgRURQX1BTUl9F TkFCTEU7CisJfQorCXNlcV9wcmludGYobSwgIkVuYWJsZWQ6ICVzIiwgeWVzbm8oZW5hYmxlZCkp OwogCi0JaWYgKEhBU19QU1IoZGV2KSkKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7CisJCWlm ICgoc3RhdEEgPT0gVkxWX0VEUF9QU1JfQUNUSVZFX05PUkZCX1VQKSB8fAorCQkgICAgKHN0YXRB ID09IFZMVl9FRFBfUFNSX0FDVElWRV9TRl9VUERBVEUpKQorCQkJc2VxX3B1dHMobSwgIiBwaXBl IEEiKTsKKwkJaWYgKChzdGF0QiA9PSBWTFZfRURQX1BTUl9BQ1RJVkVfTk9SRkJfVVApIHx8CisJ CSAgICAoc3RhdEIgPT0gVkxWX0VEUF9QU1JfQUNUSVZFX1NGX1VQREFURSkpCisJCQlzZXFfcHV0 cyhtLCAiIHBpcGUgQiIpOworCX0KKworCXNlcV9wdXRzKG0sICJcbiIpOworCisJLyogVkxWIFBT UiBoYXMgbm8ga2luZCBvZiBwZXJmb3JtYW5jZSBjb3VudGVyICovCisJaWYgKEhBU19QU1IoZGV2 KSAmJiAhSVNfVkFMTEVZVklFVyhkZXYpKSB7CiAJCXBzcnBlcmYgPSBJOTE1X1JFQUQoRURQX1BT Ul9QRVJGX0NOVChkZXYpKSAmCiAJCQlFRFBfUFNSX1BFUkZfQ05UX01BU0s7Ci0Jc2VxX3ByaW50 ZihtLCAiUGVyZm9ybWFuY2VfQ291bnRlcjogJXVcbiIsIHBzcnBlcmYpOworCQlzZXFfcHJpbnRm KG0sICJQZXJmb3JtYW5jZV9Db3VudGVyOiAldVxuIiwgcHNycGVyZik7CisJfQogCiAJaW50ZWxf cnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKaW5kZXggN2M1M2Q0ZC4uMzRkZWUyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC03 NDcsNiArNzQ3LDcgQEAgc3RydWN0IGk5MTVfcHNyIHsKIAlib29sIHNpbmtfc3VwcG9ydDsKIAli b29sIHNvdXJjZV9vazsKIAlib29sIHNldHVwX2RvbmU7CisJYm9vbCBhY3RpdmU7CiB9OwogCiBl bnVtIGludGVsX3BjaCB7CkBAIC0xODY2LDcgKzE4NjcsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZmls ZV9wcml2YXRlIHsKIAogI2RlZmluZSBIQVNfRERJKGRldikJCShJTlRFTF9JTkZPKGRldiktPmhh c19kZGkpCiAjZGVmaW5lIEhBU19GUEdBX0RCR19VTkNMQUlNRUQoZGV2KQkoSU5URUxfSU5GTyhk ZXYpLT5oYXNfZnBnYV9kYmcpCi0jZGVmaW5lIEhBU19QU1IoZGV2KQkJKElTX0hBU1dFTEwoZGV2 KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKKyNkZWZpbmUgSEFTX1BTUihkZXYpCQkoSVNfSEFTV0VM TChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpIHx8IFwKKwkJCQkgSVNfVkFMTEVZVklFVyhkZXYp KQogI2RlZmluZSBIQVNfUEM4KGRldikJCShJU19IQVNXRUxMKGRldikpIC8qIFhYWCBIU1c6VUxY ICovCiAjZGVmaW5lIEhBU19SVU5USU1FX1BNKGRldikJKElTX0hBU1dFTEwoZGV2KSkKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggMzk3NzBmNy4uMDExMzdmZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCkBAIC0xMjU2LDYgKzEyNTYsOSBAQCBpOTE1X2dlbV9zZXRfZG9tYWluX2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWdvdG8gdW5sb2NrOwogCX0K IAorCWlmIChJU19WQUxMRVlWSUVXKGRldikpCisJCWludGVsX2VkcF9wc3JfaW5hY3RpdmF0ZShk ZXYpOworCiAJLyogVHJ5IHRvIGZsdXNoIHRoZSBvYmplY3Qgb2ZmIHRoZSBHUFUgd2l0aG91dCBo b2xkaW5nIHRoZSBsb2NrLgogCSAqIFdlIHdpbGwgcmVwZWF0IHRoZSBmbHVzaCBob2xkaW5nIHRo ZSBsb2NrIGluIHRoZSBub3JtYWwgbWFubmVyCiAJICogdG8gY2F0Y2ggY2FzZXMgd2hlcmUgd2Ug YXJlIGdhenVtcGVkLgpAQCAtMTI5OSw2ICsxMzAyLDkgQEAgaTkxNV9nZW1fc3dfZmluaXNoX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIAorCWlmIChJU19WQUxMRVlWSUVXKGRldikpCisJCWludGVsX2VkcF9wc3JfaW5h Y3RpdmF0ZShkZXYpOworCiAJb2JqID0gdG9faW50ZWxfYm8oZHJtX2dlbV9vYmplY3RfbG9va3Vw KGRldiwgZmlsZSwgYXJncy0+aGFuZGxlKSk7CiAJaWYgKCZvYmotPmJhc2UgPT0gTlVMTCkgewog CQlyZXQgPSAtRU5PRU5UOwpAQCAtNDA1OSw2ICs0MDY1LDkgQEAgaTkxNV9nZW1fYnVzeV9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWlmIChyZXQpCiAJCXJldHVy biByZXQ7CiAKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXYpKQorCQlpbnRlbF9lZHBfcHNyX2luYWN0 aXZhdGUoZGV2KTsKKwogCW9iaiA9IHRvX2ludGVsX2JvKGRybV9nZW1fb2JqZWN0X2xvb2t1cChk ZXYsIGZpbGUsIGFyZ3MtPmhhbmRsZSkpOwogCWlmICgmb2JqLT5iYXNlID09IE5VTEwpIHsKIAkJ cmV0ID0gLUVOT0VOVDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IGNiYmFmMjYuLjIwMzlk NzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtMTk2OCw2ICsxOTY4LDQzIEBACiAjZGVm aW5lIEJDTFJQQVQocGlwZSkgX1BJUEUocGlwZSwgX0JDTFJQQVRfQSwgX0JDTFJQQVRfQikKICNk ZWZpbmUgVlNZTkNTSElGVCh0cmFucykgX1RSQU5TQ09ERVIodHJhbnMsIF9WU1lOQ1NISUZUX0Es IF9WU1lOQ1NISUZUX0IpCiAKKy8qIFZMViBlRFAgUFNSIHJlZ2lzdGVycyAqLworI2RlZmluZSBf UFNSQ1RMQQkJCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NjAwOTApCisjZGVmaW5lIF9QU1JDVExC CQkJCShWTFZfRElTUExBWV9CQVNFICsgMHg2MTA5MCkKKyNkZWZpbmUgIFZMVl9FRFBfUFNSX0VO QUJMRQkJCSgxPDwwKQorI2RlZmluZSAgVkxWX0VEUF9QU1JfUkVTRVQJCQkoMTw8MSkKKyNkZWZp bmUgIFZMVl9FRFBfUFNSX01PREVfTUFTSwkJCSg3PDwyKQorI2RlZmluZSAgVkxWX0VEUF9QU1Jf TU9ERV9IV19USU1FUgkJKDE8PDMpCisjZGVmaW5lICBWTFZfRURQX1BTUl9NT0RFX1NXX1RJTUVS CQkoMTw8MikKKyNkZWZpbmUgIFZMVl9FRFBfUFNSX1NJTkdMRV9GUkFNRV9VUERBVEUJKDE8PDcp CisjZGVmaW5lICBWTFZfRURQX1BTUl9BQ1RJVkVfRU5UUlkJCSgxPDw4KQorI2RlZmluZSAgVkxW X0VEUF9QU1JfU1JDX1RSQU5TTUlUVEVSX1NUQVRFCSgxPDw5KQorI2RlZmluZSAgVkxWX0VEUF9Q U1JfREJMX0ZSQU1FCQkJKDE8PDEwKQorI2RlZmluZSAgVkxWX0VEUF9QU1JfRlJBTUVfQ09VTlRf TUFTSwkJKDB4ZmY8PDE2KQorI2RlZmluZSAgVkxWX0VEUF9QU1JfSURMRV9GUkFNRV9TSElGVAkJ MTYKKyNkZWZpbmUgIFZMVl9FRFBfUFNSX0lOVF9UUkFOU0lUSU9OCQkoMTw8MjQpCisjZGVmaW5l IFZMVl9FRFBfUFNSX0NUTChwaXBlKSBfUElQRShwaXBlLCBfUFNSQ1RMQSwgX1BTUkNUTEIpCisK KyNkZWZpbmUgX1ZTQ1NEUEEJCQkoVkxWX0RJU1BMQVlfQkFTRSArIDB4NjAwYTApCisjZGVmaW5l IF9WU0NTRFBCCQkJKFZMVl9ESVNQTEFZX0JBU0UgKyAweDYxMGEwKQorI2RlZmluZSAgVkxWX0VE UF9QU1JfU0RQX0ZSRVFfTUFTSwkoMzw8MzApCisjZGVmaW5lICBWTFZfRURQX1BTUl9TRFBfRlJF UV9PTkNFCSgxPDwzMSkKKyNkZWZpbmUgIFZMVl9FRFBfUFNSX1NEUF9GUkVRX0VWRlJBTUUJKDE8 PDMwKQorI2RlZmluZSBWTFZfRURQX1ZTQ19TRFBfUkVHKHBpcGUpCV9QSVBFKHBpcGUsIF9WU0NT RFBBLCBfVlNDU0RQQikKKworI2RlZmluZSBfUFNSU1RBVEEJCQkoVkxWX0RJU1BMQVlfQkFTRSAr IDB4NjAwOTQpCisjZGVmaW5lIF9QU1JTVEFUQgkJCShWTFZfRElTUExBWV9CQVNFICsgMHg2MTA5 NCkKKyNkZWZpbmUgIFZMVl9FRFBfUFNSX0xBU1RfU1RBVEVfTUFTSwkoNzw8MykKKyNkZWZpbmUg IFZMVl9FRFBfUFNSX0NVUlJfU1RBVEVfTUFTSwk3CisjZGVmaW5lICBWTFZfRURQX1BTUl9ESVNB QkxFRAkJKDA8PDApCisjZGVmaW5lICBWTFZfRURQX1BTUl9JTkFDVElWRQkJKDE8PDApCisjZGVm aW5lICBWTFZfRURQX1BTUl9JTl9UUkFOU19UT19BQ1RJVkUJKDI8PDApCisjZGVmaW5lICBWTFZf RURQX1BTUl9BQ1RJVkVfTk9SRkJfVVAJKDM8PDApCisjZGVmaW5lICBWTFZfRURQX1BTUl9BQ1RJ VkVfU0ZfVVBEQVRFCSg0PDwwKQorI2RlZmluZSAgVkxWX0VEUF9QU1JfRVhJVAkJKDU8PDApCisj ZGVmaW5lICBWTFZfRURQX1BTUl9JTl9UUkFOUwkJKDE8PDcpCisjZGVmaW5lIFZMVl9FRFBfUFNS X1NUQVRVU19DVEwocGlwZSkgX1BJUEUocGlwZSwgX1BTUlNUQVRBLCBfUFNSU1RBVEIpCisKIC8q IEhTVysgZURQIFBTUiByZWdpc3RlcnMgKi8KICNkZWZpbmUgRURQX1BTUl9CQVNFKGRldikgICAg ICAgICAgICAgICAgICAgICAgIChJU19IQVNXRUxMKGRldikgPyAweDY0ODAwIDogMHg2ZjgwMCkK ICNkZWZpbmUgRURQX1BTUl9DVEwoZGV2KQkJCShFRFBfUFNSX0JBU0UoZGV2KSArIDApCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggMWE5YWExOS4uMDgxYzhlMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNzUwMSw2ICs3NTAxLDkgQEAgc3RhdGlj IHZvaWQgaW50ZWxfY3J0Y191cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl1 MzIgYmFzZSA9IDAsIHBvcyA9IDA7CiAJYm9vbCB2aXNpYmxlOwogCisJaWYgKElTX1ZBTExFWVZJ RVcoZGV2KSkKKwkJaW50ZWxfZWRwX3Bzcl9pbmFjdGl2YXRlKGRldik7CisKIAlpZiAob24pCiAJ CWJhc2UgPSBpbnRlbF9jcnRjLT5jdXJzb3JfYWRkcjsKIApAQCAtODIyOCwxNiArODIzMSwyMCBA QCB2b2lkIGludGVsX21hcmtfaWRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJaWYgKGRl dl9wcml2LT5pbmZvLT5nZW4gPj0gNikKIAkJZ2VuNl9ycHNfaWRsZShkZXYtPmRldl9wcml2YXRl KTsKKworCWlmIChJU19WQUxMRVlWSUVXKGRldikpCisJCWludGVsX2VkcF9wc3JfdXBkYXRlKGRl dik7CiB9CiAKKwogdm9pZCBpbnRlbF9tYXJrX2ZiX2J1c3koc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKIAkJCXN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZykKIHsKIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNy dGM7CiAKLQlpZiAoIWk5MTUucG93ZXJzYXZlKQotCQlyZXR1cm47CisJaWYgKElTX1ZBTExFWVZJ RVcoZGV2KSkKKwkJaW50ZWxfZWRwX3Bzcl9pbmFjdGl2YXRlKGRldik7CiAKIAlsaXN0X2Zvcl9l YWNoX2VudHJ5KGNydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkgewogCQlp ZiAoIWNydGMtPmZiKQpAQCAtODY4OCw2ICs4Njk1LDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0 Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlmICh3b3JrID09IE5VTEwpCiAJ CXJldHVybiAtRU5PTUVNOwogCisJLyogSW5hY3RpdmF0ZSBQU1IgZWFybHkgaW4gcGFnZSBmbGlw ICovCisJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKKwkJaW50ZWxfZWRwX3Bzcl9pbmFjdGl2YXRl KGRldik7CisKIAl3b3JrLT5ldmVudCA9IGV2ZW50OwogCXdvcmstPmNydGMgPSBjcnRjOwogCXdv cmstPm9sZF9mYl9vYmogPSB0b19pbnRlbF9mcmFtZWJ1ZmZlcihvbGRfZmIpLT5vYmo7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYwppbmRleCAzMGQ0MzUwLi5lOWEwYWNlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKQEAgLTE1NzgsMjEgKzE1NzgsMzUgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfZ2V0 X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAl9CiB9CiAKLXN0YXRpYyBi b29sIGlzX2VkcF9wc3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyBib29sIGlzX2Vk cF9wc3Ioc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKK3sKKwlyZXR1cm4gaW50ZWxfZHAtPnBz cl9kcGNkWzBdICYgRFBfUFNSX0lTX1NVUFBPUlRFRDsKK30KKworc3RhdGljIGJvb2wgdmx2X2Vk cF9pc19wc3JfZW5hYmxlZF9vbl9waXBlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBl KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7CisJdWludDMyX3QgdmFsOwogCi0JcmV0dXJuIGRldl9wcml2LT5wc3Iuc2lua19zdXBwb3J0 OworCXZhbCA9IEk5MTVfUkVBRChWTFZfRURQX1BTUl9TVEFUVVNfQ1RMKHBpcGUpKSAmCisJCVZM Vl9FRFBfUFNSX0NVUlJfU1RBVEVfTUFTSzsKKwlyZXR1cm4gKHZhbCA9PSBWTFZfRURQX1BTUl9B Q1RJVkVfTk9SRkJfVVApIHx8CisJCSh2YWwgPT0gVkxWX0VEUF9QU1JfQUNUSVZFX1NGX1VQREFU RSk7CiB9CiAKIHN0YXRpYyBib29sIGludGVsX2VkcF9pc19wc3JfZW5hYmxlZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CiAKLQlpZiAoIUhBU19QU1IoZGV2KSkKLQkJcmV0dXJuIGZhbHNlOwor CWlmIChIQVNfUFNSKGRldikpIHsKKwkJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKKwkJCXJldHVy biB2bHZfZWRwX2lzX3Bzcl9lbmFibGVkX29uX3BpcGUoZGV2LCBQSVBFX0EpIHx8CisJCQkJdmx2 X2VkcF9pc19wc3JfZW5hYmxlZF9vbl9waXBlKGRldiwgUElQRV9CKTsKKwkJZWxzZQorCQkJcmV0 dXJuIEk5MTVfUkVBRChFRFBfUFNSX0NUTChkZXYpKSAmIEVEUF9QU1JfRU5BQkxFOworCX0KIAot CXJldHVybiBJOTE1X1JFQUQoRURQX1BTUl9DVEwoZGV2KSkgJiBFRFBfUFNSX0VOQUJMRTsKKwly ZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2VkcF9wc3Jfd3JpdGVfdnNjKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCkBAIC0xNjI2LDI4ICsxNjQwLDQ5IEBAIHN0YXRpYyB2 b2lkIGludGVsX2VkcF9wc3Jfd3JpdGVfdnNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAK IHN0YXRpYyB2b2lkIGludGVsX2VkcF9wc3Jfc2V0dXAoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2Rw KTsKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2Rp Z19wb3J0KGludGVsX2RwKTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3Bv cnQtPmJhc2UuYmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZWRwX3ZzY19wc3IgcHNyX3ZzYzsKKwl1aW50MzJf dCB2YWw7CiAKIAlpZiAoZGV2X3ByaXYtPnBzci5zZXR1cF9kb25lKQogCQlyZXR1cm47CiAKLQkv KiBQcmVwYXJlIFZTQyBwYWNrZXQgYXMgcGVyIEVEUCAxLjMgc3BlYywgVGFibGUgMy4xMCAqLwot CW1lbXNldCgmcHNyX3ZzYywgMCwgc2l6ZW9mKHBzcl92c2MpKTsKLQlwc3JfdnNjLnNkcF9oZWFk ZXIuSEIwID0gMDsKLQlwc3JfdnNjLnNkcF9oZWFkZXIuSEIxID0gMHg3OwotCXBzcl92c2Muc2Rw X2hlYWRlci5IQjIgPSAweDI7Ci0JcHNyX3ZzYy5zZHBfaGVhZGVyLkhCMyA9IDB4ODsKLQlpbnRl bF9lZHBfcHNyX3dyaXRlX3ZzYyhpbnRlbF9kcCwgJnBzcl92c2MpOworCWlmIChJU19WQUxMRVlW SUVXKGRldikpIHsKKwkJdmFsICA9IEk5MTVfUkVBRChWTFZfRURQX1ZTQ19TRFBfUkVHKFBJUEVf QSkpOworCQl2YWwgJj0gflZMVl9FRFBfUFNSX1NEUF9GUkVRX01BU0s7CisJCXZhbCB8PSBWTFZf RURQX1BTUl9TRFBfRlJFUV9FVkZSQU1FOworCQlJOTE1X1dSSVRFKFZMVl9FRFBfVlNDX1NEUF9S RUcoUElQRV9BKSwgdmFsKTsKKworCQl2YWwgID0gSTkxNV9SRUFEKFZMVl9FRFBfVlNDX1NEUF9S RUcoUElQRV9CKSk7CisJCXZhbCAmPSB+VkxWX0VEUF9QU1JfU0RQX0ZSRVFfTUFTSzsKKwkJdmFs IHw9IFZMVl9FRFBfUFNSX1NEUF9GUkVRX0VWRlJBTUU7CisJCUk5MTVfV1JJVEUoVkxWX0VEUF9W U0NfU0RQX1JFRyhQSVBFX0IpLCB2YWwpOworCX0gZWxzZSB7CisJCS8qIFByZXBhcmUgVlNDIHBh Y2tldCBhcyBwZXIgRURQIDEuMyBzcGVjLCBUYWJsZSAzLjEwICovCisJCW1lbXNldCgmcHNyX3Zz YywgMCwgc2l6ZW9mKHBzcl92c2MpKTsKKwkJcHNyX3ZzYy5zZHBfaGVhZGVyLkhCMCA9IDA7CisJ CXBzcl92c2Muc2RwX2hlYWRlci5IQjEgPSAweDc7CisJCXBzcl92c2Muc2RwX2hlYWRlci5IQjIg PSAweDI7CisJCXBzcl92c2Muc2RwX2hlYWRlci5IQjMgPSAweDg7CisJCWludGVsX2VkcF9wc3Jf d3JpdGVfdnNjKGludGVsX2RwLCAmcHNyX3ZzYyk7CiAKLQkvKiBBdm9pZCBjb250aW51b3VzIFBT UiBleGl0IGJ5IG1hc2tpbmcgbWVtdXAgYW5kIGhwZCAqLwotCUk5MTVfV1JJVEUoRURQX1BTUl9E RUJVR19DVEwoZGV2KSwgRURQX1BTUl9ERUJVR19NQVNLX01FTVVQIHwKLQkJICAgRURQX1BTUl9E RUJVR19NQVNLX0hQRCB8IEVEUF9QU1JfREVCVUdfTUFTS19MUFNQKTsKKwkJLyogQXZvaWQgY29u dGludW91cyBQU1IgZXhpdCBieSBtYXNraW5nIG1lbXVwIGFuZCBocGQgKi8KKwkJSTkxNV9XUklU RShFRFBfUFNSX0RFQlVHX0NUTChkZXYpLCBFRFBfUFNSX0RFQlVHX01BU0tfTUVNVVAgfAorCQkJ ICAgRURQX1BTUl9ERUJVR19NQVNLX0hQRCB8IEVEUF9QU1JfREVCVUdfTUFTS19MUFNQKTsKKwl9 CiAKIAlkZXZfcHJpdi0+cHNyLnNldHVwX2RvbmUgPSB0cnVlOwogfQogCitzdGF0aWMgdm9pZCB2 bHZfZWRwX3Bzcl9lbmFibGVfc2luayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQoreworCS8q IEVuYWJsZSBQU1IgaW4gc2luayAqLworCWludGVsX2RwX2F1eF9uYXRpdmVfd3JpdGVfMShpbnRl bF9kcCwgRFBfUFNSX0VOX0NGRywKKwkJCQkgICAgRFBfUFNSX0VOQUJMRSk7Cit9CisKIHN0YXRp YyB2b2lkIGludGVsX2VkcF9wc3JfZW5hYmxlX3Npbmsoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2Rw KTsKQEAgLTE2NzgsNiArMTcxMywyOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lZHBfcHNyX2VuYWJs ZV9zaW5rKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJCSAgIChhdXhfY2xvY2tfZGl2aWRl ciA8PCBEUF9BVVhfQ0hfQ1RMX0JJVF9DTE9DS18yWF9TSElGVCkpOwogfQogCitzdGF0aWMgdm9p ZCB2bHZfZWRwX3Bzcl9lbmFibGVfc291cmNlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCit7 CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdf cG9ydChpbnRlbF9kcCk7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0 LT5iYXNlLmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQorCQl0b19p bnRlbF9jcnRjKGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuY3J0Yyk7CisKKwl1aW50MzJfdCBp ZGxlX2ZyYW1lcyA9IDE7CisJdWludDMyX3QgdmFsOworCisJdmFsID0gSTkxNV9SRUFEKFZMVl9F RFBfUFNSX0NUTChpbnRlbF9jcnRjLT5waXBlKSk7CisJdmFsIHw9IFZMVl9FRFBfUFNSX0VOQUJM RTsKKwl2YWwgJj0gflZMVl9FRFBfUFNSX01PREVfTUFTSzsKKworCXZhbCB8PSBWTFZfRURQX1BT Ul9NT0RFX0hXX1RJTUVSOworCXZhbCAmPSB+VkxWX0VEUF9QU1JfRlJBTUVfQ09VTlRfTUFTSzsK Kwl2YWwgfD0gaWRsZV9mcmFtZXMgPDwgRURQX1BTUl9JRExFX0ZSQU1FX1NISUZUOworCisJSTkx NV9XUklURShWTFZfRURQX1BTUl9DVEwoaW50ZWxfY3J0Yy0+cGlwZSksIHZhbCk7Cit9CisKIHN0 YXRpYyB2b2lkIGludGVsX2VkcF9wc3JfZW5hYmxlX3NvdXJjZShzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50 ZWxfZHApOwpAQCAtMTcxOSw4ICsxNzc2LDggQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX3Bzcl9t YXRjaF9jb25kaXRpb25zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJCXJldHVybiBmYWxz ZTsKIAl9CiAKLQlpZiAoKGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCkg fHwKLQkgICAgKGRpZ19wb3J0LT5wb3J0ICE9IFBPUlRfQSkpIHsKKwlpZiAoSEFTX0RESShkZXYp ICYmICgoaW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRURQKSB8fAorCQkJICAg ICAoZGlnX3BvcnQtPnBvcnQgIT0gUE9SVF9BKSkpIHsKIAkJRFJNX0RFQlVHX0tNUygiSFNXIHRp ZXMgUFNSIHRvIERESSBBIChlRFApXG4iKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KQEAgLTE3NjUs MzcgKzE4MjIsODMgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX3Bzcl9tYXRjaF9jb25kaXRpb25z KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJCXJldHVybiBmYWxzZTsKIAl9CiAKKwkvKiBC YXl0cmFpbCBzdXBwb3J0cyBwZXItcGlwZSBQU1IgY29uZmlndXJhdGlvbiwgaG93ZXZlciBQU1Ig b24KKwkqIFBJUEVfQiBpc24ndCB3b3JraW5nIHByb3Blcmx5LiBTbyBsZXQncyBrZWVwIGl0IGRp c2FibGVkIGZvciBub3cuICovCisJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSAmJiBpbnRlbF9jcnRj LT5waXBlICE9IFBJUEVfQSkgeworCQlEUk1fREVCVUdfS01TKCJQU1Igb24gQllUIGlzbid0IGVu YWJsZWQgb24gcGlwZSBCLlxuIik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKIAlkZXZfcHJpdi0+ cHNyLnNvdXJjZV9vayA9IHRydWU7CiAJcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyB2b2lkIGlu dGVsX2VkcF9wc3JfZG9fZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiB7Ci0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7CisJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRl bF9kcCk7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJh c2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQorCQl0b19pbnRlbF9jcnRj KGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuY3J0Yyk7CiAKLQlpZiAoIWludGVsX2VkcF9wc3Jf bWF0Y2hfY29uZGl0aW9ucyhpbnRlbF9kcCkgfHwKLQkgICAgaW50ZWxfZWRwX2lzX3Bzcl9lbmFi bGVkKGRldikpCi0JCXJldHVybjsKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7CisJCWlmICh2 bHZfZWRwX2lzX3Bzcl9lbmFibGVkX29uX3BpcGUoZGV2LCBpbnRlbF9jcnRjLT5waXBlKSkKKwkJ CXJldHVybjsKKwl9IGVsc2UKKwkJaWYgKGludGVsX2VkcF9pc19wc3JfZW5hYmxlZChkZXYpKQor CQkJcmV0dXJuOwogCiAJLyogU2V0dXAgUFNSIG9uY2UgKi8KIAlpbnRlbF9lZHBfcHNyX3NldHVw KGludGVsX2RwKTsKIAogCS8qIEVuYWJsZSBQU1Igb24gdGhlIHBhbmVsICovCi0JaW50ZWxfZWRw X3Bzcl9lbmFibGVfc2luayhpbnRlbF9kcCk7CisJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKKwkJ dmx2X2VkcF9wc3JfZW5hYmxlX3NpbmsoaW50ZWxfZHApOworCWVsc2UKKwkJaW50ZWxfZWRwX3Bz cl9lbmFibGVfc2luayhpbnRlbF9kcCk7CiAKIAkvKiBFbmFibGUgUFNSIG9uIHRoZSBob3N0ICov Ci0JaW50ZWxfZWRwX3Bzcl9lbmFibGVfc291cmNlKGludGVsX2RwKTsKKwlpZiAoSVNfVkFMTEVZ VklFVyhkZXYpKQorCQl2bHZfZWRwX3Bzcl9lbmFibGVfc291cmNlKGludGVsX2RwKTsKKwllbHNl CisJCWludGVsX2VkcF9wc3JfZW5hYmxlX3NvdXJjZShpbnRlbF9kcCk7CisKKwlkZXZfcHJpdi0+ cHNyLmFjdGl2ZSA9IHRydWU7CiB9CiAKIHZvaWQgaW50ZWxfZWRwX3Bzcl9lbmFibGUoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxf ZHBfdG9fZGV2KGludGVsX2RwKTsKKwlpZiAoIWlzX2VkcF9wc3IoaW50ZWxfZHApKQorCQlyZXR1 cm47CiAKLQlpZiAoaW50ZWxfZWRwX3Bzcl9tYXRjaF9jb25kaXRpb25zKGludGVsX2RwKSAmJgot CSAgICAhaW50ZWxfZWRwX2lzX3Bzcl9lbmFibGVkKGRldikpCisJaWYgKGludGVsX2VkcF9wc3Jf bWF0Y2hfY29uZGl0aW9ucyhpbnRlbF9kcCkpCiAJCWludGVsX2VkcF9wc3JfZG9fZW5hYmxlKGlu dGVsX2RwKTsKIH0KIAordm9pZCB2bHZfZWRwX3Bzcl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQg PSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGlu dGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPQorCQl0b19pbnRlbF9jcnRjKGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuY3J0Yyk7CisJ dWludDMyX3QgdmFsID0gSTkxNV9SRUFEKFZMVl9FRFBfUFNSX1NUQVRVU19DVEwoaW50ZWxfY3J0 Yy0+cGlwZSkpOworCisJaWYgKCFkZXZfcHJpdi0+cHNyLnNldHVwX2RvbmUpCisJCXJldHVybjsK KworCWludGVsX2VkcF9wc3JfaW5hY3RpdmF0ZShkZXYpOworCisJaWYgKHZhbCAmIFZMVl9FRFBf UFNSX0lOX1RSQU5TKQorCQl1ZGVsYXkoMjUwKTsKKworCXZhbCA9IEk5MTVfUkVBRChWTFZfRURQ X1BTUl9DVEwoaW50ZWxfY3J0Yy0+cGlwZSkpOworCXZhbCAmPSB+VkxWX0VEUF9QU1JfQUNUSVZF X0VOVFJZOworCXZhbCAmPSB+VkxWX0VEUF9QU1JfRU5BQkxFOworCXZhbCAmPSB+VkxWX0VEUF9Q U1JfTU9ERV9NQVNLOworCUk5MTVfV1JJVEUoVkxWX0VEUF9QU1JfQ1RMKGludGVsX2NydGMtPnBp cGUpLCB2YWwpOworfQorCiB2b2lkIGludGVsX2VkcF9wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19k ZXYoaW50ZWxfZHApOwpAQCAtMTgxNywyOCArMTkyMCw2NiBAQCB2b2lkIGludGVsX2VkcF9wc3Jf dXBkYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXI7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IE5VTEw7CisJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGM7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVuY29kZXIsICZk ZXYtPm1vZGVfY29uZmlnLmVuY29kZXJfbGlzdCwgYmFzZS5oZWFkKQogCQlpZiAoZW5jb2Rlci0+ dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7CiAJCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9k cCgmZW5jb2Rlci0+YmFzZSk7CiAKLQkJCWlmICghaXNfZWRwX3BzcihkZXYpKQorCQkJaWYgKCFp c19lZHBfcHNyKGludGVsX2RwKSkKIAkJCQlyZXR1cm47CiAKLQkJCWlmICghaW50ZWxfZWRwX3Bz cl9tYXRjaF9jb25kaXRpb25zKGludGVsX2RwKSkKLQkJCQlpbnRlbF9lZHBfcHNyX2Rpc2FibGUo aW50ZWxfZHApOwotCQkJZWxzZQorCQkJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rl ci0+YmFzZS5jcnRjKTsKKworCQkJaWYgKCFpbnRlbF9lZHBfcHNyX21hdGNoX2NvbmRpdGlvbnMo aW50ZWxfZHApKSB7CisJCQkJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKKwkJCQkJdmx2X2VkcF9w c3JfZGlzYWJsZShpbnRlbF9kcCk7CisJCQkJZWxzZQorCQkJCQlpbnRlbF9lZHBfcHNyX2Rpc2Fi bGUoaW50ZWxfZHApOworCQkJfSBlbHNlCiAJCQkJaWYgKCFpbnRlbF9lZHBfaXNfcHNyX2VuYWJs ZWQoZGV2KSkKIAkJCQkJaW50ZWxfZWRwX3Bzcl9kb19lbmFibGUoaW50ZWxfZHApOwogCQl9CiB9 CiAKK3ZvaWQgaW50ZWxfZWRwX3Bzcl9pbmFjdGl2YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YzsKKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gTlVMTDsKKworCWlmICgh ZGV2X3ByaXYtPnBzci5zZXR1cF9kb25lIHx8ICFkZXZfcHJpdi0+cHNyLmFjdGl2ZSkKKwkJcmV0 dXJuOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbmNvZGVyLCAmZGV2LT5tb2RlX2NvbmZpZy5l bmNvZGVyX2xpc3QsIGJhc2UuaGVhZCkKKwkJaWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VU UFVUX0VEUCkgeworCQkJaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2Up OworCQkJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKKwor CQkJaWYgKCF2bHZfZWRwX2lzX3Bzcl9lbmFibGVkX29uX3BpcGUoZGV2LAorCQkJCQkJCSAgICBp bnRlbF9jcnRjLT5waXBlKSkKKwkJCQljb250aW51ZTsKKworCQkJZGV2X3ByaXYtPnBzci5hY3Rp dmUgPSBmYWxzZTsKKwkJCUk5MTVfV1JJVEUoVkxWX0VEUF9QU1JfQ1RMKGludGVsX2NydGMtPnBp cGUpLAorCQkJCSAgIFZMVl9FRFBfUFNSX1JFU0VUKTsKKwkJCS8qIFdhQ2xlYXJQU1JSZXNldDp2 bHYgKi8KKwkJCUk5MTVfV1JJVEUoVkxWX0VEUF9QU1JfQ1RMKGludGVsX2NydGMtPnBpcGUpLCAw KTsKKworCQkJaW50ZWxfZHBfc2lua19kcG1zKGludGVsX2RwLCBEUk1fTU9ERV9EUE1TX09OKTsK KwkJfQorfQorCiBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50 ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCWVudW0gcG9ydCBwb3J0ID0gZHBfdG9fZGlnX3BvcnQo aW50ZWxfZHApLT5wb3J0OwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNl LmRldjsKIAorCWlmIChJU19WQUxMRVlWSUVXKGRldikpCisJCXZsdl9lZHBfcHNyX2Rpc2FibGUo aW50ZWxfZHApOworCiAJLyogTWFrZSBzdXJlIHRoZSBwYW5lbCBpcyBvZmYgYmVmb3JlIHRyeWlu ZyB0byBjaGFuZ2UgdGhlIG1vZGUuIEJ1dCBhbHNvCiAJICogZW5zdXJlIHRoYXQgd2UgaGF2ZSB2 ZGQgd2hpbGUgd2Ugc3dpdGNoIG9mZiB0aGUgcGFuZWwuICovCiAJaW50ZWxfZWRwX2JhY2tsaWdo dF9vZmYoaW50ZWxfZHApOwpAQCAtMTg5NSw2ICsyMDM2LDcgQEAgc3RhdGljIHZvaWQgdmx2X2Vu YWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAlzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAogCWludGVsX2Vk cF9iYWNrbGlnaHRfb24oaW50ZWxfZHApOworCWludGVsX2VkcF9wc3JfZW5hYmxlKGludGVsX2Rw KTsKIH0KIAogc3RhdGljIHZvaWQgZzR4X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDcxYzEzNzEuLjgyMDI2 ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC03NDgsNiArNzQ4LDcgQEAgdm9pZCBp bnRlbF9lZHBfcGFuZWxfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwogdm9pZCBpbnRl bF9lZHBfcHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKIHZvaWQgaW50ZWxf ZWRwX3Bzcl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwogdm9pZCBpbnRlbF9l ZHBfcHNyX3VwZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK3ZvaWQgaW50ZWxfZWRwX3Bz cl9pbmFjdGl2YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCiAKIC8qIGludGVsX2RzaS5j ICovCi0tIAoxLjguMS4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=