From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sibi S Subject: [PATCH 3/5] drm/msm/dsi: replace version checks with helper functions Date: Mon, 12 Mar 2018 18:53:12 +0530 Message-ID: <1520860994-23334-4-git-send-email-sibis@codeaurora.org> References: <1520860994-23334-1-git-send-email-sibis@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1520860994-23334-1-git-send-email-sibis@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: architt@codeaurora.org, robdclark@gmail.com Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Sibi S , dri-devel@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org UmVwbGFjZSB2ZXJzaW9uIGNoZWNrcyB3aXRoIHRoZSBoZWxwZXIgZnVuY3Rpb25zIGJvdW5kIHRv CmNmZ19oYW5kbGVyIGZvciBEU0kgdjIgYW5kIERTSSA2RyAxLnggY29udHJvbGxlcnMKClNpZ25l ZC1vZmYtYnk6IFNpYmkgUyA8c2liaXNAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL21zbS9kc2kvZHNpX2hvc3QuYyB8IDI0MiArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMjEzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9ob3N0LmMgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfaG9zdC5jCmluZGV4IGY3YTA2NmQuLmI3NTViNjkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9ob3N0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX2hvc3QuYwpAQCAtNDI2LDE5ICs0MjYsNiBAQCBzdGF0 aWMgaW50IGRzaV9jbGtfaW5pdChzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkKIAkJZ290 byBleGl0OwogCX0KIAotCWlmIChjZmdfaG5kLT5tYWpvciA9PSBNU01fRFNJX1ZFUl9NQUpPUl82 RyAmJgotCSAgICBjZmdfaG5kLT5taW5vciA+PSBNU01fRFNJXzZHX1ZFUl9NSU5PUl9WMl8yXzEp IHsKLQkJbXNtX2hvc3QtPmJ5dGVfaW50Zl9jbGsgPSBtc21fY2xrX2dldChwZGV2LCAiYnl0ZV9p bnRmIik7Ci0JCWlmIChJU19FUlIobXNtX2hvc3QtPmJ5dGVfaW50Zl9jbGspKSB7Ci0JCQlyZXQg PSBQVFJfRVJSKG1zbV9ob3N0LT5ieXRlX2ludGZfY2xrKTsKLQkJCXByX2VycigiJXM6IGNhbid0 IGZpbmQgYnl0ZV9pbnRmIGNsb2NrLiByZXQ9JWRcbiIsCi0JCQkgICAgICAgIF9fZnVuY19fLCBy ZXQpOwotCQkJZ290byBleGl0OwotCQl9Ci0JfSBlbHNlIHsKLQkJbXNtX2hvc3QtPmJ5dGVfaW50 Zl9jbGsgPSBOVUxMOwotCX0KLQogCW1zbV9ob3N0LT5ieXRlX2Nsa19zcmMgPSBjbGtfZ2V0X3Bh cmVudChtc21faG9zdC0+Ynl0ZV9jbGspOwogCWlmICghbXNtX2hvc3QtPmJ5dGVfY2xrX3NyYykg ewogCQlyZXQgPSAtRU5PREVWOwpAQCAtNDUzLDMxICs0NDAsOCBAQCBzdGF0aWMgaW50IGRzaV9j bGtfaW5pdChzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkKIAkJZ290byBleGl0OwogCX0K IAotCWlmIChjZmdfaG5kLT5tYWpvciA9PSBNU01fRFNJX1ZFUl9NQUpPUl9WMikgewotCQltc21f aG9zdC0+c3JjX2NsayA9IG1zbV9jbGtfZ2V0KHBkZXYsICJzcmMiKTsKLQkJaWYgKElTX0VSUiht c21faG9zdC0+c3JjX2NsaykpIHsKLQkJCXJldCA9IFBUUl9FUlIobXNtX2hvc3QtPnNyY19jbGsp OwotCQkJcHJfZXJyKCIlczogY2FuJ3QgZmluZCBzcmMgY2xvY2suIHJldD0lZFxuIiwKLQkJCQlf X2Z1bmNfXywgcmV0KTsKLQkJCW1zbV9ob3N0LT5zcmNfY2xrID0gTlVMTDsKLQkJCWdvdG8gZXhp dDsKLQkJfQotCi0JCW1zbV9ob3N0LT5lc2NfY2xrX3NyYyA9IGNsa19nZXRfcGFyZW50KG1zbV9o b3N0LT5lc2NfY2xrKTsKLQkJaWYgKCFtc21faG9zdC0+ZXNjX2Nsa19zcmMpIHsKLQkJCXJldCA9 IC1FTk9ERVY7Ci0JCQlwcl9lcnIoIiVzOiBjYW4ndCBnZXQgZXNjIGNsb2NrIHBhcmVudC4gcmV0 PSVkXG4iLAotCQkJCV9fZnVuY19fLCByZXQpOwotCQkJZ290byBleGl0OwotCQl9Ci0KLQkJbXNt X2hvc3QtPmRzaV9jbGtfc3JjID0gY2xrX2dldF9wYXJlbnQobXNtX2hvc3QtPnNyY19jbGspOwot CQlpZiAoIW1zbV9ob3N0LT5kc2lfY2xrX3NyYykgewotCQkJcmV0ID0gLUVOT0RFVjsKLQkJCXBy X2VycigiJXM6IGNhbid0IGdldCBzcmMgY2xvY2sgcGFyZW50LiByZXQ9JWRcbiIsCi0JCQkJX19m dW5jX18sIHJldCk7Ci0JCX0KLQl9CisJaWYgKGNmZ19obmQtPm9wcy0+Y2xrX2luaXRfdmVyKQor CQlyZXQgPSBjZmdfaG5kLT5vcHMtPmNsa19pbml0X3Zlcihtc21faG9zdCk7CiBleGl0OgogCXJl dHVybiByZXQ7CiB9CkBAIC02ODEsMTYgKzY0NSw2IEBAIGludCBkc2lfbGlua19jbGtfZW5hYmxl X3YyKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQogCXJldHVybiByZXQ7CiB9CiAKLXN0 YXRpYyBpbnQgZHNpX2xpbmtfY2xrX2VuYWJsZShzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9z dCkKLXsKLQljb25zdCBzdHJ1Y3QgbXNtX2RzaV9jZmdfaGFuZGxlciAqY2ZnX2huZCA9IG1zbV9o b3N0LT5jZmdfaG5kOwotCi0JaWYgKGNmZ19obmQtPm1ham9yID09IE1TTV9EU0lfVkVSX01BSk9S XzZHKQotCQlyZXR1cm4gZHNpX2xpbmtfY2xrX2VuYWJsZV82Zyhtc21faG9zdCk7Ci0JZWxzZQot CQlyZXR1cm4gZHNpX2xpbmtfY2xrX2VuYWJsZV92Mihtc21faG9zdCk7Ci19Ci0KIHZvaWQgZHNp X2xpbmtfY2xrX2Rpc2FibGVfNmcoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpCiB7CiAJ Y2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1zbV9ob3N0LT5lc2NfY2xrKTsKQEAgLTcwOCwyNCArNjYy LDYgQEAgdm9pZCBkc2lfbGlua19jbGtfZGlzYWJsZV92MihzdHJ1Y3QgbXNtX2RzaV9ob3N0ICpt c21faG9zdCkKIAljbGtfZGlzYWJsZV91bnByZXBhcmUobXNtX2hvc3QtPmJ5dGVfY2xrKTsKIH0K IAotc3RhdGljIHZvaWQgZHNpX2xpbmtfY2xrX2Rpc2FibGUoc3RydWN0IG1zbV9kc2lfaG9zdCAq bXNtX2hvc3QpCi17Ci0JY29uc3Qgc3RydWN0IG1zbV9kc2lfY2ZnX2hhbmRsZXIgKmNmZ19obmQg PSBtc21faG9zdC0+Y2ZnX2huZDsKLQotCWlmIChjZmdfaG5kLT5tYWpvciA9PSBNU01fRFNJX1ZF Ul9NQUpPUl82RykgewotCQljbGtfZGlzYWJsZV91bnByZXBhcmUobXNtX2hvc3QtPmVzY19jbGsp OwotCQljbGtfZGlzYWJsZV91bnByZXBhcmUobXNtX2hvc3QtPnBpeGVsX2Nsayk7Ci0JCWlmICht c21faG9zdC0+Ynl0ZV9pbnRmX2NsaykKLQkJCWNsa19kaXNhYmxlX3VucHJlcGFyZShtc21faG9z dC0+Ynl0ZV9pbnRmX2Nsayk7Ci0JCWNsa19kaXNhYmxlX3VucHJlcGFyZShtc21faG9zdC0+Ynl0 ZV9jbGspOwotCX0gZWxzZSB7Ci0JCWNsa19kaXNhYmxlX3VucHJlcGFyZShtc21faG9zdC0+cGl4 ZWxfY2xrKTsKLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1zbV9ob3N0LT5zcmNfY2xrKTsKLQkJ Y2xrX2Rpc2FibGVfdW5wcmVwYXJlKG1zbV9ob3N0LT5lc2NfY2xrKTsKLQkJY2xrX2Rpc2FibGVf dW5wcmVwYXJlKG1zbV9ob3N0LT5ieXRlX2Nsayk7Ci0JfQotfQotCiBpbnQgZHNpX2NhbGNfY2xr X3JhdGVfNmcoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpCiB7CiAJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUgPSBtc21faG9zdC0+bW9kZTsKQEAgLTgxNCw3MyArNzUwLDYgQEAg aW50IGRzaV9jYWxjX2Nsa19yYXRlX3YyKHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0KQog CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRzaV9jYWxjX2Nsa19yYXRlKHN0cnVjdCBtc21f ZHNpX2hvc3QgKm1zbV9ob3N0KQotewotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0g bXNtX2hvc3QtPm1vZGU7Ci0JY29uc3Qgc3RydWN0IG1zbV9kc2lfY2ZnX2hhbmRsZXIgKmNmZ19o bmQgPSBtc21faG9zdC0+Y2ZnX2huZDsKLQl1OCBsYW5lcyA9IG1zbV9ob3N0LT5sYW5lczsKLQl1 MzIgYnBwID0gZHNpX2dldF9icHAobXNtX2hvc3QtPmZvcm1hdCk7Ci0JdTMyIHBjbGtfcmF0ZTsK LQotCWlmICghbW9kZSkgewotCQlwcl9lcnIoIiVzOiBtb2RlIG5vdCBzZXRcbiIsIF9fZnVuY19f KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcGNsa19yYXRlID0gbW9kZS0+Y2xvY2sgKiAx MDAwOwotCWlmIChsYW5lcyA+IDApIHsKLQkJbXNtX2hvc3QtPmJ5dGVfY2xrX3JhdGUgPSAocGNs a19yYXRlICogYnBwKSAvICg4ICogbGFuZXMpOwotCX0gZWxzZSB7Ci0JCXByX2VycigiJXM6IGZv cmNpbmcgbWRzc19kc2kgbGFuZXMgdG8gMVxuIiwgX19mdW5jX18pOwotCQltc21faG9zdC0+Ynl0 ZV9jbGtfcmF0ZSA9IChwY2xrX3JhdGUgKiBicHApIC8gODsKLQl9Ci0KLQlEQkcoInBjbGs9JWQs IGJjbGs9JWQiLCBwY2xrX3JhdGUsIG1zbV9ob3N0LT5ieXRlX2Nsa19yYXRlKTsKLQotCW1zbV9o b3N0LT5lc2NfY2xrX3JhdGUgPSBjbGtfZ2V0X3JhdGUobXNtX2hvc3QtPmVzY19jbGspOwotCi0J aWYgKGNmZ19obmQtPm1ham9yID09IE1TTV9EU0lfVkVSX01BSk9SX1YyKSB7Ci0JCXVuc2lnbmVk IGludCBlc2NfbWh6LCBlc2NfZGl2OwotCQl1bnNpZ25lZCBsb25nIGJ5dGVfbWh6OwotCi0JCW1z bV9ob3N0LT5zcmNfY2xrX3JhdGUgPSAocGNsa19yYXRlICogYnBwKSAvIDg7Ci0KLQkJLyoKLQkJ ICogZXNjIGNsb2NrIGlzIGJ5dGUgY2xvY2sgZm9sbG93ZWQgYnkgYSA0IGJpdCBkaXZpZGVyLAot CQkgKiB3ZSBuZWVkIHRvIGZpbmQgYW4gZXNjYXBlIGNsb2NrIGZyZXF1ZW5jeSB3aXRoaW4gdGhl Ci0JCSAqIG1pcGkgRFNJIHNwZWMgcmFuZ2Ugd2l0aGluIHRoZSBtYXhpbXVtIGRpdmlkZXIgbGlt aXQKLQkJICogV2UgaXRlcmF0ZSBoZXJlIGJldHdlZW4gYW4gZXNjYXBlIGNsb2NrIGZyZXF1ZW5j ZXkKLQkJICogYmV0d2VlbiAyMCBNaHogdG8gNSBNaHogYW5kIHBpY2sgdXAgdGhlIGZpcnN0IG9u ZQotCQkgKiB0aGF0IGNhbiBiZSBzdXBwb3J0ZWQgYnkgb3VyIGRpdmlkZXIKLQkJICovCi0KLQkJ Ynl0ZV9taHogPSBtc21faG9zdC0+Ynl0ZV9jbGtfcmF0ZSAvIDEwMDAwMDA7Ci0KLQkJZm9yIChl c2NfbWh6ID0gMjA7IGVzY19taHogPj0gNTsgZXNjX21oei0tKSB7Ci0JCQllc2NfZGl2ID0gRElW X1JPVU5EX1VQKGJ5dGVfbWh6LCBlc2NfbWh6KTsKLQotCQkJLyoKLQkJCSAqIFRPRE86IElkZWFs bHksIHdlIHNob3VsZG4ndCBrbm93IHdoYXQgc29ydCBvZiBkaXZpZGVyCi0JCQkgKiBpcyBhdmFp bGFibGUgaW4gbW1zc19jYywgd2UncmUganVzdCBhc3N1bWluZyB0aGF0Ci0JCQkgKiBpdCdsbCBh bHdheXMgYmUgYSA0IGJpdCBkaXZpZGVyLiBOZWVkIHRvIGNvbWUgdXAgd2l0aAotCQkJICogYSBi ZXR0ZXIgd2F5IGhlcmUuCi0JCQkgKi8KLQkJCWlmIChlc2NfZGl2ID49IDEgJiYgZXNjX2RpdiA8 PSAxNikKLQkJCQlicmVhazsKLQkJfQotCi0JCWlmIChlc2NfbWh6IDwgNSkKLQkJCXJldHVybiAt RUlOVkFMOwotCi0JCW1zbV9ob3N0LT5lc2NfY2xrX3JhdGUgPSBtc21faG9zdC0+Ynl0ZV9jbGtf cmF0ZSAvIGVzY19kaXY7Ci0KLQkJREJHKCJlc2M9JWQsIHNyYz0lZCIsIG1zbV9ob3N0LT5lc2Nf Y2xrX3JhdGUsCi0JCQltc21faG9zdC0+c3JjX2Nsa19yYXRlKTsKLQl9Ci0KLQlyZXR1cm4gMDsK LX0KLQogc3RhdGljIHZvaWQgZHNpX2ludHJfY3RybChzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21f aG9zdCwgdTMyIG1hc2ssIGludCBlbmFibGUpCiB7CiAJdTMyIGludHI7CkBAIC0xMjE0LDU1ICsx MDgzLDYgQEAgaW50IGRzaV90eF9idWZfYWxsb2NfdjIoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNt X2hvc3QsIGludCBzaXplKQogCXJldHVybiAwOwogfQogCi0vKiBkc2lfY21kICovCi1zdGF0aWMg aW50IGRzaV90eF9idWZfYWxsb2Moc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QsIGludCBz aXplKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtc21faG9zdC0+ZGV2OwotCXN0cnVj dCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWNvbnN0IHN0cnVj dCBtc21fZHNpX2NmZ19oYW5kbGVyICpjZmdfaG5kID0gbXNtX2hvc3QtPmNmZ19obmQ7Ci0JaW50 IHJldDsKLQl1aW50NjRfdCBpb3ZhOwotCi0JaWYgKGNmZ19obmQtPm1ham9yID09IE1TTV9EU0lf VkVSX01BSk9SXzZHKSB7Ci0JCW1zbV9ob3N0LT50eF9nZW1fb2JqID0gbXNtX2dlbV9uZXcoZGV2 LCBzaXplLCBNU01fQk9fVU5DQUNIRUQpOwotCQlpZiAoSVNfRVJSKG1zbV9ob3N0LT50eF9nZW1f b2JqKSkgewotCQkJcmV0ID0gUFRSX0VSUihtc21faG9zdC0+dHhfZ2VtX29iaik7Ci0JCQlwcl9l cnIoIiVzOiBmYWlsZWQgdG8gYWxsb2NhdGUgZ2VtLCAlZFxuIiwKLQkJCQlfX2Z1bmNfXywgcmV0 KTsKLQkJCW1zbV9ob3N0LT50eF9nZW1fb2JqID0gTlVMTDsKLQkJCXJldHVybiByZXQ7Ci0JCX0K LQotCQlyZXQgPSBtc21fZ2VtX2dldF9pb3ZhKG1zbV9ob3N0LT50eF9nZW1fb2JqLAotCQkJCXBy aXYtPmttcy0+YXNwYWNlLCAmaW92YSk7Ci0JCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0 ZXgpOwotCQlpZiAocmV0KSB7Ci0JCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8gZ2V0IGlvdmEsICVk XG4iLCBfX2Z1bmNfXywgcmV0KTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KLQotCQlpZiAoaW92YSAm IDB4MDcpIHsKLQkJCXByX2VycigiJXM6IGJ1ZiBOT1QgOCBieXRlcyBhbGlnbmVkXG4iLCBfX2Z1 bmNfXyk7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCW1zbV9ob3N0LT50eF9zaXplID0g bXNtX2hvc3QtPnR4X2dlbV9vYmotPnNpemU7Ci0JfSBlbHNlIHsKLQkJbXNtX2hvc3QtPnR4X2J1 ZiA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYtPmRldiwgc2l6ZSwKLQkJCQkJJm1zbV9ob3N0LT50 eF9idWZfcGFkZHIsIEdGUF9LRVJORUwpOwotCQlpZiAoIW1zbV9ob3N0LT50eF9idWYpIHsKLQkJ CXJldCA9IC1FTk9NRU07Ci0JCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8gYWxsb2NhdGUgdHggYnVm LCAlZFxuIiwKLQkJCQlfX2Z1bmNfXywgcmV0KTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KLQotCQlt c21faG9zdC0+dHhfc2l6ZSA9IHNpemU7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyB2 b2lkIGRzaV90eF9idWZfZnJlZShzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkKIHsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbXNtX2hvc3QtPmRldjsKQEAgLTEzMTcsMTUgKzExMzcs MTEgQEAgc3RhdGljIGludCBkc2lfY21kX2RtYV9hZGQoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNt X2hvc3QsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChjZmdfaG5kLT5tYWpvciA9PSBN U01fRFNJX1ZFUl9NQUpPUl82RykgewotCQlkYXRhID0gbXNtX2dlbV9nZXRfdmFkZHIobXNtX2hv c3QtPnR4X2dlbV9vYmopOwotCQlpZiAoSVNfRVJSKGRhdGEpKSB7Ci0JCQlyZXQgPSBQVFJfRVJS KGRhdGEpOwotCQkJcHJfZXJyKCIlczogZ2V0IHZhZGRyIGZhaWxlZCwgJWRcbiIsIF9fZnVuY19f LCByZXQpOwotCQkJcmV0dXJuIHJldDsKLQkJfQotCX0gZWxzZSB7Ci0JCWRhdGEgPSBtc21faG9z dC0+dHhfYnVmOworCWRhdGEgPSBjZmdfaG5kLT5vcHMtPnR4X2J1Zl9nZXQobXNtX2hvc3QpOwor CWlmIChJU19FUlIoZGF0YSkpIHsKKwkJcmV0ID0gUFRSX0VSUihkYXRhKTsKKwkJcHJfZXJyKCIl czogZ2V0IHZhZGRyIGZhaWxlZCwgJWRcbiIsIF9fZnVuY19fLCByZXQpOworCQlyZXR1cm4gcmV0 OwogCX0KIAogCS8qIE1TTSBzcGVjaWZpYyBjb21tYW5kIGZvcm1hdCBpbiBtZW1vcnkgKi8KQEAg LTEzNDYsOCArMTE2Miw4IEBAIHN0YXRpYyBpbnQgZHNpX2NtZF9kbWFfYWRkKHN0cnVjdCBtc21f ZHNpX2hvc3QgKm1zbV9ob3N0LAogCWlmIChwYWNrZXQuc2l6ZSA8IGxlbikKIAkJbWVtc2V0KGRh dGEgKyBwYWNrZXQuc2l6ZSwgMHhmZiwgbGVuIC0gcGFja2V0LnNpemUpOwogCi0JaWYgKGNmZ19o bmQtPm1ham9yID09IE1TTV9EU0lfVkVSX01BSk9SXzZHKQotCQltc21fZ2VtX3B1dF92YWRkciht c21faG9zdC0+dHhfZ2VtX29iaik7CisJaWYgKGNmZ19obmQtPm9wcy0+dHhfYnVmX3B1dCkKKwkJ Y2ZnX2huZC0+b3BzLT50eF9idWZfcHV0KG1zbV9ob3N0KTsKIAogCXJldHVybiBsZW47CiB9CkBA IC0xNDIyLDIxICsxMjM4LDE0IEBAIGludCBkc2lfZG1hX2Jhc2VfZ2V0X3YyKHN0cnVjdCBtc21f ZHNpX2hvc3QgKm1zbV9ob3N0LCB1aW50NjRfdCAqZG1hX2Jhc2UpCiBzdGF0aWMgaW50IGRzaV9j bWRfZG1hX3R4KHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0LCBpbnQgbGVuKQogewogCWNv bnN0IHN0cnVjdCBtc21fZHNpX2NmZ19oYW5kbGVyICpjZmdfaG5kID0gbXNtX2hvc3QtPmNmZ19o bmQ7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG1zbV9ob3N0LT5kZXY7Ci0Jc3RydWN0IG1z bV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJaW50IHJldDsKIAl1aW50 NjRfdCBkbWFfYmFzZTsKIAlib29sIHRyaWdnZXJlZDsKIAotCWlmIChjZmdfaG5kLT5tYWpvciA9 PSBNU01fRFNJX1ZFUl9NQUpPUl82RykgewotCQlyZXQgPSBtc21fZ2VtX2dldF9pb3ZhKG1zbV9o b3N0LT50eF9nZW1fb2JqLAotCQkJCXByaXYtPmttcy0+YXNwYWNlLCAmZG1hX2Jhc2UpOwotCQlp ZiAocmV0KSB7Ci0JCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8gZ2V0IGlvdmE6ICVkXG4iLCBfX2Z1 bmNfXywgcmV0KTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KLQl9IGVsc2UgewotCQlkbWFfYmFzZSA9 IG1zbV9ob3N0LT50eF9idWZfcGFkZHI7CisJcmV0ID0gY2ZnX2huZC0+b3BzLT5kbWFfYmFzZV9n ZXQobXNtX2hvc3QsICZkbWFfYmFzZSk7CisJaWYgKHJldCkgeworCQlwcl9lcnIoIiVzOiBmYWls ZWQgdG8gZ2V0IGlvdmE6ICVkXG4iLCBfX2Z1bmNfXywgcmV0KTsKKwkJcmV0dXJuIHJldDsKIAl9 CiAKIAlyZWluaXRfY29tcGxldGlvbigmbXNtX2hvc3QtPmRtYV9jb21wKTsKQEAgLTIwNzQsNiAr MTg4Myw3IEBAIGludCBtc21fZHNpX2hvc3RfbW9kZXNldF9pbml0KHN0cnVjdCBtaXBpX2RzaV9o b3N0ICpob3N0LAogCQkJCQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBtc21f ZHNpX2hvc3QgKm1zbV9ob3N0ID0gdG9fbXNtX2RzaV9ob3N0KGhvc3QpOworCWNvbnN0IHN0cnVj dCBtc21fZHNpX2NmZ19oYW5kbGVyICpjZmdfaG5kID0gbXNtX2hvc3QtPmNmZ19obmQ7CiAJc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IG1zbV9ob3N0LT5wZGV2OwogCWludCByZXQ7CiAK QEAgLTIwOTQsNyArMTkwNCw3IEBAIGludCBtc21fZHNpX2hvc3RfbW9kZXNldF9pbml0KHN0cnVj dCBtaXBpX2RzaV9ob3N0ICpob3N0LAogCX0KIAogCW1zbV9ob3N0LT5kZXYgPSBkZXY7Ci0JcmV0 ID0gZHNpX3R4X2J1Zl9hbGxvYyhtc21faG9zdCwgU1pfNEspOworCXJldCA9IGNmZ19obmQtPm9w cy0+dHhfYnVmX2FsbG9jKG1zbV9ob3N0LCBTWl80Syk7CiAJaWYgKHJldCkgewogCQlwcl9lcnIo IiVzOiBhbGxvYyB0eCBnZW0gb2JqIGZhaWxlZCwgJWRcbiIsIF9fZnVuY19fLCByZXQpOwogCQly ZXR1cm4gcmV0OwpAQCAtMjE1Miw2ICsxOTYyLDcgQEAgaW50IG1zbV9kc2lfaG9zdF94ZmVyX3By ZXBhcmUoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJCQkJY29uc3Qgc3RydWN0IG1pcGlf ZHNpX21zZyAqbXNnKQogewogCXN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0ID0gdG9fbXNt X2RzaV9ob3N0KGhvc3QpOworCWNvbnN0IHN0cnVjdCBtc21fZHNpX2NmZ19oYW5kbGVyICpjZmdf aG5kID0gbXNtX2hvc3QtPmNmZ19obmQ7CiAKIAkvKiBUT0RPOiBtYWtlIHN1cmUgZHNpX2NtZF9t ZHAgaXMgaWRsZS4KIAkgKiBTaW5jZSBEU0k2RyB2MS4yLjAsIHdlIGNhbiBzZXQgRFNJX1RSSUdf Q1RSTC5CTE9DS19ETUFfV0lUSElOX0ZSQU1FCkBAIC0yMTY0LDcgKzE5NzUsNyBAQCBpbnQgbXNt X2RzaV9ob3N0X3hmZXJfcHJlcGFyZShzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKIAkgKiBt ZHAgY2xvY2sgbmVlZCB0byBiZSBlbmFibGVkIHRvIHJlY2VpdmUgZHNpIGludGVycnVwdAogCSAq LwogCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJm1zbV9ob3N0LT5wZGV2LT5kZXYpOwotCWRzaV9saW5r X2Nsa19lbmFibGUobXNtX2hvc3QpOworCWNmZ19obmQtPm9wcy0+bGlua19jbGtfZW5hYmxlKG1z bV9ob3N0KTsKIAogCS8qIFRPRE86IHZvdGUgZm9yIGJ1cyBiYW5kd2lkdGggKi8KIApAQCAtMjE4 NSw2ICsxOTk2LDcgQEAgdm9pZCBtc21fZHNpX2hvc3RfeGZlcl9yZXN0b3JlKHN0cnVjdCBtaXBp X2RzaV9ob3N0ICpob3N0LAogCQkJCWNvbnN0IHN0cnVjdCBtaXBpX2RzaV9tc2cgKm1zZykKIHsK IAlzdHJ1Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCA9IHRvX21zbV9kc2lfaG9zdChob3N0KTsK Kwljb25zdCBzdHJ1Y3QgbXNtX2RzaV9jZmdfaGFuZGxlciAqY2ZnX2huZCA9IG1zbV9ob3N0LT5j ZmdfaG5kOwogCiAJZHNpX2ludHJfY3RybChtc21faG9zdCwgRFNJX0lSUV9NQVNLX0NNRF9ETUFf RE9ORSwgMCk7CiAJZHNpX3dyaXRlKG1zbV9ob3N0LCBSRUdfRFNJX0NUUkwsIG1zbV9ob3N0LT5k bWFfY21kX2N0cmxfcmVzdG9yZSk7CkBAIC0yMTk0LDcgKzIwMDYsNyBAQCB2b2lkIG1zbV9kc2lf aG9zdF94ZmVyX3Jlc3RvcmUoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAKIAkvKiBUT0RP OiB1bnZvdGUgZm9yIGJ1cyBiYW5kd2lkdGggKi8KIAotCWRzaV9saW5rX2Nsa19kaXNhYmxlKG1z bV9ob3N0KTsKKwljZmdfaG5kLT5vcHMtPmxpbmtfY2xrX2Rpc2FibGUobXNtX2hvc3QpOwogCXBt X3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKCZtc21faG9zdC0+cGRldi0+ZGV2KTsKIH0KIApAQCAt MjM1OCw3ICsyMTcwLDYgQEAgaW50IG1zbV9kc2lfaG9zdF9zZXRfc3JjX3BsbChzdHJ1Y3QgbWlw aV9kc2lfaG9zdCAqaG9zdCwKIAlzdHJ1Y3QgbXNtX2RzaV9wbGwgKnNyY19wbGwpCiB7CiAJc3Ry dWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QgPSB0b19tc21fZHNpX2hvc3QoaG9zdCk7Ci0JY29u c3Qgc3RydWN0IG1zbV9kc2lfY2ZnX2hhbmRsZXIgKmNmZ19obmQgPSBtc21faG9zdC0+Y2ZnX2hu ZDsKIAlzdHJ1Y3QgY2xrICpieXRlX2Nsa19wcm92aWRlciwgKnBpeGVsX2Nsa19wcm92aWRlcjsK IAlpbnQgcmV0OwogCkBAIC0yMzg0LDE0ICsyMTk1LDE2IEBAIGludCBtc21fZHNpX2hvc3Rfc2V0 X3NyY19wbGwoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJCWdvdG8gZXhpdDsKIAl9CiAK LQlpZiAoY2ZnX2huZC0+bWFqb3IgPT0gTVNNX0RTSV9WRVJfTUFKT1JfVjIpIHsKKwlpZiAobXNt X2hvc3QtPmRzaV9jbGtfc3JjKSB7CiAJCXJldCA9IGNsa19zZXRfcGFyZW50KG1zbV9ob3N0LT5k c2lfY2xrX3NyYywgcGl4ZWxfY2xrX3Byb3ZpZGVyKTsKIAkJaWYgKHJldCkgewogCQkJcHJfZXJy KCIlczogY2FuJ3Qgc2V0IHBhcmVudCB0byBkc2lfY2xrX3NyYy4gcmV0PSVkXG4iLAogCQkJCV9f ZnVuY19fLCByZXQpOwogCQkJZ290byBleGl0OwogCQl9CisJfQogCisJaWYgKG1zbV9ob3N0LT5l c2NfY2xrX3NyYykgewogCQlyZXQgPSBjbGtfc2V0X3BhcmVudChtc21faG9zdC0+ZXNjX2Nsa19z cmMsIGJ5dGVfY2xrX3Byb3ZpZGVyKTsKIAkJaWYgKHJldCkgewogCQkJcHJfZXJyKCIlczogY2Fu J3Qgc2V0IHBhcmVudCB0byBlc2NfY2xrX3NyYy4gcmV0PSVkXG4iLApAQCAtMjQyMSw5ICsyMjM0 LDEwIEBAIHZvaWQgbXNtX2RzaV9ob3N0X2dldF9waHlfY2xrX3JlcShzdHJ1Y3QgbWlwaV9kc2lf aG9zdCAqaG9zdCwKIAlzdHJ1Y3QgbXNtX2RzaV9waHlfY2xrX3JlcXVlc3QgKmNsa19yZXEpCiB7 CiAJc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QgPSB0b19tc21fZHNpX2hvc3QoaG9zdCk7 CisJY29uc3Qgc3RydWN0IG1zbV9kc2lfY2ZnX2hhbmRsZXIgKmNmZ19obmQgPSBtc21faG9zdC0+ Y2ZnX2huZDsKIAlpbnQgcmV0OwogCi0JcmV0ID0gZHNpX2NhbGNfY2xrX3JhdGUobXNtX2hvc3Qp OworCXJldCA9IGNmZ19obmQtPm9wcy0+Y2FsY19jbGtfcmF0ZShtc21faG9zdCk7CiAJaWYgKHJl dCkgewogCQlwcl9lcnIoIiVzOiB1bmFibGUgdG8gY2FsYyBjbGsgcmF0ZSwgJWRcbiIsIF9fZnVu Y19fLCByZXQpOwogCQlyZXR1cm47CkBAIC0yNDg3LDYgKzIzMDEsNyBAQCBpbnQgbXNtX2RzaV9o b3N0X3Bvd2VyX29uKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAogCQkJc3RydWN0IG1zbV9k c2lfcGh5X3NoYXJlZF90aW1pbmdzICpwaHlfc2hhcmVkX3RpbWluZ3MpCiB7CiAJc3RydWN0IG1z bV9kc2lfaG9zdCAqbXNtX2hvc3QgPSB0b19tc21fZHNpX2hvc3QoaG9zdCk7CisJY29uc3Qgc3Ry dWN0IG1zbV9kc2lfY2ZnX2hhbmRsZXIgKmNmZ19obmQgPSBtc21faG9zdC0+Y2ZnX2huZDsKIAlp bnQgcmV0ID0gMDsKIAogCW11dGV4X2xvY2soJm1zbV9ob3N0LT5kZXZfbXV0ZXgpOwpAQCAtMjUw NSw3ICsyMzIwLDcgQEAgaW50IG1zbV9kc2lfaG9zdF9wb3dlcl9vbihzdHJ1Y3QgbWlwaV9kc2lf aG9zdCAqaG9zdCwKIAl9CiAKIAlwbV9ydW50aW1lX2dldF9zeW5jKCZtc21faG9zdC0+cGRldi0+ ZGV2KTsKLQlyZXQgPSBkc2lfbGlua19jbGtfZW5hYmxlKG1zbV9ob3N0KTsKKwlyZXQgPSBjZmdf aG5kLT5vcHMtPmxpbmtfY2xrX2VuYWJsZShtc21faG9zdCk7CiAJaWYgKHJldCkgewogCQlwcl9l cnIoIiVzOiBmYWlsZWQgdG8gZW5hYmxlIGxpbmsgY2xvY2tzLiByZXQ9JWRcbiIsCiAJCSAgICAg ICBfX2Z1bmNfXywgcmV0KTsKQEAgLTI1MzIsNyArMjM0Nyw3IEBAIGludCBtc21fZHNpX2hvc3Rf cG93ZXJfb24oc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiAJcmV0dXJuIDA7CiAKIGZhaWxf ZGlzYWJsZV9jbGs6Ci0JZHNpX2xpbmtfY2xrX2Rpc2FibGUobXNtX2hvc3QpOworCWNmZ19obmQt Pm9wcy0+bGlua19jbGtfZGlzYWJsZShtc21faG9zdCk7CiAJcG1fcnVudGltZV9wdXRfYXV0b3N1 c3BlbmQoJm1zbV9ob3N0LT5wZGV2LT5kZXYpOwogZmFpbF9kaXNhYmxlX3JlZzoKIAlkc2lfaG9z dF9yZWd1bGF0b3JfZGlzYWJsZShtc21faG9zdCk7CkBAIC0yNTQ0LDYgKzIzNTksNyBAQCBpbnQg bXNtX2RzaV9ob3N0X3Bvd2VyX29uKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAogaW50IG1z bV9kc2lfaG9zdF9wb3dlcl9vZmYoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QpCiB7CiAJc3Ry dWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QgPSB0b19tc21fZHNpX2hvc3QoaG9zdCk7CisJY29u c3Qgc3RydWN0IG1zbV9kc2lfY2ZnX2hhbmRsZXIgKmNmZ19obmQgPSBtc21faG9zdC0+Y2ZnX2hu ZDsKIAogCW11dGV4X2xvY2soJm1zbV9ob3N0LT5kZXZfbXV0ZXgpOwogCWlmICghbXNtX2hvc3Qt PnBvd2VyX29uKSB7CkBAIC0yNTU4LDcgKzIzNzQsNyBAQCBpbnQgbXNtX2RzaV9ob3N0X3Bvd2Vy X29mZihzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCkKIAogCXBpbmN0cmxfcG1fc2VsZWN0X3Ns ZWVwX3N0YXRlKCZtc21faG9zdC0+cGRldi0+ZGV2KTsKIAotCWRzaV9saW5rX2Nsa19kaXNhYmxl KG1zbV9ob3N0KTsKKwljZmdfaG5kLT5vcHMtPmxpbmtfY2xrX2Rpc2FibGUobXNtX2hvc3QpOwog CXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKCZtc21faG9zdC0+cGRldi0+ZGV2KTsKIAogCWRz aV9ob3N0X3JlZ3VsYXRvcl9kaXNhYmxlKG1zbV9ob3N0KTsKLS0gClRoZSBRdWFsY29tbSBJbm5v dmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0s CmEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=