From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH v2 12/13] drm/i915: Manage HSW/BDW LCPLLs with the shared dpll interface Date: Mon, 29 Feb 2016 11:08:19 +0200 Message-ID: <1456736899-4195-1-git-send-email-ander.conselvan.de.oliveira@intel.com> References: <1456494866-7665-13-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id EE2396E228 for ; Mon, 29 Feb 2016 09:08:16 +0000 (UTC) In-Reply-To: <1456494866-7665-13-git-send-email-ander.conselvan.de.oliveira@intel.com> 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: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org TWFuYWdlIHRoZSBMQ1BMTHMgdXNlZCB3aXRoIERpc3BsYXlQb3J0LCBzbyB0aGF0IGFsbCB0aGUg SFNXL0JEVyBEUExMcwphcmUgbWFuYWdlZCBieSB0aGUgc2hhcmVkIGRwbGwgY29kZS4KCnYyOiBJ bnRyb2R1Y2UgSU5URUxfRFBMTF9BTFdBWVNfT04gZmxhZyB0byBwbGVhc2Ugc3RhdGUgY2hlY2tl ci4gKEFuZGVyKQoKU2lnbmVkLW9mZi1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxh bmRlci5jb25zZWx2YW4uZGUub2xpdmVpcmFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RkaS5jICAgICAgfCAxOCArKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgIHwgMjUgKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYyAgICAgICB8IDIzICstLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHBfbXN0LmMgICB8ICA0IC0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21n ci5jIHwgODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmggfCAxMiArKysrLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggICAgICB8ICAxIC0KIDcgZmlsZXMgY2hhbmdlZCwgMTA3IGluc2VydGlv bnMoKyksIDY1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKaW5kZXggYWQ3 ODg4Yy4uM2NiOWYzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKQEAgLTk5MiwxNyArOTky LDEzIEBAIGhzd19kZGlfcGxsX3NlbGVjdChzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywK IHsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAotCWlmIChpbnRlbF9lbmNvZGVy LT50eXBlID09IElOVEVMX09VVFBVVF9IRE1JIHx8Ci0JICAgIGludGVsX2VuY29kZXItPnR5cGUg PT0gSU5URUxfT1VUUFVUX0FOQUxPRykgewotCQlwbGwgPSBpbnRlbF9nZXRfc2hhcmVkX2RwbGwo aW50ZWxfY3J0YywgY3J0Y19zdGF0ZSwKLQkJCQkJICAgIGludGVsX2VuY29kZXIpOwotCQlpZiAo IXBsbCkKLQkJCURSTV9ERUJVR19EUklWRVIoImZhaWxlZCB0byBmaW5kIFBMTCBmb3IgcGlwZSAl Y1xuIiwKLQkJCQkJIHBpcGVfbmFtZShpbnRlbF9jcnRjLT5waXBlKSk7Ci0JCXJldHVybiBwbGw7 Ci0JfSBlbHNlIHsKLQkJcmV0dXJuIHRydWU7Ci0JfQorCXBsbCA9IGludGVsX2dldF9zaGFyZWRf ZHBsbChpbnRlbF9jcnRjLCBjcnRjX3N0YXRlLAorCQkJCSAgICBpbnRlbF9lbmNvZGVyKTsKKwlp ZiAoIXBsbCkKKwkJRFJNX0RFQlVHX0RSSVZFUigiZmFpbGVkIHRvIGZpbmQgUExMIGZvciBwaXBl ICVjXG4iLAorCQkJCSBwaXBlX25hbWUoaW50ZWxfY3J0Yy0+cGlwZSkpOworCisJcmV0dXJuIHBs bDsKIH0KIAogc3RhdGljIGJvb2wKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRl eCAxN2Y0ZjM0Li43ZGNiMDJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBA IC05NjYwLDEzICs5NjYwLDE5IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfZ2V0X2RkaV9wbGwoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWNhc2UgUE9SVF9DTEtfU0VMX1NQTEw6 CiAJCWlkID0gRFBMTF9JRF9TUExMOwogCQlicmVhazsKKwljYXNlIFBPUlRfQ0xLX1NFTF9MQ1BM TF84MTA6CisJCWlkID0gRFBMTF9JRF9MQ1BMTF84MTA7CisJCWJyZWFrOworCWNhc2UgUE9SVF9D TEtfU0VMX0xDUExMXzEzNTA6CisJCWlkID0gRFBMTF9JRF9MQ1BMTF8xMzUwOworCQlicmVhazsK KwljYXNlIFBPUlRfQ0xLX1NFTF9MQ1BMTF8yNzAwOgorCQlpZCA9IERQTExfSURfTENQTExfMjcw MDsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJTUlTU0lOR19DQVNFKHBpcGVfY29uZmlnLT5kZGlf cGxsX3NlbCk7CiAJCS8qIGZhbGwgdGhyb3VnaCAqLwogCWNhc2UgUE9SVF9DTEtfU0VMX05PTkU6 Ci0JY2FzZSBQT1JUX0NMS19TRUxfTENQTExfODEwOgotCWNhc2UgUE9SVF9DTEtfU0VMX0xDUExM XzEzNTA6Ci0JY2FzZSBQT1JUX0NMS19TRUxfTENQTExfMjcwMDoKIAkJcmV0dXJuOwogCX0KIApA QCAtMTI3MzUsMTEgKzEyNzQxLDE0IEBAIGNoZWNrX3NoYXJlZF9kcGxsX3N0YXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJCSAgICAgcGxsLT5hY3RpdmUsIGh3ZWlnaHQzMihwbGwtPmNvbmZp Zy5jcnRjX21hc2spKTsKIAkJSTkxNV9TVEFURV9XQVJOKHBsbC0+YWN0aXZlICYmICFwbGwtPm9u LAogCQkgICAgICJwbGwgaW4gYWN0aXZlIHVzZSBidXQgbm90IG9uIGluIHN3IHRyYWNraW5nXG4i KTsKLQkJSTkxNV9TVEFURV9XQVJOKHBsbC0+b24gJiYgIXBsbC0+YWN0aXZlLAotCQkgICAgICJw bGwgaW4gb24gYnV0IG5vdCBvbiBpbiB1c2UgaW4gc3cgdHJhY2tpbmdcbiIpOwotCQlJOTE1X1NU QVRFX1dBUk4ocGxsLT5vbiAhPSBhY3RpdmUsCi0JCSAgICAgInBsbCBvbiBzdGF0ZSBtaXNtYXRj aCAoZXhwZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwKLQkJICAgICBwbGwtPm9uLCBhY3RpdmUpOwor CisJCWlmICghKHBsbC0+ZmxhZ3MgJiBJTlRFTF9EUExMX0FMV0FZU19PTikpIHsKKwkJCUk5MTVf U1RBVEVfV0FSTihwbGwtPm9uICYmICFwbGwtPmFjdGl2ZSwKKwkJCSAgICAgInBsbCBpbiBvbiBi dXQgbm90IG9uIGluIHVzZSBpbiBzdyB0cmFja2luZ1xuIik7CisJCQlJOTE1X1NUQVRFX1dBUk4o cGxsLT5vbiAhPSBhY3RpdmUsCisJCQkgICAgICJwbGwgb24gc3RhdGUgbWlzbWF0Y2ggKGV4cGVj dGVkICVpLCBmb3VuZCAlaSlcbiIsCisJCQkgICAgIHBsbC0+b24sIGFjdGl2ZSk7CisJCX0KIAog CQlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0YykgewogCQkJaWYgKGNydGMtPmJhc2Uuc3Rh dGUtPmVuYWJsZSAmJiBjcnRjLT5jb25maWctPnNoYXJlZF9kcGxsID09IHBsbCkKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCmluZGV4IGNiYzA2NTkuLjViZTY4OTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwpAQCAtMTI3NSwyNSArMTI3NSw2IEBAIHNrbF9lZHBfc2V0X3BsbF9jb25maWcoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogCXBpcGVfY29uZmlnLT5kcGxsX2h3X3N0 YXRlLmN0cmwxID0gY3RybDE7CiB9CiAKLXZvaWQKLWhzd19kcF9zZXRfZGRpX3BsbF9zZWwoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQotewotCW1lbXNldCgmcGlwZV9jb25m aWctPmRwbGxfaHdfc3RhdGUsIDAsCi0JICAgICAgIHNpemVvZihwaXBlX2NvbmZpZy0+ZHBsbF9o d19zdGF0ZSkpOwotCi0Jc3dpdGNoIChwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayAvIDIpIHsKLQlj YXNlIDgxMDAwOgotCQlwaXBlX2NvbmZpZy0+ZGRpX3BsbF9zZWwgPSBQT1JUX0NMS19TRUxfTENQ TExfODEwOwotCQlicmVhazsKLQljYXNlIDEzNTAwMDoKLQkJcGlwZV9jb25maWctPmRkaV9wbGxf c2VsID0gUE9SVF9DTEtfU0VMX0xDUExMXzEzNTA7Ci0JCWJyZWFrOwotCWNhc2UgMjcwMDAwOgot CQlwaXBlX2NvbmZpZy0+ZGRpX3BsbF9zZWwgPSBQT1JUX0NMS19TRUxfTENQTExfMjcwMDsKLQkJ YnJlYWs7Ci0JfQotfQotCiBzdGF0aWMgaW50CiBpbnRlbF9kcF9zaW5rX3JhdGVzKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsIGNvbnN0IGludCAqKnNpbmtfcmF0ZXMpCiB7CkBAIC0xNjUzLDEw ICsxNjM0LDggQEAgZm91bmQ6CiAKIAlpZiAoKElTX1NLWUxBS0UoZGV2KSAgfHwgSVNfS0FCWUxB S0UoZGV2KSkgJiYgaXNfZWRwKGludGVsX2RwKSkKIAkJc2tsX2VkcF9zZXRfcGxsX2NvbmZpZyhw aXBlX2NvbmZpZyk7Ci0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQorCWVsc2UgaWYgKElTX0JS T1hUT04oZGV2KSB8fCBJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpCiAJCS8q IGhhbmRsZWQgaW4gZGRpICovOwotCWVsc2UgaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9B RFdFTEwoZGV2KSkKLQkJaHN3X2RwX3NldF9kZGlfcGxsX3NlbChwaXBlX2NvbmZpZyk7CiAJZWxz ZQogCQlpbnRlbF9kcF9zZXRfY2xvY2soZW5jb2RlciwgcGlwZV9jb25maWcpOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwX21zdC5jCmluZGV4IGEyYmQ2OTguLjhkMWI3MDMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwX21zdC5jCkBAIC0zMyw3ICszMyw2IEBACiBzdGF0aWMgYm9vbCBpbnRl bF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJ CQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJc3RydWN0IGludGVsX2RwX21zdF9l bmNvZGVyICppbnRlbF9tc3QgPSBlbmNfdG9fbXN0KCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGludGVsX21zdC0+cHJpbWFyeTsK IAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsKQEAgLTky LDkgKzkxLDYgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJcGlwZV9jb25maWctPmRwX21fbi50dSA9IHNs b3RzOwogCi0JaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKLQkJaHN3 X2RwX3NldF9kZGlfcGxsX3NlbChwaXBlX2NvbmZpZyk7Ci0KIAlyZXR1cm4gdHJ1ZTsKIAogfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggMDQzYjdhNC4uZDM3MTY4MCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCkBAIC00NDcsNiArNDQ3LDEyIEBA IHN0YXRpYyB1aW50MzJfdCBoc3dfcGxsX3RvX2RkaV9wbGxfc2VsKHN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbCAqcGxsKQogCQlyZXR1cm4gUE9SVF9DTEtfU0VMX1dSUExMMjsKIAljYXNlIERQTExf SURfU1BMTDoKIAkJcmV0dXJuIFBPUlRfQ0xLX1NFTF9TUExMOworCWNhc2UgRFBMTF9JRF9MQ1BM TF84MTA6CisJCXJldHVybiBQT1JUX0NMS19TRUxfTENQTExfODEwOworCWNhc2UgRFBMTF9JRF9M Q1BMTF8xMzUwOgorCQlyZXR1cm4gUE9SVF9DTEtfU0VMX0xDUExMXzEzNTA7CisJY2FzZSBEUExM X0lEX0xDUExMXzI3MDA6CisJCXJldHVybiBQT1JUX0NMS19TRUxfTENQTExfMjcwMDsKIAlkZWZh dWx0OgogCQlyZXR1cm4gUE9SVF9DTEtfU0VMX05PTkU7CiAJfQpAQCAtNjcxLDkgKzY3NywxMyBA QCBzdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKIGhzd19nZXRfZHBsbChzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJ ICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50 ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAlpbnQgY2xvY2sgPSBjcnRjX3N0YXRlLT5wb3J0X2Nsb2Nr OwogCisJbWVtc2V0KCZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLCAwLAorCSAgICAgICBzaXpl b2YoY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSkpOworCiAJaWYgKGVuY29kZXItPnR5cGUgPT0g SU5URUxfT1VUUFVUX0hETUkpIHsKIAkJdWludDMyX3QgdmFsOwogCQl1bnNpZ25lZCBwLCBuMiwg cjI7CkBAIC02ODQsMjEgKzY5NCwzNyBAQCBoc3dfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGMg KmNydGMsIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkgICAgICBXUlBM TF9ESVZJREVSX1JFRkVSRU5DRShyMikgfCBXUlBMTF9ESVZJREVSX0ZFRURCQUNLKG4yKSB8CiAJ CSAgICAgIFdSUExMX0RJVklERVJfUE9TVChwKTsKIAotCQltZW1zZXQoJmNydGNfc3RhdGUtPmRw bGxfaHdfc3RhdGUsIDAsCi0JCSAgICAgICBzaXplb2YoY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0 ZSkpOwotCiAJCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUud3JwbGwgPSB2YWw7CiAKIAkJcGxs ID0gaW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjLCBjcnRjX3N0YXRlLAogCQkJCQkgICAgIERQ TExfSURfV1JQTEwxLCBEUExMX0lEX1dSUExMMik7CiAKKwl9IGVsc2UgaWYgKGVuY29kZXItPnR5 cGUgPT0gSU5URUxfT1VUUFVUX0RJU1BMQVlQT1JUIHx8CisJCSAgIGVuY29kZXItPnR5cGUgPT0g SU5URUxfT1VUUFVUX0RQX01TVCB8fAorCQkgICBlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBV VF9FRFApIHsKKwkJZW51bSBpbnRlbF9kcGxsX2lkIHBsbF9pZDsKKworCQlzd2l0Y2ggKGNsb2Nr IC8gMikgeworCQljYXNlIDgxMDAwOgorCQkJcGxsX2lkID0gRFBMTF9JRF9MQ1BMTF84MTA7CisJ CQlicmVhazsKKwkJY2FzZSAxMzUwMDA6CisJCQlwbGxfaWQgPSBEUExMX0lEX0xDUExMXzEzNTA7 CisJCQlicmVhazsKKwkJY2FzZSAyNzAwMDA6CisJCQlwbGxfaWQgPSBEUExMX0lEX0xDUExMXzI3 MDA7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCURSTV9ERUJVR19LTVMoIkludmFsaWQgY2xv Y2sgZm9yIERQOiAlZFxuIiwgY2xvY2spOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKworCQlwbGwg PSBpbnRlbF9nZXRfc2hhcmVkX2RwbGxfYnlfaWQoZGV2X3ByaXYsIHBsbF9pZCk7CisKIAl9IGVs c2UgaWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0FOQUxPRykgewogCQlpZiAoV0FS Tl9PTihjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrIC8gMiAhPSAxMzUwMDApKQogCQkJcmV0dXJuIE5V TEw7CiAKLQkJbWVtc2V0KCZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLCAwLAotCQkgICAgICAg c2l6ZW9mKGNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpKTsKLQogCQljcnRjX3N0YXRlLT5kcGxs X2h3X3N0YXRlLnNwbGwgPQogCQkJU1BMTF9QTExfRU5BQkxFIHwgU1BMTF9QTExfRlJFUV8xMzUw TUh6IHwgU1BMTF9QTExfU1NDOwogCkBAIC03MzEsNiArNzU3LDI5IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfZnVuY3MgaHN3X2RkaV9zcGxsX2Z1bmNzID0gewogCS5n ZXRfaHdfc3RhdGUgPSBoc3dfZGRpX3NwbGxfZ2V0X2h3X3N0YXRlLAogfTsKIAorc3RhdGljIHZv aWQgaHN3X2RkaV9sY3BsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAorCQkJCSBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCkKK3sKK30KKworc3RhdGljIHZv aWQgaHN3X2RkaV9sY3BsbF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKKwkJCQkgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQoreworfQorCitzdGF0aWMg Ym9vbCBoc3dfZGRpX2xjcGxsX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCisJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsLAorCQkJ CSAgICAgICBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqaHdfc3RhdGUpCit7CisJcmV0dXJu IHRydWU7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfZnVuY3Mg aHN3X2RkaV9sY3BsbF9mdW5jcyA9IHsKKwkuZW5hYmxlID0gaHN3X2RkaV9sY3BsbF9lbmFibGUs CisJLmRpc2FibGUgPSBoc3dfZGRpX2xjcGxsX2Rpc2FibGUsCisJLmdldF9od19zdGF0ZSA9IGhz d19kZGlfbGNwbGxfZ2V0X2h3X3N0YXRlLAorfTsKKwogc3RydWN0IHNrbF9kcGxsX3JlZ3Mgewog CWk5MTVfcmVnX3QgY3RsLCBjZmdjcjEsIGNmZ2NyMjsKIH07CkBAIC0xNTM3LDYgKzE1ODYsNyBA QCBzdHJ1Y3QgZHBsbF9pbmZvIHsKIAljb25zdCBjaGFyICpuYW1lOwogCWNvbnN0IGludCBpZDsK IAljb25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfZnVuY3MgKmZ1bmNzOworCXVpbnQzMl90 IGZsYWdzOwogfTsKIAogc3RydWN0IGludGVsX2RwbGxfbWdyIHsKQEAgLTE1NDgsOSArMTU5OCw5 IEBAIHN0cnVjdCBpbnRlbF9kcGxsX21nciB7CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRw bGxfaW5mbyBwY2hfcGxsc1tdID0gewotCXsgIlBDSCBEUExMIEEiLCBEUExMX0lEX1BDSF9QTExf QSwgJmlieF9wY2hfZHBsbF9mdW5jcyB9LAotCXsgIlBDSCBEUExMIEIiLCBEUExMX0lEX1BDSF9Q TExfQiwgJmlieF9wY2hfZHBsbF9mdW5jcyB9LAotCXsgTlVMTCwgLTEsIE5VTEwgfSwKKwl7ICJQ Q0ggRFBMTCBBIiwgRFBMTF9JRF9QQ0hfUExMX0EsICZpYnhfcGNoX2RwbGxfZnVuY3MsIDAgfSwK Kwl7ICJQQ0ggRFBMTCBCIiwgRFBMTF9JRF9QQ0hfUExMX0IsICZpYnhfcGNoX2RwbGxfZnVuY3Ms IDAgfSwKKwl7IE5VTEwsIC0xLCBOVUxMLCAwIH0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0 IGludGVsX2RwbGxfbWdyIHBjaF9wbGxfbWdyID0gewpAQCAtMTU1OSw5ICsxNjA5LDEyIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgcGNoX3BsbF9tZ3IgPSB7CiB9OwogCiBz dGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBoc3dfcGxsc1tdID0gewotCXsgIldSUExMIDEi LCBEUExMX0lEX1dSUExMMSwgJmhzd19kZGlfd3JwbGxfZnVuY3MgfSwKLQl7ICJXUlBMTCAyIiwg RFBMTF9JRF9XUlBMTDIsICZoc3dfZGRpX3dycGxsX2Z1bmNzIH0sCi0JeyAiU1BMTCIsICAgIERQ TExfSURfU1BMTCwgICAmaHN3X2RkaV9zcGxsX2Z1bmNzIH0sCisJeyAiV1JQTEwgMSIsICAgIERQ TExfSURfV1JQTEwxLCAgICAgJmhzd19kZGlfd3JwbGxfZnVuY3MsIDAgfSwKKwl7ICJXUlBMTCAy IiwgICAgRFBMTF9JRF9XUlBMTDIsICAgICAmaHN3X2RkaV93cnBsbF9mdW5jcywgMCB9LAorCXsg IlNQTEwiLCAgICAgICBEUExMX0lEX1NQTEwsICAgICAgICZoc3dfZGRpX3NwbGxfZnVuY3MsICAw IH0sCisJeyAiTENQTEwgODEwIiwgIERQTExfSURfTENQTExfODEwLCAgJmhzd19kZGlfbGNwbGxf ZnVuY3MsIElOVEVMX0RQTExfQUxXQVlTX09OIH0sCisJeyAiTENQTEwgMTM1MCIsIERQTExfSURf TENQTExfMTM1MCwgJmhzd19kZGlfbGNwbGxfZnVuY3MsIElOVEVMX0RQTExfQUxXQVlTX09OIH0s CisJeyAiTENQTEwgMjcwMCIsIERQTExfSURfTENQTExfMjcwMCwgJmhzd19kZGlfbGNwbGxfZnVu Y3MsIElOVEVMX0RQTExfQUxXQVlTX09OIH0sCiAJeyBOVUxMLCAtMSwgTlVMTCwgfSwKIH07CiAK QEAgLTE1NzEsOSArMTYyNCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3Ig aHN3X3BsbF9tZ3IgPSB7CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBza2xf cGxsc1tdID0gewotCXsgIkRQUEwgMSIsIERQTExfSURfU0tMX0RQTEwxLCAmc2tsX2RkaV9wbGxf ZnVuY3MgfSwKLQl7ICJEUFBMIDIiLCBEUExMX0lEX1NLTF9EUExMMiwgJnNrbF9kZGlfcGxsX2Z1 bmNzIH0sCi0JeyAiRFBQTCAzIiwgRFBMTF9JRF9TS0xfRFBMTDMsICZza2xfZGRpX3BsbF9mdW5j cyB9LAorCXsgIkRQUEwgMSIsIERQTExfSURfU0tMX0RQTEwxLCAmc2tsX2RkaV9wbGxfZnVuY3Ms IDAgfSwKKwl7ICJEUFBMIDIiLCBEUExMX0lEX1NLTF9EUExMMiwgJnNrbF9kZGlfcGxsX2Z1bmNz LCAwIH0sCisJeyAiRFBQTCAzIiwgRFBMTF9JRF9TS0xfRFBMTDMsICZza2xfZGRpX3BsbF9mdW5j cywgMCB9LAogCXsgTlVMTCwgLTEsIE5VTEwsIH0sCiB9OwogCkBAIC0xNTgzLDkgKzE2MzYsOSBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIHNrbF9wbGxfbWdyID0gewogfTsK IAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gYnh0X3BsbHNbXSA9IHsKLQl7ICJQT1JU IFBMTCBBIiwgMCwgJmJ4dF9kZGlfcGxsX2Z1bmNzIH0sCi0JeyAiUE9SVCBQTEwgQiIsIDEsICZi eHRfZGRpX3BsbF9mdW5jcyB9LAotCXsgIlBPUlQgUExMIEMiLCAyLCAmYnh0X2RkaV9wbGxfZnVu Y3MgfSwKKwl7ICJQT1JUIFBMTCBBIiwgMCwgJmJ4dF9kZGlfcGxsX2Z1bmNzLCAwIH0sCisJeyAi UE9SVCBQTEwgQiIsIDEsICZieHRfZGRpX3BsbF9mdW5jcywgMCB9LAorCXsgIlBPUlQgUExMIEMi LCAyLCAmYnh0X2RkaV9wbGxfZnVuY3MsIDAgfSwKIAl7IE5VTEwsIC0xLCBOVUxMLCB9LAogfTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmgKaW5kZXggODJlNTNmNS4uYWRmNDcw NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oCkBAIC00OSwxMyArNDksMjEg QEAgZW51bSBpbnRlbF9kcGxsX2lkIHsKIAlEUExMX0lEX1dSUExMMSA9IDAsCiAJRFBMTF9JRF9X UlBMTDIgPSAxLAogCURQTExfSURfU1BMTCA9IDIsCisJRFBMTF9JRF9MQ1BMTF84MTAgPSAzLAor CURQTExfSURfTENQTExfMTM1MCA9IDQsCisJRFBMTF9JRF9MQ1BMTF8yNzAwID0gNSwKIAogCS8q IHNrbCAqLwogCURQTExfSURfU0tMX0RQTEwxID0gMCwKIAlEUExMX0lEX1NLTF9EUExMMiA9IDEs CiAJRFBMTF9JRF9TS0xfRFBMTDMgPSAyLAogfTsKLSNkZWZpbmUgSTkxNV9OVU1fUExMUyAzCisj ZGVmaW5lIEk5MTVfTlVNX1BMTFMgNgorCisvKiogSW5mb3JtIHRoZSBzdGF0ZSBjaGVja2VyIHRo YXQgdGhlIERQTEwgaXMga2VwdCBlbmFibGVkIGV2ZW4gaWYgbm90CisgKiBpbiB1c2UgYnkgYW55 IGNydGMuCisgKi8KKyNkZWZpbmUgSU5URUxfRFBMTF9BTFdBWVNfT04JKDEgPDwgMCkKIAogc3Ry dWN0IGludGVsX2RwbGxfaHdfc3RhdGUgewogCS8qIGk5eHgsIHBjaCBwbGxzICovCkBAIC0xMTMs NiArMTIxLDggQEAgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsIHsKIAllbnVtIGludGVsX2RwbGxf aWQgaWQ7CiAKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfZnVuY3MgZnVuY3M7CisKKwl1aW50 MzJfdCBmbGFnczsKIH07CiAKICNkZWZpbmUgU0tMX0RQTEwwIDAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKaW5kZXggYzllNTAzMC4uMThhYTI4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK QEAgLTEyNTgsNyArMTI1OCw2IEBAIHZvaWQgaW50ZWxfZWRwX2RycnNfaW52YWxpZGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogdm9pZCBpbnRlbF9lZHBfZHJyc19mbHVzaChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1bnNpZ25lZCBmcm9udGJ1ZmZlcl9iaXRzKTsKIGJvb2wgaW50ZWxfZGln aXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ CQkJCSBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpwb3J0KTsKLXZvaWQgaHN3X2RwX3NldF9k ZGlfcGxsX3NlbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwogCiB2b2lk CiBpbnRlbF9kcF9wcm9ncmFtX2xpbmtfdHJhaW5pbmdfcGF0dGVybihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAotLSAKMi40LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=