From mboxrd@z Thu Jan 1 00:00:00 1970 From: Durgadoss R Subject: [PATCH 2/3] drm/i915: Split bxt_ddi_pll_select() Date: Mon, 18 Apr 2016 19:01:44 +0530 Message-ID: <1460986305-7116-3-git-send-email-durgadoss.r@intel.com> References: <1460986305-7116-1-git-send-email-durgadoss.r@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id BEADF6E277 for ; Mon, 18 Apr 2016 12:51:54 +0000 (UTC) In-Reply-To: <1460986305-7116-1-git-send-email-durgadoss.r@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@intel.com List-Id: intel-gfx@lists.freedesktop.org U3BsaXQgb3V0IG9mIGJ4dF9kZGlfcGxsX3NlbGVjdCgpIHRoZSBsb2dpYyB0aGF0IGNhbGN1bGF0 ZXMgdGhlIHBsbApkaXZpZGVycyBhbmQgZHBsbF9od19zdGF0ZSBpbnRvIGEgbmV3IGZ1bmN0aW9u IHRoYXQgZG9lc24ndCBkZXBlbmQgb24KY3J0YyBzdGF0ZS4gVGhpcyB3aWxsIGJlIHVzZWQgZm9y IGVuYWJsaW5nIHRoZSBwb3J0IHBsbCB3aGVuIGRvaW5nCnVwZnJvbnQgbGluayB0cmFpbmluZy4K CnYxOgoqIFJlYmFzZWQgb24gdG9wIG9mIGludGVsX2RwbGxfbWdyLmMgKER1cmdhKQoqIEluaXRp YWwgdmVyc2lvbiBmcm9tIEFuZGVyIG9uIHRvcCBvZiBpbnRlbF9kZGkuYwoKU2lnbmVkLW9mZi1i eTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUub2xpdmVp cmFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEdXJnYWRvc3MgUiA8ZHVyZ2Fkb3NzLnJAaW50 ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMgfCAxNjYg KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBsbF9tZ3IuaCB8ICAxNyArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRp b25zKCspLCA3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcGxsX21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3Iu YwppbmRleCA2MzliZjAyLi41ZGY3MmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcGxsX21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxf bWdyLmMKQEAgLTE0NzEsMTcgKzE0NzEsNiBAQCBvdXQ6CiAJcmV0dXJuIHJldDsKIH0KIAotLyog Ynh0IGNsb2NrIHBhcmFtZXRlcnMgKi8KLXN0cnVjdCBieHRfY2xrX2RpdiB7Ci0JaW50IGNsb2Nr OwotCXVpbnQzMl90IHAxOwotCXVpbnQzMl90IHAyOwotCXVpbnQzMl90IG0yX2ludDsKLQl1aW50 MzJfdCBtMl9mcmFjOwotCWJvb2wgbTJfZnJhY19lbjsKLQl1aW50MzJfdCBuOwotfTsKLQogLyog cHJlLWNhbGN1bGF0ZWQgdmFsdWVzIGZvciBEUCBsaW5rcmF0ZXMgKi8KIHN0YXRpYyBjb25zdCBz dHJ1Y3QgYnh0X2Nsa19kaXYgYnh0X2RwX2Nsa192YWxbXSA9IHsKIAl7MTYyMDAwLCA0LCAyLCAz MiwgMTY3NzcyMiwgMSwgMX0sCkBAIC0xNDkzLDU3ICsxNDgyLDYwIEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgYnh0X2Nsa19kaXYgYnh0X2RwX2Nsa192YWxbXSA9IHsKIAl7NDMyMDAwLCAzLCAxLCAz MiwgMTY3NzcyMiwgMSwgMX0KIH07CiAKLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwg KgotYnh0X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkgICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQorc3RhdGljIGJvb2wKK2J4dF9kZGlfaGRtaV9wbGxfZGl2aWRlcnMoc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMsCisJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LCBpbnQgY2xvY2ssCisJCQkgIHN0cnVjdCBieHRfY2xrX2RpdiAqY2xrX2RpdikKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsK LQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKLQllbnVtIGludGVsX2RwbGxfaWQgaTsK LQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydDsKLQlzdHJ1Y3QgYnh0 X2Nsa19kaXYgY2xrX2RpdiA9IHswfTsKLQlpbnQgdmNvID0gMDsKLQl1aW50MzJfdCBwcm9wX2Nv ZWYsIGludF9jb2VmLCBnYWluX2N0bCwgdGFyZ19jbnQ7Ci0JdWludDMyX3QgbGFuZXN0YWdnZXI7 Ci0JaW50IGNsb2NrID0gY3J0Y19zdGF0ZS0+cG9ydF9jbG9jazsKKwlpbnRlbF9jbG9ja190IGJl c3RfY2xvY2s7CiAKLQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewot CQlpbnRlbF9jbG9ja190IGJlc3RfY2xvY2s7CisJLyogQ2FsY3VsYXRlIEhETUkgZGl2ICovCisJ LyoKKwkgKiBGSVhNRTogdGllIHRoZSBmb2xsb3dpbmcgY2FsY3VsYXRpb24gaW50bworCSAqIGk5 eHhfY3J0Y19jb21wdXRlX2Nsb2NrCisJICovCisJaWYgKCFieHRfZmluZF9iZXN0X2RwbGwoY3J0 Y19zdGF0ZSwgY2xvY2ssICZiZXN0X2Nsb2NrKSkgeworCQlEUk1fREVCVUdfRFJJVkVSKCJubyBQ TEwgZGl2aWRlcnMgZm91bmQgZm9yIGNsb2NrICVkIHBpcGUgJWNcbiIsCisJCQkJIGNsb2NrLCBw aXBlX25hbWUoaW50ZWxfY3J0Yy0+cGlwZSkpOworCQlyZXR1cm4gZmFsc2U7CisJfQogCi0JCS8q IENhbGN1bGF0ZSBIRE1JIGRpdiAqLwotCQkvKgotCQkgKiBGSVhNRTogdGllIHRoZSBmb2xsb3dp bmcgY2FsY3VsYXRpb24gaW50bwotCQkgKiBpOXh4X2NydGNfY29tcHV0ZV9jbG9jawotCQkgKi8K LQkJaWYgKCFieHRfZmluZF9iZXN0X2RwbGwoY3J0Y19zdGF0ZSwgY2xvY2ssICZiZXN0X2Nsb2Nr KSkgewotCQkJRFJNX0RFQlVHX0RSSVZFUigibm8gUExMIGRpdmlkZXJzIGZvdW5kIGZvciBjbG9j ayAlZCBwaXBlICVjXG4iLAotCQkJCQkgY2xvY2ssIHBpcGVfbmFtZShjcnRjLT5waXBlKSk7Ci0J CQlyZXR1cm4gTlVMTDsKLQkJfQorCWNsa19kaXYtPnAxID0gYmVzdF9jbG9jay5wMTsKKwljbGtf ZGl2LT5wMiA9IGJlc3RfY2xvY2sucDI7CisJV0FSTl9PTihiZXN0X2Nsb2NrLm0xICE9IDIpOwor CWNsa19kaXYtPm4gPSBiZXN0X2Nsb2NrLm47CisJY2xrX2Rpdi0+bTJfaW50ID0gYmVzdF9jbG9j ay5tMiA+PiAyMjsKKwljbGtfZGl2LT5tMl9mcmFjID0gYmVzdF9jbG9jay5tMiAmICgoMSA8PCAy MikgLSAxKTsKKwljbGtfZGl2LT5tMl9mcmFjX2VuID0gY2xrX2Rpdi0+bTJfZnJhYyAhPSAwOwog Ci0JCWNsa19kaXYucDEgPSBiZXN0X2Nsb2NrLnAxOwotCQljbGtfZGl2LnAyID0gYmVzdF9jbG9j ay5wMjsKLQkJV0FSTl9PTihiZXN0X2Nsb2NrLm0xICE9IDIpOwotCQljbGtfZGl2Lm4gPSBiZXN0 X2Nsb2NrLm47Ci0JCWNsa19kaXYubTJfaW50ID0gYmVzdF9jbG9jay5tMiA+PiAyMjsKLQkJY2xr X2Rpdi5tMl9mcmFjID0gYmVzdF9jbG9jay5tMiAmICgoMSA8PCAyMikgLSAxKTsKLQkJY2xrX2Rp di5tMl9mcmFjX2VuID0gY2xrX2Rpdi5tMl9mcmFjICE9IDA7CisJY2xrX2Rpdi0+dmNvID0gYmVz dF9jbG9jay52Y287CiAKLQkJdmNvID0gYmVzdF9jbG9jay52Y287Ci0JfSBlbHNlIGlmIChlbmNv ZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCB8fAotCQkgICBlbmNvZGVyLT50 eXBlID09IElOVEVMX09VVFBVVF9FRFApIHsKLQkJaW50IGk7CisJcmV0dXJuIHRydWU7Cit9CiAK LQkJY2xrX2RpdiA9IGJ4dF9kcF9jbGtfdmFsWzBdOwotCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlf U0laRShieHRfZHBfY2xrX3ZhbCk7ICsraSkgewotCQkJaWYgKGJ4dF9kcF9jbGtfdmFsW2ldLmNs b2NrID09IGNsb2NrKSB7Ci0JCQkJY2xrX2RpdiA9IGJ4dF9kcF9jbGtfdmFsW2ldOwotCQkJCWJy ZWFrOwotCQkJfQordm9pZCBieHRfZGRpX2RwX3BsbF9kaXZpZGVycyhpbnQgY2xvY2ssIHN0cnVj dCBieHRfY2xrX2RpdiAqY2xrX2RpdikKK3sKKwlpbnQgaTsKKworCSpjbGtfZGl2ID0gYnh0X2Rw X2Nsa192YWxbMF07CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYnh0X2RwX2Nsa192YWwp OyArK2kpIHsKKwkJaWYgKGJ4dF9kcF9jbGtfdmFsW2ldLmNsb2NrID09IGNsb2NrKSB7CisJCQkq Y2xrX2RpdiA9IGJ4dF9kcF9jbGtfdmFsW2ldOworCQkJYnJlYWs7CiAJCX0KLQkJdmNvID0gY2xv Y2sgKiAxMCAvIDIgKiBjbGtfZGl2LnAxICogY2xrX2Rpdi5wMjsKIAl9CiAKKwljbGtfZGl2LT52 Y28gPSBjbG9jayAqIDEwIC8gMiAqIGNsa19kaXYtPnAxICogY2xrX2Rpdi0+cDI7Cit9CisKK2Jv b2wgYnh0X2RkaV9zZXRfZHBsbF9od19zdGF0ZShpbnQgY2xvY2ssCisJCQkgIHN0cnVjdCBieHRf Y2xrX2RpdiAqY2xrX2RpdiwKKwkJCSAgc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKmRwbGxf aHdfc3RhdGUpCit7CisJaW50IHZjbyA9IGNsa19kaXYtPnZjbzsKKwl1aW50MzJfdCBwcm9wX2Nv ZWYsIGludF9jb2VmLCBnYWluX2N0bCwgdGFyZ19jbnQ7CisJdWludDMyX3QgbGFuZXN0YWdnZXI7 CisKIAlpZiAodmNvID49IDYyMDAwMDAgJiYgdmNvIDw9IDY3MDAwMDApIHsKIAkJcHJvcF9jb2Vm ID0gNDsKIAkJaW50X2NvZWYgPSA5OwpAQCAtMTU2MiwxMiArMTU1NCw5IEBAIGJ4dF9nZXRfZHBs bChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCiAJCXRhcmdfY250ID0gOTsKIAl9IGVsc2UgewogCQlEUk1fRVJST1IoIkludmFsaWQg VkNPXG4iKTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBmYWxzZTsKIAl9CiAKLQltZW1zZXQo JmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsIDAsCi0JICAgICAgIHNpemVvZihjcnRjX3N0YXRl LT5kcGxsX2h3X3N0YXRlKSk7Ci0KIAlpZiAoY2xvY2sgPiAyNzAwMDApCiAJCWxhbmVzdGFnZ2Vy ID0gMHgxODsKIAllbHNlIGlmIChjbG9jayA+IDEzNTAwMCkKQEAgLTE1NzksMzMgKzE1NjgsNjAg QEAgYnh0X2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAllbHNlCiAJCWxhbmVzdGFnZ2VyID0gMHgwMjsKIAotCWNy dGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUuZWJiMCA9Ci0JCVBPUlRfUExMX1AxKGNsa19kaXYucDEp IHwgUE9SVF9QTExfUDIoY2xrX2Rpdi5wMik7Ci0JY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5w bGwwID0gY2xrX2Rpdi5tMl9pbnQ7Ci0JY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5wbGwxID0g UE9SVF9QTExfTihjbGtfZGl2Lm4pOwotCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUucGxsMiA9 IGNsa19kaXYubTJfZnJhYzsKKwlkcGxsX2h3X3N0YXRlLT5lYmIwID0gUE9SVF9QTExfUDEoY2xr X2Rpdi0+cDEpIHwgUE9SVF9QTExfUDIoY2xrX2Rpdi0+cDIpOworCWRwbGxfaHdfc3RhdGUtPnBs bDAgPSBjbGtfZGl2LT5tMl9pbnQ7CisJZHBsbF9od19zdGF0ZS0+cGxsMSA9IFBPUlRfUExMX04o Y2xrX2Rpdi0+bik7CisJZHBsbF9od19zdGF0ZS0+cGxsMiA9IGNsa19kaXYtPm0yX2ZyYWM7CiAK LQlpZiAoY2xrX2Rpdi5tMl9mcmFjX2VuKQotCQljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLnBs bDMgPQotCQkJUE9SVF9QTExfTTJfRlJBQ19FTkFCTEU7CisJaWYgKGNsa19kaXYtPm0yX2ZyYWNf ZW4pCisJCWRwbGxfaHdfc3RhdGUtPnBsbDMgPSBQT1JUX1BMTF9NMl9GUkFDX0VOQUJMRTsKIAot CWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUucGxsNiA9Ci0JCXByb3BfY29lZiB8IFBPUlRfUExM X0lOVF9DT0VGRihpbnRfY29lZik7Ci0JY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5wbGw2IHw9 Ci0JCVBPUlRfUExMX0dBSU5fQ1RMKGdhaW5fY3RsKTsKKwlkcGxsX2h3X3N0YXRlLT5wbGw2ID0g cHJvcF9jb2VmIHwgUE9SVF9QTExfSU5UX0NPRUZGKGludF9jb2VmKTsKKwlkcGxsX2h3X3N0YXRl LT5wbGw2IHw9IFBPUlRfUExMX0dBSU5fQ1RMKGdhaW5fY3RsKTsKIAotCWNydGNfc3RhdGUtPmRw bGxfaHdfc3RhdGUucGxsOCA9IHRhcmdfY250OworCWRwbGxfaHdfc3RhdGUtPnBsbDggPSB0YXJn X2NudDsKIAotCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUucGxsOSA9IDUgPDwgUE9SVF9QTExf TE9DS19USFJFU0hPTERfU0hJRlQ7CisJZHBsbF9od19zdGF0ZS0+cGxsOSA9IDUgPDwgUE9SVF9Q TExfTE9DS19USFJFU0hPTERfU0hJRlQ7CiAKLQljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLnBs bDEwID0KKwlkcGxsX2h3X3N0YXRlLT5wbGwxMCA9CiAJCVBPUlRfUExMX0RDT19BTVAoUE9SVF9Q TExfRENPX0FNUF9ERUZBVUxUKQogCQl8IFBPUlRfUExMX0RDT19BTVBfT1ZSX0VOX0g7CiAKLQlj cnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLmViYjQgPSBQT1JUX1BMTF8xMEJJVF9DTEtfRU5BQkxF OworCWRwbGxfaHdfc3RhdGUtPmViYjQgPSBQT1JUX1BMTF8xMEJJVF9DTEtfRU5BQkxFOworCisJ ZHBsbF9od19zdGF0ZS0+cGNzZHcxMiA9IExBTkVTVEFHR0VSX1NUUkFQX09WUkQgfCBsYW5lc3Rh Z2dlcjsKKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgc3RydWN0IGludGVsX3NoYXJlZF9k cGxsICoKK2J4dF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQoreworCXN0cnVjdCBieHRfY2xrX2RpdiBjbGtfZGl2ID0gezB9OworCXN0cnVjdCBpbnRl bF9kcGxsX2h3X3N0YXRlIGRwbGxfaHdfc3RhdGUgPSB7MH07CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CisJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7CisJc3RydWN0IGludGVsX3NoYXJlZF9kcGxs ICpwbGw7CisJaW50IGksIGNsb2NrID0gY3J0Y19zdGF0ZS0+cG9ydF9jbG9jazsKKworCWlmIChl bmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9IRE1JCisJICAgICYmICFieHRfZGRpX2hkbWlf cGxsX2RpdmlkZXJzKGNydGMsIGNydGNfc3RhdGUsCisJCQkJCSAgY2xvY2ssICZjbGtfZGl2KSkK KwkJCXJldHVybiBmYWxzZTsKKworCWlmIChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9E SVNQTEFZUE9SVCB8fAorCSAgICBlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9FRFApCisJ CWJ4dF9kZGlfZHBfcGxsX2RpdmlkZXJzKGNsb2NrLCAmY2xrX2Rpdik7CisKKwlpZiAoIWJ4dF9k ZGlfc2V0X2RwbGxfaHdfc3RhdGUoY2xvY2ssICZjbGtfZGl2LCAmZHBsbF9od19zdGF0ZSkpCisJ CXJldHVybiBmYWxzZTsKKworCW1lbXNldCgmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwgMCwK KwkgICAgICAgc2l6ZW9mKGNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpKTsKIAotCWNydGNfc3Rh dGUtPmRwbGxfaHdfc3RhdGUucGNzZHcxMiA9Ci0JCUxBTkVTVEFHR0VSX1NUUkFQX09WUkQgfCBs YW5lc3RhZ2dlcjsKKwljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlID0gZHBsbF9od19zdGF0ZTsK IAogCWludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmgKaW5kZXggODljNWFkYS4uZmZjYjIxYyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oCkBAIC0xMjYsNiArMTI2LDE5IEBA IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCB7CiAJdWludDMyX3QgZmxhZ3M7CiB9OwogCisvKiBi eHQgY2xvY2sgcGFyYW1ldGVycyAqLworc3RydWN0IGJ4dF9jbGtfZGl2IHsKKwlpbnQgY2xvY2s7 CisJdWludDMyX3QgcDE7CisJdWludDMyX3QgcDI7CisJdWludDMyX3QgbTJfaW50OworCXVpbnQz Ml90IG0yX2ZyYWM7CisJYm9vbCBtMl9mcmFjX2VuOworCXVpbnQzMl90IG47CisKKwlpbnQgdmNv OworfTsKKwogI2RlZmluZSBTS0xfRFBMTDAgMAogI2RlZmluZSBTS0xfRFBMTDEgMQogI2RlZmlu ZSBTS0xfRFBMTDIgMgpAQCAtMTYwLDUgKzE3Myw5IEBAIHZvaWQgaW50ZWxfZGlzYWJsZV9zaGFy ZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7CiB2b2lkIGludGVsX3NoYXJlZF9kcGxs X2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogdm9pZCBpbnRlbF9zaGFy ZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCisvKiBCWFQgZHBsbCByZWxh dGVkIGZ1bmN0aW9ucyAqLwordm9pZCBieHRfZGRpX2RwX3BsbF9kaXZpZGVycyhpbnQgY2xvY2ss IHN0cnVjdCBieHRfY2xrX2RpdiAqY2xrX2Rpdik7Citib29sIGJ4dF9kZGlfc2V0X2RwbGxfaHdf c3RhdGUoaW50IGNsb2NrLCBzdHJ1Y3QgYnh0X2Nsa19kaXYgKmNsa19kaXYsCisJCQkgIHN0cnVj dCBpbnRlbF9kcGxsX2h3X3N0YXRlICpkcGxsX2h3X3N0YXRlKTsKIAogI2VuZGlmIC8qIF9JTlRF TF9EUExMX01HUl9IXyAqLwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=