From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yakir Yang Subject: [PATCH v10 02/17] drm: bridge: analogix/dp: fix some obvious code style Date: Mon, 7 Dec 2015 14:38:38 +0800 Message-ID: <1449470318-30932-1-git-send-email-ykk@rock-chips.com> References: <1449470239-30667-1-git-send-email-ykk@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1449470239-30667-1-git-send-email-ykk@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae , Mark Yao , Jingoo Han , Heiko Stuebner Cc: devicetree@vger.kernel.org, Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, Russell King , javier@osg.samsung.com, emil.l.velikov@gmail.com, Seung-Woo Kim , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Kishon Vijay Abraham I , linux-rockchip@lists.infradead.org, Andrzej Hajda , Kyungmin Park , Rob Herring , ajaynumb@gmail.com, Andy Yan , Thierry Reding , Gustavo Padovan , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org Rml4IHNvbWUgb2J2aW91cyBhbGlnbm1lbnQgcHJvYmxlbXMsIGxpa2UgYWxpZ25tZW50IGFuZCBs aW5lCm92ZXIgODAgY2hhcmFjdGVycyBwcm9ibGVtcywgbWFrZSB0aGlzIGVhc3kgdG8gYmUgbWFp bnRhaW5lZApsYXRlci4KClNpZ25lZC1vZmYtYnk6IFlha2lyIFlhbmcgPHlra0Byb2NrLWNoaXBz LmNvbT4KUmV2aWV3ZWQtYnk6IEtyenlzenRvZiBLb3psb3dza2kgPGsua296bG93c2tpQHNhbXN1 bmcuY29tPgpUZXN0ZWQtYnk6IEphdmllciBNYXJ0aW5leiBDYW5pbGxhcyA8amF2aWVyQG9zZy5z YW1zdW5nLmNvbT4KLS0tCkNoYW5nZXMgaW4gdjEwOiBOb25lCkNoYW5nZXMgaW4gdjk6IE5vbmUK Q2hhbmdlcyBpbiB2ODogTm9uZQpDaGFuZ2VzIGluIHY3OiBOb25lCkNoYW5nZXMgaW4gdjY6IE5v bmUKQ2hhbmdlcyBpbiB2NToKLSBSZXNlcXVlbmNlIHRoaXMgcGF0Y2ggYWZ0ZXIgYW5hbG9naXhf ZHAgZHJpdmVyIGhhdmUgYmVlbiBzcGxpdAogIGZyb20gZXh5bm9zX2RwIGNvZGUsIGFuZCByZXBo cmFzZSByZWFzb25hYmxlIGNvbW1pdCBtZXNzYWdlLCBhbmQKICByZW1vdmUgc29tZSBjb250cm92 ZXJzaWFsIHN0eWxlIChLcnp5c3p0b2YpCiAgICAtCQlhbmFsb2dpeF9kcF93cml0ZV9ieXRlX3Rv X2RwY2QoCiAgICAtIAkJCQlkcCwgRFBfVEVTVF9SRVNQT05TRSwKICAgICsJCWFuYWxvZ2l4X2Rw X3dyaXRlX2J5dGVfdG9fZHBjZChkcCwKICAgICsJCQkJRFBfVEVTVF9SRVNQT05TRSwKCQkJCURQ X1RFU1RfRURJRF9DSEVDS1NVTV9XUklURSk7CgpDaGFuZ2VzIGluIHY0OiBOb25lCkNoYW5nZXMg aW4gdjM6IE5vbmUKQ2hhbmdlcyBpbiB2MjoKLSBJbXByb3ZlZCBjb21taXQgbWVzc2FnZSBtb3Jl IHJlYWRhYmxlLCBhbmQgYXZvaWQgdXNpbmcgc29tZQogIHVuY29tbW9uIHN0eWxlIGxpa2UgYmVs bG93OiAoSm9lIFByZWNoZXMpCiAgICAtICByZXR2YWwgPSBleHlub3NfZHBfcmVhZF9ieXRlc19m cm9tX2kyYyguLi4KICAJCQkJICAuLi4pOwogICAgKyAgcmV0dmFsID0KICAgICsgIGV4eW5vc19k cF9yZWFkX2J5dGVzX2Zyb21faTJjKC4uLi4uLik7CgogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9h bmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMgfCAxMjkgKysrKysrKysrKy0tLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuaCB8ICA3MiAr KysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBf cmVnLmMgIHwgMTI0ICsrKysrKysrKystLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE2MyBp bnNlcnRpb25zKCspLCAxNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYwppbmRleCBjZDg2NDEzLi4wMzlhYWFi IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2Rw X2NvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2Rw X2NvcmUuYwpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2RldGVjdF9o cGQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAKIAl3aGlsZSAoYW5hbG9naXhfZHBf Z2V0X3BsdWdfaW5fc3RhdHVzKGRwKSAhPSAwKSB7CiAJCXRpbWVvdXRfbG9vcCsrOwotCQlpZiAo RFBfVElNRU9VVF9MT09QX0NPVU5UIDwgdGltZW91dF9sb29wKSB7CisJCWlmICh0aW1lb3V0X2xv b3AgPiBEUF9USU1FT1VUX0xPT1BfQ09VTlQpIHsKIAkJCWRldl9lcnIoZHAtPmRldiwgImZhaWxl ZCB0byBnZXQgaHBkIHBsdWcgc3RhdHVzXG4iKTsKIAkJCXJldHVybiAtRVRJTUVET1VUOwogCQl9 CkBAIC05OCw4ICs5OCw4IEBAIHN0YXRpYyBpbnQgYW5hbG9naXhfZHBfcmVhZF9lZGlkKHN0cnVj dCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogCiAJLyogUmVhZCBFeHRlbnNpb24gRmxhZywgTnVt YmVyIG9mIDEyOC1ieXRlIEVESUQgZXh0ZW5zaW9uIGJsb2NrcyAqLwogCXJldHZhbCA9IGFuYWxv Z2l4X2RwX3JlYWRfYnl0ZV9mcm9tX2kyYyhkcCwgSTJDX0VESURfREVWSUNFX0FERFIsCi0JCQkJ RURJRF9FWFRFTlNJT05fRkxBRywKLQkJCQkmZXh0ZW5kX2Jsb2NrKTsKKwkJCQkJCUVESURfRVhU RU5TSU9OX0ZMQUcsCisJCQkJCQkmZXh0ZW5kX2Jsb2NrKTsKIAlpZiAocmV0dmFsKQogCQlyZXR1 cm4gcmV0dmFsOwogCkBAIC0xMDcsNyArMTA3LDggQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9y ZWFkX2VkaWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJCWRldl9kYmcoZHAtPmRl diwgIkVESUQgZGF0YSBpbmNsdWRlcyBhIHNpbmdsZSBleHRlbnNpb24hXG4iKTsKIAogCQkvKiBS ZWFkIEVESUQgZGF0YSAqLwotCQlyZXR2YWwgPSBhbmFsb2dpeF9kcF9yZWFkX2J5dGVzX2Zyb21f aTJjKGRwLCBJMkNfRURJRF9ERVZJQ0VfQUREUiwKKwkJcmV0dmFsID0gYW5hbG9naXhfZHBfcmVh ZF9ieXRlc19mcm9tX2kyYyhkcCwKKwkJCQkJCUkyQ19FRElEX0RFVklDRV9BRERSLAogCQkJCQkJ RURJRF9IRUFERVJfUEFUVEVSTiwKIAkJCQkJCUVESURfQkxPQ0tfTEVOR1RILAogCQkJCQkJJmVk aWRbRURJRF9IRUFERVJfUEFUVEVSTl0pOwpAQCAtMTM4LDcgKzEzOSw3IEBAIHN0YXRpYyBpbnQg YW5hbG9naXhfZHBfcmVhZF9lZGlkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogCQl9 CiAKIAkJYW5hbG9naXhfZHBfcmVhZF9ieXRlX2Zyb21fZHBjZChkcCwgRFBfVEVTVF9SRVFVRVNU LAotCQkJCQkmdGVzdF92ZWN0b3IpOworCQkJCQkJJnRlc3RfdmVjdG9yKTsKIAkJaWYgKHRlc3Rf dmVjdG9yICYgRFBfVEVTVF9MSU5LX0VESURfUkVBRCkgewogCQkJYW5hbG9naXhfZHBfd3JpdGVf Ynl0ZV90b19kcGNkKGRwLAogCQkJCURQX1RFU1RfRURJRF9DSEVDS1NVTSwKQEAgLTE1MiwxMCAr MTUzLDggQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9yZWFkX2VkaWQoc3RydWN0IGFuYWxvZ2l4 X2RwX2RldmljZSAqZHApCiAKIAkJLyogUmVhZCBFRElEIGRhdGEgKi8KIAkJcmV0dmFsID0gYW5h bG9naXhfZHBfcmVhZF9ieXRlc19mcm9tX2kyYyhkcCwKLQkJCQlJMkNfRURJRF9ERVZJQ0VfQURE UiwKLQkJCQlFRElEX0hFQURFUl9QQVRURVJOLAotCQkJCUVESURfQkxPQ0tfTEVOR1RILAotCQkJ CSZlZGlkW0VESURfSEVBREVSX1BBVFRFUk5dKTsKKwkJCQlJMkNfRURJRF9ERVZJQ0VfQUREUiwg RURJRF9IRUFERVJfUEFUVEVSTiwKKwkJCQlFRElEX0JMT0NLX0xFTkdUSCwgJmVkaWRbRURJRF9I RUFERVJfUEFUVEVSTl0pOwogCQlpZiAocmV0dmFsICE9IDApIHsKIAkJCWRldl9lcnIoZHAtPmRl diwgIkVESUQgUmVhZCBmYWlsZWQhXG4iKTsKIAkJCXJldHVybiAtRUlPOwpAQCAtMTY2LDE2ICsx NjUsMTMgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9yZWFkX2VkaWQoc3RydWN0IGFuYWxvZ2l4 X2RwX2RldmljZSAqZHApCiAJCQlyZXR1cm4gLUVJTzsKIAkJfQogCi0JCWFuYWxvZ2l4X2RwX3Jl YWRfYnl0ZV9mcm9tX2RwY2QoZHAsCi0JCQlEUF9URVNUX1JFUVVFU1QsCi0JCQkmdGVzdF92ZWN0 b3IpOworCQlhbmFsb2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9kcGNkKGRwLCBEUF9URVNUX1JFUVVF U1QsCisJCQkJCQkmdGVzdF92ZWN0b3IpOwogCQlpZiAodGVzdF92ZWN0b3IgJiBEUF9URVNUX0xJ TktfRURJRF9SRUFEKSB7CiAJCQlhbmFsb2dpeF9kcF93cml0ZV9ieXRlX3RvX2RwY2QoZHAsCi0J CQkJRFBfVEVTVF9FRElEX0NIRUNLU1VNLAotCQkJCWVkaWRbRURJRF9DSEVDS1NVTV0pOworCQkJ CURQX1RFU1RfRURJRF9DSEVDS1NVTSwgZWRpZFtFRElEX0NIRUNLU1VNXSk7CiAJCQlhbmFsb2dp eF9kcF93cml0ZV9ieXRlX3RvX2RwY2QoZHAsCi0JCQkJRFBfVEVTVF9SRVNQT05TRSwKLQkJCQlE UF9URVNUX0VESURfQ0hFQ0tTVU1fV1JJVEUpOworCQkJCURQX1RFU1RfUkVTUE9OU0UsIERQX1RF U1RfRURJRF9DSEVDS1NVTV9XUklURSk7CiAJCX0KIAl9CiAKQEAgLTE5MCw4ICsxODYsNyBAQCBz dGF0aWMgaW50IGFuYWxvZ2l4X2RwX2hhbmRsZV9lZGlkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZp Y2UgKmRwKQogCWludCByZXR2YWw7CiAKIAkvKiBSZWFkIERQQ0QgRFBfRFBDRF9SRVZ+UkVDRUlW RV9QT1JUMV9DQVBfMSAqLwotCXJldHZhbCA9IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZXNfZnJvbV9k cGNkKGRwLCBEUF9EUENEX1JFViwKLQkJCQkxMiwgYnVmKTsKKwlyZXR2YWwgPSBhbmFsb2dpeF9k cF9yZWFkX2J5dGVzX2Zyb21fZHBjZChkcCwgRFBfRFBDRF9SRVYsIDEyLCBidWYpOwogCWlmIChy ZXR2YWwpCiAJCXJldHVybiByZXR2YWw7CiAKQEAgLTIwNSw4ICsyMDAsOSBAQCBzdGF0aWMgaW50 IGFuYWxvZ2l4X2RwX2hhbmRsZV9lZGlkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQog CXJldHVybiByZXR2YWw7CiB9CiAKLXN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX2VuYWJsZV9yeF90 b19lbmhhbmNlZF9tb2RlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCQkJYm9v bCBlbmFibGUpCitzdGF0aWMgdm9pZAorYW5hbG9naXhfZHBfZW5hYmxlX3J4X3RvX2VuaGFuY2Vk X21vZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJCQkJICAgICAgIGJvb2wgZW5h YmxlKQogewogCXU4IGRhdGE7CiAKQEAgLTIxNCwxMSArMjEwLDExIEBAIHN0YXRpYyB2b2lkIGFu YWxvZ2l4X2RwX2VuYWJsZV9yeF90b19lbmhhbmNlZF9tb2RlKHN0cnVjdCBhbmFsb2dpeF9kcF9k ZXZpY2UgKmRwCiAKIAlpZiAoZW5hYmxlKQogCQlhbmFsb2dpeF9kcF93cml0ZV9ieXRlX3RvX2Rw Y2QoZHAsIERQX0xBTkVfQ09VTlRfU0VULAotCQkJRFBfTEFORV9DT1VOVF9FTkhBTkNFRF9GUkFN RV9FTiB8Ci0JCQlEUENEX0xBTkVfQ09VTlRfU0VUKGRhdGEpKTsKKwkJCQkJICAgICAgIERQX0xB TkVfQ09VTlRfRU5IQU5DRURfRlJBTUVfRU4gfAorCQkJCQkgICAgICAgRFBDRF9MQU5FX0NPVU5U X1NFVChkYXRhKSk7CiAJZWxzZQogCQlhbmFsb2dpeF9kcF93cml0ZV9ieXRlX3RvX2RwY2QoZHAs IERQX0xBTkVfQ09VTlRfU0VULAotCQkJRFBDRF9MQU5FX0NPVU5UX1NFVChkYXRhKSk7CisJCQkJ CSAgICAgICBEUENEX0xBTkVfQ09VTlRfU0VUKGRhdGEpKTsKIH0KIAogc3RhdGljIGludCBhbmFs b2dpeF9kcF9pc19lbmhhbmNlZF9tb2RlX2F2YWlsYWJsZShzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2 aWNlICpkcCkKQEAgLTI0NSwxMyArMjQxLDEzIEBAIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX3Ry YWluaW5nX3BhdHRlcm5fZGlzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogewogCWFu YWxvZ2l4X2RwX3NldF90cmFpbmluZ19wYXR0ZXJuKGRwLCBEUF9OT05FKTsKIAotCWFuYWxvZ2l4 X2RwX3dyaXRlX2J5dGVfdG9fZHBjZChkcCwKLQkJRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVQsCi0J CURQX1RSQUlOSU5HX1BBVFRFUk5fRElTQUJMRSk7CisJYW5hbG9naXhfZHBfd3JpdGVfYnl0ZV90 b19kcGNkKGRwLCBEUF9UUkFJTklOR19QQVRURVJOX1NFVCwKKwkJCQkgICAgICAgRFBfVFJBSU5J TkdfUEFUVEVSTl9ESVNBQkxFKTsKIH0KIAotc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfc2V0X2xh bmVfbGFuZV9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJ CWludCBwcmVfZW1waGFzaXMsIGludCBsYW5lKQorc3RhdGljIHZvaWQKK2FuYWxvZ2l4X2RwX3Nl dF9sYW5lX2xhbmVfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAor CQkJCSAgICAgICBpbnQgcHJlX2VtcGhhc2lzLCBpbnQgbGFuZSkKIHsKIAlzd2l0Y2ggKGxhbmUp IHsKIAljYXNlIDA6CkBAIC0yOTEsOCArMjg3LDcgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9s aW5rX3N0YXJ0KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogCS8qIFNldHVwIFJYIGNv bmZpZ3VyYXRpb24gKi8KIAlidWZbMF0gPSBkcC0+bGlua190cmFpbi5saW5rX3JhdGU7CiAJYnVm WzFdID0gZHAtPmxpbmtfdHJhaW4ubGFuZV9jb3VudDsKLQlyZXR2YWwgPSBhbmFsb2dpeF9kcF93 cml0ZV9ieXRlc190b19kcGNkKGRwLCBEUF9MSU5LX0JXX1NFVCwKLQkJCQkyLCBidWYpOworCXJl dHZhbCA9IGFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVzX3RvX2RwY2QoZHAsIERQX0xJTktfQldfU0VU LCAyLCBidWYpOwogCWlmIChyZXR2YWwpCiAJCXJldHVybiByZXR2YWw7CiAKQEAgLTMyOCw3ICsz MjMsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2xpbmtfc3RhcnQoc3RydWN0IGFuYWxvZ2l4 X2RwX2RldmljZSAqZHApCiAJCQkgICAgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOwog CiAJcmV0dmFsID0gYW5hbG9naXhfZHBfd3JpdGVfYnl0ZXNfdG9fZHBjZChkcCwgRFBfVFJBSU5J TkdfTEFORTBfU0VULAotCQkJbGFuZV9jb3VudCwgYnVmKTsKKwkJCQkJCSBsYW5lX2NvdW50LCBi dWYpOwogCiAJcmV0dXJuIHJldHZhbDsKIH0KQEAgLTMzNiw3ICszMzEsNyBAQCBzdGF0aWMgaW50 IGFuYWxvZ2l4X2RwX2xpbmtfc3RhcnQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiBz dGF0aWMgdW5zaWduZWQgY2hhciBhbmFsb2dpeF9kcF9nZXRfbGFuZV9zdGF0dXModTggbGlua19z dGF0dXNbMl0sIGludCBsYW5lKQogewogCWludCBzaGlmdCA9IChsYW5lICYgMSkgKiA0OwotCXU4 IGxpbmtfdmFsdWUgPSBsaW5rX3N0YXR1c1tsYW5lPj4xXTsKKwl1OCBsaW5rX3ZhbHVlID0gbGlu a19zdGF0dXNbbGFuZSA+PiAxXTsKIAogCXJldHVybiAobGlua192YWx1ZSA+PiBzaGlmdCkgJiAw eGY7CiB9CkBAIC0zNTUsNyArMzUwLDcgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9jbG9ja19y ZWNvdmVyeV9vayh1OCBsaW5rX3N0YXR1c1syXSwgaW50IGxhbmVfY291bnQpCiB9CiAKIHN0YXRp YyBpbnQgYW5hbG9naXhfZHBfY2hhbm5lbF9lcV9vayh1OCBsaW5rX3N0YXR1c1syXSwgdTggbGlu a19hbGlnbiwKLQkJCQlpbnQgbGFuZV9jb3VudCkKKwkJCQkgICAgIGludCBsYW5lX2NvdW50KQog ewogCWludCBsYW5lOwogCXU4IGxhbmVfc3RhdHVzOwpAQCAtMzczLDExICszNjgsMTEgQEAgc3Rh dGljIGludCBhbmFsb2dpeF9kcF9jaGFubmVsX2VxX29rKHU4IGxpbmtfc3RhdHVzWzJdLCB1OCBs aW5rX2FsaWduLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdW5zaWduZWQgY2hhciBhbmFsb2dp eF9kcF9nZXRfYWRqdXN0X3JlcXVlc3Rfdm9sdGFnZSh1OCBhZGp1c3RfcmVxdWVzdFsyXSwKLQkJ CQkJCQlpbnQgbGFuZSkKK3N0YXRpYyB1bnNpZ25lZCBjaGFyCithbmFsb2dpeF9kcF9nZXRfYWRq dXN0X3JlcXVlc3Rfdm9sdGFnZSh1OCBhZGp1c3RfcmVxdWVzdFsyXSwgaW50IGxhbmUpCiB7CiAJ aW50IHNoaWZ0ID0gKGxhbmUgJiAxKSAqIDQ7Ci0JdTggbGlua192YWx1ZSA9IGFkanVzdF9yZXF1 ZXN0W2xhbmU+PjFdOworCXU4IGxpbmtfdmFsdWUgPSBhZGp1c3RfcmVxdWVzdFtsYW5lID4+IDFd OwogCiAJcmV0dXJuIChsaW5rX3ZhbHVlID4+IHNoaWZ0KSAmIDB4MzsKIH0KQEAgLTM4NywxMyAr MzgyLDEzIEBAIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGFuYWxvZ2l4X2RwX2dldF9hZGp1c3RfcmVx dWVzdF9wcmVfZW1waGFzaXMoCiAJCQkJCWludCBsYW5lKQogewogCWludCBzaGlmdCA9IChsYW5l ICYgMSkgKiA0OwotCXU4IGxpbmtfdmFsdWUgPSBhZGp1c3RfcmVxdWVzdFtsYW5lPj4xXTsKKwl1 OCBsaW5rX3ZhbHVlID0gYWRqdXN0X3JlcXVlc3RbbGFuZSA+PiAxXTsKIAogCXJldHVybiAoKGxp bmtfdmFsdWUgPj4gc2hpZnQpICYgMHhjKSA+PiAyOwogfQogCiBzdGF0aWMgdm9pZCBhbmFsb2dp eF9kcF9zZXRfbGFuZV9saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRw LAotCQkJCQl1OCB0cmFpbmluZ19sYW5lX3NldCwgaW50IGxhbmUpCisJCQkJCSAgICAgICB1OCB0 cmFpbmluZ19sYW5lX3NldCwgaW50IGxhbmUpCiB7CiAJc3dpdGNoIChsYW5lKSB7CiAJY2FzZSAw OgpAQCAtNDEzLDkgKzQwOCw5IEBAIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lX2xp bmtfdHJhaW5pbmcoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCiAJfQogfQogCi1zdGF0 aWMgdW5zaWduZWQgaW50IGFuYWxvZ2l4X2RwX2dldF9sYW5lX2xpbmtfdHJhaW5pbmcoCi0JCQkJ c3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJaW50IGxhbmUpCitzdGF0aWMgdW5z aWduZWQgaW50CithbmFsb2dpeF9kcF9nZXRfbGFuZV9saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFs b2dpeF9kcF9kZXZpY2UgKmRwLAorCQkJCSAgIGludCBsYW5lKQogewogCXUzMiByZWc7CiAKQEAg LTQ0OSw3ICs0NDQsNyBAQCBzdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9yZWR1Y2VfbGlua19yYXRl KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogfQogCiBzdGF0aWMgdm9pZCBhbmFsb2dp eF9kcF9nZXRfYWRqdXN0X3RyYWluaW5nX2xhbmUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAq ZHAsCi0JCQkJCXU4IGFkanVzdF9yZXF1ZXN0WzJdKQorCQkJCQkJIHU4IGFkanVzdF9yZXF1ZXN0 WzJdKQogewogCWludCBsYW5lLCBsYW5lX2NvdW50OwogCXU4IHZvbHRhZ2Vfc3dpbmcsIHByZV9l bXBoYXNpcywgdHJhaW5pbmdfbGFuZTsKQEAgLTYyMiw3ICs2MTcsNyBAQCBzdGF0aWMgaW50IGFu YWxvZ2l4X2RwX3Byb2Nlc3NfZXF1YWxpemVyX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9k ZXZpY2UgKmRwKQogfQogCiBzdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9nZXRfbWF4X3J4X2JhbmR3 aWR0aChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQkJdTggKmJhbmR3aWR0aCkK KwkJCQkJICAgICB1OCAqYmFuZHdpZHRoKQogewogCXU4IGRhdGE7CiAKQEAgLTYzNSw3ICs2MzAs NyBAQCBzdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9nZXRfbWF4X3J4X2JhbmR3aWR0aChzdHJ1Y3Qg YW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIH0KIAogc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfZ2V0 X21heF9yeF9sYW5lX2NvdW50KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCQl1 OCAqbGFuZV9jb3VudCkKKwkJCQkJICAgICAgdTggKmxhbmVfY291bnQpCiB7CiAJdTggZGF0YTsK IApAQCAtNjQ4LDggKzY0Myw4IEBAIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX2dldF9tYXhfcnhf bGFuZV9jb3VudChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIH0KIAogc3RhdGljIHZv aWQgYW5hbG9naXhfZHBfaW5pdF90cmFpbmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpk cCwKLQkJCWVudW0gbGlua19sYW5lX2NvdW50X3R5cGUgbWF4X2xhbmUsCi0JCQllbnVtIGxpbmtf cmF0ZV90eXBlIG1heF9yYXRlKQorCQkJCSAgICAgIGVudW0gbGlua19sYW5lX2NvdW50X3R5cGUg bWF4X2xhbmUsCisJCQkJICAgICAgZW51bSBsaW5rX3JhdGVfdHlwZSBtYXhfcmF0ZSkKIHsKIAkv KgogCSAqIE1BQ1JPX1JTVCBtdXN0IGJlIGFwcGxpZWQgYWZ0ZXIgdGhlIFBMTF9MT0NLIHRvIGF2 b2lkCkBAIC02NjIsNyArNjU3LDcgQEAgc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfaW5pdF90cmFp bmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIAlhbmFsb2dpeF9kcF9nZXRfbWF4 X3J4X2xhbmVfY291bnQoZHAsICZkcC0+bGlua190cmFpbi5sYW5lX2NvdW50KTsKIAogCWlmICgo ZHAtPmxpbmtfdHJhaW4ubGlua19yYXRlICE9IExJTktfUkFURV8xXzYyR0JQUykgJiYKLQkgICAo ZHAtPmxpbmtfdHJhaW4ubGlua19yYXRlICE9IExJTktfUkFURV8yXzcwR0JQUykpIHsKKwkgICAg KGRwLT5saW5rX3RyYWluLmxpbmtfcmF0ZSAhPSBMSU5LX1JBVEVfMl83MEdCUFMpKSB7CiAJCWRl dl9lcnIoZHAtPmRldiwgIlJ4IE1heCBMaW5rIFJhdGUgaXMgYWJub3JtYWwgOiV4ICFcbiIsCiAJ CQlkcC0+bGlua190cmFpbi5saW5rX3JhdGUpOwogCQlkcC0+bGlua190cmFpbi5saW5rX3JhdGUg PSBMSU5LX1JBVEVfMV82MkdCUFM7CkBAIC03MjIsOCArNzE3LDcgQEAgc3RhdGljIGludCBhbmFs b2dpeF9kcF9zd19saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQog fQogCiBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX3NldF9saW5rX3RyYWluKHN0cnVjdCBhbmFsb2dp eF9kcF9kZXZpY2UgKmRwLAotCQkJCXUzMiBjb3VudCwKLQkJCQl1MzIgYnd0eXBlKQorCQkJCSAg ICAgIHUzMiBjb3VudCwgdTMyIGJ3dHlwZSkKIHsKIAlpbnQgaTsKIAlpbnQgcmV0dmFsOwpAQCAt NzU5LDcgKzc1Myw3IEBAIHN0YXRpYyBpbnQgYW5hbG9naXhfZHBfY29uZmlnX3ZpZGVvKHN0cnVj dCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogCQl0aW1lb3V0X2xvb3ArKzsKIAkJaWYgKGFuYWxv Z2l4X2RwX2lzX3NsYXZlX3ZpZGVvX3N0cmVhbV9jbG9ja19vbihkcCkgPT0gMCkKIAkJCWJyZWFr OwotCQlpZiAoRFBfVElNRU9VVF9MT09QX0NPVU5UIDwgdGltZW91dF9sb29wKSB7CisJCWlmICh0 aW1lb3V0X2xvb3AgPiBEUF9USU1FT1VUX0xPT1BfQ09VTlQpIHsKIAkJCWRldl9lcnIoZHAtPmRl diwgIlRpbWVvdXQgb2YgdmlkZW8gc3RyZWFtY2xrIG9rXG4iKTsKIAkJCXJldHVybiAtRVRJTUVE T1VUOwogCQl9CkBAIC03OTAsNyArNzg0LDcgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9jb25m aWdfdmlkZW8oc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJCX0gZWxzZSBpZiAoZG9u ZV9jb3VudCkgewogCQkJZG9uZV9jb3VudCA9IDA7CiAJCX0KLQkJaWYgKERQX1RJTUVPVVRfTE9P UF9DT1VOVCA8IHRpbWVvdXRfbG9vcCkgeworCQlpZiAodGltZW91dF9sb29wID4gRFBfVElNRU9V VF9MT09QX0NPVU5UKSB7CiAJCQlkZXZfZXJyKGRwLT5kZXYsICJUaW1lb3V0IG9mIHZpZGVvIHN0 cmVhbWNsayBva1xuIik7CiAJCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAkJfQpAQCAtODA0LDI1ICs3 OTgsMjQgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9jb25maWdfdmlkZW8oc3RydWN0IGFuYWxv Z2l4X2RwX2RldmljZSAqZHApCiAJcmV0dXJuIHJldHZhbDsKIH0KIAotc3RhdGljIHZvaWQgYW5h bG9naXhfZHBfZW5hYmxlX3NjcmFtYmxlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCBi b29sIGVuYWJsZSkKK3N0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX2VuYWJsZV9zY3JhbWJsZShzdHJ1 Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkJYm9vbCBlbmFibGUpCiB7CiAJdTggZGF0 YTsKIAogCWlmIChlbmFibGUpIHsKIAkJYW5hbG9naXhfZHBfZW5hYmxlX3NjcmFtYmxpbmcoZHAp OwogCi0JCWFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9mcm9tX2RwY2QoZHAsCi0JCQlEUF9UUkFJTklO R19QQVRURVJOX1NFVCwKLQkJCSZkYXRhKTsKKwkJYW5hbG9naXhfZHBfcmVhZF9ieXRlX2Zyb21f ZHBjZChkcCwgRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVQsCisJCQkJCQkmZGF0YSk7CiAJCWFuYWxv Z2l4X2RwX3dyaXRlX2J5dGVfdG9fZHBjZChkcCwKIAkJCURQX1RSQUlOSU5HX1BBVFRFUk5fU0VU LAogCQkJKHU4KShkYXRhICYgfkRQX0xJTktfU0NSQU1CTElOR19ESVNBQkxFKSk7CiAJfSBlbHNl IHsKIAkJYW5hbG9naXhfZHBfZGlzYWJsZV9zY3JhbWJsaW5nKGRwKTsKIAotCQlhbmFsb2dpeF9k cF9yZWFkX2J5dGVfZnJvbV9kcGNkKGRwLAotCQkJRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVQsCi0J CQkmZGF0YSk7CisJCWFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9mcm9tX2RwY2QoZHAsIERQX1RSQUlO SU5HX1BBVFRFUk5fU0VULAorCQkJCQkJJmRhdGEpOwogCQlhbmFsb2dpeF9kcF93cml0ZV9ieXRl X3RvX2RwY2QoZHAsCiAJCQlEUF9UUkFJTklOR19QQVRURVJOX1NFVCwKIAkJCSh1OCkoZGF0YSB8 IERQX0xJTktfU0NSQU1CTElOR19ESVNBQkxFKSk7CkBAIC04OTUsNyArODg4LDcgQEAgc3RhdGlj IHZvaWQgYW5hbG9naXhfZHBfY29tbWl0KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQog CX0KIAogCXJldCA9IGFuYWxvZ2l4X2RwX3NldF9saW5rX3RyYWluKGRwLCBkcC0+dmlkZW9faW5m by0+bGFuZV9jb3VudCwKLQkJCQkJZHAtPnZpZGVvX2luZm8tPmxpbmtfcmF0ZSk7CisJCQkJCSBk cC0+dmlkZW9faW5mby0+bGlua19yYXRlKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZHAtPmRl diwgInVuYWJsZSB0byBkbyBsaW5rIHRyYWluXG4iKTsKIAkJcmV0dXJuOwpAQCAtMTA4NSw4ICsx MDc4LDggQEAgc3RhdGljIHN0cnVjdCB2aWRlb19pbmZvICphbmFsb2dpeF9kcF9kdF9wYXJzZV9w ZGF0YShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJc3RydWN0IGRldmljZV9ub2RlICpkcF9ub2RlID0g ZGV2LT5vZl9ub2RlOwogCXN0cnVjdCB2aWRlb19pbmZvICpkcF92aWRlb19jb25maWc7CiAKLQlk cF92aWRlb19jb25maWcgPSBkZXZtX2t6YWxsb2MoZGV2LAotCQkJCXNpemVvZigqZHBfdmlkZW9f Y29uZmlnKSwgR0ZQX0tFUk5FTCk7CisJZHBfdmlkZW9fY29uZmlnID0gZGV2bV9remFsbG9jKGRl diwgc2l6ZW9mKCpkcF92aWRlb19jb25maWcpLAorCQkJCSAgICAgICBHRlBfS0VSTkVMKTsKIAlp ZiAoIWRwX3ZpZGVvX2NvbmZpZykKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKQEAgLTEx MDAsMzcgKzEwOTMsMzcgQEAgc3RhdGljIHN0cnVjdCB2aWRlb19pbmZvICphbmFsb2dpeF9kcF9k dF9wYXJzZV9wZGF0YShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCW9mX3Byb3BlcnR5X3JlYWRfYm9v bChkcF9ub2RlLCAiaW50ZXJsYWNlZCIpOwogCiAJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRw X25vZGUsICJzYW1zdW5nLGNvbG9yLXNwYWNlIiwKLQkJCQkmZHBfdmlkZW9fY29uZmlnLT5jb2xv cl9zcGFjZSkpIHsKKwkJCQkgJmRwX3ZpZGVvX2NvbmZpZy0+Y29sb3Jfc3BhY2UpKSB7CiAJCWRl dl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBjb2xvci1zcGFjZVxuIik7CiAJCXJldHVybiBFUlJf UFRSKC1FSU5WQUwpOwogCX0KIAogCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihkcF9ub2RlLCAi c2Ftc3VuZyxkeW5hbWljLXJhbmdlIiwKLQkJCQkmZHBfdmlkZW9fY29uZmlnLT5keW5hbWljX3Jh bmdlKSkgeworCQkJCSAmZHBfdmlkZW9fY29uZmlnLT5keW5hbWljX3JhbmdlKSkgewogCQlkZXZf ZXJyKGRldiwgImZhaWxlZCB0byBnZXQgZHluYW1pYy1yYW5nZVxuIik7CiAJCXJldHVybiBFUlJf UFRSKC1FSU5WQUwpOwogCX0KIAogCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihkcF9ub2RlLCAi c2Ftc3VuZyx5Y2Jjci1jb2VmZiIsCi0JCQkJJmRwX3ZpZGVvX2NvbmZpZy0+eWNiY3JfY29lZmYp KSB7CisJCQkJICZkcF92aWRlb19jb25maWctPnljYmNyX2NvZWZmKSkgewogCQlkZXZfZXJyKGRl diwgImZhaWxlZCB0byBnZXQgeWNiY3ItY29lZmZcbiIpOwogCQlyZXR1cm4gRVJSX1BUUigtRUlO VkFMKTsKIAl9CiAKIAlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIoZHBfbm9kZSwgInNhbXN1bmcs Y29sb3ItZGVwdGgiLAotCQkJCSZkcF92aWRlb19jb25maWctPmNvbG9yX2RlcHRoKSkgeworCQkJ CSAmZHBfdmlkZW9fY29uZmlnLT5jb2xvcl9kZXB0aCkpIHsKIAkJZGV2X2VycihkZXYsICJmYWls ZWQgdG8gZ2V0IGNvbG9yLWRlcHRoXG4iKTsKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAJ fQogCiAJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRwX25vZGUsICJzYW1zdW5nLGxpbmstcmF0 ZSIsCi0JCQkJJmRwX3ZpZGVvX2NvbmZpZy0+bGlua19yYXRlKSkgeworCQkJCSAmZHBfdmlkZW9f Y29uZmlnLT5saW5rX3JhdGUpKSB7CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBsaW5r LXJhdGVcbiIpOwogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAl9CiAKIAlpZiAob2ZfcHJv cGVydHlfcmVhZF91MzIoZHBfbm9kZSwgInNhbXN1bmcsbGFuZS1jb3VudCIsCi0JCQkJJmRwX3Zp ZGVvX2NvbmZpZy0+bGFuZV9jb3VudCkpIHsKKwkJCQkgJmRwX3ZpZGVvX2NvbmZpZy0+bGFuZV9j b3VudCkpIHsKIAkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IGxhbmUtY291bnRcbiIpOwog CQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAl9CkBAIC0xMjM5LDcgKzEyMzIsNyBAQCBpbnQg YW5hbG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpk cm1fZGV2LAogCXBtX3J1bnRpbWVfZW5hYmxlKGRldik7CiAKIAlyZXQgPSBkZXZtX3JlcXVlc3Rf aXJxKCZwZGV2LT5kZXYsIGRwLT5pcnEsIGFuYWxvZ2l4X2RwX2lycV9oYW5kbGVyLAotCQkJaXJx X2ZsYWdzLCAiYW5hbG9naXgtZHAiLCBkcCk7CisJCQkgICAgICAgaXJxX2ZsYWdzLCAiYW5hbG9n aXgtZHAiLCBkcCk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQg dG8gcmVxdWVzdCBpcnFcbiIpOwogCQlnb3RvIGVycl9kaXNhYmxlX3BtX3J1bnRpbWU7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUu aCBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCmlu ZGV4IDY1Y2U3ZjEuLjE0ZDIwYmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv YW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv YW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCkBAIC0xODcsNTAgKzE4Nyw1NSBAQCBpbnQgYW5h bG9naXhfZHBfZ2V0X3BsdWdfaW5fc3RhdHVzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRw KTsKIHZvaWQgYW5hbG9naXhfZHBfZW5hYmxlX3N3X2Z1bmN0aW9uKHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwKTsKIGludCBhbmFsb2dpeF9kcF9zdGFydF9hdXhfdHJhbnNhY3Rpb24oc3Ry dWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwogaW50IGFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVf dG9fZHBjZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQl1bnNpZ25lZCBpbnQg cmVnX2FkZHIsCi0JCQkJdW5zaWduZWQgY2hhciBkYXRhKTsKKwkJCQkgICB1bnNpZ25lZCBpbnQg cmVnX2FkZHIsCisJCQkJICAgdW5zaWduZWQgY2hhciBkYXRhKTsKIGludCBhbmFsb2dpeF9kcF9y ZWFkX2J5dGVfZnJvbV9kcGNkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXVu c2lnbmVkIGludCByZWdfYWRkciwKLQkJCQl1bnNpZ25lZCBjaGFyICpkYXRhKTsKKwkJCQkgICAg dW5zaWduZWQgaW50IHJlZ19hZGRyLAorCQkJCSAgICB1bnNpZ25lZCBjaGFyICpkYXRhKTsKIGlu dCBhbmFsb2dpeF9kcF93cml0ZV9ieXRlc190b19kcGNkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZp Y2UgKmRwLAotCQkJCXVuc2lnbmVkIGludCByZWdfYWRkciwKLQkJCQl1bnNpZ25lZCBpbnQgY291 bnQsCi0JCQkJdW5zaWduZWQgY2hhciBkYXRhW10pOworCQkJCSAgICB1bnNpZ25lZCBpbnQgcmVn X2FkZHIsCisJCQkJICAgIHVuc2lnbmVkIGludCBjb3VudCwKKwkJCQkgICAgdW5zaWduZWQgY2hh ciBkYXRhW10pOwogaW50IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZXNfZnJvbV9kcGNkKHN0cnVjdCBh bmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXVuc2lnbmVkIGludCByZWdfYWRkciwKLQkJCQl1 bnNpZ25lZCBpbnQgY291bnQsCi0JCQkJdW5zaWduZWQgY2hhciBkYXRhW10pOworCQkJCSAgICAg dW5zaWduZWQgaW50IHJlZ19hZGRyLAorCQkJCSAgICAgdW5zaWduZWQgaW50IGNvdW50LAorCQkJ CSAgICAgdW5zaWduZWQgY2hhciBkYXRhW10pOwogaW50IGFuYWxvZ2l4X2RwX3NlbGVjdF9pMmNf ZGV2aWNlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXVuc2lnbmVkIGludCBk ZXZpY2VfYWRkciwKLQkJCQl1bnNpZ25lZCBpbnQgcmVnX2FkZHIpOworCQkJCSAgdW5zaWduZWQg aW50IGRldmljZV9hZGRyLAorCQkJCSAgdW5zaWduZWQgaW50IHJlZ19hZGRyKTsKIGludCBhbmFs b2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9pMmMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAs Ci0JCQkJdW5zaWduZWQgaW50IGRldmljZV9hZGRyLAotCQkJCXVuc2lnbmVkIGludCByZWdfYWRk ciwKLQkJCQl1bnNpZ25lZCBpbnQgKmRhdGEpOworCQkJCSAgIHVuc2lnbmVkIGludCBkZXZpY2Vf YWRkciwKKwkJCQkgICB1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCisJCQkJICAgdW5zaWduZWQgaW50 ICpkYXRhKTsKIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVzX2Zyb21faTJjKHN0cnVjdCBhbmFs b2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXVuc2lnbmVkIGludCBkZXZpY2VfYWRkciwKLQkJCQl1 bnNpZ25lZCBpbnQgcmVnX2FkZHIsCi0JCQkJdW5zaWduZWQgaW50IGNvdW50LAotCQkJCXVuc2ln bmVkIGNoYXIgZWRpZFtdKTsKKwkJCQkgICAgdW5zaWduZWQgaW50IGRldmljZV9hZGRyLAorCQkJ CSAgICB1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCisJCQkJICAgIHVuc2lnbmVkIGludCBjb3VudCwK KwkJCQkgICAgdW5zaWduZWQgY2hhciBlZGlkW10pOwogdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGlu a19iYW5kd2lkdGgoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiBid3R5cGUpOwog dm9pZCBhbmFsb2dpeF9kcF9nZXRfbGlua19iYW5kd2lkdGgoc3RydWN0IGFuYWxvZ2l4X2RwX2Rl dmljZSAqZHAsIHUzMiAqYnd0eXBlKTsKIHZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmVfY291bnQo c3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiBjb3VudCk7CiB2b2lkIGFuYWxvZ2l4 X2RwX2dldF9sYW5lX2NvdW50KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgKmNv dW50KTsKLXZvaWQgYW5hbG9naXhfZHBfZW5hYmxlX2VuaGFuY2VkX21vZGUoc3RydWN0IGFuYWxv Z2l4X2RwX2RldmljZSAqZHAsIGJvb2wgZW5hYmxlKTsKK3ZvaWQgYW5hbG9naXhfZHBfZW5hYmxl X2VuaGFuY2VkX21vZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJCQkJICAgICAg Ym9vbCBlbmFibGUpOwogdm9pZCBhbmFsb2dpeF9kcF9zZXRfdHJhaW5pbmdfcGF0dGVybihzdHJ1 Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQllbnVtIHBhdHRlcm5fc2V0IHBhdHRlcm4p Owotdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTBfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dp eF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwpOwotdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTFf cHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwpOwot dm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTJfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwpOwotdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTNfcHJl X2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwpOworCQkJ CSAgICAgIGVudW0gcGF0dGVybl9zZXQgcGF0dGVybik7Cit2b2lkIGFuYWxvZ2l4X2RwX3NldF9s YW5lMF9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJCQkJCXUz MiBsZXZlbCk7Cit2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMV9wcmVfZW1waGFzaXMoc3RydWN0 IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJCQkJCXUzMiBsZXZlbCk7Cit2b2lkIGFuYWxvZ2l4 X2RwX3NldF9sYW5lMl9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAs CisJCQkJCXUzMiBsZXZlbCk7Cit2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lM19wcmVfZW1waGFz aXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJCQkJCXUzMiBsZXZlbCk7CiB2b2lk IGFuYWxvZ2l4X2RwX3NldF9sYW5lMF9saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9k ZXZpY2UgKmRwLAotCQkJCXUzMiB0cmFpbmluZ19sYW5lKTsKKwkJCQkJIHUzMiB0cmFpbmluZ19s YW5lKTsKIHZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUxX2xpbmtfdHJhaW5pbmcoc3RydWN0IGFu YWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJdTMyIHRyYWluaW5nX2xhbmUpOworCQkJCQkgdTMy IHRyYWluaW5nX2xhbmUpOwogdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTJfbGlua190cmFpbmlu ZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQl1MzIgdHJhaW5pbmdfbGFuZSk7 CisJCQkJCSB1MzIgdHJhaW5pbmdfbGFuZSk7CiB2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lM19s aW5rX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXUzMiB0cmFp bmluZ19sYW5lKTsKKwkJCQkJIHUzMiB0cmFpbmluZ19sYW5lKTsKIHUzMiBhbmFsb2dpeF9kcF9n ZXRfbGFuZTBfbGlua190cmFpbmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7CiB1 MzIgYW5hbG9naXhfZHBfZ2V0X2xhbmUxX2xpbmtfdHJhaW5pbmcoc3RydWN0IGFuYWxvZ2l4X2Rw X2RldmljZSAqZHApOwogdTMyIGFuYWxvZ2l4X2RwX2dldF9sYW5lMl9saW5rX3RyYWluaW5nKHN0 cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKQEAgLTI0MSwxMSArMjQ2LDEyIEBAIHZvaWQg YW5hbG9naXhfZHBfaW5pdF92aWRlbyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7CiB2 b2lkIGFuYWxvZ2l4X2RwX3NldF92aWRlb19jb2xvcl9mb3JtYXQoc3RydWN0IGFuYWxvZ2l4X2Rw X2RldmljZSAqZHApOwogaW50IGFuYWxvZ2l4X2RwX2lzX3NsYXZlX3ZpZGVvX3N0cmVhbV9jbG9j a19vbihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7CiB2b2lkIGFuYWxvZ2l4X2RwX3Nl dF92aWRlb19jcl9tbihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCWVudW0gY2xv Y2tfcmVjb3ZlcnlfbV92YWx1ZV90eXBlIHR5cGUsCi0JCQl1MzIgbV92YWx1ZSwKLQkJCXUzMiBu X3ZhbHVlKTsKKwkJCQkgZW51bSBjbG9ja19yZWNvdmVyeV9tX3ZhbHVlX3R5cGUgdHlwZSwKKwkJ CQkgdTMyIG1fdmFsdWUsCisJCQkJIHUzMiBuX3ZhbHVlKTsKIHZvaWQgYW5hbG9naXhfZHBfc2V0 X3ZpZGVvX3RpbWluZ19tb2RlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgdHlw ZSk7Ci12b2lkIGFuYWxvZ2l4X2RwX2VuYWJsZV92aWRlb19tYXN0ZXIoc3RydWN0IGFuYWxvZ2l4 X2RwX2RldmljZSAqZHAsIGJvb2wgZW5hYmxlKTsKK3ZvaWQgYW5hbG9naXhfZHBfZW5hYmxlX3Zp ZGVvX21hc3RlcihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkgICAgIGJvb2wg ZW5hYmxlKTsKIHZvaWQgYW5hbG9naXhfZHBfc3RhcnRfdmlkZW8oc3RydWN0IGFuYWxvZ2l4X2Rw X2RldmljZSAqZHApOwogaW50IGFuYWxvZ2l4X2RwX2lzX3ZpZGVvX3N0cmVhbV9vbihzdHJ1Y3Qg YW5hbG9naXhfZHBfZGV2aWNlICpkcCk7CiB2b2lkIGFuYWxvZ2l4X2RwX2NvbmZpZ192aWRlb19z bGF2ZV9tb2RlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfcmVnLmMgYi9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX3JlZy5jCmluZGV4IDQ0MmNjNjYu LmEzODhjMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5h bG9naXhfZHBfcmVnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFs b2dpeF9kcF9yZWcuYwpAQCAtNTQsMTAgKzU0LDEwIEBAIHZvaWQgYW5hbG9naXhfZHBfbGFuZV9z d2FwKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCBib29sIGVuYWJsZSkKIAogCWlmIChl bmFibGUpCiAJCXJlZyA9IExBTkUzX01BUF9MT0dJQ19MQU5FXzAgfCBMQU5FMl9NQVBfTE9HSUNf TEFORV8xIHwKLQkJCUxBTkUxX01BUF9MT0dJQ19MQU5FXzIgfCBMQU5FMF9NQVBfTE9HSUNfTEFO RV8zOworCQkgICAgICBMQU5FMV9NQVBfTE9HSUNfTEFORV8yIHwgTEFORTBfTUFQX0xPR0lDX0xB TkVfMzsKIAllbHNlCiAJCXJlZyA9IExBTkUzX01BUF9MT0dJQ19MQU5FXzMgfCBMQU5FMl9NQVBf TE9HSUNfTEFORV8yIHwKLQkJCUxBTkUxX01BUF9MT0dJQ19MQU5FXzEgfCBMQU5FMF9NQVBfTE9H SUNfTEFORV8wOworCQkgICAgICBMQU5FMV9NQVBfTE9HSUNfTEFORV8xIHwgTEFORTBfTUFQX0xP R0lDX0xBTkVfMDsKIAogCXdyaXRlbChyZWcsIGRwLT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQX0xB TkVfTUFQKTsKIH0KQEAgLTIwMiw4ICsyMDIsOCBAQCB2b2lkIGFuYWxvZ2l4X2RwX3NldF9wbGxf cG93ZXJfZG93bihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwgYm9vbCBlbmFibGUpCiB9 CiAKIHZvaWQgYW5hbG9naXhfZHBfc2V0X2FuYWxvZ19wb3dlcl9kb3duKHN0cnVjdCBhbmFsb2dp eF9kcF9kZXZpY2UgKmRwLAotCQkJCWVudW0gYW5hbG9nX3Bvd2VyX2Jsb2NrIGJsb2NrLAotCQkJ CWJvb2wgZW5hYmxlKQorCQkJCSAgICAgICBlbnVtIGFuYWxvZ19wb3dlcl9ibG9jayBibG9jaywK KwkJCQkgICAgICAgYm9vbCBlbmFibGUpCiB7CiAJdTMyIHJlZzsKIApAQCAtMzk5LDggKzM5OSw4 IEBAIHZvaWQgYW5hbG9naXhfZHBfaW5pdF9hdXgoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAq ZHApCiAJYW5hbG9naXhfZHBfcmVzZXRfYXV4KGRwKTsKIAogCS8qIERpc2FibGUgQVVYIHRyYW5z YWN0aW9uIEgvVyByZXRyeSAqLwotCXJlZyA9IEFVWF9CSVRfUEVSSU9EX0VYUEVDVEVEX0RFTEFZ KDMpIHwgQVVYX0hXX1JFVFJZX0NPVU5UX1NFTCgwKXwKLQkJQVVYX0hXX1JFVFJZX0lOVEVSVkFM XzYwMF9NSUNST1NFQ09ORFM7CisJcmVnID0gQVVYX0JJVF9QRVJJT0RfRVhQRUNURURfREVMQVko MykgfCBBVVhfSFdfUkVUUllfQ09VTlRfU0VMKDApIHwKKwkgICAgICBBVVhfSFdfUkVUUllfSU5U RVJWQUxfNjAwX01JQ1JPU0VDT05EUzsKIAl3cml0ZWwocmVnLCBkcC0+cmVnX2Jhc2UgKyBBTkFM T0dJWF9EUF9BVVhfSFdfUkVUUllfQ1RMKTsKIAogCS8qIFJlY2VpdmUgQVVYIENoYW5uZWwgREVG RVIgY29tbWFuZHMgZXF1YWwgdG8gREVGRkVSX0NPVU5UKjY0ICovCkBAIC00ODMsOCArNDgzLDgg QEAgaW50IGFuYWxvZ2l4X2RwX3N0YXJ0X2F1eF90cmFuc2FjdGlvbihzdHJ1Y3QgYW5hbG9naXhf ZHBfZGV2aWNlICpkcCkKIH0KIAogaW50IGFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVfdG9fZHBjZChz dHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQl1bnNpZ25lZCBpbnQgcmVnX2FkZHIs Ci0JCQkJdW5zaWduZWQgY2hhciBkYXRhKQorCQkJCSAgIHVuc2lnbmVkIGludCByZWdfYWRkciwK KwkJCQkgICB1bnNpZ25lZCBjaGFyIGRhdGEpCiB7CiAJdTMyIHJlZzsKIAlpbnQgaTsKQEAgLTUx OSwxNyArNTE5LDE2IEBAIGludCBhbmFsb2dpeF9kcF93cml0ZV9ieXRlX3RvX2RwY2Qoc3RydWN0 IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCiAJCXJldHZhbCA9IGFuYWxvZ2l4X2RwX3N0YXJ0X2F1 eF90cmFuc2FjdGlvbihkcCk7CiAJCWlmIChyZXR2YWwgPT0gMCkKIAkJCWJyZWFrOwotCQllbHNl Ci0JCQlkZXZfZGJnKGRwLT5kZXYsICIlczogQXV4IFRyYW5zYWN0aW9uIGZhaWwhXG4iLAotCQkJ CV9fZnVuY19fKTsKKworCQlkZXZfZGJnKGRwLT5kZXYsICIlczogQXV4IFRyYW5zYWN0aW9uIGZh aWwhXG4iLCBfX2Z1bmNfXyk7CiAJfQogCiAJcmV0dXJuIHJldHZhbDsKIH0KIAogaW50IGFuYWxv Z2l4X2RwX3JlYWRfYnl0ZV9mcm9tX2RwY2Qoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAs Ci0JCQkJdW5zaWduZWQgaW50IHJlZ19hZGRyLAotCQkJCXVuc2lnbmVkIGNoYXIgKmRhdGEpCisJ CQkJICAgIHVuc2lnbmVkIGludCByZWdfYWRkciwKKwkJCQkgICAgdW5zaWduZWQgY2hhciAqZGF0 YSkKIHsKIAl1MzIgcmVnOwogCWludCBpOwpAQCAtNTYwLDkgKzU1OSw4IEBAIGludCBhbmFsb2dp eF9kcF9yZWFkX2J5dGVfZnJvbV9kcGNkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAog CQlyZXR2YWwgPSBhbmFsb2dpeF9kcF9zdGFydF9hdXhfdHJhbnNhY3Rpb24oZHApOwogCQlpZiAo cmV0dmFsID09IDApCiAJCQlicmVhazsKLQkJZWxzZQotCQkJZGV2X2RiZyhkcC0+ZGV2LCAiJXM6 IEF1eCBUcmFuc2FjdGlvbiBmYWlsIVxuIiwKLQkJCQlfX2Z1bmNfXyk7CisKKwkJZGV2X2RiZyhk cC0+ZGV2LCAiJXM6IEF1eCBUcmFuc2FjdGlvbiBmYWlsIVxuIiwgX19mdW5jX18pOwogCX0KIAog CS8qIFJlYWQgZGF0YSBidWZmZXIgKi8KQEAgLTU3Myw5ICs1NzEsOSBAQCBpbnQgYW5hbG9naXhf ZHBfcmVhZF9ieXRlX2Zyb21fZHBjZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIH0K IAogaW50IGFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVzX3RvX2RwY2Qoc3RydWN0IGFuYWxvZ2l4X2Rw X2RldmljZSAqZHAsCi0JCQkJdW5zaWduZWQgaW50IHJlZ19hZGRyLAotCQkJCXVuc2lnbmVkIGlu dCBjb3VudCwKLQkJCQl1bnNpZ25lZCBjaGFyIGRhdGFbXSkKKwkJCQkgICAgdW5zaWduZWQgaW50 IHJlZ19hZGRyLAorCQkJCSAgICB1bnNpZ25lZCBpbnQgY291bnQsCisJCQkJICAgIHVuc2lnbmVk IGNoYXIgZGF0YVtdKQogewogCXUzMiByZWc7CiAJdW5zaWduZWQgaW50IHN0YXJ0X29mZnNldDsK QEAgLTYwOCw4ICs2MDYsOSBAQCBpbnQgYW5hbG9naXhfZHBfd3JpdGVfYnl0ZXNfdG9fZHBjZChz dHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIAkJCWZvciAoY3VyX2RhdGFfaWR4ID0gMDsg Y3VyX2RhdGFfaWR4IDwgY3VyX2RhdGFfY291bnQ7CiAJCQkgICAgIGN1cl9kYXRhX2lkeCsrKSB7 CiAJCQkJcmVnID0gZGF0YVtzdGFydF9vZmZzZXQgKyBjdXJfZGF0YV9pZHhdOwotCQkJCXdyaXRl bChyZWcsIGRwLT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQX0JVRl9EQVRBXzAKLQkJCQkJCQkgICsg NCAqIGN1cl9kYXRhX2lkeCk7CisJCQkJd3JpdGVsKHJlZywgZHAtPnJlZ19iYXNlICsKKwkJCQkg ICAgICAgQU5BTE9HSVhfRFBfQlVGX0RBVEFfMCArCisJCQkJICAgICAgIDQgKiBjdXJfZGF0YV9p ZHgpOwogCQkJfQogCiAJCQkvKgpAQCAtNjI1LDkgKzYyNCw5IEBAIGludCBhbmFsb2dpeF9kcF93 cml0ZV9ieXRlc190b19kcGNkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogCQkJcmV0 dmFsID0gYW5hbG9naXhfZHBfc3RhcnRfYXV4X3RyYW5zYWN0aW9uKGRwKTsKIAkJCWlmIChyZXR2 YWwgPT0gMCkKIAkJCQlicmVhazsKLQkJCWVsc2UKLQkJCQlkZXZfZGJnKGRwLT5kZXYsICIlczog QXV4IFRyYW5zYWN0aW9uIGZhaWwhXG4iLAotCQkJCQlfX2Z1bmNfXyk7CisKKwkJCWRldl9kYmco ZHAtPmRldiwgIiVzOiBBdXggVHJhbnNhY3Rpb24gZmFpbCFcbiIsCisJCQkJX19mdW5jX18pOwog CQl9CiAKIAkJc3RhcnRfb2Zmc2V0ICs9IGN1cl9kYXRhX2NvdW50OwpAQCAtNjM3LDkgKzYzNiw5 IEBAIGludCBhbmFsb2dpeF9kcF93cml0ZV9ieXRlc190b19kcGNkKHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwLAogfQogCiBpbnQgYW5hbG9naXhfZHBfcmVhZF9ieXRlc19mcm9tX2RwY2Qo c3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJdW5zaWduZWQgaW50IHJlZ19hZGRy LAotCQkJCXVuc2lnbmVkIGludCBjb3VudCwKLQkJCQl1bnNpZ25lZCBjaGFyIGRhdGFbXSkKKwkJ CQkgICAgIHVuc2lnbmVkIGludCByZWdfYWRkciwKKwkJCQkgICAgIHVuc2lnbmVkIGludCBjb3Vu dCwKKwkJCQkgICAgIHVuc2lnbmVkIGNoYXIgZGF0YVtdKQogewogCXUzMiByZWc7CiAJdW5zaWdu ZWQgaW50IHN0YXJ0X29mZnNldDsKQEAgLTY4Myw5ICs2ODIsOSBAQCBpbnQgYW5hbG9naXhfZHBf cmVhZF9ieXRlc19mcm9tX2RwY2Qoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCiAJCQly ZXR2YWwgPSBhbmFsb2dpeF9kcF9zdGFydF9hdXhfdHJhbnNhY3Rpb24oZHApOwogCQkJaWYgKHJl dHZhbCA9PSAwKQogCQkJCWJyZWFrOwotCQkJZWxzZQotCQkJCWRldl9kYmcoZHAtPmRldiwgIiVz OiBBdXggVHJhbnNhY3Rpb24gZmFpbCFcbiIsCi0JCQkJCV9fZnVuY19fKTsKKworCQkJZGV2X2Ri ZyhkcC0+ZGV2LCAiJXM6IEF1eCBUcmFuc2FjdGlvbiBmYWlsIVxuIiwKKwkJCQlfX2Z1bmNfXyk7 CiAJCX0KIAogCQlmb3IgKGN1cl9kYXRhX2lkeCA9IDA7IGN1cl9kYXRhX2lkeCA8IGN1cl9kYXRh X2NvdW50OwpAQCAtNzAzLDggKzcwMiw4IEBAIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVzX2Zy b21fZHBjZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIH0KIAogaW50IGFuYWxvZ2l4 X2RwX3NlbGVjdF9pMmNfZGV2aWNlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJ CXVuc2lnbmVkIGludCBkZXZpY2VfYWRkciwKLQkJCQl1bnNpZ25lZCBpbnQgcmVnX2FkZHIpCisJ CQkJICB1bnNpZ25lZCBpbnQgZGV2aWNlX2FkZHIsCisJCQkJICB1bnNpZ25lZCBpbnQgcmVnX2Fk ZHIpCiB7CiAJdTMyIHJlZzsKIAlpbnQgcmV0dmFsOwpAQCAtNzM2LDkgKzczNSw5IEBAIGludCBh bmFsb2dpeF9kcF9zZWxlY3RfaTJjX2RldmljZShzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpk cCwKIH0KIAogaW50IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9mcm9tX2kyYyhzdHJ1Y3QgYW5hbG9n aXhfZHBfZGV2aWNlICpkcCwKLQkJCQl1bnNpZ25lZCBpbnQgZGV2aWNlX2FkZHIsCi0JCQkJdW5z aWduZWQgaW50IHJlZ19hZGRyLAotCQkJCXVuc2lnbmVkIGludCAqZGF0YSkKKwkJCQkgICB1bnNp Z25lZCBpbnQgZGV2aWNlX2FkZHIsCisJCQkJICAgdW5zaWduZWQgaW50IHJlZ19hZGRyLAorCQkJ CSAgIHVuc2lnbmVkIGludCAqZGF0YSkKIHsKIAl1MzIgcmVnOwogCWludCBpOwpAQCAtNzUwLDcg Kzc0OSw4IEBAIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9pMmMoc3RydWN0IGFuYWxv Z2l4X2RwX2RldmljZSAqZHAsCiAJCXdyaXRlbChyZWcsIGRwLT5yZWdfYmFzZSArIEFOQUxPR0lY X0RQX0JVRkZFUl9EQVRBX0NUTCk7CiAKIAkJLyogU2VsZWN0IEVESUQgZGV2aWNlICovCi0JCXJl dHZhbCA9IGFuYWxvZ2l4X2RwX3NlbGVjdF9pMmNfZGV2aWNlKGRwLCBkZXZpY2VfYWRkciwgcmVn X2FkZHIpOworCQlyZXR2YWwgPSBhbmFsb2dpeF9kcF9zZWxlY3RfaTJjX2RldmljZShkcCwgZGV2 aWNlX2FkZHIsCisJCQkJCQkgICAgICAgcmVnX2FkZHIpOwogCQlpZiAocmV0dmFsICE9IDApCiAJ CQljb250aW51ZTsKIApAQCAtNzY3LDkgKzc2Nyw4IEBAIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5 dGVfZnJvbV9pMmMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCiAJCXJldHZhbCA9IGFu YWxvZ2l4X2RwX3N0YXJ0X2F1eF90cmFuc2FjdGlvbihkcCk7CiAJCWlmIChyZXR2YWwgPT0gMCkK IAkJCWJyZWFrOwotCQllbHNlCi0JCQlkZXZfZGJnKGRwLT5kZXYsICIlczogQXV4IFRyYW5zYWN0 aW9uIGZhaWwhXG4iLAotCQkJCV9fZnVuY19fKTsKKworCQlkZXZfZGJnKGRwLT5kZXYsICIlczog QXV4IFRyYW5zYWN0aW9uIGZhaWwhXG4iLCBfX2Z1bmNfXyk7CiAJfQogCiAJLyogUmVhZCBkYXRh ICovCkBAIC03ODAsMTAgKzc3OSwxMCBAQCBpbnQgYW5hbG9naXhfZHBfcmVhZF9ieXRlX2Zyb21f aTJjKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogfQogCiBpbnQgYW5hbG9naXhfZHBf cmVhZF9ieXRlc19mcm9tX2kyYyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQl1 bnNpZ25lZCBpbnQgZGV2aWNlX2FkZHIsCi0JCQkJdW5zaWduZWQgaW50IHJlZ19hZGRyLAotCQkJ CXVuc2lnbmVkIGludCBjb3VudCwKLQkJCQl1bnNpZ25lZCBjaGFyIGVkaWRbXSkKKwkJCQkgICAg dW5zaWduZWQgaW50IGRldmljZV9hZGRyLAorCQkJCSAgICB1bnNpZ25lZCBpbnQgcmVnX2FkZHIs CisJCQkJICAgIHVuc2lnbmVkIGludCBjb3VudCwKKwkJCQkgICAgdW5zaWduZWQgY2hhciBlZGlk W10pCiB7CiAJdTMyIHJlZzsKIAl1bnNpZ25lZCBpbnQgaSwgajsKQEAgLTgyOCwxNSArODI3LDE0 IEBAIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVzX2Zyb21faTJjKHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwLAogCQkJCXJldHZhbCA9IGFuYWxvZ2l4X2RwX3N0YXJ0X2F1eF90cmFuc2Fj dGlvbihkcCk7CiAJCQkJaWYgKHJldHZhbCA9PSAwKQogCQkJCQlicmVhazsKLQkJCQllbHNlCi0J CQkJCWRldl9kYmcoZHAtPmRldiwKLQkJCQkJCSIlczogQXV4IFRyYW5zYWN0aW9uIGZhaWwhXG4i LAotCQkJCQkJX19mdW5jX18pOworCisJCQkJZGV2X2RiZyhkcC0+ZGV2LCAiJXM6IEF1eCBUcmFu c2FjdGlvbiBmYWlsIVxuIiwKKwkJCQkJX19mdW5jX18pOwogCQkJfQogCQkJLyogQ2hlY2sgaWYg Unggc2VuZHMgZGVmZXIgKi8KIAkJCXJlZyA9IHJlYWRsKGRwLT5yZWdfYmFzZSArIEFOQUxPR0lY X0RQX0FVWF9SWF9DT01NKTsKIAkJCWlmIChyZWcgPT0gQVVYX1JYX0NPTU1fQVVYX0RFRkVSIHx8 Ci0JCQkJcmVnID09IEFVWF9SWF9DT01NX0kyQ19ERUZFUikgeworCQkJICAgIHJlZyA9PSBBVVhf UlhfQ09NTV9JMkNfREVGRVIpIHsKIAkJCQlkZXZfZXJyKGRwLT5kZXYsICJEZWZlcjogJWRcblxu IiwgcmVnKTsKIAkJCQlkZWZlciA9IDE7CiAJCQl9CkBAIC04ODUsNyArODgzLDggQEAgdm9pZCBh bmFsb2dpeF9kcF9nZXRfbGFuZV9jb3VudChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwg dTMyICpjb3VudCkKIAkqY291bnQgPSByZWc7CiB9CiAKLXZvaWQgYW5hbG9naXhfZHBfZW5hYmxl X2VuaGFuY2VkX21vZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIGJvb2wgZW5hYmxl KQordm9pZCBhbmFsb2dpeF9kcF9lbmFibGVfZW5oYW5jZWRfbW9kZShzdHJ1Y3QgYW5hbG9naXhf ZHBfZGV2aWNlICpkcCwKKwkJCQkgICAgICBib29sIGVuYWJsZSkKIHsKIAl1MzIgcmVnOwogCkBA IC05MDEsNyArOTAwLDcgQEAgdm9pZCBhbmFsb2dpeF9kcF9lbmFibGVfZW5oYW5jZWRfbW9kZShz dHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwgYm9vbCBlbmFibGUKIH0KIAogdm9pZCBhbmFs b2dpeF9kcF9zZXRfdHJhaW5pbmdfcGF0dGVybihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpk cCwKLQkJCQllbnVtIHBhdHRlcm5fc2V0IHBhdHRlcm4pCisJCQkJICAgICAgZW51bSBwYXR0ZXJu X3NldCBwYXR0ZXJuKQogewogCXUzMiByZWc7CiAKQEAgLTkzMyw3ICs5MzIsOCBAQCB2b2lkIGFu YWxvZ2l4X2RwX3NldF90cmFpbmluZ19wYXR0ZXJuKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2Ug KmRwLAogCX0KIH0KIAotdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTBfcHJlX2VtcGhhc2lzKHN0 cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwpCit2b2lkIGFuYWxvZ2l4X2Rw X3NldF9sYW5lMF9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJ CQkJCXUzMiBsZXZlbCkKIHsKIAl1MzIgcmVnOwogCkBAIC05NDMsNyArOTQzLDggQEAgdm9pZCBh bmFsb2dpeF9kcF9zZXRfbGFuZTBfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZp Y2UgKmRwLCB1MzIgbGV2ZWwKIAl3cml0ZWwocmVnLCBkcC0+cmVnX2Jhc2UgKyBBTkFMT0dJWF9E UF9MTjBfTElOS19UUkFJTklOR19DVEwpOwogfQogCi12b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5l MV9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiBsZXZlbCkK K3ZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUxX3ByZV9lbXBoYXNpcyhzdHJ1Y3QgYW5hbG9naXhf ZHBfZGV2aWNlICpkcCwKKwkJCQkJdTMyIGxldmVsKQogewogCXUzMiByZWc7CiAKQEAgLTk1Myw3 ICs5NTQsOCBAQCB2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMV9wcmVfZW1waGFzaXMoc3RydWN0 IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiBsZXZlbAogCXdyaXRlbChyZWcsIGRwLT5yZWdf YmFzZSArIEFOQUxPR0lYX0RQX0xOMV9MSU5LX1RSQUlOSU5HX0NUTCk7CiB9CiAKLXZvaWQgYW5h bG9naXhfZHBfc2V0X2xhbmUyX3ByZV9lbXBoYXNpcyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNl ICpkcCwgdTMyIGxldmVsKQordm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTJfcHJlX2VtcGhhc2lz KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAorCQkJCQl1MzIgbGV2ZWwpCiB7CiAJdTMy IHJlZzsKIApAQCAtOTYzLDcgKzk2NSw4IEBAIHZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUyX3By ZV9lbXBoYXNpcyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwgdTMyIGxldmVsCiAJd3Jp dGVsKHJlZywgZHAtPnJlZ19iYXNlICsgQU5BTE9HSVhfRFBfTE4yX0xJTktfVFJBSU5JTkdfQ1RM KTsKIH0KIAotdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTNfcHJlX2VtcGhhc2lzKHN0cnVjdCBh bmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwpCit2b2lkIGFuYWxvZ2l4X2RwX3NldF9s YW5lM19wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJCQkJCXUz MiBsZXZlbCkKIHsKIAl1MzIgcmVnOwogCkBAIC05NzQsNyArOTc3LDcgQEAgdm9pZCBhbmFsb2dp eF9kcF9zZXRfbGFuZTNfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRw LCB1MzIgbGV2ZWwKIH0KIAogdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTBfbGlua190cmFpbmlu ZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQkJdTMyIHRyYWluaW5nX2xhbmUp CisJCQkJCSB1MzIgdHJhaW5pbmdfbGFuZSkKIHsKIAl1MzIgcmVnOwogCkBAIC05ODMsNyArOTg2 LDcgQEAgdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTBfbGlua190cmFpbmluZyhzdHJ1Y3QgYW5h bG9naXhfZHBfZGV2aWNlICpkcCwKIH0KIAogdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTFfbGlu a190cmFpbmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQkJdTMyIHRyYWlu aW5nX2xhbmUpCisJCQkJCSB1MzIgdHJhaW5pbmdfbGFuZSkKIHsKIAl1MzIgcmVnOwogCkBAIC0x MDAxLDcgKzEwMDQsNyBAQCB2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMl9saW5rX3RyYWluaW5n KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogfQogCiB2b2lkIGFuYWxvZ2l4X2RwX3Nl dF9sYW5lM19saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJ CQl1MzIgdHJhaW5pbmdfbGFuZSkKKwkJCQkJIHUzMiB0cmFpbmluZ19sYW5lKQogewogCXUzMiBy ZWc7CiAKQEAgLTExMjUsOSArMTEyOCw4IEBAIGludCBhbmFsb2dpeF9kcF9pc19zbGF2ZV92aWRl b19zdHJlYW1fY2xvY2tfb24oc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiB9CiAKIHZv aWQgYW5hbG9naXhfZHBfc2V0X3ZpZGVvX2NyX21uKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2Ug KmRwLAotCQllbnVtIGNsb2NrX3JlY292ZXJ5X21fdmFsdWVfdHlwZSB0eXBlLAotCQl1MzIgbV92 YWx1ZSwKLQkJdTMyIG5fdmFsdWUpCisJCQkJIGVudW0gY2xvY2tfcmVjb3ZlcnlfbV92YWx1ZV90 eXBlIHR5cGUsCisJCQkJIHUzMiBtX3ZhbHVlLCB1MzIgbl92YWx1ZSkKIHsKIAl1MzIgcmVnOwog CkBAIC0xMjIxLDcgKzEyMjMsNyBAQCB2b2lkIGFuYWxvZ2l4X2RwX2NvbmZpZ192aWRlb19zbGF2 ZV9tb2RlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogCXUzMiByZWc7CiAKIAlyZWcg PSByZWFkbChkcC0+cmVnX2Jhc2UgKyBBTkFMT0dJWF9EUF9GVU5DX0VOXzEpOwotCXJlZyAmPSB+ KE1BU1RFUl9WSURfRlVOQ19FTl9OfFNMQVZFX1ZJRF9GVU5DX0VOX04pOworCXJlZyAmPSB+KE1B U1RFUl9WSURfRlVOQ19FTl9OIHwgU0xBVkVfVklEX0ZVTkNfRU5fTik7CiAJcmVnIHw9IE1BU1RF Ul9WSURfRlVOQ19FTl9OOwogCXdyaXRlbChyZWcsIGRwLT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQ X0ZVTkNfRU5fMSk7CiAKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK