From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jyri Sarha Subject: [PATCH v4 5/6] drm/omap: Major omap_modeset_init() cleanup Date: Fri, 24 Mar 2017 16:47:55 +0200 Message-ID: <9706f2d53aff331a696db1bd3a96ec3bbd5331dc.1490366823.git.jsarha@ti.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from lelnx193.ext.ti.com (lelnx193.ext.ti.com [198.47.27.77]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7261C6EC18 for ; Fri, 24 Mar 2017 14:48:10 +0000 (UTC) In-Reply-To: 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 Cc: tomi.valkeinen@ti.com, laurent.pinchart@ideasonboard.com, Jyri Sarha List-Id: dri-devel@lists.freedesktop.org Q2xlYW51cCBvdmVybHkgY29tcGxleCBvbWFwX21vZGVzZXRfaW5pdCgpLiBUaGUgZnVuY3Rpb24g aXMgdHJ5aW5nIHRvCnN1cHBvcnQgbWFueSB1bnVzdWFsIGNvbmZpZ3VyYXRpb24sIHRoYXQgaGF2 ZSBuZXZlciBiZWVuIHRlc3RlZCBhbmQKYXJlIG5vdCBzdXBwb3J0ZWQgYnkgb3RoZXIgcGFydHMg b2YgdGhlIGRpcnZlci4KCkFmdGVyIGNsZWFudXAgdGhlIGluaXQgZnVuY3Rpb24gY3JlYXRlcyBl eGFjdGx5IG9uZSBjb25uZWN0b3IsCmVuY29kZXIsIGNydGMsIGFuZCBwcmltYXJ5IHBsYW5lIHBl ciBlYWNoIGNvbm5lY3RlZCBkc3MtZGV2aWNlLiBFYWNoCmNvbm5lY3Rvci0+ZW5jb2Rlci0+Y3J0 YyBjaGFpbiBpcyBleHBlY3RlZCB0byBiZSBzZXBhcmF0ZSBhbmQgZWFjaApjcnRjIGlzIGNvbm5l Y3QgdG8gYSBzaW5nbGUgZHNzLWNoYW5uZWwuIElmIHRoZSBjb25maWd1cmF0aW9uIGRvZXMgbm90 Cm1hdGNoIHRoZSBleHBlY3RhdGlvbnMgb3IgZXhjZWVkcyB0aGUgYXZhaWxhYmxlIHJlc291cmNl cywgdGhlCmNvbmZpZ3VyYXRpb24gaXMgcmVqZWN0ZWQuCgpTaWduZWQtb2ZmLWJ5OiBKeXJpIFNh cmhhIDxqc2FyaGFAdGkuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfY3J0 Yy5jICB8ICAyMCArKystCiBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Rydi5jICAgfCAx NzcgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9v bWFwZHJtL29tYXBfZHJ2LmggICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21h cF9wbGFuZS5jIHwgIDI0ICsrKystCiA0IGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyks IDEzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9v bWFwX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfY3J0Yy5jCmluZGV4IDYw NmVmODAuLjAyNmY3M2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBf Y3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfY3J0Yy5jCkBAIC01NjEs NiArNTYxLDggQEAgc3RhdGljIGludCBvbWFwX2NydGNfYXRvbWljX2dldF9wcm9wZXJ0eShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAKIHZvaWQgb21hcF9jcnRjX3ByZV9pbml0KHZvaWQpCiB7CisJ bWVtc2V0KG9tYXBfY3J0Y3MsIDAsIHNpemVvZihvbWFwX2NydGNzKSk7CisKIAlkc3NfaW5zdGFs bF9tZ3Jfb3BzKCZtZ3Jfb3BzKTsKIH0KIApAQCAtNTcxLDE4ICs1NzMsMjggQEAgdm9pZCBvbWFw X2NydGNfcHJlX3VuaW5pdCh2b2lkKQogCiAvKiBpbml0aWFsaXplIGNydGMgKi8KIHN0cnVjdCBk cm1fY3J0YyAqb21hcF9jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsIGVudW0gb21hcF9jaGFubmVsIGNoYW5uZWwsIGludCBpZCkKKwkJ c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldikK IHsKIAlzdHJ1Y3Qgb21hcF9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJ c3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVMTDsKIAlzdHJ1Y3Qgb21hcF9jcnRjICpvbWFwX2Ny dGM7CisJZW51bSBvbWFwX2NoYW5uZWwgY2hhbm5lbDsKKwlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNl ICpvdXQ7CiAJaW50IHJldDsKIAorCW91dCA9IG9tYXBkc3NfZmluZF9vdXRwdXRfZnJvbV9kaXNw bGF5KGRzc2Rldik7CisJY2hhbm5lbCA9IG91dC0+ZGlzcGNfY2hhbm5lbDsKKwlvbWFwX2Rzc19w dXRfZGV2aWNlKG91dCk7CisKIAlEQkcoIiVzIiwgY2hhbm5lbF9uYW1lc1tjaGFubmVsXSk7CiAK KwkvKiBNdWx0aXBsZSBkaXNwbGF5cyBvbiBzYW1lIGNoYW5uZWwgaXMgbm90IGFsbG93ZWQgKi8K KwlpZiAoV0FSTl9PTihvbWFwX2NydGNzW2NoYW5uZWxdICE9IE5VTEwpKQorCQlyZXR1cm4gRVJS X1BUUigtRUlOVkFMKTsKKwogCW9tYXBfY3J0YyA9IGt6YWxsb2Moc2l6ZW9mKCpvbWFwX2NydGMp LCBHRlBfS0VSTkVMKTsKIAlpZiAoIW9tYXBfY3J0YykKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVy biBFUlJfUFRSKC1FTk9NRU0pOwogCiAJY3J0YyA9ICZvbWFwX2NydGMtPmJhc2U7CiAKQEAgLTU5 NCw4ICs2MDYsMTAgQEAgc3RydWN0IGRybV9jcnRjICpvbWFwX2NydGNfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCXJldCA9IGRybV9jcnRjX2luaXRfd2l0aF9wbGFuZXMoZGV2LCBjcnRj LCBwbGFuZSwgTlVMTCwKIAkJCQkJJm9tYXBfY3J0Y19mdW5jcywgTlVMTCk7CiAJaWYgKHJldCA8 IDApIHsKKwkJZGV2X2VycihkZXYtPmRldiwgIiVzKCk6IGNvdWxkIG5vdCBpbml0IGNydGMgZm9y OiAlc1xuIiwKKwkJCV9fZnVuY19fLCBkc3NkZXYtPm5hbWUpOwogCQlrZnJlZShvbWFwX2NydGMp OwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKIAlkcm1fY3J0 Y19oZWxwZXJfYWRkKGNydGMsICZvbWFwX2NydGNfaGVscGVyX2Z1bmNzKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vb21h cGRybS9vbWFwX2Rydi5jCmluZGV4IGIwNDBmNWYuLjJjMDM4Y2YgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vb21hcF9kcnYuYwpAQCAtMjE5LDIwICsyMTksNiBAQCBzdGF0aWMgaW50IGdldF9jb25uZWN0 b3JfdHlwZShzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYpCiAJfQogfQogCi1zdGF0aWMg Ym9vbCBjaGFubmVsX3VzZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBvbWFwX2NoYW5u ZWwgY2hhbm5lbCkKLXsKLQlzdHJ1Y3Qgb21hcF9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+bnVtX2NydGNzOyBp KyspIHsKLQkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gcHJpdi0+Y3J0Y3NbaV07Ci0KLQkJaWYg KG9tYXBfY3J0Y19jaGFubmVsKGNydGMpID09IGNoYW5uZWwpCi0JCQlyZXR1cm4gdHJ1ZTsKLQl9 Ci0KLQlyZXR1cm4gZmFsc2U7Ci19CiBzdGF0aWMgdm9pZCBvbWFwX2Rpc2Nvbm5lY3RfZHNzZGV2 cyh2b2lkKQogewogCXN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldiA9IE5VTEw7CkBAIC0y NzIsMzEgKzI1OCw2IEBAIHN0YXRpYyBpbnQgb21hcF9jb25uZWN0X2Rzc2RldnModm9pZCkKIAly ZXR1cm4gcjsKIH0KIAotc3RhdGljIGludCBvbWFwX21vZGVzZXRfY3JlYXRlX2NydGMoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IGlkLAotCQkJCSAgICBlbnVtIG9tYXBfY2hhbm5lbCBjaGFu bmVsLAotCQkJCSAgICB1MzIgcG9zc2libGVfY3J0Y3MpCi17Ci0Jc3RydWN0IG9tYXBfZHJtX3By aXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l OwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKLQotCXBsYW5lID0gb21hcF9wbGFuZV9pbml0KGRl diwgaWQsIERSTV9QTEFORV9UWVBFX1BSSU1BUlksCi0JCXBvc3NpYmxlX2NydGNzKTsKLQlpZiAo SVNfRVJSKHBsYW5lKSkKLQkJcmV0dXJuIFBUUl9FUlIocGxhbmUpOwotCi0JY3J0YyA9IG9tYXBf Y3J0Y19pbml0KGRldiwgcGxhbmUsIGNoYW5uZWwsIGlkKTsKLQotCUJVR19PTihwcml2LT5udW1f Y3J0Y3MgPj0gQVJSQVlfU0laRShwcml2LT5jcnRjcykpOwotCXByaXYtPmNydGNzW2lkXSA9IGNy dGM7Ci0JcHJpdi0+bnVtX2NydGNzKys7Ci0KLQlwcml2LT5wbGFuZXNbaWRdID0gcGxhbmU7Ci0J cHJpdi0+bnVtX3BsYW5lcysrOwotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgb21hcF9t b2Rlc2V0X2luaXRfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVj dCBvbWFwX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTMxNCwxMCAr Mjc1LDkgQEAgc3RhdGljIGludCBvbWFwX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCXN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldiA9IE5VTEw7CiAJaW50IG51bV9v dmxzID0gcHJpdi0+ZGlzcGNfb3BzLT5nZXRfbnVtX292bHMoKTsKIAlpbnQgbnVtX21ncnMgPSBw cml2LT5kaXNwY19vcHMtPmdldF9udW1fbWdycygpOwotCWludCBudW1fY3J0Y3MgPSAwOwotCWlu dCBpLCBpZCA9IDA7CisJaW50IG51bV9jcnRjcywgY3J0Y19pZHgsIHBsYW5lX2lkeDsKIAlpbnQg cmV0OwotCXUzMiBwb3NzaWJsZV9jcnRjczsKKwl1MzIgcGxhbmVfY3J0Y19tYXNrOwogCiAJZHJt X21vZGVfY29uZmlnX2luaXQoZGV2KTsKIApAQCAtMzI2LDEzNCArMjg2LDkxIEBAIHN0YXRpYyBp bnQgb21hcF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmV0dXJuIHJl dDsKIAogCS8qCi0JICogTGV0J3MgY3JlYXRlIG9uZSBDUlRDIGZvciBlYWNoIGNvbm5lY3RlZCBE U1MgZGV2aWNlIGlmIHdlCi0JICogaGF2ZSBkaXNwbGF5IG1hbmFnZXJzIGFuZCBvdmVybGF5cyAo Zm9yIHByaW1hcnkgcGxhbmVzKSBmb3IKLQkgKiB0aGVtLgorCSAqIFRoaXMgZnVuY3Rpb24gY3Jl YXRlcyBleGFjdGx5IG9uZSBjb25uZWN0b3IsIGVuY29kZXIsIGNydGMsCisJICogYW5kIHByaW1h cnkgcGxhbmUgcGVyIGVhY2ggY29ubmVjdGVkIGRzcy1kZXZpY2UuIEVhY2gKKwkgKiBjb25uZWN0 b3ItPmVuY29kZXItPmNydGMgY2hhaW4gaXMgZXhwZWN0ZWQgdG8gYmUgc2VwYXJhdGUKKwkgKiBh bmQgZWFjaCBjcnRjIGlzIGNvbm5lY3QgdG8gYSBzaW5nbGUgZHNzLWNoYW5uZWwuIElmIHRoZQor CSAqIGNvbmZpZ3VyYXRpb24gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGF0aW9ucyBvciBleGNl ZWRzCisJICogdGhlIGF2YWlsYWJsZSByZXNvdXJjZXMsIHRoZSBjb25maWd1cmF0aW9uIGlzIHJl amVjdGVkLgogCSAqLworCW51bV9jcnRjcyA9IDA7CiAJZm9yX2VhY2hfZHNzX2Rldihkc3NkZXYp CiAJCWlmIChvbWFwZHNzX2RldmljZV9pc19jb25uZWN0ZWQoZHNzZGV2KSkKIAkJCW51bV9jcnRj cysrOwogCi0JbnVtX2NydGNzID0gbWluMyhudW1fY3J0Y3MsIG51bV9tZ3JzLCBudW1fb3Zscyk7 Ci0JcG9zc2libGVfY3J0Y3MgPSAoMSA8PCBudW1fY3J0Y3MpIC0gMTsKKwlpZiAobnVtX2NydGNz ID4gbnVtX21ncnMgfHwgbnVtX2NydGNzID4gbnVtX292bHMgfHwKKwkgICAgbnVtX2NydGNzID4g QVJSQVlfU0laRShwcml2LT5jcnRjcykgfHwKKwkgICAgbnVtX2NydGNzID4gQVJSQVlfU0laRShw cml2LT5wbGFuZXMpIHx8CisJICAgIG51bV9jcnRjcyA+IEFSUkFZX1NJWkUocHJpdi0+ZW5jb2Rl cnMpIHx8CisJICAgIG51bV9jcnRjcyA+IEFSUkFZX1NJWkUocHJpdi0+Y29ubmVjdG9ycykpIHsK KwkJZGV2X2VycihkZXYtPmRldiwgIiVzKCk6IFRvbyBtYW55IGNvbm5lY3RlZCBkaXNwbGF5c1xu IiwKKwkJCV9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogQWxsIHBsYW5l cyBjYW4gYmUgcHV0IHRvIGFueSBDUlRDICovCisJcGxhbmVfY3J0Y19tYXNrID0gKDEgPDwgbnVt X2NydGNzKSAtIDE7CiAKIAlkc3NkZXYgPSBOVUxMOwogCisJY3J0Y19pZHggPSAwOworCXBsYW5l X2lkeCA9IDA7CiAJZm9yX2VhY2hfZHNzX2Rldihkc3NkZXYpIHsKIAkJc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcjsKIAkJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwotCQllbnVt IG9tYXBfY2hhbm5lbCBjaGFubmVsOwotCQlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpvdXQ7CisJ CXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOworCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAKIAkJ aWYgKCFvbWFwZHNzX2RldmljZV9pc19jb25uZWN0ZWQoZHNzZGV2KSkKIAkJCWNvbnRpbnVlOwog CiAJCWVuY29kZXIgPSBvbWFwX2VuY29kZXJfaW5pdChkZXYsIGRzc2Rldik7Ci0KLQkJaWYgKCFl bmNvZGVyKSB7Ci0JCQlkZXZfZXJyKGRldi0+ZGV2LCAiY291bGQgbm90IGNyZWF0ZSBlbmNvZGVy OiAlc1xuIiwKLQkJCQkJZHNzZGV2LT5uYW1lKTsKKwkJaWYgKCFlbmNvZGVyKQogCQkJcmV0dXJu IC1FTk9NRU07Ci0JCX0KIAogCQljb25uZWN0b3IgPSBvbWFwX2Nvbm5lY3Rvcl9pbml0KGRldiwK IAkJCQlnZXRfY29ubmVjdG9yX3R5cGUoZHNzZGV2KSwgZHNzZGV2LCBlbmNvZGVyKTsKLQotCQlp ZiAoIWNvbm5lY3RvcikgewotCQkJZGV2X2VycihkZXYtPmRldiwgImNvdWxkIG5vdCBjcmVhdGUg Y29ubmVjdG9yOiAlc1xuIiwKLQkJCQkJZHNzZGV2LT5uYW1lKTsKKwkJaWYgKCFjb25uZWN0b3Ip CiAJCQlyZXR1cm4gLUVOT01FTTsKLQkJfQogCi0JCUJVR19PTihwcml2LT5udW1fZW5jb2RlcnMg Pj0gQVJSQVlfU0laRShwcml2LT5lbmNvZGVycykpOwotCQlCVUdfT04ocHJpdi0+bnVtX2Nvbm5l Y3RvcnMgPj0gQVJSQVlfU0laRShwcml2LT5jb25uZWN0b3JzKSk7CisJCXBsYW5lID0gb21hcF9w bGFuZV9pbml0KGRldiwgcGxhbmVfaWR4LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZLAorCQkJCQlw bGFuZV9jcnRjX21hc2spOworCQlpZiAoSVNfRVJSKHBsYW5lKSkKKwkJCXJldHVybiBQVFJfRVJS KHBsYW5lKTsKIAotCQlwcml2LT5lbmNvZGVyc1twcml2LT5udW1fZW5jb2RlcnMrK10gPSBlbmNv ZGVyOwotCQlwcml2LT5jb25uZWN0b3JzW3ByaXYtPm51bV9jb25uZWN0b3JzKytdID0gY29ubmVj dG9yOworCQljcnRjID0gb21hcF9jcnRjX2luaXQoZGV2LCBwbGFuZSwgZHNzZGV2KTsKKwkJaWYg KElTX0VSUihjcnRjKSkKKwkJCXJldHVybiBQVFJfRVJSKGNydGMpOwogCiAJCWRybV9tb2RlX2Nv bm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3IsIGVuY29kZXIpOworCQllbmNvZGVyLT5w b3NzaWJsZV9jcnRjcyA9ICgxIDw8IGNydGNfaWR4KTsKIAotCQkvKgotCQkgKiBpZiB3ZSBoYXZl IHJlYWNoZWQgdGhlIGxpbWl0IG9mIHRoZSBjcnRjcyB3ZSBjYW4KLQkJICogY3JlYXRlLCBsZXQn cyBub3QgdHJ5IHRvIGNyZWF0ZSBhIGNydGMgZm9yIHRoaXMKLQkJICogcGFuZWwvZW5jb2RlciBh bmQgb253YXJkcy4KLQkJICovCi0JCWlmIChpZCA9PSBudW1fY3J0Y3MpCi0JCQljb250aW51ZTsK KwkJcHJpdi0+Y3J0Y3NbcHJpdi0+bnVtX2NydGNzKytdID0gY3J0YzsKKwkJcHJpdi0+cGxhbmVz W3ByaXYtPm51bV9wbGFuZXMrK10gPSBwbGFuZTsKKwkJcHJpdi0+ZW5jb2RlcnNbcHJpdi0+bnVt X2VuY29kZXJzKytdID0gZW5jb2RlcjsKKwkJcHJpdi0+Y29ubmVjdG9yc1twcml2LT5udW1fY29u bmVjdG9ycysrXSA9IGNvbm5lY3RvcjsKIAotCQkvKgotCQkgKiBnZXQgdGhlIHJlY29tbWVuZGVk IERJU1BDIGNoYW5uZWwgZm9yIHRoaXMgZW5jb2Rlci4gRm9yIG5vdywKLQkJICogd2Ugb25seSB0 cnkgdG8gZ2V0IGNyZWF0ZSBhIGNydGMgb3V0IG9mIHRoZSByZWNvbW1lbmRlZCwgdGhlCi0JCSAq IG90aGVyIHBvc3NpYmxlIGNoYW5uZWxzIHRvIHdoaWNoIHRoZSBlbmNvZGVyIGNhbiBjb25uZWN0 IGFyZQotCQkgKiBub3QgY29uc2lkZXJlZC4KLQkJICovCi0KLQkJb3V0ID0gb21hcGRzc19maW5k X291dHB1dF9mcm9tX2Rpc3BsYXkoZHNzZGV2KTsKLQkJY2hhbm5lbCA9IG91dC0+ZGlzcGNfY2hh bm5lbDsKLQkJb21hcF9kc3NfcHV0X2RldmljZShvdXQpOwotCi0JCS8qCi0JCSAqIGlmIHRoaXMg Y2hhbm5lbCBoYXNuJ3QgYWxyZWFkeSBiZWVuIHRha2VuIGJ5IGEgcHJldmlvdXNseQotCQkgKiBh bGxvY2F0ZWQgY3J0Yywgd2UgY3JlYXRlIGEgbmV3IGNydGMgZm9yIGl0Ci0JCSAqLwotCQlpZiAo IWNoYW5uZWxfdXNlZChkZXYsIGNoYW5uZWwpKSB7Ci0JCQlyZXQgPSBvbWFwX21vZGVzZXRfY3Jl YXRlX2NydGMoZGV2LCBpZCwgY2hhbm5lbCwKLQkJCQlwb3NzaWJsZV9jcnRjcyk7Ci0JCQlpZiAo cmV0IDwgMCkgewotCQkJCWRldl9lcnIoZGV2LT5kZXYsCi0JCQkJCSJjb3VsZCBub3QgY3JlYXRl IENSVEMgKGNoYW5uZWwgJXUpXG4iLAotCQkJCQljaGFubmVsKTsKLQkJCQlyZXR1cm4gcmV0Owot CQkJfQotCi0JCQlpZCsrOwotCQl9CisJCXBsYW5lX2lkeCsrOworCQljcnRjX2lkeCsrOwogCX0K IAogCS8qCiAJICogQ3JlYXRlIG5vcm1hbCBwbGFuZXMgZm9yIHRoZSByZW1haW5pbmcgb3Zlcmxh eXM6CiAJICovCi0JZm9yICg7IGlkIDwgbnVtX292bHM7IGlkKyspIHsKKwlmb3IgKDsgcGxhbmVf aWR4IDwgbnVtX292bHM7IHBsYW5lX2lkeCsrKSB7CiAJCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l OwogCi0JCXBsYW5lID0gb21hcF9wbGFuZV9pbml0KGRldiwgaWQsIERSTV9QTEFORV9UWVBFX09W RVJMQVksCi0JCQlwb3NzaWJsZV9jcnRjcyk7CisJCWlmIChXQVJOX09OKHByaXYtPm51bV9wbGFu ZXMgPj0gQVJSQVlfU0laRShwcml2LT5wbGFuZXMpKSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJ CXBsYW5lID0gb21hcF9wbGFuZV9pbml0KGRldiwgcGxhbmVfaWR4LCBEUk1fUExBTkVfVFlQRV9P VkVSTEFZLAorCQkJcGxhbmVfY3J0Y19tYXNrKTsKIAkJaWYgKElTX0VSUihwbGFuZSkpCiAJCQly ZXR1cm4gUFRSX0VSUihwbGFuZSk7CiAKLQkJQlVHX09OKHByaXYtPm51bV9wbGFuZXMgPj0gQVJS QVlfU0laRShwcml2LT5wbGFuZXMpKTsKIAkJcHJpdi0+cGxhbmVzW3ByaXYtPm51bV9wbGFuZXMr K10gPSBwbGFuZTsKIAl9CiAKLQkvKgotCSAqIHBvcHVsYXRlIHRoZSB0aGUgcG9zc2libGVfY3J0 Y3MgZmllbGQgZm9yIGFsbCB0aGUgZW5jb2RlcnMKLQkgKiB3ZSBjcmVhdGVkLgotCSAqLwotCWZv ciAoaSA9IDA7IGkgPCBwcml2LT5udW1fZW5jb2RlcnM7IGkrKykgewotCQlzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIgPSBwcml2LT5lbmNvZGVyc1tpXTsKLQkJc3RydWN0IG9tYXBfZHNzX2Rl dmljZSAqZHNzZGV2ID0KLQkJCQkJb21hcF9lbmNvZGVyX2dldF9kc3NkZXYoZW5jb2Rlcik7Ci0J CXN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKm91dHB1dDsKLQotCQlvdXRwdXQgPSBvbWFwZHNzX2Zp bmRfb3V0cHV0X2Zyb21fZGlzcGxheShkc3NkZXYpOwotCi0JCS8qIGZpZ3VyZSBvdXQgd2hpY2gg Y3J0YydzIHdlIGNhbiBjb25uZWN0IHRoZSBlbmNvZGVyIHRvOiAqLwotCQllbmNvZGVyLT5wb3Nz aWJsZV9jcnRjcyA9IDA7Ci0JCWZvciAoaWQgPSAwOyBpZCA8IHByaXYtPm51bV9jcnRjczsgaWQr KykgewotCQkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gcHJpdi0+Y3J0Y3NbaWRdOwotCQkJZW51 bSBvbWFwX2NoYW5uZWwgY3J0Y19jaGFubmVsOwotCi0JCQljcnRjX2NoYW5uZWwgPSBvbWFwX2Ny dGNfY2hhbm5lbChjcnRjKTsKLQotCQkJaWYgKG91dHB1dC0+ZGlzcGNfY2hhbm5lbCA9PSBjcnRj X2NoYW5uZWwpIHsKLQkJCQllbmNvZGVyLT5wb3NzaWJsZV9jcnRjcyB8PSAoMSA8PCBpZCk7Ci0J CQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQotCQlvbWFwX2Rzc19wdXRfZGV2aWNlKG91dHB1dCk7Ci0J fQotCiAJREJHKCJyZWdpc3RlcmVkICVkIHBsYW5lcywgJWQgY3J0Y3MsICVkIGVuY29kZXJzIGFu ZCAlZCBjb25uZWN0b3JzXG4iLAogCQlwcml2LT5udW1fcGxhbmVzLCBwcml2LT5udW1fY3J0Y3Ms IHByaXYtPm51bV9lbmNvZGVycywKIAkJcHJpdi0+bnVtX2Nvbm5lY3RvcnMpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9v bWFwZHJtL29tYXBfZHJ2LmgKaW5kZXggM2NiN2JmMi4uN2E0YzU3ZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vb21h cGRybS9vbWFwX2Rydi5oCkBAIC0xMzcsMTMgKzEzNywxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg b21hcF9mYmRldl9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB2b2lkIG9tYXBfY3J0Y19w cmVfaW5pdCh2b2lkKTsKIHZvaWQgb21hcF9jcnRjX3ByZV91bmluaXQodm9pZCk7CiBzdHJ1Y3Qg ZHJtX2NydGMgKm9tYXBfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCXN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLCBlbnVtIG9tYXBfY2hhbm5lbCBjaGFubmVsLCBpbnQgaWQpOwor CQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2 KTsKIGludCBvbWFwX2NydGNfd2FpdF9wZW5kaW5nKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiB2 b2lkIG9tYXBfY3J0Y19lcnJvcl9pcnEoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1aW50MzJfdCBp cnFzdGF0dXMpOwogdm9pZCBvbWFwX2NydGNfdmJsYW5rX2lycShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpOwogCiBzdHJ1Y3QgZHJtX3BsYW5lICpvbWFwX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKLQkJaW50IGlkLCBlbnVtIGRybV9wbGFuZV90eXBlIHR5cGUsCisJCWludCBpZHgs IGVudW0gZHJtX3BsYW5lX3R5cGUgdHlwZSwKIAkJdTMyIHBvc3NpYmxlX2NydGNzKTsKIHZvaWQg b21hcF9wbGFuZV9pbnN0YWxsX3Byb3BlcnRpZXMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ CXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vb21hcGRybS9vbWFwX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3Bs YW5lLmMKaW5kZXggNjRkNTNjNC4uNmFkMzE2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L29tYXBkcm0vb21hcF9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBf cGxhbmUuYwpAQCAtMzI5LDI0ICszMjksMzcgQEAgc3RhdGljIGludCBvbWFwX3BsYW5lX2F0b21p Y19nZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJLmF0b21pY19nZXRfcHJv cGVydHkgPSBvbWFwX3BsYW5lX2F0b21pY19nZXRfcHJvcGVydHksCiB9OwogCi1zdGF0aWMgY29u c3QgY2hhciAqcGxhbmVfbmFtZXNbXSA9IHsKK3N0YXRpYyBjb25zdCBjaGFyICpwbGFuZV9pZF90 b19uYW1lW10gPSB7CiAJW09NQVBfRFNTX0dGWF0gPSAiZ2Z4IiwKIAlbT01BUF9EU1NfVklERU8x XSA9ICJ2aWQxIiwKIAlbT01BUF9EU1NfVklERU8yXSA9ICJ2aWQyIiwKIAlbT01BUF9EU1NfVklE RU8zXSA9ICJ2aWQzIiwKIH07CiAKK3N0YXRpYyBjb25zdCBlbnVtIG9tYXBfcGxhbmVfaWQgcGxh bmVfaWR4X3RvX2lkW10gPSB7CisJT01BUF9EU1NfR0ZYLAorCU9NQVBfRFNTX1ZJREVPMSwKKwlP TUFQX0RTU19WSURFTzIsCisJT01BUF9EU1NfVklERU8zLAorfTsKKwogLyogaW5pdGlhbGl6ZSBw bGFuZSAqLwogc3RydWN0IGRybV9wbGFuZSAqb21hcF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCi0JCWludCBpZCwgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlLAorCQlpbnQgaWR4 LCBlbnVtIGRybV9wbGFuZV90eXBlIHR5cGUsCiAJCXUzMiBwb3NzaWJsZV9jcnRjcykKIHsKIAlz dHJ1Y3Qgb21hcF9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0 IGRybV9wbGFuZSAqcGxhbmU7CiAJc3RydWN0IG9tYXBfcGxhbmUgKm9tYXBfcGxhbmU7CisJZW51 bSBvbWFwX3BsYW5lX2lkIGlkOwogCWludCByZXQ7CiAKLQlEQkcoIiVzOiB0eXBlPSVkIiwgcGxh bmVfbmFtZXNbaWRdLCB0eXBlKTsKKwlpZiAoV0FSTl9PTihpZHggPj0gQVJSQVlfU0laRShwbGFu ZV9pZHhfdG9faWQpKSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisKKwlpZCA9IHBsYW5l X2lkeF90b19pZFtpZHhdOworCisJREJHKCIlczogdHlwZT0lZCIsIHBsYW5lX2lkX3RvX25hbWVb aWRdLCB0eXBlKTsKIAogCW9tYXBfcGxhbmUgPSBremFsbG9jKHNpemVvZigqb21hcF9wbGFuZSks IEdGUF9LRVJORUwpOwogCWlmICghb21hcF9wbGFuZSkKQEAgLTM1Niw3ICszNjksNyBAQCBzdHJ1 Y3QgZHJtX3BsYW5lICpvbWFwX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJ CW9tYXBfcGxhbmUtPmZvcm1hdHMsIEFSUkFZX1NJWkUob21hcF9wbGFuZS0+Zm9ybWF0cyksCiAJ CQlwcml2LT5kaXNwY19vcHMtPm92bF9nZXRfY29sb3JfbW9kZXMoaWQpKTsKIAlvbWFwX3BsYW5l LT5pZCA9IGlkOwotCW9tYXBfcGxhbmUtPm5hbWUgPSBwbGFuZV9uYW1lc1tpZF07CisJb21hcF9w bGFuZS0+bmFtZSA9IHBsYW5lX2lkX3RvX25hbWVbaWRdOwogCiAJcGxhbmUgPSAmb21hcF9wbGFu ZS0+YmFzZTsKIApAQCAtMzczLDYgKzM4Niw5IEBAIHN0cnVjdCBkcm1fcGxhbmUgKm9tYXBfcGxh bmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXJldHVybiBwbGFuZTsKIAogZXJyb3I6 CisJZGV2X2VycihkZXYtPmRldiwgIiVzKCk6IGNvdWxkIG5vdCBjcmVhdGUgcGxhbmU6ICVzXG4i LAorCQlfX2Z1bmNfXywgcGxhbmVfaWRfdG9fbmFtZVtpZF0pOworCiAJa2ZyZWUob21hcF9wbGFu ZSk7CiAJcmV0dXJuIE5VTEw7CiB9Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==