From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: [PATCH v3 07/12] drm/msm/dsi: Set up link clocks for DSIv2 Date: Tue, 1 Dec 2015 15:30:05 +0530 Message-ID: <1448964010-18207-8-git-send-email-architt@codeaurora.org> References: <1447844131-4182-1-git-send-email-architt@codeaurora.org> <1448964010-18207-1-git-send-email-architt@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1448964010-18207-1-git-send-email-architt@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, robdclark@gmail.com Cc: linux-arm-msm@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org RFNJdjIgKERTSSBvbiBvbGRlciBBIGZhbWlseSBjaGlwcykgaGFzIHNsaWdodGx5IGRpZmZlcmVu dCBsaW5rIGNsb2NrCnJlcXVpcmVtZW50cy4KCkZpcnN0LCB3ZSBoYXZlIGFuIGV4dHJhIGNsb2Nr IGNhbGxlZCBzcmNfY2xrICh3aXRoIGEgZGVkaWNhdGVkIFJDRykuClRoaXMgaXMgcmVxdWlyZWQg YnkgdGhlIERTSSBjb250cm9sbGVyIHRvIHByb2Nlc3MgdGhlIHBpeGVsIGRhdGEKY29taW5nIGZy b20gTURQLiBJdCBuZWVkcyB0byBiZSBzZXQgYXQgdGhlIHJhdGUgInBjbGsgKiBieXRlc19wZXJf cGl4ZWwiLgoKV2UgYWxzbyBuZWVkIHRvIGV4cGxpY2l0bHkgY29uZmlndXJlIGVzY19jbGsuIE9u IERTSTZHIGNoaXBzLCB3ZSBkb24ndApuZWVkIHRvIHNldCBhIHJhdGUgdG8gZXNjX2NsayBiZWNh dXNlIGl0cyBSQ0cgaXMgYWx3YXlzIHNvdXJjZWQgZnJvbQpjcnlzdGFsIGNsb2NrICgxOS4yIE1o eiBpbiBhbGwgY2FzZXMpLCB3aGljaCBpcyB3aXRoaW4gdGhlIGVzY2FwZSBjbG9jawpmcmVxdWVu Y3kgcmFuZ2UgaW4gdGhlIG1pcGkgRFNJIHNwZWMuIEZvciBjaGlwcyB3aXRoIERTSXYyLCB0aGUg Y3J5c3RhbApjbG9jayByYXRlIG1heSBub3QgYmUgd2l0aGluIHRoZSByZXF1aXJlZCByYW5nZSAo MjdNaHogb24gQVBRODA2NCkuClRoZXJlZm9yZSwgd2UgZGVyaXZlIGl0IGZyb20gdGhlIERTSSBi eXRlIGNsb2NrLiBXZSBjYWxjdWxhdGUgYW4gZXNjX2NsY2sKcmF0ZSB0aGF0IGlzIHdpdGhpbiB0 aGUgbWlwaSBzcGVjIGFuZCBhbHNvIGRpdmlzaWJsZSBieSB0aGUgYnl0ZSBjbG9jawpyYXRlLgoK V2hlbiBzZXR0aW5nIHJhdGUgYW5kIGVuYWJsaW5nIHRoZSBsaW5rIGNsb2Nrcywgd2UgbWFrZSBz dXJlIHRoYXQgYnl0ZV9jbGsKaXMgY29uZmlndXJlZCBiZWZvcmUgZXNjX2NsaywgYW5kIHNyY19j bGsgYmVmb3JlIHBpeGVsX2Nsay4gV2UgY3JlYXRlIHR3bwpkaWZmZXJlbnQgbGlua19lbmFibGUg ZnVuY3MgZm9yIERTSTZHIGFuZCBEU0l2MiBzaW5jZSB0aGUgc2VxdWVuY2VzIGFyZQpkaWZmZXJl bnQuCgpXZSBhbHNvIG9idGFpbiB0d28gZXh0cmEgc291cmNlIGNsb2NrcyAoZHNpX3NyY19jbGsg YW5kIGVzY19zcmNfY2xrKSBhbmQKc2V0IHRoZWlyIHBhcmVudCB0byB0aGUgY2xvY2tzIHByb3Zp ZGVkIGJ5IERTSSBQTEwuCgpTaWduZWQtb2ZmLWJ5OiBBcmNoaXQgVGFuZWphIDxhcmNoaXR0QGNv ZGVhdXJvcmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9ob3N0LmMgfCAx OTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQs IDE4NiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZHNpL2RzaV9ob3N0LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lf aG9zdC5jCmluZGV4IDU2Yzc1MzUuLjZlYzIxNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZHNpL2RzaV9ob3N0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX2hv c3QuYwpAQCAtMTEzLDYgKzExMywxNCBAQCBzdHJ1Y3QgbXNtX2RzaV9ob3N0IHsKIAlzdHJ1Y3Qg Y2xrICpwaXhlbF9jbGtfc3JjOwogCiAJdTMyIGJ5dGVfY2xrX3JhdGU7CisJdTMyIGVzY19jbGtf cmF0ZTsKKworCS8qIERTSSB2MiBzcGVjaWZpYyBjbG9ja3MgKi8KKwlzdHJ1Y3QgY2xrICpzcmNf Y2xrOworCXN0cnVjdCBjbGsgKmVzY19jbGtfc3JjOworCXN0cnVjdCBjbGsgKmRzaV9jbGtfc3Jj OworCisJdTMyIHNyY19jbGtfcmF0ZTsKIAogCXN0cnVjdCBncGlvX2Rlc2MgKmRpc3BfZW5fZ3Bp bzsKIAlzdHJ1Y3QgZ3Bpb19kZXNjICp0ZV9ncGlvOwpAQCAtMzE4LDcgKzMyNiw4IEBAIHN0YXRp YyBpbnQgZHNpX3JlZ3VsYXRvcl9pbml0KHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQog c3RhdGljIGludCBkc2lfY2xrX2luaXQoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpCiB7 CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJm1zbV9ob3N0LT5wZGV2LT5kZXY7Ci0JY29uc3Qgc3Ry dWN0IG1zbV9kc2lfY29uZmlnICpjZmcgPSBtc21faG9zdC0+Y2ZnX2huZC0+Y2ZnOworCWNvbnN0 IHN0cnVjdCBtc21fZHNpX2NmZ19oYW5kbGVyICpjZmdfaG5kID0gbXNtX2hvc3QtPmNmZ19obmQ7 CisJY29uc3Qgc3RydWN0IG1zbV9kc2lfY29uZmlnICpjZmcgPSBjZmdfaG5kLT5jZmc7CiAJaW50 IGksIHJldCA9IDA7CiAKIAkvKiBnZXQgYnVzIGNsb2NrcyAqLwpAQCAtMzcyLDggKzM4MSwzNCBA QCBzdGF0aWMgaW50IGRzaV9jbGtfaW5pdChzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkK IAlpZiAoIW1zbV9ob3N0LT5waXhlbF9jbGtfc3JjKSB7CiAJCXJldCA9IC1FTk9ERVY7CiAJCXBy X2VycigiJXM6IGNhbid0IGZpbmQgcGl4ZWxfY2xrX3NyYy4gcmV0PSVkXG4iLCBfX2Z1bmNfXywg cmV0KTsKKwkJZ290byBleGl0OwogCX0KIAorCWlmIChjZmdfaG5kLT5tYWpvciA9PSBNU01fRFNJ X1ZFUl9NQUpPUl9WMikgeworCQltc21faG9zdC0+c3JjX2NsayA9IGRldm1fY2xrX2dldChkZXYs ICJzcmNfY2xrIik7CisJCWlmIChJU19FUlIobXNtX2hvc3QtPnNyY19jbGspKSB7CisJCQlyZXQg PSBQVFJfRVJSKG1zbV9ob3N0LT5zcmNfY2xrKTsKKwkJCXByX2VycigiJXM6IGNhbid0IGZpbmQg ZHNpX3NyY19jbGsuIHJldD0lZFxuIiwKKwkJCQlfX2Z1bmNfXywgcmV0KTsKKwkJCW1zbV9ob3N0 LT5zcmNfY2xrID0gTlVMTDsKKwkJCWdvdG8gZXhpdDsKKwkJfQorCisJCW1zbV9ob3N0LT5lc2Nf Y2xrX3NyYyA9IGNsa19nZXRfcGFyZW50KG1zbV9ob3N0LT5lc2NfY2xrKTsKKwkJaWYgKCFtc21f aG9zdC0+ZXNjX2Nsa19zcmMpIHsKKwkJCXJldCA9IC1FTk9ERVY7CisJCQlwcl9lcnIoIiVzOiBj YW4ndCBnZXQgZXNjX2Nsa19zcmMuIHJldD0lZFxuIiwKKwkJCQlfX2Z1bmNfXywgcmV0KTsKKwkJ CWdvdG8gZXhpdDsKKwkJfQorCisJCW1zbV9ob3N0LT5kc2lfY2xrX3NyYyA9IGNsa19nZXRfcGFy ZW50KG1zbV9ob3N0LT5zcmNfY2xrKTsKKwkJaWYgKCFtc21faG9zdC0+ZHNpX2Nsa19zcmMpIHsK KwkJCXJldCA9IC1FTk9ERVY7CisJCQlwcl9lcnIoIiVzOiBjYW4ndCBnZXQgZHNpX2Nsa19zcmMu IHJldD0lZFxuIiwKKwkJCQlfX2Z1bmNfXywgcmV0KTsKKwkJfQorCX0KIGV4aXQ6CiAJcmV0dXJu IHJldDsKIH0KQEAgLTQxMyw3ICs0NDgsNyBAQCBzdGF0aWMgdm9pZCBkc2lfYnVzX2Nsa19kaXNh YmxlKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQogCQljbGtfZGlzYWJsZV91bnByZXBh cmUobXNtX2hvc3QtPmJ1c19jbGtzW2ldKTsKIH0KIAotc3RhdGljIGludCBkc2lfbGlua19jbGtf ZW5hYmxlKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQorc3RhdGljIGludCBkc2lfbGlu a19jbGtfZW5hYmxlXzZnKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQogewogCWludCBy ZXQ7CiAKQEAgLTQ2MCwxMSArNDk1LDk4IEBAIGVycm9yOgogCXJldHVybiByZXQ7CiB9CiAKLXN0 YXRpYyB2b2lkIGRzaV9saW5rX2Nsa19kaXNhYmxlKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9o b3N0KQorc3RhdGljIGludCBkc2lfbGlua19jbGtfZW5hYmxlX3YyKHN0cnVjdCBtc21fZHNpX2hv c3QgKm1zbV9ob3N0KQogeworCWludCByZXQ7CisKKwlEQkcoIlNldCBjbGsgcmF0ZXM6IHBjbGs9 JWQsIGJ5dGVjbGs9JWQsIGVzY19jbGs9JWQsIGRzaV9zcmNfY2xrPSVkIiwKKwkJbXNtX2hvc3Qt Pm1vZGUtPmNsb2NrLCBtc21faG9zdC0+Ynl0ZV9jbGtfcmF0ZSwKKwkJbXNtX2hvc3QtPmVzY19j bGtfcmF0ZSwgbXNtX2hvc3QtPnNyY19jbGtfcmF0ZSk7CisKKwlyZXQgPSBjbGtfc2V0X3JhdGUo bXNtX2hvc3QtPmJ5dGVfY2xrLCBtc21faG9zdC0+Ynl0ZV9jbGtfcmF0ZSk7CisJaWYgKHJldCkg eworCQlwcl9lcnIoIiVzOiBGYWlsZWQgdG8gc2V0IHJhdGUgYnl0ZSBjbGssICVkXG4iLCBfX2Z1 bmNfXywgcmV0KTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwlyZXQgPSBjbGtfc2V0X3JhdGUobXNt X2hvc3QtPmVzY19jbGssIG1zbV9ob3N0LT5lc2NfY2xrX3JhdGUpOworCWlmIChyZXQpIHsKKwkJ cHJfZXJyKCIlczogRmFpbGVkIHRvIHNldCByYXRlIGVzYyBjbGssICVkXG4iLCBfX2Z1bmNfXywg cmV0KTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwlyZXQgPSBjbGtfc2V0X3JhdGUobXNtX2hvc3Qt PnNyY19jbGssIG1zbV9ob3N0LT5zcmNfY2xrX3JhdGUpOworCWlmIChyZXQpIHsKKwkJcHJfZXJy KCIlczogRmFpbGVkIHRvIHNldCByYXRlIHNyYyBjbGssICVkXG4iLCBfX2Z1bmNfXywgcmV0KTsK KwkJZ290byBlcnJvcjsKKwl9CisKKwlyZXQgPSBjbGtfc2V0X3JhdGUobXNtX2hvc3QtPnBpeGVs X2NsaywgbXNtX2hvc3QtPm1vZGUtPmNsb2NrICogMTAwMCk7CisJaWYgKHJldCkgeworCQlwcl9l cnIoIiVzOiBGYWlsZWQgdG8gc2V0IHJhdGUgcGl4ZWwgY2xrLCAlZFxuIiwgX19mdW5jX18sIHJl dCk7CisJCWdvdG8gZXJyb3I7CisJfQorCisJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKG1zbV9o b3N0LT5ieXRlX2Nsayk7CisJaWYgKHJldCkgeworCQlwcl9lcnIoIiVzOiBGYWlsZWQgdG8gZW5h YmxlIGRzaSBieXRlIGNsa1xuIiwgX19mdW5jX18pOworCQlnb3RvIGVycm9yOworCX0KKworCXJl dCA9IGNsa19wcmVwYXJlX2VuYWJsZShtc21faG9zdC0+ZXNjX2Nsayk7CisJaWYgKHJldCkgewor CQlwcl9lcnIoIiVzOiBGYWlsZWQgdG8gZW5hYmxlIGRzaSBlc2MgY2xrXG4iLCBfX2Z1bmNfXyk7 CisJCWdvdG8gZXNjX2Nsa19lcnI7CisJfQorCisJcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKG1z bV9ob3N0LT5zcmNfY2xrKTsKKwlpZiAocmV0KSB7CisJCXByX2VycigiJXM6IEZhaWxlZCB0byBl bmFibGUgZHNpIHNyYyBjbGtcbiIsIF9fZnVuY19fKTsKKwkJZ290byBzcmNfY2xrX2VycjsKKwl9 CisKKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUobXNtX2hvc3QtPnBpeGVsX2Nsayk7CisJaWYg KHJldCkgeworCQlwcl9lcnIoIiVzOiBGYWlsZWQgdG8gZW5hYmxlIGRzaSBwaXhlbCBjbGtcbiIs IF9fZnVuY19fKTsKKwkJZ290byBwaXhlbF9jbGtfZXJyOworCX0KKworCXJldHVybiAwOworCitw aXhlbF9jbGtfZXJyOgorCWNsa19kaXNhYmxlX3VucHJlcGFyZShtc21faG9zdC0+c3JjX2Nsayk7 CitzcmNfY2xrX2VycjoKIAljbGtfZGlzYWJsZV91bnByZXBhcmUobXNtX2hvc3QtPmVzY19jbGsp OwotCWNsa19kaXNhYmxlX3VucHJlcGFyZShtc21faG9zdC0+cGl4ZWxfY2xrKTsKK2VzY19jbGtf ZXJyOgogCWNsa19kaXNhYmxlX3VucHJlcGFyZShtc21faG9zdC0+Ynl0ZV9jbGspOworZXJyb3I6 CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBkc2lfbGlua19jbGtfZW5hYmxlKHN0cnVj dCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQoreworCWNvbnN0IHN0cnVjdCBtc21fZHNpX2NmZ19o YW5kbGVyICpjZmdfaG5kID0gbXNtX2hvc3QtPmNmZ19obmQ7CisKKwlpZiAoY2ZnX2huZC0+bWFq b3IgPT0gTVNNX0RTSV9WRVJfTUFKT1JfNkcpCisJCXJldHVybiBkc2lfbGlua19jbGtfZW5hYmxl XzZnKG1zbV9ob3N0KTsKKwllbHNlCisJCXJldHVybiBkc2lfbGlua19jbGtfZW5hYmxlX3YyKG1z bV9ob3N0KTsKK30KKworc3RhdGljIHZvaWQgZHNpX2xpbmtfY2xrX2Rpc2FibGUoc3RydWN0IG1z bV9kc2lfaG9zdCAqbXNtX2hvc3QpCit7CisJY29uc3Qgc3RydWN0IG1zbV9kc2lfY2ZnX2hhbmRs ZXIgKmNmZ19obmQgPSBtc21faG9zdC0+Y2ZnX2huZDsKKworCWlmIChjZmdfaG5kLT5tYWpvciA9 PSBNU01fRFNJX1ZFUl9NQUpPUl82RykgeworCQljbGtfZGlzYWJsZV91bnByZXBhcmUobXNtX2hv c3QtPmVzY19jbGspOworCQljbGtfZGlzYWJsZV91bnByZXBhcmUobXNtX2hvc3QtPnBpeGVsX2Ns ayk7CisJCWNsa19kaXNhYmxlX3VucHJlcGFyZShtc21faG9zdC0+Ynl0ZV9jbGspOworCX0gZWxz ZSB7CisJCWNsa19kaXNhYmxlX3VucHJlcGFyZShtc21faG9zdC0+cGl4ZWxfY2xrKTsKKwkJY2xr X2Rpc2FibGVfdW5wcmVwYXJlKG1zbV9ob3N0LT5zcmNfY2xrKTsKKwkJY2xrX2Rpc2FibGVfdW5w cmVwYXJlKG1zbV9ob3N0LT5lc2NfY2xrKTsKKwkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1zbV9o b3N0LT5ieXRlX2Nsayk7CisJfQogfQogCiBzdGF0aWMgaW50IGRzaV9jbGtfY3RybChzdHJ1Y3Qg bXNtX2RzaV9ob3N0ICptc21faG9zdCwgYm9vbCBlbmFibGUpCkBAIC00OTksNiArNjIxLDcgQEAg dW5sb2NrX3JldDoKIHN0YXRpYyBpbnQgZHNpX2NhbGNfY2xrX3JhdGUoc3RydWN0IG1zbV9kc2lf aG9zdCAqbXNtX2hvc3QpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSBtc21f aG9zdC0+bW9kZTsKKwljb25zdCBzdHJ1Y3QgbXNtX2RzaV9jZmdfaGFuZGxlciAqY2ZnX2huZCA9 IG1zbV9ob3N0LT5jZmdfaG5kOwogCXU4IGxhbmVzID0gbXNtX2hvc3QtPmxhbmVzOwogCXUzMiBi cHAgPSBkc2lfZ2V0X2JwcChtc21faG9zdC0+Zm9ybWF0KTsKIAl1MzIgcGNsa19yYXRlOwpAQCAt NTE4LDYgKzY0MSw0NyBAQCBzdGF0aWMgaW50IGRzaV9jYWxjX2Nsa19yYXRlKHN0cnVjdCBtc21f ZHNpX2hvc3QgKm1zbV9ob3N0KQogCiAJREJHKCJwY2xrPSVkLCBiY2xrPSVkIiwgcGNsa19yYXRl LCBtc21faG9zdC0+Ynl0ZV9jbGtfcmF0ZSk7CiAKKwltc21faG9zdC0+ZXNjX2Nsa19yYXRlID0g Y2xrX2dldF9yYXRlKG1zbV9ob3N0LT5lc2NfY2xrKTsKKworCWlmIChjZmdfaG5kLT5tYWpvciA9 PSBNU01fRFNJX1ZFUl9NQUpPUl9WMikgeworCQl1bnNpZ25lZCBpbnQgZXNjX21oeiwgZXNjX2Rp djsKKwkJdW5zaWduZWQgbG9uZyBieXRlX21oejsKKworCQltc21faG9zdC0+c3JjX2Nsa19yYXRl ID0gKHBjbGtfcmF0ZSAqIGJwcCkgLyA4OworCisJCS8qCisJCSAqIGVzYyBjbG9jayBpcyBieXRl IGNsb2NrIGZvbGxvd2VkIGJ5IGEgNCBiaXQgZGl2aWRlciwKKwkJICogd2UgbmVlZCB0byBmaW5k IGFuIGVzY2FwZSBjbG9jayBmcmVxdWVuY3kgd2l0aGluIHRoZQorCQkgKiBtaXBpIERTSSBzcGVj IHJhbmdlIHdpdGhpbiB0aGUgbWF4aW11bSBkaXZpZGVyIGxpbWl0CisJCSAqIFdlIGl0ZXJhdGUg aGVyZSBiZXR3ZWVuIGFuIGVzY2FwZSBjbG9jayBmcmVxdWVuY2V5CisJCSAqIGJldHdlZW4gMjAg TWh6IHRvIDUgTWh6IGFuZCBwaWNrIHVwIHRoZSBmaXJzdCBvbmUKKwkJICogdGhhdCBjYW4gYmUg c3VwcG9ydGVkIGJ5IG91ciBkaXZpZGVyCisJCSAqLworCisJCWJ5dGVfbWh6ID0gbXNtX2hvc3Qt PmJ5dGVfY2xrX3JhdGUgLyAxMDAwMDAwOworCisJCWZvciAoZXNjX21oeiA9IDIwOyBlc2NfbWh6 ID49IDU7IGVzY19taHotLSkgeworCQkJZXNjX2RpdiA9IERJVl9ST1VORF9VUChieXRlX21oeiwg ZXNjX21oeik7CisKKwkJCS8qCisJCQkgKiBUT0RPOiBJZGVhbGx5LCB3ZSBzaG91bGRuJ3Qga25v dyB3aGF0IHNvcnQgb2YgZGl2aWRlcgorCQkJICogaXMgYXZhaWxhYmxlIGluIG1tc3NfY2MsIHdl J3JlIGp1c3QgYXNzdW1pbmcgdGhhdAorCQkJICogaXQnbGwgYWx3YXlzIGJlIGEgNCBiaXQgZGl2 aWRlci4gTmVlZCB0byBjb21lIHVwIHdpdGgKKwkJCSAqIGEgYmV0dGVyIHdheSBoZXJlLgorCQkJ ICovCisJCQlpZiAoZXNjX2RpdiA+PSAxICYmIGVzY19kaXYgPD0gMTYpCisJCQkJYnJlYWs7CisJ CX0KKworCQlpZiAoZXNjX21oeiA8IDUpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQltc21faG9z dC0+ZXNjX2Nsa19yYXRlID0gbXNtX2hvc3QtPmJ5dGVfY2xrX3JhdGUgLyBlc2NfZGl2OworCisJ CURCRygiZXNjPSVkLCBzcmM9JWQiLCBtc21faG9zdC0+ZXNjX2Nsa19yYXRlLAorCQkJbXNtX2hv c3QtPnNyY19jbGtfcmF0ZSk7CisJfQorCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE3NTAsNiArMTkx NCw3IEBAIGludCBtc21fZHNpX2hvc3Rfc2V0X3NyY19wbGwoc3RydWN0IG1pcGlfZHNpX2hvc3Qg Kmhvc3QsCiAJc3RydWN0IG1zbV9kc2lfcGxsICpzcmNfcGxsKQogewogCXN0cnVjdCBtc21fZHNp X2hvc3QgKm1zbV9ob3N0ID0gdG9fbXNtX2RzaV9ob3N0KGhvc3QpOworCWNvbnN0IHN0cnVjdCBt c21fZHNpX2NmZ19oYW5kbGVyICpjZmdfaG5kID0gbXNtX2hvc3QtPmNmZ19obmQ7CiAJc3RydWN0 IGNsayAqYnl0ZV9jbGtfcHJvdmlkZXIsICpwaXhlbF9jbGtfcHJvdmlkZXI7CiAJaW50IHJldDsK IApAQCAtMTc3NSw2ICsxOTQwLDIyIEBAIGludCBtc21fZHNpX2hvc3Rfc2V0X3NyY19wbGwoc3Ry dWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJCWdvdG8gZXhpdDsKIAl9CiAKKwlpZiAoY2ZnX2hu ZC0+bWFqb3IgPT0gTVNNX0RTSV9WRVJfTUFKT1JfVjIpIHsKKwkJcmV0ID0gY2xrX3NldF9wYXJl bnQobXNtX2hvc3QtPmRzaV9jbGtfc3JjLCBwaXhlbF9jbGtfcHJvdmlkZXIpOworCQlpZiAocmV0 KSB7CisJCQlwcl9lcnIoIiVzOiBjYW4ndCBzZXQgcGFyZW50IHRvIGRzaV9jbGtfc3JjLiByZXQ9 JWRcbiIsCisJCQkJX19mdW5jX18sIHJldCk7CisJCQlnb3RvIGV4aXQ7CisJCX0KKworCQlyZXQg PSBjbGtfc2V0X3BhcmVudChtc21faG9zdC0+ZXNjX2Nsa19zcmMsIGJ5dGVfY2xrX3Byb3ZpZGVy KTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCIlczogY2FuJ3Qgc2V0IHBhcmVudCB0byBlc2Nf Y2xrX3NyYy4gcmV0PSVkXG4iLAorCQkJCV9fZnVuY19fLCByZXQpOworCQkJZ290byBleGl0Owor CQl9CisJfQorCiBleGl0OgogCXJldHVybiByZXQ7CiB9CkBAIC0xODQ2LDcgKzIwMjcsNyBAQCBp bnQgbXNtX2RzaV9ob3N0X3Bvd2VyX29uKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0KQogCWRz aV9waHlfc3dfcmVzZXQobXNtX2hvc3QpOwogCXJldCA9IG1zbV9kc2lfbWFuYWdlcl9waHlfZW5h YmxlKG1zbV9ob3N0LT5pZCwKIAkJCQkJbXNtX2hvc3QtPmJ5dGVfY2xrX3JhdGUgKiA4LAotCQkJ CQljbGtfZ2V0X3JhdGUobXNtX2hvc3QtPmVzY19jbGspLAorCQkJCQltc21faG9zdC0+ZXNjX2Ns a19yYXRlLAogCQkJCQkmY2xrX3ByZSwgJmNsa19wb3N0KTsKIAlkc2lfYnVzX2Nsa19kaXNhYmxl KG1zbV9ob3N0KTsKIAlpZiAocmV0KSB7Ci0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50 ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLApob3N0ZWQgYnkg VGhlIExpbnV4IEZvdW5kYXRpb24KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==