From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 08/14] drm/i915: Compute DSI PLL parameters during .compute_config() Date: Thu, 3 Sep 2015 21:50:10 +0300 Message-ID: <1441306216-6581-9-git-send-email-ville.syrjala@linux.intel.com> References: <1441306216-6581-1-git-send-email-ville.syrjala@linux.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 B93DA7A163 for ; Thu, 3 Sep 2015 11:51:01 -0700 (PDT) In-Reply-To: <1441306216-6581-1-git-send-email-ville.syrjala@linux.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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkNv bXB1dGUgdGhlIERTSSBQTEwgcGFyYW1ldGVycyBkdXJpbmcgLmNvbXB1dGVfY29uZmlnKCkgcmF0 aGVyIHRoYW4KLnByZV9wbGxfZW5hYmxlKCkgc28gdGhhdCB3ZSBjYW4gZmFpbCBncmFjZWZ1bGx5 IGlmIHdlIGNhbid0IGZpbmQKc3VpdGFibGUgcGFyYW1ldGVycy4KCkluIG9yZGVyIHRvIGRvIHRo YXQgd2UgbmVlZCB0byBzdG9yZSB0aGUgRFNJIFBMTCBwYXJhbWV0ZXJzIGluCnBpcGVfY29uZmln LgoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgMyAr KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDUgKysrKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAgIHwgMTYgKysrKysrKy0tLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RzaS5oICAgICB8ICA4ICsrKystLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHNpX3BsbC5jIHwgNTYgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAxZWMzOWIwLi45YTc3Y2E1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMjQ4OCw2ICsxMjQ4OCw5 IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlQ SVBFX0NPTkZfQ0hFQ0tfWChkcGxsX2h3X3N0YXRlLmNmZ2NyMSk7CiAJUElQRV9DT05GX0NIRUNL X1goZHBsbF9od19zdGF0ZS5jZmdjcjIpOwogCisJUElQRV9DT05GX0NIRUNLX1goZHNpX3BsbC5j dHJsKTsKKwlQSVBFX0NPTkZfQ0hFQ0tfWChkc2lfcGxsLmRpdik7CisKIAlpZiAoSVNfRzRYKGRl dikgfHwgSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNSkKIAkJUElQRV9DT05GX0NIRUNLX0kocGlw ZV9icHApOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGNmOTcxZWYuLjhiYjc0ZWIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC00MDcsNiArNDA3LDExIEBAIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlIHsKIAkvKiBBY3R1YWwgcmVnaXN0ZXIgc3RhdGUgb2YgdGhlIGRwbGws IGZvciBzaGFyZWQgZHBsbCBjcm9zcy1jaGVja2luZy4gKi8KIAlzdHJ1Y3QgaW50ZWxfZHBsbF9o d19zdGF0ZSBkcGxsX2h3X3N0YXRlOwogCisJLyogRFNJIFBMTCByZWdpc3RlcnMgKi8KKwlzdHJ1 Y3QgeworCQl1MzIgY3RybCwgZGl2OworCX0gZHNpX3BsbDsKKwogCWludCBwaXBlX2JwcDsKIAlz dHJ1Y3QgaW50ZWxfbGlua19tX24gZHBfbV9uOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCmlu ZGV4IGUwY2NhZjEuLjRjZjZjMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCkBAIC0yNzAs NiArMjcwLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHNpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nv bm5lY3RvciA9IGludGVsX2RzaS0+YXR0YWNoZWRfY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICpmaXhlZF9tb2RlID0gaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2Rl OwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNvbmZpZy0+YmFz ZS5hZGp1c3RlZF9tb2RlOworCWludCByZXQ7CiAKIAlEUk1fREVCVUdfS01TKCJcbiIpOwogCkBA IC0yNzksMTAgKzI4MCwxMCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kc2lfY29tcHV0ZV9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJLyogRFNJIHVzZXMgc2hvcnQgcGFja2V0 cyBmb3Igc3luYyBldmVudHMsIHNvIGNsZWFyIG1vZGUgZmxhZ3MgZm9yIERTSSAqLwogCWFkanVz dGVkX21vZGUtPmZsYWdzID0gMDsKIAotCS8qCi0JICogRklYTUUgbW92ZSB0aGUgRFNJIFBMTCBj YWxjIGZyb20gdmx2X2VuYWJsZV9kc2lfcGxsKCkKLQkgKiB0byAuY29tcHV0ZV9jb25maWcoKS4K LQkgKi8KKwlyZXQgPSB2bHZfY29tcHV0ZV9kc2lfcGxsKGVuY29kZXIsIGNvbmZpZyk7CisJaWYg KHJldCkKKwkJcmV0dXJuIGZhbHNlOworCiAJY29uZmlnLT5jbG9ja19zZXQgPSB0cnVlOwogCiAJ cmV0dXJuIHRydWU7CkBAIC02MjksNyArNjMwLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2dl dF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJdTMyIHBjbGs7CiAJRFJN X0RFQlVHX0tNUygiXG4iKTsKIAotCXBjbGsgPSB2bHZfZ2V0X2RzaV9wY2xrKGVuY29kZXIsIHBp cGVfY29uZmlnLT5waXBlX2JwcCk7CisJcGNsayA9IHZsdl9nZXRfZHNpX3BjbGsoZW5jb2Rlciwg cGlwZV9jb25maWctPnBpcGVfYnBwLAorCQkJCXBpcGVfY29uZmlnKTsKIAlpZiAoIXBjbGspCiAJ CXJldHVybjsKIApAQCAtOTAwLDYgKzkwMiw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVw YXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQogCiBzdGF0aWMgdm9pZCBp bnRlbF9kc2lfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7 CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXIt PmJhc2UuY3J0Yyk7CisKIAlEUk1fREVCVUdfS01TKCJcbiIpOwogCiAJaW50ZWxfZHNpX3ByZXBh cmUoZW5jb2Rlcik7CkBAIC05MDksNyArOTEzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3By ZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCSAqIGxvY2suIEl0 IG5lZWRzIHRvIGJlIGZ1bGx5IHBvd2VyZWQgZG93biB0byBmaXggaXQuCiAJICovCiAJdmx2X2Rp c2FibGVfZHNpX3BsbChlbmNvZGVyKTsKLQl2bHZfZW5hYmxlX2RzaV9wbGwoZW5jb2Rlcik7CisJ dmx2X2VuYWJsZV9kc2lfcGxsKGVuY29kZXIsIGludGVsX2NydGMtPmNvbmZpZyk7CiB9CiAKIHN0 YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2kuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCmlu ZGV4IDQyYTY4NTkuLjU4YzM5YjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oCkBAIC0xMjQs OSArMTI0LDEzIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2RzaSAqZW5jX3RvX2ludGVs X2RzaShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihl bmNvZGVyLCBzdHJ1Y3QgaW50ZWxfZHNpLCBiYXNlLmJhc2UpOwogfQogCi1leHRlcm4gdm9pZCB2 bHZfZW5hYmxlX2RzaV9wbGwoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOworZXh0ZXJu IGludCB2bHZfY29tcHV0ZV9kc2lfcGxsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAor CQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcpOworZXh0ZXJuIHZvaWQg dmx2X2VuYWJsZV9kc2lfcGxsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJICAg ICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcpOwogZXh0ZXJuIHZvaWQg dmx2X2Rpc2FibGVfZHNpX3BsbChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Ci1leHRl cm4gdTMyIHZsdl9nZXRfZHNpX3BjbGsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGlu dCBwaXBlX2JwcCk7CitleHRlcm4gdTMyIHZsdl9nZXRfZHNpX3BjbGsoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsIGludCBwaXBlX2JwcCwKKwkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY29uZmlnKTsKIAogc3RydWN0IGRybV9wYW5lbCAqdmJ0X3BhbmVsX2luaXQoc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpLCB1MTYgcGFuZWxfaWQpOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2lfcGxsLmMKaW5kZXggYzZhODk3NS4uNzljMThhMCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RzaV9wbGwuYwpAQCAtNTksMTAgKzU5LDYgQEAgc3RhdGljIGludCBkc2lfcGl4ZWxf Zm9ybWF0X2JwcChpbnQgcGl4ZWxfZm9ybWF0KQogCXJldHVybiBicHA7CiB9CiAKLXN0cnVjdCBk c2lfbW5wIHsKLQl1MzIgZHNpX3BsbF9jdHJsOwotCXUzMiBkc2lfcGxsX2RpdjsKLX07CiAKIHN0 YXRpYyBjb25zdCB1MzIgbGZzcl9jb252ZXJ0c1tdID0gewogCTQyNiwgNDY5LCAyMzQsIDM3Mywg NDQyLCAyMjEsIDExMCwgMzExLCA0MTEsCQkvKiA2MiAtIDcwICovCkBAIC0xNTgsNyArMTU0LDgg QEAgc3RhdGljIHUzMiBkc2lfY2xrX2Zyb21fcGNsayh1MzIgcGNsaywgaW50IHBpeGVsX2Zvcm1h dCwgaW50IGxhbmVfY291bnQpCiAjZW5kaWYKIAogc3RhdGljIGludCBkc2lfY2FsY19tbnAoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJc3RydWN0IGRzaV9tbnAgKmRzaV9t bnAsIGludCB0YXJnZXRfZHNpX2NsaykKKwkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25m aWcsCisJCQlpbnQgdGFyZ2V0X2RzaV9jbGspCiB7CiAJdW5zaWduZWQgaW50IGNhbGNfbSA9IDAs IGNhbGNfcCA9IDA7CiAJdW5zaWduZWQgaW50IG1fbWluLCBtX21heCwgcF9taW4gPSAyLCBwX21h eCA9IDY7CkBAIC0yMDQsOCArMjAxLDggQEAgc3RhdGljIGludCBkc2lfY2FsY19tbnAoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCS8qIHJlZ2lzdGVyIGhhcyBsb2cyKE4xKSwg dGhpcyB3b3JrcyBmaW5lIGZvciBwb3dlcnMgb2YgdHdvICovCiAJbiA9IGZmcyhuKSAtIDE7CiAJ bV9zZWVkID0gbGZzcl9jb252ZXJ0c1tjYWxjX20gLSA2Ml07Ci0JZHNpX21ucC0+ZHNpX3BsbF9j dHJsID0gMSA8PCAoRFNJX1BMTF9QMV9QT1NUX0RJVl9TSElGVCArIGNhbGNfcCAtIDIpOwotCWRz aV9tbnAtPmRzaV9wbGxfZGl2ID0gbiA8PCBEU0lfUExMX04xX0RJVl9TSElGVCB8CisJY29uZmln LT5kc2lfcGxsLmN0cmwgPSAxIDw8IChEU0lfUExMX1AxX1BPU1RfRElWX1NISUZUICsgY2FsY19w IC0gMik7CisJY29uZmlnLT5kc2lfcGxsLmRpdiA9IG4gPDwgRFNJX1BMTF9OMV9ESVZfU0hJRlQg fAogCQltX3NlZWQgPDwgRFNJX1BMTF9NMV9ESVZfU0hJRlQ7CiAKIAlyZXR1cm4gMDsKQEAgLTIx NSw1NCArMjEyLDYzIEBAIHN0YXRpYyBpbnQgZHNpX2NhbGNfbW5wKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKICAqIFhYWDogVGhlIG11eGluZyBhbmQgZ2F0aW5nIGlzIGhhcmQg Y29kZWQgZm9yIG5vdy4gTmVlZCB0byBhZGQgc3VwcG9ydCBmb3IKICAqIHNoYXJpbmcgUExMcyB3 aXRoIHR3byBEU0kgb3V0cHV0cy4KICAqLwotc3RhdGljIHZvaWQgdmx2X2NvbmZpZ3VyZV9kc2lf cGxsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQoraW50IHZsdl9jb21wdXRlX2RzaV9w bGwoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVu Y29kZXItPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKIAlpbnQgcmV0OwotCXN0cnVj dCBkc2lfbW5wIGRzaV9tbnA7CiAJdTMyIGRzaV9jbGs7CiAKIAlkc2lfY2xrID0gZHNpX2Nsa19m cm9tX3BjbGsoaW50ZWxfZHNpLT5wY2xrLCBpbnRlbF9kc2ktPnBpeGVsX2Zvcm1hdCwKIAkJCQkg ICAgaW50ZWxfZHNpLT5sYW5lX2NvdW50KTsKIAotCXJldCA9IGRzaV9jYWxjX21ucChkZXZfcHJp diwgJmRzaV9tbnAsIGRzaV9jbGspOworCXJldCA9IGRzaV9jYWxjX21ucChkZXZfcHJpdiwgY29u ZmlnLCBkc2lfY2xrKTsKIAlpZiAocmV0KSB7CiAJCURSTV9ERUJVR19LTVMoImRzaV9jYWxjX21u cCBmYWlsZWRcbiIpOwotCQlyZXR1cm47CisJCXJldHVybiByZXQ7CiAJfQogCiAJaWYgKGludGVs X2RzaS0+cG9ydHMgJiAoMSA8PCBQT1JUX0EpKQotCQlkc2lfbW5wLmRzaV9wbGxfY3RybCB8PSBE U0lfUExMX0NMS19HQVRFX0RTSTBfRFNJUExMOworCQljb25maWctPmRzaV9wbGwuY3RybCB8PSBE U0lfUExMX0NMS19HQVRFX0RTSTBfRFNJUExMOwogCiAJaWYgKGludGVsX2RzaS0+cG9ydHMgJiAo MSA8PCBQT1JUX0MpKQotCQlkc2lfbW5wLmRzaV9wbGxfY3RybCB8PSBEU0lfUExMX0NMS19HQVRF X0RTSTFfRFNJUExMOworCQljb25maWctPmRzaV9wbGwuY3RybCB8PSBEU0lfUExMX0NMS19HQVRF X0RTSTFfRFNJUExMOworCisJY29uZmlnLT5kc2lfcGxsLmN0cmwgfD0gRFNJX1BMTF9WQ09fRU47 CiAKIAlEUk1fREVCVUdfS01TKCJkc2kgcGxsIGRpdiAlMDh4LCBjdHJsICUwOHhcbiIsCi0JCSAg ICAgIGRzaV9tbnAuZHNpX3BsbF9kaXYsIGRzaV9tbnAuZHNpX3BsbF9jdHJsKTsKKwkJICAgICAg Y29uZmlnLT5kc2lfcGxsLmRpdiwgY29uZmlnLT5kc2lfcGxsLmN0cmwpOworCisJcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyB2b2lkIHZsdl9jb25maWd1cmVfZHNpX3BsbChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKKwkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25m aWcpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7CiAKIAl2bHZfY2NrX3dyaXRlKGRldl9wcml2LCBDQ0tfUkVHX0RTSV9Q TExfQ09OVFJPTCwgMCk7Ci0Jdmx2X2Nja193cml0ZShkZXZfcHJpdiwgQ0NLX1JFR19EU0lfUExM X0RJVklERVIsIGRzaV9tbnAuZHNpX3BsbF9kaXYpOwotCXZsdl9jY2tfd3JpdGUoZGV2X3ByaXYs IENDS19SRUdfRFNJX1BMTF9DT05UUk9MLCBkc2lfbW5wLmRzaV9wbGxfY3RybCk7CisJdmx2X2Nj a193cml0ZShkZXZfcHJpdiwgQ0NLX1JFR19EU0lfUExMX0RJVklERVIsIGNvbmZpZy0+ZHNpX3Bs bC5kaXYpOworCXZsdl9jY2tfd3JpdGUoZGV2X3ByaXYsIENDS19SRUdfRFNJX1BMTF9DT05UUk9M LAorCQkgICAgICBjb25maWctPmRzaV9wbGwuY3RybCAmIH5EU0lfUExMX1ZDT19FTik7CiB9CiAK LXZvaWQgdmx2X2VuYWJsZV9kc2lfcGxsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQor dm9pZCB2bHZfZW5hYmxlX2RzaV9wbGwoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJ CQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnKQogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuY29kZXItPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsK LQl1MzIgdG1wOwogCiAJRFJNX0RFQlVHX0tNUygiXG4iKTsKIAogCW11dGV4X2xvY2soJmRldl9w cml2LT5zYl9sb2NrKTsKIAotCXZsdl9jb25maWd1cmVfZHNpX3BsbChlbmNvZGVyKTsKKwl2bHZf Y29uZmlndXJlX2RzaV9wbGwoZW5jb2RlciwgY29uZmlnKTsKIAogCS8qIHdhaXQgYXQgbGVhc3Qg MC41IHVzIGFmdGVyIHVuZ2F0aW5nIGJlZm9yZSBlbmFibGluZyBWQ08gKi8KIAl1c2xlZXBfcmFu Z2UoMSwgMTApOwogCi0JdG1wID0gdmx2X2Nja19yZWFkKGRldl9wcml2LCBDQ0tfUkVHX0RTSV9Q TExfQ09OVFJPTCk7Ci0JdG1wIHw9IERTSV9QTExfVkNPX0VOOwotCXZsdl9jY2tfd3JpdGUoZGV2 X3ByaXYsIENDS19SRUdfRFNJX1BMTF9DT05UUk9MLCB0bXApOworCXZsdl9jY2tfd3JpdGUoZGV2 X3ByaXYsIENDS19SRUdfRFNJX1BMTF9DT05UUk9MLCBjb25maWctPmRzaV9wbGwuY3RybCk7CiAK IAlpZiAod2FpdF9mb3Iodmx2X2Nja19yZWFkKGRldl9wcml2LCBDQ0tfUkVHX0RTSV9QTExfQ09O VFJPTCkgJgogCQkJCQkJRFNJX1BMTF9MT0NLLCAyMCkpIHsKQEAgLTMwMiw3ICszMDgsOCBAQCBz dGF0aWMgdm9pZCBhc3NlcnRfYnBwX21pc21hdGNoKGludCBwaXhlbF9mb3JtYXQsIGludCBwaXBl X2JwcCkKIAkgICAgIGJwcCwgcGlwZV9icHApOwogfQogCi11MzIgdmx2X2dldF9kc2lfcGNsayhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50IHBpcGVfYnBwKQordTMyIHZsdl9nZXRf ZHNpX3BjbGsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCBwaXBlX2JwcCwKKwkJ ICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGVuY29kZXItPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKIAlz dHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5i YXNlKTsKQEAgLTMxOSw2ICszMjYsOSBAQCB1MzIgdmx2X2dldF9kc2lfcGNsayhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50IHBpcGVfYnBwKQogCXBsbF9kaXYgPSB2bHZfY2NrX3Jl YWQoZGV2X3ByaXYsIENDS19SRUdfRFNJX1BMTF9ESVZJREVSKTsKIAltdXRleF91bmxvY2soJmRl dl9wcml2LT5zYl9sb2NrKTsKIAorCWNvbmZpZy0+ZHNpX3BsbC5jdHJsID0gcGxsX2N0bCAmIH5E U0lfUExMX0xPQ0s7CisJY29uZmlnLT5kc2lfcGxsLmRpdiA9IHBsbF9kaXY7CisKIAkvKiBtYXNr IG91dCBvdGhlciBiaXRzIGFuZCBleHRyYWN0IHRoZSBQMSBkaXZpc29yICovCiAJcGxsX2N0bCAm PSBEU0lfUExMX1AxX1BPU1RfRElWX01BU0s7CiAJcGxsX2N0bCA9IHBsbF9jdGwgPj4gKERTSV9Q TExfUDFfUE9TVF9ESVZfU0hJRlQgLSAyKTsKLS0gCjIuNC42CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=