From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH 08/13] drm/i915: Refactor platform specifics out of intel_get_shared_dpll() Date: Fri, 26 Feb 2016 15:54:21 +0200 Message-ID: <1456494866-7665-9-git-send-email-ander.conselvan.de.oliveira@intel.com> References: <1456494866-7665-1-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 80B4F6EAED for ; Fri, 26 Feb 2016 13:54:45 +0000 (UTC) In-Reply-To: <1456494866-7665-1-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 VGhlIGZ1bmN0aW9uIGludGVsX2dldF9zaGFyZWRfZHBsbCgpIGhhZCBhIG1vcmUgb3IgbGVzcyBn ZW5lcmljCmltcGxlbWVudGF0aW9uIHdpdGggc29tZSBwbGF0Zm9ybSBzcGVjaWZpYyBjaGVja3Mg dG8gaGFuZGxlIHNtYWxsZXIKZGlmZmVyZW5jZXMgYmV0d2VlbiBwbGF0Zm9ybXMuIEhvd2V2ZXIs IHRoZSBtaW5pbWFsaXN0IGFwcHJvYWNoIGZvcmNlcwpiaWdnZXIgZGlmZmVyZW5jZXMgYmV0d2Vl biBwbGF0Zm9ybXMgdG8gYmUgaW1wbGVtZW50ZWQgb3V0c2lkZSBvZiB0aGUKc2hhcmVkIGRwbGwg Y29kZSAoc2VlIHRoZSAqX2RkaV9wbGxfc2VsZWN0KCkgZnVuY3Rpb25zIGluIGludGVsX2RkaS5j LApmb3IgaW5zdGFuY2UpLgoKVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBpbXBsZW1lbnRhdGlvbiBv ZiBpbnRlbF9nZXRfc2hhcmVfZHBsbCgpIHNvIHRoYXQKYSBjb21wbGV0ZWx5IHBsYXRmb3JtIHNw ZWNpZmljIHZlcnNpb24gY2FuIGJlIHVzZWQsIHByb3ZpZGluZyBoZWxwZXJzIHRvCnJlZHVjZSBj b2RlIGR1cGxpY2F0aW9uLiBUaGlzIHNob3VsZCBhbGxvdyB0aGUgY29kZSBmcm9tIHRoZSBkZGkg cGxsCnNlbGVjdCBmdW5jdGlvbnMgdG8gYmUgbW92ZWQsIGFuZCBhbHNvIG1ha2Ugcm9vbSBmb3Ig bWFraW5nIG1vcmUgZHBsbHMKbWFuYWdlZCBieSB0aGUgc2hhcmVkIGRwbGwgaW5mcmFzdHJ1Y3R1 cmUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNv bnNlbHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxs X21nci5jIHwgMjI2ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmggfCAgIDIgKwogMyBmaWxlcyBjaGFuZ2VkLCAx NDUgaW5zZXJ0aW9ucygrKSwgODQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggNmRlOTNkYy4uYjg1ODgwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xODAy LDYgKzE4MDIsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJLyogZHBsbCBhbmQgY2Rj bGsgc3RhdGUgaXMgcHJvdGVjdGVkIGJ5IGNvbm5lY3Rpb25fbXV0ZXggKi8KIAlpbnQgbnVtX3No YXJlZF9kcGxsOwogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCBzaGFyZWRfZHBsbHNbSTkxNV9O VU1fUExMU107CisJY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyICpkcGxsX21ncjsKIAogCXVu c2lnbmVkIGludCBhY3RpdmVfY3J0Y3M7CiAJdW5zaWduZWQgaW50IG1pbl9waXhjbGtbSTkxNV9N QVhfUElQRVNdOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9t Z3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggZTg4ZGM0 Ni4uMzU1MzMyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9t Z3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCkBAIC0xNzQs NjYgKzE3NCwyMCBAQCB2b2lkIGludGVsX2Rpc2FibGVfc2hhcmVkX2RwbGwoc3RydWN0IGludGVs X2NydGMgKmNydGMpCiAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RP TUFJTl9QTExTKTsKIH0KIAotc3RhdGljIGVudW0gaW50ZWxfZHBsbF9pZAotaWJ4X2dldF9maXhl ZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAotCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBs bDsKLQllbnVtIGludGVsX2RwbGxfaWQgaTsKLQotCS8qIElyb25sYWtlIFBDSCBoYXMgYSBmaXhl ZCBQTEwtPlBDSCBwaXBlIG1hcHBpbmcuICovCi0JaSA9IChlbnVtIGludGVsX2RwbGxfaWQpIGNy dGMtPnBpcGU7Ci0JcGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07Ci0KLQlEUk1fREVC VUdfS01TKCJDUlRDOiVkIHVzaW5nIHByZS1hbGxvY2F0ZWQgJXNcbiIsCi0JCSAgICAgIGNydGMt PmJhc2UuYmFzZS5pZCwgcGxsLT5uYW1lKTsKLQotCXJldHVybiBpOwotfQotCi1zdGF0aWMgZW51 bSBpbnRlbF9kcGxsX2lkCi1ieHRfZ2V0X2ZpeGVkX2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNy dGMsCi0JCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQotewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwot CXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwotCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0OwotCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwotCWVu dW0gaW50ZWxfZHBsbF9pZCBpOwotCi0JLyogUExMIGlzIGF0dGFjaGVkIHRvIHBvcnQgaW4gYnh0 ICovCi0JZW5jb2RlciA9IGludGVsX2RkaV9nZXRfY3J0Y19uZXdfZW5jb2RlcihjcnRjX3N0YXRl KTsKLQlpZiAoV0FSTl9PTighZW5jb2RlcikpCi0JCXJldHVybiBEUExMX0lEX1BSSVZBVEU7Ci0K LQlpbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Ci0JLyog MToxIG1hcHBpbmcgYmV0d2VlbiBwb3J0cyBhbmQgUExMcyAqLwotCWkgPSAoZW51bSBpbnRlbF9k cGxsX2lkKWludGVsX2RpZ19wb3J0LT5wb3J0OwotCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2Rw bGxzW2ldOwotCURSTV9ERUJVR19LTVMoIkNSVEM6JWQgdXNpbmcgcHJlLWFsbG9jYXRlZCAlc1xu IiwKLQkJY3J0Yy0+YmFzZS5iYXNlLmlkLCBwbGwtPm5hbWUpOwotCi0JcmV0dXJuIGk7Ci19Ci0K LXN0YXRpYyBlbnVtIGludGVsX2RwbGxfaWQKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2Rw bGwgKgogaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKLQkJ ICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQorCQkgICAgICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCSAgICAgICBlbnVtIGludGVsX2Rw bGxfaWQgcmFuZ2VfbWluLAorCQkgICAgICAgZW51bSBpbnRlbF9kcGxsX2lkIHJhbmdlX21heCkK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0+ ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CiAJc3RydWN0IGlu dGVsX3NoYXJlZF9kcGxsX2NvbmZpZyAqc2hhcmVkX2RwbGw7CiAJZW51bSBpbnRlbF9kcGxsX2lk IGk7Ci0JaW50IG1heCA9IGRldl9wcml2LT5udW1fc2hhcmVkX2RwbGw7Ci0KLQlpZiAoSU5URUxf SU5GTyhkZXZfcHJpdiktPmdlbiA8IDkgJiYgSEFTX0RESShkZXZfcHJpdikpCi0JCS8qIERvIG5v dCBjb25zaWRlciBTUExMICovCi0JCW1heCA9IDI7CiAKIAlzaGFyZWRfZHBsbCA9IGludGVsX2F0 b21pY19nZXRfc2hhcmVkX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7CiAKLQlm b3IgKGkgPSAwOyBpIDwgbWF4OyBpKyspIHsKKwlmb3IgKGkgPSByYW5nZV9taW47IGkgPD0gcmFu Z2VfbWF4OyBpKyspIHsKIAkJcGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07CiAKIAkJ LyogT25seSB3YW50IHRvIGNoZWNrIGVuYWJsZWQgdGltaW5ncyBmaXJzdCAqLwpAQCAtMjQ3LDQ5 ICsyMDEsMzMgQEAgaW50ZWxfZmluZF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKIAkJCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIHBsbC0+bmFtZSwKIAkJCQkgICAgICBz aGFyZWRfZHBsbFtpXS5jcnRjX21hc2ssCiAJCQkJICAgICAgcGxsLT5hY3RpdmUpOwotCQkJcmV0 dXJuIGk7CisJCQlyZXR1cm4gcGxsOwogCQl9CiAJfQogCiAJLyogT2sgbm8gbWF0Y2hpbmcgdGlt aW5ncywgbWF5YmUgdGhlcmUncyBhIGZyZWUgb25lPyAqLwotCWZvciAoaSA9IDA7IGkgPCBkZXZf cHJpdi0+bnVtX3NoYXJlZF9kcGxsOyBpKyspIHsKKwlmb3IgKGkgPSByYW5nZV9taW47IGkgPD0g cmFuZ2VfbWF4OyBpKyspIHsKIAkJcGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07CiAJ CWlmIChzaGFyZWRfZHBsbFtpXS5jcnRjX21hc2sgPT0gMCkgewogCQkJRFJNX0RFQlVHX0tNUygi Q1JUQzolZCBhbGxvY2F0ZWQgJXNcbiIsCiAJCQkJICAgICAgY3J0Yy0+YmFzZS5iYXNlLmlkLCBw bGwtPm5hbWUpOwotCQkJcmV0dXJuIGk7CisJCQlyZXR1cm4gcGxsOwogCQl9CiAJfQogCi0JcmV0 dXJuIERQTExfSURfUFJJVkFURTsKKwlyZXR1cm4gTlVMTDsKIH0KIAotc3RydWN0IGludGVsX3No YXJlZF9kcGxsICoKLWludGVsX2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKLQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCitzdGF0aWMg dm9pZAoraW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBs bCAqcGxsLAorCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNydGMtPmJhc2UuZGV2LT5kZXZf cHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAlzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGxfY29uZmlnICpzaGFyZWRfZHBsbDsKLQllbnVtIGludGVsX2RwbGxfaWQgaTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwllbnVtIGludGVsX2RwbGxfaWQgaSA9IHBsbC0+aWQ7CiAKIAlzaGFyZWRfZHBs bCA9IGludGVsX2F0b21pY19nZXRfc2hhcmVkX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZS0+YmFzZS5z dGF0ZSk7CiAKLQlpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYtPmRldikpIHsKLQkJaSA9IGlieF9n ZXRfZml4ZWRfZHBsbChjcnRjLCBjcnRjX3N0YXRlKTsKLQkJV0FSTl9PTihzaGFyZWRfZHBsbFtp XS5jcnRjX21hc2spOwotCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdi0+ZGV2KSkgewot CQlpID0gYnh0X2dldF9maXhlZF9kcGxsKGNydGMsIGNydGNfc3RhdGUpOwotCQlXQVJOX09OKHNo YXJlZF9kcGxsW2ldLmNydGNfbWFzayk7Ci0JfSBlbHNlIHsKLQkJaSA9IGludGVsX2ZpbmRfc2hh cmVkX2RwbGwoY3J0YywgY3J0Y19zdGF0ZSk7Ci0JfQotCi0JaWYgKGkgPCAwKQotCQlyZXR1cm4g TlVMTDsKLQotCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwotCiAJaWYgKHNoYXJl ZF9kcGxsW2ldLmNydGNfbWFzayA9PSAwKQogCQlzaGFyZWRfZHBsbFtpXS5od19zdGF0ZSA9CiAJ CQljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlOwpAQCAtMjk5LDggKzIzNyw2IEBAIGludGVsX2dl dF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCSBwaXBlX25hbWUoY3J0 Yy0+cGlwZSkpOwogCiAJaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnX2dldChzaGFyZWRfZHBsbCwg cGxsLCBjcnRjKTsKLQotCXJldHVybiBwbGw7CiB9CiAKIHZvaWQgaW50ZWxfc2hhcmVkX2RwbGxf Y29tbWl0KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKQEAgLTM5OCw2ICszMzQsMzIg QEAgc3RhdGljIHZvaWQgaWJ4X3BjaF9kcGxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCXVkZWxheSgyMDApOwogfQogCitzdGF0aWMgc3RydWN0IGludGVsX3No YXJlZF9kcGxsICoKK2lieF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CisJc3RydWN0IGludGVsX3No YXJlZF9kcGxsICpwbGw7CisJZW51bSBpbnRlbF9kcGxsX2lkIGk7CisKKwlpZiAoSEFTX1BDSF9J QlgoZGV2X3ByaXYpKSB7CisJCS8qIElyb25sYWtlIFBDSCBoYXMgYSBmaXhlZCBQTEwtPlBDSCBw aXBlIG1hcHBpbmcuICovCisJCWkgPSAoZW51bSBpbnRlbF9kcGxsX2lkKSBjcnRjLT5waXBlOwor CQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsKKworCQlEUk1fREVCVUdfS01TKCJD UlRDOiVkIHVzaW5nIHByZS1hbGxvY2F0ZWQgJXNcbiIsCisJCQkgICAgICBjcnRjLT5iYXNlLmJh c2UuaWQsIHBsbC0+bmFtZSk7CisJfSBlbHNlIHsKKwkJcGxsID0gaW50ZWxfZmluZF9zaGFyZWRf ZHBsbChjcnRjLCBjcnRjX3N0YXRlLAorCQkJCQkgICAgIERQTExfSURfUENIX1BMTF9BLAorCQkJ CQkgICAgIERQTExfSURfUENIX1BMTF9CKTsKKwl9CisKKwkvKiByZWZlcmVuY2UgdGhlIHBsbCAq LworCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGwsIGNydGNfc3RhdGUpOworCisJcmV0 dXJuIHBsbDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9mdW5j cyBpYnhfcGNoX2RwbGxfZnVuY3MgPSB7CiAJLm1vZGVfc2V0ID0gaWJ4X3BjaF9kcGxsX21vZGVf c2V0LAogCS5lbmFibGUgPSBpYnhfcGNoX2RwbGxfZW5hYmxlLApAQCAtNDc1LDYgKzQzNywxOSBA QCBzdGF0aWMgYm9vbCBoc3dfZGRpX3NwbGxfZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAlyZXR1cm4gdmFsICYgU1BMTF9QTExfRU5BQkxFOwogfQogCitz dGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKK2hzd19nZXRfZHBsbChzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7CisJ c3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CisKKwlwbGwgPSBpbnRlbF9maW5kX3NoYXJl ZF9kcGxsKGNydGMsIGNydGNfc3RhdGUsCisJCQkJICAgICBEUExMX0lEX1dSUExMMSwgRFBMTF9J RF9XUlBMTDIpOworCWlmIChwbGwpCisJCWludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbChwbGws IGNydGNfc3RhdGUpOworCisJcmV0dXJuIHBsbDsKK30KKwogCiBzdGF0aWMgY29uc3Qgc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsX2Z1bmNzIGhzd19kZGlfd3JwbGxfZnVuY3MgPSB7CiAJLmVuYWJs ZSA9IGhzd19kZGlfd3JwbGxfZW5hYmxlLApAQCAtNTk0LDYgKzU2OSwxOSBAQCBvdXQ6CiAJcmV0 dXJuIHJldDsKIH0KIAorc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCitza2xfZ2V0 X2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQoreworCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOworCisJcGxsID0g aW50ZWxfZmluZF9zaGFyZWRfZHBsbChjcnRjLCBjcnRjX3N0YXRlLAorCQkJCSAgICAgRFBMTF9J RF9TS0xfRFBMTDEsIERQTExfSURfU0tMX0RQTEwzKTsKKwlpZiAocGxsKQorCQlpbnRlbF9yZWZl cmVuY2Vfc2hhcmVkX2RwbGwocGxsLCBjcnRjX3N0YXRlKTsKKworCXJldHVybiBwbGw7Cit9CisK IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfZnVuY3Mgc2tsX2RkaV9wbGxf ZnVuY3MgPSB7CiAJLmVuYWJsZSA9IHNrbF9kZGlfcGxsX2VuYWJsZSwKIAkuZGlzYWJsZSA9IHNr bF9kZGlfcGxsX2Rpc2FibGUsCkBAIC03ODIsNiArNzcwLDMyIEBAIG91dDoKIAlyZXR1cm4gcmV0 OwogfQogCitzdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKK2J4dF9nZXRfZHBsbChz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7CisJc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7CisJc3RydWN0IGludGVsX3NoYXJlZF9k cGxsICpwbGw7CisJZW51bSBpbnRlbF9kcGxsX2lkIGk7CisKKwkvKiBQTEwgaXMgYXR0YWNoZWQg dG8gcG9ydCBpbiBieHQgKi8KKwllbmNvZGVyID0gaW50ZWxfZGRpX2dldF9jcnRjX25ld19lbmNv ZGVyKGNydGNfc3RhdGUpOworCWlmIChXQVJOX09OKCFlbmNvZGVyKSkKKwkJcmV0dXJuIE5VTEw7 CisKKwlpbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CisJ LyogMToxIG1hcHBpbmcgYmV0d2VlbiBwb3J0cyBhbmQgUExMcyAqLworCWkgPSAoZW51bSBpbnRl bF9kcGxsX2lkKWludGVsX2RpZ19wb3J0LT5wb3J0OworCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVk X2RwbGxzW2ldOworCURSTV9ERUJVR19LTVMoIkNSVEM6JWQgdXNpbmcgcHJlLWFsbG9jYXRlZCAl c1xuIiwKKwkJY3J0Yy0+YmFzZS5iYXNlLmlkLCBwbGwtPm5hbWUpOworCisJaW50ZWxfcmVmZXJl bmNlX3NoYXJlZF9kcGxsKHBsbCwgY3J0Y19zdGF0ZSk7CisKKwlyZXR1cm4gcGxsOworfQorCiBz dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2Z1bmNzIGJ4dF9kZGlfcGxsX2Z1 bmNzID0gewogCS5lbmFibGUgPSBieHRfZGRpX3BsbF9lbmFibGUsCiAJLmRpc2FibGUgPSBieHRf ZGRpX3BsbF9kaXNhYmxlLApAQCAtODI2LDEyICs4NDAsMjQgQEAgc3RydWN0IGRwbGxfaW5mbyB7 CiAJY29uc3Qgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2Z1bmNzICpmdW5jczsKIH07CiAKK3N0 cnVjdCBpbnRlbF9kcGxsX21nciB7CisJY29uc3Qgc3RydWN0IGRwbGxfaW5mbyAqZHBsbF9pbmZv OworCisJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICooKmdldF9kcGxsKShzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKKwkJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpOworfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gcGNoX3BsbHNbXSA9IHsK IAl7ICJQQ0ggRFBMTCBBIiwgRFBMTF9JRF9QQ0hfUExMX0EsICZpYnhfcGNoX2RwbGxfZnVuY3Mg fSwKIAl7ICJQQ0ggRFBMTCBCIiwgRFBMTF9JRF9QQ0hfUExMX0IsICZpYnhfcGNoX2RwbGxfZnVu Y3MgfSwKIAl7IE5VTEwsIC0xLCBOVUxMIH0sCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGlu dGVsX2RwbGxfbWdyIHBjaF9wbGxfbWdyID0geworCS5kcGxsX2luZm8gPSBwY2hfcGxscywKKwku Z2V0X2RwbGwgPSBpYnhfZ2V0X2RwbGwsCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxf aW5mbyBoc3dfcGxsc1tdID0gewogCXsgIldSUExMIDEiLCBEUExMX0lEX1dSUExMMSwgJmhzd19k ZGlfd3JwbGxfZnVuY3MgfSwKIAl7ICJXUlBMTCAyIiwgRFBMTF9JRF9XUlBMTDIsICZoc3dfZGRp X3dycGxsX2Z1bmNzIH0sCkBAIC04MzksNiArODY1LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHBsbF9pbmZvIGhzd19wbGxzW10gPSB7CiAJeyBOVUxMLCAtMSwgTlVMTCwgfSwKIH07CiAKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgaHN3X3BsbF9tZ3IgPSB7CisJLmRwbGxf aW5mbyA9IGhzd19wbGxzLAorCS5nZXRfZHBsbCA9IGhzd19nZXRfZHBsbCwKK307CisKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZvIHNrbF9wbGxzW10gPSB7CiAJeyAiRFBQTCAxIiwgRFBM TF9JRF9TS0xfRFBMTDEsICZza2xfZGRpX3BsbF9mdW5jcyB9LAogCXsgIkRQUEwgMiIsIERQTExf SURfU0tMX0RQTEwyLCAmc2tsX2RkaV9wbGxfZnVuY3MgfSwKQEAgLTg0Niw2ICs4NzcsMTEgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gc2tsX3BsbHNbXSA9IHsKIAl7IE5VTEwsIC0x LCBOVUxMLCB9LAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBza2xf cGxsX21nciA9IHsKKwkuZHBsbF9pbmZvID0gc2tsX3BsbHMsCisJLmdldF9kcGxsID0gc2tsX2dl dF9kcGxsLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gYnh0X3BsbHNbXSA9 IHsKIAl7ICJQT1JUIFBMTCBBIiwgMCwgJmJ4dF9kZGlfcGxsX2Z1bmNzIH0sCiAJeyAiUE9SVCBQ TEwgQiIsIDEsICZieHRfZGRpX3BsbF9mdW5jcyB9LApAQCAtODUzLDI2ICs4ODksMzQgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gYnh0X3BsbHNbXSA9IHsKIAl7IE5VTEwsIC0xLCBO VUxMLCB9LAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBieHRfcGxs X21nciA9IHsKKwkuZHBsbF9pbmZvID0gYnh0X3BsbHMsCisJLmdldF9kcGxsID0gYnh0X2dldF9k cGxsLAorfTsKKwogdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKLQljb25zdCBzdHJ1Y3QgZHBsbF9pbmZvICpkcGxsX2luZm8gPSBOVUxMOworCWNv bnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciAqZHBsbF9tZ3IgPSBOVUxMOworCWNvbnN0IHN0cnVj dCBkcGxsX2luZm8gKmRwbGxfaW5mbzsKIAlpbnQgaTsKIAogCWlmIChJU19TS1lMQUtFKGRldikg fHwgSVNfS0FCWUxBS0UoZGV2KSkKLQkJZHBsbF9pbmZvID0gc2tsX3BsbHM7CisJCWRwbGxfbWdy ID0gJnNrbF9wbGxfbWdyOwogCWVsc2UgaWYgSVNfQlJPWFRPTihkZXYpCi0JCWRwbGxfaW5mbyA9 IGJ4dF9wbGxzOworCQlkcGxsX21nciA9ICZieHRfcGxsX21ncjsKIAllbHNlIGlmIChIQVNfRERJ KGRldikpCi0JCWRwbGxfaW5mbyA9IGhzd19wbGxzOworCQlkcGxsX21nciA9ICZoc3dfcGxsX21n cjsKIAllbHNlIGlmIChIQVNfUENIX0lCWChkZXYpIHx8IEhBU19QQ0hfQ1BUKGRldikpCi0JCWRw bGxfaW5mbyA9IHBjaF9wbGxzOworCQlkcGxsX21nciA9ICZwY2hfcGxsX21ncjsKIAotCWlmICgh ZHBsbF9pbmZvKSB7CisJaWYgKCFkcGxsX21ncikgewogCQlkZXZfcHJpdi0+bnVtX3NoYXJlZF9k cGxsID0gMDsKIAkJcmV0dXJuOwogCX0KIAorCWRwbGxfaW5mbyA9IGRwbGxfbWdyLT5kcGxsX2lu Zm87CisKIAlmb3IgKGkgPSAwOyBkcGxsX2luZm9baV0uaWQgPj0gMDsgaSsrKSB7CiAJCVdBUk5f T04oaSAhPSBkcGxsX2luZm9baV0uaWQpOwogCkBAIC04ODEsNiArOTI1LDcgQEAgdm9pZCBpbnRl bF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWRldl9wcml2LT5z aGFyZWRfZHBsbHNbaV0uZnVuY3MgPSAqZHBsbF9pbmZvW2ldLmZ1bmNzOwogCX0KIAorCWRldl9w cml2LT5kcGxsX21nciA9IGRwbGxfbWdyOwogCWRldl9wcml2LT5udW1fc2hhcmVkX2RwbGwgPSBp OwogCiAJQlVHX09OKGRldl9wcml2LT5udW1fc2hhcmVkX2RwbGwgPiBJOTE1X05VTV9QTExTKTsK QEAgLTg4OSwzICs5MzQsMTYgQEAgdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJaWYgKEhBU19EREkoZGV2KSkKIAkJaW50ZWxfZGRpX3BsbF9pbml0 KGRldik7CiB9CisKK3N0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCitpbnRlbF9nZXRfc2hhcmVk X2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOworCWNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21n ciAqZHBsbF9tZ3IgPSBkZXZfcHJpdi0+ZHBsbF9tZ3I7CisKKwlpZiAoZHBsbF9tZ3IpCisJCXJl dHVybiBkcGxsX21nci0+Z2V0X2RwbGwoY3J0YywgY3J0Y19zdGF0ZSk7CisJZWxzZQorCQlyZXR1 cm4gTlVMTDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxf bWdyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oCmluZGV4IDhiZTI0 NzguLjc3OTRjN2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxf bWdyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaApAQCAtMzAs NiArMzAsOCBAQCBzdHJ1Y3QgaW50ZWxfY3J0YzsKIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlOwog c3RydWN0IGludGVsX3NoYXJlZF9kcGxsOwogCitzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3I7CisKIGVu dW0gaW50ZWxfZHBsbF9pZCB7CiAJRFBMTF9JRF9QUklWQVRFID0gLTEsIC8qIG5vbi1zaGFyZWQg ZHBsbCBpbiB1c2UgKi8KIAkvKiByZWFsIHNoYXJlZCBkcGxsIGlkcyBtdXN0IGJlID49IDAgKi8K LS0gCjIuNC4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK