From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 07/14] drm/i915: Setup DPLL/DPLLMD for DSI too on VLV/CHV Date: Thu, 3 Sep 2015 21:50:09 +0300 Message-ID: <1441306216-6581-8-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id D2DF06EB41 for ; Thu, 3 Sep 2015 11:50:40 -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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClNl dCB1cCBEUExMIGFuZCBEUExMX01EIGV2ZW4gd2hlbiBkcml2aW5nIERTSSBvdXRwdXQgb24gVkxW L0NIVi4gV2hpbGUKdGhlIERQTEwgaXNuJ3QgdXNlZCB0byBwcm92aWRlIHRoZSBjbG9jayB3ZSBz dGlsbCBuZWVkIHRoZSByZWZjbG9jaywgYW5kCml0IGFwcGVhcnMgdGhhdCB0aGUgcGl4ZWwgcmVw ZWF0IGZhY3RvciBhbHNvIGhhcyBhbiBlZmZlY3Qgb24gRFNJCm91dHB1dC4gU28gc2V0IHVwIGV2 ZXlyaGluZyBpbiBEUExMIGFuZCBEUExMX01EIGFzIHdlIHdvdWxkIGRvIGZvcgpEUC9IRE1JL1ZH QSwgYnV0IGRvbid0IGFjdHVhbGx5IGVuYWJsZSB0aGUgRFBMTCBvciBjb25maWd1cmUgdGhlCmRp dmlkZXJzIHZpYSBEUElPLgoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgfCAxMzYgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jICAgICB8ICAyNSArKy0tLS0tCiAyIGZpbGVzIGNo YW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDc5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwppbmRleCBiMzM0NTBmLi4xZWMzOWIwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xNTcwLDE0ICsxNTcwLDI1IEBAIHN0YXRpYyB2b2lkIGFz c2VydF9wY2hfcG9ydHNfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCWFzc2VydF9wY2hfaGRtaV9kaXNhYmxlZChkZXZfcHJpdiwgcGlwZSwgUENIX0hETUlEKTsK IH0KIAorc3RhdGljIHZvaWQgX3Zsdl9lbmFibGVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAorCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKK3sK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2Uu ZGV2KTsKKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CisKKwlJOTE1X1dSSVRFKERQTEwo cGlwZSksIHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwpOworCVBPU1RJTkdfUkVBRChE UExMKHBpcGUpKTsKKwl1ZGVsYXkoMTUwKTsKKworCWlmICh3YWl0X2ZvcigoKEk5MTVfUkVBRChE UExMKHBpcGUpKSAmIERQTExfTE9DS19WTFYpID09IERQTExfTE9DS19WTFYpLCAxKSkKKwkJRFJN X0VSUk9SKCJEUExMICVkIGZhaWxlZCB0byBsb2NrXG4iLCBwaXBlKTsKK30KKwogc3RhdGljIHZv aWQgdmx2X2VuYWJsZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkgICBjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7Ci0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5w aXBlOwotCWludCByZWcgPSBEUExMKHBpcGUpOwotCXUzMiBkcGxsID0gcGlwZV9jb25maWctPmRw bGxfaHdfc3RhdGUuZHBsbDsKIAogCWFzc2VydF9waXBlX2Rpc2FibGVkKGRldl9wcml2LCBwaXBl KTsKIApAQCAtMTU4NywzMyArMTU5OCwyMiBAQCBzdGF0aWMgdm9pZCB2bHZfZW5hYmxlX3BsbChz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkvKiBQTEwgaXMgcHJvdGVjdGVkIGJ5IHBhbmVsLCBt YWtlIHN1cmUgd2UgY2FuIHdyaXRlIGl0ICovCiAJYXNzZXJ0X3BhbmVsX3VubG9ja2VkKGRldl9w cml2LCBwaXBlKTsKIAotCUk5MTVfV1JJVEUocmVnLCBkcGxsKTsKLQlQT1NUSU5HX1JFQUQocmVn KTsKLQl1ZGVsYXkoMTUwKTsKLQotCWlmICh3YWl0X2ZvcigoKEk5MTVfUkVBRChyZWcpICYgRFBM TF9MT0NLX1ZMVikgPT0gRFBMTF9MT0NLX1ZMViksIDEpKQotCQlEUk1fRVJST1IoIkRQTEwgJWQg ZmFpbGVkIHRvIGxvY2tcbiIsIHBpcGUpOworCWlmIChwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0 ZS5kcGxsICYgRFBMTF9WQ09fRU5BQkxFKQorCQlfdmx2X2VuYWJsZV9wbGwoY3J0YywgcGlwZV9j b25maWcpOwogCiAJSTkxNV9XUklURShEUExMX01EKHBpcGUpLCBwaXBlX2NvbmZpZy0+ZHBsbF9o d19zdGF0ZS5kcGxsX21kKTsKIAlQT1NUSU5HX1JFQUQoRFBMTF9NRChwaXBlKSk7CiB9CiAKLXN0 YXRpYyB2b2lkIGNodl9lbmFibGVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAotCQkJICAg Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQorCitzdGF0aWMgdm9p ZCBfY2h2X2VuYWJsZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgICAgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewotCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+ cGlwZTsKIAllbnVtIGRwaW9fY2hhbm5lbCBwb3J0ID0gdmx2X3BpcGVfdG9fY2hhbm5lbChwaXBl KTsKIAl1MzIgdG1wOwogCi0JYXNzZXJ0X3BpcGVfZGlzYWJsZWQoZGV2X3ByaXYsIGNydGMtPnBp cGUpOwotCi0JQlVHX09OKCFJU19DSEVSUllWSUVXKGRldl9wcml2LT5kZXYpKTsKLQotCS8qIFBM TCBpcyBwcm90ZWN0ZWQgYnkgcGFuZWwsIG1ha2Ugc3VyZSB3ZSBjYW4gd3JpdGUgaXQgKi8KLQlh c3NlcnRfcGFuZWxfdW5sb2NrZWQoZGV2X3ByaXYsIHBpcGUpOwotCiAJbXV0ZXhfbG9jaygmZGV2 X3ByaXYtPnNiX2xvY2spOwogCiAJLyogRW5hYmxlIGJhY2sgdGhlIDEwYml0IGNsb2NrIHRvIGRp c3BsYXkgY29udHJvbGxlciAqLwpAQCAtMTYzNCw2ICsxNjM0LDIzIEBAIHN0YXRpYyB2b2lkIGNo dl9lbmFibGVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCS8qIENoZWNrIFBMTCBpcyBs b2NrZWQgKi8KIAlpZiAod2FpdF9mb3IoKChJOTE1X1JFQUQoRFBMTChwaXBlKSkgJiBEUExMX0xP Q0tfVkxWKSA9PSBEUExMX0xPQ0tfVkxWKSwgMSkpCiAJCURSTV9FUlJPUigiUExMICVkIGZhaWxl ZCB0byBsb2NrXG4iLCBwaXBlKTsKK30KKworc3RhdGljIHZvaWQgY2h2X2VuYWJsZV9wbGwoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCisJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5iYXNlLmRldik7CisJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwor CisJYXNzZXJ0X3BpcGVfZGlzYWJsZWQoZGV2X3ByaXYsIHBpcGUpOworCisJQlVHX09OKCFJU19D SEVSUllWSUVXKGRldl9wcml2LT5kZXYpKTsKKworCS8qIFBMTCBpcyBwcm90ZWN0ZWQgYnkgcGFu ZWwsIG1ha2Ugc3VyZSB3ZSBjYW4gd3JpdGUgaXQgKi8KKwlhc3NlcnRfcGFuZWxfdW5sb2NrZWQo ZGV2X3ByaXYsIHBpcGUpOworCisJaWYgKHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwg JiBEUExMX1ZDT19FTkFCTEUpCisJCV9jaHZfZW5hYmxlX3BsbChjcnRjLCBwaXBlX2NvbmZpZyk7 CiAKIAlpZiAocGlwZSAhPSBQSVBFX0EpIHsKIAkJLyoKQEAgLTYwMDYsMTQgKzYwMjMsMTEgQEAg c3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKLQlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7 Ci0JYm9vbCBpc19kc2k7CisJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCiAJ aWYgKFdBUk5fT04oaW50ZWxfY3J0Yy0+YWN0aXZlKSkKIAkJcmV0dXJuOwogCi0JaXNfZHNpID0g aW50ZWxfcGlwZV9oYXNfdHlwZShpbnRlbF9jcnRjLCBJTlRFTF9PVVRQVVRfRFNJKTsKLQogCWlm IChpbnRlbF9jcnRjLT5jb25maWctPmhhc19kcF9lbmNvZGVyKQogCQlpbnRlbF9kcF9zZXRfbV9u KGludGVsX2NydGMsIE0xX04xKTsKIApAQCAtNjAzNiwxNCArNjA1MCwxMiBAQCBzdGF0aWMgdm9p ZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJaWYgKGVu Y29kZXItPnByZV9wbGxfZW5hYmxlKQogCQkJZW5jb2Rlci0+cHJlX3BsbF9lbmFibGUoZW5jb2Rl cik7CiAKLQlpZiAoIWlzX2RzaSkgewotCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7Ci0JCQlj aHZfcHJlcGFyZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKLQkJCWNodl9l bmFibGVfcGxsKGludGVsX2NydGMsIGludGVsX2NydGMtPmNvbmZpZyk7Ci0JCX0gZWxzZSB7Ci0J CQl2bHZfcHJlcGFyZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKLQkJCXZs dl9lbmFibGVfcGxsKGludGVsX2NydGMsIGludGVsX2NydGMtPmNvbmZpZyk7Ci0JCX0KKwlpZiAo SVNfQ0hFUlJZVklFVyhkZXYpKSB7CisJCWNodl9wcmVwYXJlX3BsbChpbnRlbF9jcnRjLCBpbnRl bF9jcnRjLT5jb25maWcpOworCQljaHZfZW5hYmxlX3BsbChpbnRlbF9jcnRjLCBpbnRlbF9jcnRj LT5jb25maWcpOworCX0gZWxzZSB7CisJCXZsdl9wcmVwYXJlX3BsbChpbnRlbF9jcnRjLCBpbnRl bF9jcnRjLT5jb25maWcpOworCQl2bHZfZW5hYmxlX3BsbChpbnRlbF9jcnRjLCBpbnRlbF9jcnRj LT5jb25maWcpOwogCX0KIAogCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVu Y29kZXIpCkBAIC03MTg2LDExICs3MTk4LDE1IEBAIHN0YXRpYyB2b2lkIHZsdl9jb21wdXRlX2Rw bGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZykKIHsKIAlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsID0g RFBMTF9JTlRFR1JBVEVEX1JFRl9DTEtfVkxWIHwKLQkJRFBMTF9SRUZfQ0xLX0VOQUJMRV9WTFYg fCBEUExMX1ZHQV9NT0RFX0RJUyB8Ci0JCURQTExfVkNPX0VOQUJMRSB8IERQTExfRVhUX0JVRkZF Ul9FTkFCTEVfVkxWOworCQlEUExMX1JFRl9DTEtfRU5BQkxFX1ZMViB8IERQTExfVkdBX01PREVf RElTOwogCWlmIChjcnRjLT5waXBlICE9IFBJUEVfQSkKIAkJcGlwZV9jb25maWctPmRwbGxfaHdf c3RhdGUuZHBsbCB8PSBEUExMX0lOVEVHUkFURURfQ1JJX0NMS19WTFY7CiAKKwkvKiBEUExMIG5v dCB1c2VkIHdpdGggRFNJLCBidXQgc3RpbGwgbmVlZCB0aGUgcmVzdCBzZXQgdXAgKi8KKwlpZiAo IWludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUocGlwZV9jb25maWcsIElOVEVMX09VVFBVVF9EU0kp KQorCQlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsIHw9IERQTExfVkNPX0VOQUJMRSB8 CisJCQlEUExMX0VYVF9CVUZGRVJfRU5BQkxFX1ZMVjsKKwogCXBpcGVfY29uZmlnLT5kcGxsX2h3 X3N0YXRlLmRwbGxfbWQgPQogCQkocGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXIgLSAxKSA8 PCBEUExMX01EX1VESV9NVUxUSVBMSUVSX1NISUZUOwogfQpAQCAtNzE5OSwxMSArNzIxNSwxNCBA QCBzdGF0aWMgdm9pZCBjaHZfY29tcHV0ZV9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAog CQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJcGlwZV9j b25maWctPmRwbGxfaHdfc3RhdGUuZHBsbCA9IERQTExfU1NDX1JFRl9DTEtfQ0hWIHwKLQkJRFBM TF9SRUZfQ0xLX0VOQUJMRV9WTFYgfCBEUExMX1ZHQV9NT0RFX0RJUyB8Ci0JCURQTExfVkNPX0VO QUJMRTsKKwkJRFBMTF9SRUZfQ0xLX0VOQUJMRV9WTFYgfCBEUExMX1ZHQV9NT0RFX0RJUzsKIAlp ZiAoY3J0Yy0+cGlwZSAhPSBQSVBFX0EpCiAJCXBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRw bGwgfD0gRFBMTF9JTlRFR1JBVEVEX0NSSV9DTEtfVkxWOwogCisJLyogRFBMTCBub3QgdXNlZCB3 aXRoIERTSSwgYnV0IHN0aWxsIG5lZWQgdGhlIHJlc3Qgc2V0IHVwICovCisJaWYgKCFpbnRlbF9w aXBlX3dpbGxfaGF2ZV90eXBlKHBpcGVfY29uZmlnLCBJTlRFTF9PVVRQVVRfRFNJKSkKKwkJcGlw ZV9jb25maWctPmRwbGxfaHdfc3RhdGUuZHBsbCB8PSBEUExMX1ZDT19FTkFCTEU7CisKIAlwaXBl X2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsX21kID0KIAkJKHBpcGVfY29uZmlnLT5waXhlbF9t dWx0aXBsaWVyIC0gMSkgPDwgRFBMTF9NRF9VRElfTVVMVElQTElFUl9TSElGVDsKIH0KQEAgLTcy MTMsMTEgKzcyMzIsMjAgQEAgc3RhdGljIHZvaWQgdmx2X3ByZXBhcmVfcGxsKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRl djsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl OwotCWludCBwaXBlID0gY3J0Yy0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7 CiAJdTMyIG1kaXY7CiAJdTMyIGJlc3RuLCBiZXN0bTEsIGJlc3RtMiwgYmVzdHAxLCBiZXN0cDI7 CiAJdTMyIGNvcmVjbGssIHJlZ192YWw7CiAKKwkvKiBFbmFibGUgUmVmY2xrICovCisJSTkxNV9X UklURShEUExMKHBpcGUpLAorCQkgICBwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsICYK KwkJICAgfihEUExMX1ZDT19FTkFCTEUgfCBEUExMX0VYVF9CVUZGRVJfRU5BQkxFX1ZMVikpOwor CisJLyogTm8gbmVlZCB0byBhY3R1YWxseSBzZXQgdXAgdGhlIERQTEwgd2l0aCBEU0kgKi8KKwlp ZiAoKHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwgJiBEUExMX1ZDT19FTkFCTEUpID09 IDApCisJCXJldHVybjsKKwogCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKIAogCWJl c3RuID0gcGlwZV9jb25maWctPmRwbGwubjsKQEAgLTczMDQsMTQgKzczMzIsMjEgQEAgc3RhdGlj IHZvaWQgY2h2X3ByZXBhcmVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogewogCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCBwaXBlID0gY3J0Yy0+cGlw ZTsKLQlpbnQgZHBsbF9yZWcgPSBEUExMKGNydGMtPnBpcGUpOworCWVudW0gcGlwZSBwaXBlID0g Y3J0Yy0+cGlwZTsKIAllbnVtIGRwaW9fY2hhbm5lbCBwb3J0ID0gdmx2X3BpcGVfdG9fY2hhbm5l bChwaXBlKTsKIAl1MzIgbG9vcGZpbHRlciwgdHJpYnVmX2NhbGNudHI7CiAJdTMyIGJlc3RuLCBi ZXN0bTEsIGJlc3RtMiwgYmVzdHAxLCBiZXN0cDIsIGJlc3RtMl9mcmFjOwogCXUzMiBkcGlvX3Zh bDsKIAlpbnQgdmNvOwogCisJLyogRW5hYmxlIFJlZmNsayBhbmQgU1NDICovCisJSTkxNV9XUklU RShEUExMKHBpcGUpLAorCQkgICBwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsICYgfkRQ TExfVkNPX0VOQUJMRSk7CisKKwkvKiBObyBuZWVkIHRvIGFjdHVhbGx5IHNldCB1cCB0aGUgRFBM TCB3aXRoIERTSSAqLworCWlmICgocGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUuZHBsbCAmIERQ TExfVkNPX0VOQUJMRSkgPT0gMCkKKwkJcmV0dXJuOworCiAJYmVzdG4gPSBwaXBlX2NvbmZpZy0+ ZHBsbC5uOwogCWJlc3RtMl9mcmFjID0gcGlwZV9jb25maWctPmRwbGwubTIgJiAweDNmZmZmZjsK IAliZXN0bTEgPSBwaXBlX2NvbmZpZy0+ZHBsbC5tMTsKQEAgLTczMjIsMTIgKzczNTcsNiBAQCBz dGF0aWMgdm9pZCBjaHZfcHJlcGFyZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJZHBp b192YWwgPSAwOwogCWxvb3BmaWx0ZXIgPSAwOwogCi0JLyoKLQkgKiBFbmFibGUgUmVmY2xrIGFu ZCBTU0MKLQkgKi8KLQlJOTE1X1dSSVRFKGRwbGxfcmVnLAotCQkgICBwaXBlX2NvbmZpZy0+ZHBs bF9od19zdGF0ZS5kcGxsICYgfkRQTExfVkNPX0VOQUJMRSk7Ci0KIAltdXRleF9sb2NrKCZkZXZf cHJpdi0+c2JfbG9jayk7CiAKIAkvKiBwMSBhbmQgcDIgZGl2aWRlciAqLwpAQCAtNzc3Miw4ICs3 ODAxLDYgQEAgc3RhdGljIGludCBpOXh4X2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKIAlpbnQgcmVmY2xrLCBudW1fY29ubmVjdG9ycyA9IDA7CiAJaW50ZWxfY2xv Y2tfdCBjbG9jazsKIAlib29sIG9rOwotCWJvb2wgaXNfZHNpID0gZmFsc2U7Ci0Jc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXI7CiAJY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQ7CiAJc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKIAlz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwpAQCAtNzc4NywyMiArNzgxNCw5IEBAIHN0 YXRpYyBpbnQgaTl4eF9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmNydGMs CiAJCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCiAJCQljb250aW51 ZTsKIAotCQllbmNvZGVyID0gdG9faW50ZWxfZW5jb2Rlcihjb25uZWN0b3Jfc3RhdGUtPmJlc3Rf ZW5jb2Rlcik7Ci0KLQkJc3dpdGNoIChlbmNvZGVyLT50eXBlKSB7Ci0JCWNhc2UgSU5URUxfT1VU UFVUX0RTSToKLQkJCWlzX2RzaSA9IHRydWU7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCWJy ZWFrOwotCQl9Ci0KIAkJbnVtX2Nvbm5lY3RvcnMrKzsKIAl9CiAKLQlpZiAoaXNfZHNpKQotCQly ZXR1cm4gMDsKLQogCWlmICghY3J0Y19zdGF0ZS0+Y2xvY2tfc2V0KSB7CiAJCXJlZmNsayA9IGk5 eHhfZ2V0X3JlZmNsayhjcnRjX3N0YXRlLCBudW1fY29ubmVjdG9ycyk7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHNpLmMKaW5kZXggOGM5ZjFjNS4uZTBjY2FmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHNpLmMKQEAgLTI3OSw2ICsyNzksMTIgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHNpX2NvbXB1dGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCS8qIERTSSB1c2VzIHNob3J0 IHBhY2tldHMgZm9yIHN5bmMgZXZlbnRzLCBzbyBjbGVhciBtb2RlIGZsYWdzIGZvciBEU0kgKi8K IAlhZGp1c3RlZF9tb2RlLT5mbGFncyA9IDA7CiAKKwkvKgorCSAqIEZJWE1FIG1vdmUgdGhlIERT SSBQTEwgY2FsYyBmcm9tIHZsdl9lbmFibGVfZHNpX3BsbCgpCisJICogdG8gLmNvbXB1dGVfY29u ZmlnKCkuCisJICovCisJY29uZmlnLT5jbG9ja19zZXQgPSB0cnVlOworCiAJcmV0dXJuIHRydWU7 CiB9CiAKQEAgLTQwNiw4ICs0MTIsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNf dG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKLQllbnVtIHBpcGUgcGlw ZSA9IGludGVsX2NydGMtPnBpcGU7CiAJZW51bSBwb3J0IHBvcnQ7CiAJdTMyIHRtcDsKIApAQCAt NDE5LDE2ICs0MjMsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAogCW1zbGVlcChpbnRlbF9kc2ktPnBhbmVsX29uX2Rl bGF5KTsKIAotCS8qIERpc2FibGUgRFBPdW5pdCBjbG9jayBnYXRpbmcsIGNhbiBzdGFsbCBwaXBl Ci0JICogYW5kIHdlIG5lZWQgRFBMTCBSRUZBIGFsd2F5cyBlbmFibGVkICovCi0JdG1wID0gSTkx NV9SRUFEKERQTEwocGlwZSkpOwotCXRtcCB8PSBEUExMX1JFRl9DTEtfRU5BQkxFX1ZMVjsKLQlJ OTE1X1dSSVRFKERQTEwocGlwZSksIHRtcCk7Ci0KLQkvKiB1cGRhdGUgdGhlIGh3IHN0YXRlIGZv ciBEUExMICovCi0JaW50ZWxfY3J0Yy0+Y29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwgPSBEUExM X0lOVEVHUkFURURfUkVGX0NMS19WTFYgfAotCQlEUExMX1JFRl9DTEtfRU5BQkxFX1ZMViB8IERQ TExfVkdBX01PREVfRElTOwotCisJLyogRGlzYWJsZSBEUE91bml0IGNsb2NrIGdhdGluZywgY2Fu IHN0YWxsIHBpcGUgKi8KIAl0bXAgPSBJOTE1X1JFQUQoRFNQQ0xLX0dBVEVfRCk7CiAJdG1wIHw9 IERQT1VOSVRfQ0xPQ0tfR0FURV9ESVNBQkxFOwogCUk5MTVfV1JJVEUoRFNQQ0xLX0dBVEVfRCwg dG1wKTsKQEAgLTYzNCwxMiArNjI5LDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2dldF9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJdTMyIHBjbGs7CiAJRFJNX0RFQlVH X0tNUygiXG4iKTsKIAotCS8qCi0JICogRFBMTF9NRCBpcyBub3QgdXNlZCBpbiBjYXNlIG9mIERT SSwgcmVhZGluZyB3aWxsIGdldCBzb21lIGRlZmF1bHQgdmFsdWUKLQkgKiBzZXQgZHBsbF9tZCA9 IDAKLQkgKi8KLQlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsX21kID0gMDsKLQogCXBj bGsgPSB2bHZfZ2V0X2RzaV9wY2xrKGVuY29kZXIsIHBpcGVfY29uZmlnLT5waXBlX2JwcCk7CiAJ aWYgKCFwY2xrKQogCQlyZXR1cm47Ci0tIAoyLjQuNgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK