From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yakir Yang Subject: [PATCH v11 02/19] drm: bridge: analogix/dp: fix some obvious code style Date: Wed, 16 Dec 2015 11:26:17 +0800 Message-ID: <1450236377-1644-1-git-send-email-ykk@rock-chips.com> References: <1450236018-1118-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: <1450236018-1118-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 , linux-rockchip@lists.infradead.org, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Kishon Vijay Abraham I , javier@osg.samsung.com, Rob Herring , Andy Yan , Thierry Reding , Gustavo Padovan , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org Rml4IHNvbWUgb2J2aW91cyBhbGlnbm1lbnQgcHJvYmxlbXMsIGxpa2UgYWxpZ25tZW50IGFuZCBs aW5lCm92ZXIgODAgY2hhcmFjdGVycyBwcm9ibGVtcywgbWFrZSB0aGlzIGVhc3kgdG8gYmUgbWFp bnRhaW5lZApsYXRlci4KClNpZ25lZC1vZmYtYnk6IFlha2lyIFlhbmcgPHlra0Byb2NrLWNoaXBz LmNvbT4KUmV2aWV3ZWQtYnk6IEtyenlzenRvZiBLb3psb3dza2kgPGsua296bG93c2tpQHNhbXN1 bmcuY29tPgpUZXN0ZWQtYnk6IEphdmllciBNYXJ0aW5leiBDYW5pbGxhcyA8amF2aWVyQG9zZy5z YW1zdW5nLmNvbT4KLS0tCkNoYW5nZXMgaW4gdjExOiBOb25lCkNoYW5nZXMgaW4gdjEwOiBOb25l CkNoYW5nZXMgaW4gdjk6IE5vbmUKQ2hhbmdlcyBpbiB2ODogTm9uZQpDaGFuZ2VzIGluIHY3OiBO b25lCkNoYW5nZXMgaW4gdjY6IE5vbmUKQ2hhbmdlcyBpbiB2NToKLSBSZXNlcXVlbmNlIHRoaXMg cGF0Y2ggYWZ0ZXIgYW5hbG9naXhfZHAgZHJpdmVyIGhhdmUgYmVlbiBzcGxpdAogIGZyb20gZXh5 bm9zX2RwIGNvZGUsIGFuZCByZXBocmFzZSByZWFzb25hYmxlIGNvbW1pdCBtZXNzYWdlLCBhbmQK ICByZW1vdmUgc29tZSBjb250cm92ZXJzaWFsIHN0eWxlIChLcnp5c3p0b2YpCiAgICAtCQlhbmFs b2dpeF9kcF93cml0ZV9ieXRlX3RvX2RwY2QoCiAgICAtIAkJCQlkcCwgRFBfVEVTVF9SRVNQT05T RSwKICAgICsJCWFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVfdG9fZHBjZChkcCwKICAgICsJCQkJRFBf VEVTVF9SRVNQT05TRSwKCQkJCURQX1RFU1RfRURJRF9DSEVDS1NVTV9XUklURSk7CgpDaGFuZ2Vz IGluIHY0OiBOb25lCkNoYW5nZXMgaW4gdjM6IE5vbmUKQ2hhbmdlcyBpbiB2MjoKLSBJbXByb3Zl ZCBjb21taXQgbWVzc2FnZSBtb3JlIHJlYWRhYmxlLCBhbmQgYXZvaWQgdXNpbmcgc29tZQogIHVu Y29tbW9uIHN0eWxlIGxpa2UgYmVsbG93OiAoSm9lIFByZWNoZXMpCiAgICAtICByZXR2YWwgPSBl eHlub3NfZHBfcmVhZF9ieXRlc19mcm9tX2kyYyguLi4KICAJCQkJICAuLi4pOwogICAgKyAgcmV0 dmFsID0KICAgICsgIGV4eW5vc19kcF9yZWFkX2J5dGVzX2Zyb21faTJjKC4uLi4uLik7CgogZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMgfCAxMjkgKysr KysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxv Z2l4X2RwX2NvcmUuaCB8ICA3MiArKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv YW5hbG9naXgvYW5hbG9naXhfZHBfcmVnLmMgIHwgMTI0ICsrKysrKysrKystLS0tLS0tLS0tCiAz IGZpbGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRpb25zKCspLCAxNjIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3Jl LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYwpp bmRleCBmYjhiZGE4Li40YTA1YzJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYwpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMgaW50 IGFuYWxvZ2l4X2RwX2RldGVjdF9ocGQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAK IAl3aGlsZSAoYW5hbG9naXhfZHBfZ2V0X3BsdWdfaW5fc3RhdHVzKGRwKSAhPSAwKSB7CiAJCXRp bWVvdXRfbG9vcCsrOwotCQlpZiAoRFBfVElNRU9VVF9MT09QX0NPVU5UIDwgdGltZW91dF9sb29w KSB7CisJCWlmICh0aW1lb3V0X2xvb3AgPiBEUF9USU1FT1VUX0xPT1BfQ09VTlQpIHsKIAkJCWRl dl9lcnIoZHAtPmRldiwgImZhaWxlZCB0byBnZXQgaHBkIHBsdWcgc3RhdHVzXG4iKTsKIAkJCXJl dHVybiAtRVRJTUVET1VUOwogCQl9CkBAIC05OCw4ICs5OCw4IEBAIHN0YXRpYyBpbnQgYW5hbG9n aXhfZHBfcmVhZF9lZGlkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogCiAJLyogUmVh ZCBFeHRlbnNpb24gRmxhZywgTnVtYmVyIG9mIDEyOC1ieXRlIEVESUQgZXh0ZW5zaW9uIGJsb2Nr cyAqLwogCXJldHZhbCA9IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9mcm9tX2kyYyhkcCwgSTJDX0VE SURfREVWSUNFX0FERFIsCi0JCQkJRURJRF9FWFRFTlNJT05fRkxBRywKLQkJCQkmZXh0ZW5kX2Js b2NrKTsKKwkJCQkJCUVESURfRVhURU5TSU9OX0ZMQUcsCisJCQkJCQkmZXh0ZW5kX2Jsb2NrKTsK IAlpZiAocmV0dmFsKQogCQlyZXR1cm4gcmV0dmFsOwogCkBAIC0xMDcsNyArMTA3LDggQEAgc3Rh dGljIGludCBhbmFsb2dpeF9kcF9yZWFkX2VkaWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAq ZHApCiAJCWRldl9kYmcoZHAtPmRldiwgIkVESUQgZGF0YSBpbmNsdWRlcyBhIHNpbmdsZSBleHRl bnNpb24hXG4iKTsKIAogCQkvKiBSZWFkIEVESUQgZGF0YSAqLwotCQlyZXR2YWwgPSBhbmFsb2dp eF9kcF9yZWFkX2J5dGVzX2Zyb21faTJjKGRwLCBJMkNfRURJRF9ERVZJQ0VfQUREUiwKKwkJcmV0 dmFsID0gYW5hbG9naXhfZHBfcmVhZF9ieXRlc19mcm9tX2kyYyhkcCwKKwkJCQkJCUkyQ19FRElE X0RFVklDRV9BRERSLAogCQkJCQkJRURJRF9IRUFERVJfUEFUVEVSTiwKIAkJCQkJCUVESURfQkxP Q0tfTEVOR1RILAogCQkJCQkJJmVkaWRbRURJRF9IRUFERVJfUEFUVEVSTl0pOwpAQCAtMTM4LDcg KzEzOSw3IEBAIHN0YXRpYyBpbnQgYW5hbG9naXhfZHBfcmVhZF9lZGlkKHN0cnVjdCBhbmFsb2dp eF9kcF9kZXZpY2UgKmRwKQogCQl9CiAKIAkJYW5hbG9naXhfZHBfcmVhZF9ieXRlX2Zyb21fZHBj ZChkcCwgRFBfVEVTVF9SRVFVRVNULAotCQkJCQkmdGVzdF92ZWN0b3IpOworCQkJCQkJJnRlc3Rf dmVjdG9yKTsKIAkJaWYgKHRlc3RfdmVjdG9yICYgRFBfVEVTVF9MSU5LX0VESURfUkVBRCkgewog CQkJYW5hbG9naXhfZHBfd3JpdGVfYnl0ZV90b19kcGNkKGRwLAogCQkJCURQX1RFU1RfRURJRF9D SEVDS1NVTSwKQEAgLTE1MiwxMCArMTUzLDggQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9yZWFk X2VkaWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAKIAkJLyogUmVhZCBFRElEIGRh dGEgKi8KIAkJcmV0dmFsID0gYW5hbG9naXhfZHBfcmVhZF9ieXRlc19mcm9tX2kyYyhkcCwKLQkJ CQlJMkNfRURJRF9ERVZJQ0VfQUREUiwKLQkJCQlFRElEX0hFQURFUl9QQVRURVJOLAotCQkJCUVE SURfQkxPQ0tfTEVOR1RILAotCQkJCSZlZGlkW0VESURfSEVBREVSX1BBVFRFUk5dKTsKKwkJCQlJ MkNfRURJRF9ERVZJQ0VfQUREUiwgRURJRF9IRUFERVJfUEFUVEVSTiwKKwkJCQlFRElEX0JMT0NL X0xFTkdUSCwgJmVkaWRbRURJRF9IRUFERVJfUEFUVEVSTl0pOwogCQlpZiAocmV0dmFsICE9IDAp IHsKIAkJCWRldl9lcnIoZHAtPmRldiwgIkVESUQgUmVhZCBmYWlsZWQhXG4iKTsKIAkJCXJldHVy biAtRUlPOwpAQCAtMTY2LDE2ICsxNjUsMTMgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9yZWFk X2VkaWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJCQlyZXR1cm4gLUVJTzsKIAkJ fQogCi0JCWFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9mcm9tX2RwY2QoZHAsCi0JCQlEUF9URVNUX1JF UVVFU1QsCi0JCQkmdGVzdF92ZWN0b3IpOworCQlhbmFsb2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9k cGNkKGRwLCBEUF9URVNUX1JFUVVFU1QsCisJCQkJCQkmdGVzdF92ZWN0b3IpOwogCQlpZiAodGVz dF92ZWN0b3IgJiBEUF9URVNUX0xJTktfRURJRF9SRUFEKSB7CiAJCQlhbmFsb2dpeF9kcF93cml0 ZV9ieXRlX3RvX2RwY2QoZHAsCi0JCQkJRFBfVEVTVF9FRElEX0NIRUNLU1VNLAotCQkJCWVkaWRb RURJRF9DSEVDS1NVTV0pOworCQkJCURQX1RFU1RfRURJRF9DSEVDS1NVTSwgZWRpZFtFRElEX0NI RUNLU1VNXSk7CiAJCQlhbmFsb2dpeF9kcF93cml0ZV9ieXRlX3RvX2RwY2QoZHAsCi0JCQkJRFBf VEVTVF9SRVNQT05TRSwKLQkJCQlEUF9URVNUX0VESURfQ0hFQ0tTVU1fV1JJVEUpOworCQkJCURQ X1RFU1RfUkVTUE9OU0UsIERQX1RFU1RfRURJRF9DSEVDS1NVTV9XUklURSk7CiAJCX0KIAl9CiAK QEAgLTE5MCw4ICsxODYsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2hhbmRsZV9lZGlkKHN0 cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogCWludCByZXR2YWw7CiAKIAkvKiBSZWFkIERQ Q0QgRFBfRFBDRF9SRVZ+UkVDRUlWRV9QT1JUMV9DQVBfMSAqLwotCXJldHZhbCA9IGFuYWxvZ2l4 X2RwX3JlYWRfYnl0ZXNfZnJvbV9kcGNkKGRwLCBEUF9EUENEX1JFViwKLQkJCQkxMiwgYnVmKTsK KwlyZXR2YWwgPSBhbmFsb2dpeF9kcF9yZWFkX2J5dGVzX2Zyb21fZHBjZChkcCwgRFBfRFBDRF9S RVYsIDEyLCBidWYpOwogCWlmIChyZXR2YWwpCiAJCXJldHVybiByZXR2YWw7CiAKQEAgLTIwNSw4 ICsyMDAsOSBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2hhbmRsZV9lZGlkKHN0cnVjdCBhbmFs b2dpeF9kcF9kZXZpY2UgKmRwKQogCXJldHVybiByZXR2YWw7CiB9CiAKLXN0YXRpYyB2b2lkIGFu YWxvZ2l4X2RwX2VuYWJsZV9yeF90b19lbmhhbmNlZF9tb2RlKHN0cnVjdCBhbmFsb2dpeF9kcF9k ZXZpY2UgKmRwLAotCQkJCQkJYm9vbCBlbmFibGUpCitzdGF0aWMgdm9pZAorYW5hbG9naXhfZHBf ZW5hYmxlX3J4X3RvX2VuaGFuY2VkX21vZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAs CisJCQkJICAgICAgIGJvb2wgZW5hYmxlKQogewogCXU4IGRhdGE7CiAKQEAgLTIxNCwxMSArMjEw LDExIEBAIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX2VuYWJsZV9yeF90b19lbmhhbmNlZF9tb2Rl KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwCiAKIAlpZiAoZW5hYmxlKQogCQlhbmFsb2dp eF9kcF93cml0ZV9ieXRlX3RvX2RwY2QoZHAsIERQX0xBTkVfQ09VTlRfU0VULAotCQkJRFBfTEFO RV9DT1VOVF9FTkhBTkNFRF9GUkFNRV9FTiB8Ci0JCQlEUENEX0xBTkVfQ09VTlRfU0VUKGRhdGEp KTsKKwkJCQkJICAgICAgIERQX0xBTkVfQ09VTlRfRU5IQU5DRURfRlJBTUVfRU4gfAorCQkJCQkg ICAgICAgRFBDRF9MQU5FX0NPVU5UX1NFVChkYXRhKSk7CiAJZWxzZQogCQlhbmFsb2dpeF9kcF93 cml0ZV9ieXRlX3RvX2RwY2QoZHAsIERQX0xBTkVfQ09VTlRfU0VULAotCQkJRFBDRF9MQU5FX0NP VU5UX1NFVChkYXRhKSk7CisJCQkJCSAgICAgICBEUENEX0xBTkVfQ09VTlRfU0VUKGRhdGEpKTsK IH0KIAogc3RhdGljIGludCBhbmFsb2dpeF9kcF9pc19lbmhhbmNlZF9tb2RlX2F2YWlsYWJsZShz dHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKQEAgLTI0NSwxMyArMjQxLDEzIEBAIHN0YXRp YyB2b2lkIGFuYWxvZ2l4X2RwX3RyYWluaW5nX3BhdHRlcm5fZGlzKHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwKQogewogCWFuYWxvZ2l4X2RwX3NldF90cmFpbmluZ19wYXR0ZXJuKGRwLCBE UF9OT05FKTsKIAotCWFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVfdG9fZHBjZChkcCwKLQkJRFBfVFJB SU5JTkdfUEFUVEVSTl9TRVQsCi0JCURQX1RSQUlOSU5HX1BBVFRFUk5fRElTQUJMRSk7CisJYW5h bG9naXhfZHBfd3JpdGVfYnl0ZV90b19kcGNkKGRwLCBEUF9UUkFJTklOR19QQVRURVJOX1NFVCwK KwkJCQkgICAgICAgRFBfVFJBSU5JTkdfUEFUVEVSTl9ESVNBQkxFKTsKIH0KIAotc3RhdGljIHZv aWQgYW5hbG9naXhfZHBfc2V0X2xhbmVfbGFuZV9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4 X2RwX2RldmljZSAqZHAsCi0JCQkJCWludCBwcmVfZW1waGFzaXMsIGludCBsYW5lKQorc3RhdGlj IHZvaWQKK2FuYWxvZ2l4X2RwX3NldF9sYW5lX2xhbmVfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFs b2dpeF9kcF9kZXZpY2UgKmRwLAorCQkJCSAgICAgICBpbnQgcHJlX2VtcGhhc2lzLCBpbnQgbGFu ZSkKIHsKIAlzd2l0Y2ggKGxhbmUpIHsKIAljYXNlIDA6CkBAIC0yOTEsOCArMjg3LDcgQEAgc3Rh dGljIGludCBhbmFsb2dpeF9kcF9saW5rX3N0YXJ0KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2Ug KmRwKQogCS8qIFNldHVwIFJYIGNvbmZpZ3VyYXRpb24gKi8KIAlidWZbMF0gPSBkcC0+bGlua190 cmFpbi5saW5rX3JhdGU7CiAJYnVmWzFdID0gZHAtPmxpbmtfdHJhaW4ubGFuZV9jb3VudDsKLQly ZXR2YWwgPSBhbmFsb2dpeF9kcF93cml0ZV9ieXRlc190b19kcGNkKGRwLCBEUF9MSU5LX0JXX1NF VCwKLQkJCQkyLCBidWYpOworCXJldHZhbCA9IGFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVzX3RvX2Rw Y2QoZHAsIERQX0xJTktfQldfU0VULCAyLCBidWYpOwogCWlmIChyZXR2YWwpCiAJCXJldHVybiBy ZXR2YWw7CiAKQEAgLTMyOCw3ICszMjMsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2xpbmtf c3RhcnQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJCQkgICAgRFBfVFJBSU5fVk9M VEFHRV9TV0lOR19MRVZFTF8wOwogCiAJcmV0dmFsID0gYW5hbG9naXhfZHBfd3JpdGVfYnl0ZXNf dG9fZHBjZChkcCwgRFBfVFJBSU5JTkdfTEFORTBfU0VULAotCQkJbGFuZV9jb3VudCwgYnVmKTsK KwkJCQkJCSBsYW5lX2NvdW50LCBidWYpOwogCiAJcmV0dXJuIHJldHZhbDsKIH0KQEAgLTMzNiw3 ICszMzEsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2xpbmtfc3RhcnQoc3RydWN0IGFuYWxv Z2l4X2RwX2RldmljZSAqZHApCiBzdGF0aWMgdW5zaWduZWQgY2hhciBhbmFsb2dpeF9kcF9nZXRf bGFuZV9zdGF0dXModTggbGlua19zdGF0dXNbMl0sIGludCBsYW5lKQogewogCWludCBzaGlmdCA9 IChsYW5lICYgMSkgKiA0OwotCXU4IGxpbmtfdmFsdWUgPSBsaW5rX3N0YXR1c1tsYW5lPj4xXTsK Kwl1OCBsaW5rX3ZhbHVlID0gbGlua19zdGF0dXNbbGFuZSA+PiAxXTsKIAogCXJldHVybiAobGlu a192YWx1ZSA+PiBzaGlmdCkgJiAweGY7CiB9CkBAIC0zNTUsNyArMzUwLDcgQEAgc3RhdGljIGlu dCBhbmFsb2dpeF9kcF9jbG9ja19yZWNvdmVyeV9vayh1OCBsaW5rX3N0YXR1c1syXSwgaW50IGxh bmVfY291bnQpCiB9CiAKIHN0YXRpYyBpbnQgYW5hbG9naXhfZHBfY2hhbm5lbF9lcV9vayh1OCBs aW5rX3N0YXR1c1syXSwgdTggbGlua19hbGlnbiwKLQkJCQlpbnQgbGFuZV9jb3VudCkKKwkJCQkg ICAgIGludCBsYW5lX2NvdW50KQogewogCWludCBsYW5lOwogCXU4IGxhbmVfc3RhdHVzOwpAQCAt MzczLDExICszNjgsMTEgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9jaGFubmVsX2VxX29rKHU4 IGxpbmtfc3RhdHVzWzJdLCB1OCBsaW5rX2FsaWduLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMg dW5zaWduZWQgY2hhciBhbmFsb2dpeF9kcF9nZXRfYWRqdXN0X3JlcXVlc3Rfdm9sdGFnZSh1OCBh ZGp1c3RfcmVxdWVzdFsyXSwKLQkJCQkJCQlpbnQgbGFuZSkKK3N0YXRpYyB1bnNpZ25lZCBjaGFy CithbmFsb2dpeF9kcF9nZXRfYWRqdXN0X3JlcXVlc3Rfdm9sdGFnZSh1OCBhZGp1c3RfcmVxdWVz dFsyXSwgaW50IGxhbmUpCiB7CiAJaW50IHNoaWZ0ID0gKGxhbmUgJiAxKSAqIDQ7Ci0JdTggbGlu a192YWx1ZSA9IGFkanVzdF9yZXF1ZXN0W2xhbmU+PjFdOworCXU4IGxpbmtfdmFsdWUgPSBhZGp1 c3RfcmVxdWVzdFtsYW5lID4+IDFdOwogCiAJcmV0dXJuIChsaW5rX3ZhbHVlID4+IHNoaWZ0KSAm IDB4MzsKIH0KQEAgLTM4NywxMyArMzgyLDEzIEBAIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGFuYWxv Z2l4X2RwX2dldF9hZGp1c3RfcmVxdWVzdF9wcmVfZW1waGFzaXMoCiAJCQkJCWludCBsYW5lKQog ewogCWludCBzaGlmdCA9IChsYW5lICYgMSkgKiA0OwotCXU4IGxpbmtfdmFsdWUgPSBhZGp1c3Rf cmVxdWVzdFtsYW5lPj4xXTsKKwl1OCBsaW5rX3ZhbHVlID0gYWRqdXN0X3JlcXVlc3RbbGFuZSA+ PiAxXTsKIAogCXJldHVybiAoKGxpbmtfdmFsdWUgPj4gc2hpZnQpICYgMHhjKSA+PiAyOwogfQog CiBzdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZV9saW5rX3RyYWluaW5nKHN0cnVjdCBh bmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCQl1OCB0cmFpbmluZ19sYW5lX3NldCwgaW50IGxh bmUpCisJCQkJCSAgICAgICB1OCB0cmFpbmluZ19sYW5lX3NldCwgaW50IGxhbmUpCiB7CiAJc3dp dGNoIChsYW5lKSB7CiAJY2FzZSAwOgpAQCAtNDEzLDkgKzQwOCw5IEBAIHN0YXRpYyB2b2lkIGFu YWxvZ2l4X2RwX3NldF9sYW5lX2xpbmtfdHJhaW5pbmcoc3RydWN0IGFuYWxvZ2l4X2RwX2Rldmlj ZSAqZHAsCiAJfQogfQogCi1zdGF0aWMgdW5zaWduZWQgaW50IGFuYWxvZ2l4X2RwX2dldF9sYW5l X2xpbmtfdHJhaW5pbmcoCi0JCQkJc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJ aW50IGxhbmUpCitzdGF0aWMgdW5zaWduZWQgaW50CithbmFsb2dpeF9kcF9nZXRfbGFuZV9saW5r X3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAorCQkJCSAgIGludCBsYW5l KQogewogCXUzMiByZWc7CiAKQEAgLTQ0OSw3ICs0NDQsNyBAQCBzdGF0aWMgdm9pZCBhbmFsb2dp eF9kcF9yZWR1Y2VfbGlua19yYXRlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogfQog CiBzdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9nZXRfYWRqdXN0X3RyYWluaW5nX2xhbmUoc3RydWN0 IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJCXU4IGFkanVzdF9yZXF1ZXN0WzJdKQorCQkJ CQkJIHU4IGFkanVzdF9yZXF1ZXN0WzJdKQogewogCWludCBsYW5lLCBsYW5lX2NvdW50OwogCXU4 IHZvbHRhZ2Vfc3dpbmcsIHByZV9lbXBoYXNpcywgdHJhaW5pbmdfbGFuZTsKQEAgLTYyMiw3ICs2 MTcsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX3Byb2Nlc3NfZXF1YWxpemVyX3RyYWluaW5n KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogfQogCiBzdGF0aWMgdm9pZCBhbmFsb2dp eF9kcF9nZXRfbWF4X3J4X2JhbmR3aWR0aChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwK LQkJCQkJdTggKmJhbmR3aWR0aCkKKwkJCQkJICAgICB1OCAqYmFuZHdpZHRoKQogewogCXU4IGRh dGE7CiAKQEAgLTYzNSw3ICs2MzAsNyBAQCBzdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9nZXRfbWF4 X3J4X2JhbmR3aWR0aChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIH0KIAogc3RhdGlj IHZvaWQgYW5hbG9naXhfZHBfZ2V0X21heF9yeF9sYW5lX2NvdW50KHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwLAotCQkJCQl1OCAqbGFuZV9jb3VudCkKKwkJCQkJICAgICAgdTggKmxhbmVf Y291bnQpCiB7CiAJdTggZGF0YTsKIApAQCAtNjQ4LDggKzY0Myw4IEBAIHN0YXRpYyB2b2lkIGFu YWxvZ2l4X2RwX2dldF9tYXhfcnhfbGFuZV9jb3VudChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNl ICpkcCwKIH0KIAogc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfaW5pdF90cmFpbmluZyhzdHJ1Y3Qg YW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCWVudW0gbGlua19sYW5lX2NvdW50X3R5cGUgbWF4 X2xhbmUsCi0JCQllbnVtIGxpbmtfcmF0ZV90eXBlIG1heF9yYXRlKQorCQkJCSAgICAgIGVudW0g bGlua19sYW5lX2NvdW50X3R5cGUgbWF4X2xhbmUsCisJCQkJICAgICAgZW51bSBsaW5rX3JhdGVf dHlwZSBtYXhfcmF0ZSkKIHsKIAkvKgogCSAqIE1BQ1JPX1JTVCBtdXN0IGJlIGFwcGxpZWQgYWZ0 ZXIgdGhlIFBMTF9MT0NLIHRvIGF2b2lkCkBAIC02NjIsNyArNjU3LDcgQEAgc3RhdGljIHZvaWQg YW5hbG9naXhfZHBfaW5pdF90cmFpbmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwK IAlhbmFsb2dpeF9kcF9nZXRfbWF4X3J4X2xhbmVfY291bnQoZHAsICZkcC0+bGlua190cmFpbi5s YW5lX2NvdW50KTsKIAogCWlmICgoZHAtPmxpbmtfdHJhaW4ubGlua19yYXRlICE9IExJTktfUkFU RV8xXzYyR0JQUykgJiYKLQkgICAoZHAtPmxpbmtfdHJhaW4ubGlua19yYXRlICE9IExJTktfUkFU RV8yXzcwR0JQUykpIHsKKwkgICAgKGRwLT5saW5rX3RyYWluLmxpbmtfcmF0ZSAhPSBMSU5LX1JB VEVfMl83MEdCUFMpKSB7CiAJCWRldl9lcnIoZHAtPmRldiwgIlJ4IE1heCBMaW5rIFJhdGUgaXMg YWJub3JtYWwgOiV4ICFcbiIsCiAJCQlkcC0+bGlua190cmFpbi5saW5rX3JhdGUpOwogCQlkcC0+ bGlua190cmFpbi5saW5rX3JhdGUgPSBMSU5LX1JBVEVfMV82MkdCUFM7CkBAIC03MjIsOCArNzE3 LDcgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9zd19saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFs b2dpeF9kcF9kZXZpY2UgKmRwKQogfQogCiBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX3NldF9saW5r X3RyYWluKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXUzMiBjb3VudCwKLQkJ CQl1MzIgYnd0eXBlKQorCQkJCSAgICAgIHUzMiBjb3VudCwgdTMyIGJ3dHlwZSkKIHsKIAlpbnQg aTsKIAlpbnQgcmV0dmFsOwpAQCAtNzU5LDcgKzc1Myw3IEBAIHN0YXRpYyBpbnQgYW5hbG9naXhf ZHBfY29uZmlnX3ZpZGVvKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKQogCQl0aW1lb3V0 X2xvb3ArKzsKIAkJaWYgKGFuYWxvZ2l4X2RwX2lzX3NsYXZlX3ZpZGVvX3N0cmVhbV9jbG9ja19v bihkcCkgPT0gMCkKIAkJCWJyZWFrOwotCQlpZiAoRFBfVElNRU9VVF9MT09QX0NPVU5UIDwgdGlt ZW91dF9sb29wKSB7CisJCWlmICh0aW1lb3V0X2xvb3AgPiBEUF9USU1FT1VUX0xPT1BfQ09VTlQp IHsKIAkJCWRldl9lcnIoZHAtPmRldiwgIlRpbWVvdXQgb2YgdmlkZW8gc3RyZWFtY2xrIG9rXG4i KTsKIAkJCXJldHVybiAtRVRJTUVET1VUOwogCQl9CkBAIC03OTAsNyArNzg0LDcgQEAgc3RhdGlj IGludCBhbmFsb2dpeF9kcF9jb25maWdfdmlkZW8oc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAq ZHApCiAJCX0gZWxzZSBpZiAoZG9uZV9jb3VudCkgewogCQkJZG9uZV9jb3VudCA9IDA7CiAJCX0K LQkJaWYgKERQX1RJTUVPVVRfTE9PUF9DT1VOVCA8IHRpbWVvdXRfbG9vcCkgeworCQlpZiAodGlt ZW91dF9sb29wID4gRFBfVElNRU9VVF9MT09QX0NPVU5UKSB7CiAJCQlkZXZfZXJyKGRwLT5kZXYs ICJUaW1lb3V0IG9mIHZpZGVvIHN0cmVhbWNsayBva1xuIik7CiAJCQlyZXR1cm4gLUVUSU1FRE9V VDsKIAkJfQpAQCAtODA0LDI1ICs3OTgsMjQgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9jb25m aWdfdmlkZW8oc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJcmV0dXJuIHJldHZhbDsK IH0KIAotc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfZW5hYmxlX3NjcmFtYmxlKHN0cnVjdCBhbmFs b2dpeF9kcF9kZXZpY2UgKmRwLCBib29sIGVuYWJsZSkKK3N0YXRpYyB2b2lkIGFuYWxvZ2l4X2Rw X2VuYWJsZV9zY3JhbWJsZShzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkJYm9v bCBlbmFibGUpCiB7CiAJdTggZGF0YTsKIAogCWlmIChlbmFibGUpIHsKIAkJYW5hbG9naXhfZHBf ZW5hYmxlX3NjcmFtYmxpbmcoZHApOwogCi0JCWFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9mcm9tX2Rw Y2QoZHAsCi0JCQlEUF9UUkFJTklOR19QQVRURVJOX1NFVCwKLQkJCSZkYXRhKTsKKwkJYW5hbG9n aXhfZHBfcmVhZF9ieXRlX2Zyb21fZHBjZChkcCwgRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVQsCisJ CQkJCQkmZGF0YSk7CiAJCWFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVfdG9fZHBjZChkcCwKIAkJCURQ X1RSQUlOSU5HX1BBVFRFUk5fU0VULAogCQkJKHU4KShkYXRhICYgfkRQX0xJTktfU0NSQU1CTElO R19ESVNBQkxFKSk7CiAJfSBlbHNlIHsKIAkJYW5hbG9naXhfZHBfZGlzYWJsZV9zY3JhbWJsaW5n KGRwKTsKIAotCQlhbmFsb2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9kcGNkKGRwLAotCQkJRFBfVFJB SU5JTkdfUEFUVEVSTl9TRVQsCi0JCQkmZGF0YSk7CisJCWFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9m cm9tX2RwY2QoZHAsIERQX1RSQUlOSU5HX1BBVFRFUk5fU0VULAorCQkJCQkJJmRhdGEpOwogCQlh bmFsb2dpeF9kcF93cml0ZV9ieXRlX3RvX2RwY2QoZHAsCiAJCQlEUF9UUkFJTklOR19QQVRURVJO X1NFVCwKIAkJCSh1OCkoZGF0YSB8IERQX0xJTktfU0NSQU1CTElOR19ESVNBQkxFKSk7CkBAIC04 OTUsNyArODg4LDcgQEAgc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfY29tbWl0KHN0cnVjdCBhbmFs b2dpeF9kcF9kZXZpY2UgKmRwKQogCX0KIAogCXJldCA9IGFuYWxvZ2l4X2RwX3NldF9saW5rX3Ry YWluKGRwLCBkcC0+dmlkZW9faW5mby0+bGFuZV9jb3VudCwKLQkJCQkJZHAtPnZpZGVvX2luZm8t PmxpbmtfcmF0ZSk7CisJCQkJCSBkcC0+dmlkZW9faW5mby0+bGlua19yYXRlKTsKIAlpZiAocmV0 KSB7CiAJCWRldl9lcnIoZHAtPmRldiwgInVuYWJsZSB0byBkbyBsaW5rIHRyYWluXG4iKTsKIAkJ cmV0dXJuOwpAQCAtMTA4NSw4ICsxMDc4LDggQEAgc3RhdGljIHN0cnVjdCB2aWRlb19pbmZvICph bmFsb2dpeF9kcF9kdF9wYXJzZV9wZGF0YShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJc3RydWN0IGRl dmljZV9ub2RlICpkcF9ub2RlID0gZGV2LT5vZl9ub2RlOwogCXN0cnVjdCB2aWRlb19pbmZvICpk cF92aWRlb19jb25maWc7CiAKLQlkcF92aWRlb19jb25maWcgPSBkZXZtX2t6YWxsb2MoZGV2LAot CQkJCXNpemVvZigqZHBfdmlkZW9fY29uZmlnKSwgR0ZQX0tFUk5FTCk7CisJZHBfdmlkZW9fY29u ZmlnID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpkcF92aWRlb19jb25maWcpLAorCQkJCSAg ICAgICBHRlBfS0VSTkVMKTsKIAlpZiAoIWRwX3ZpZGVvX2NvbmZpZykKIAkJcmV0dXJuIEVSUl9Q VFIoLUVOT01FTSk7CiAKQEAgLTExMDAsMzcgKzEwOTMsMzcgQEAgc3RhdGljIHN0cnVjdCB2aWRl b19pbmZvICphbmFsb2dpeF9kcF9kdF9wYXJzZV9wZGF0YShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJ CW9mX3Byb3BlcnR5X3JlYWRfYm9vbChkcF9ub2RlLCAiaW50ZXJsYWNlZCIpOwogCiAJaWYgKG9m X3Byb3BlcnR5X3JlYWRfdTMyKGRwX25vZGUsICJzYW1zdW5nLGNvbG9yLXNwYWNlIiwKLQkJCQkm ZHBfdmlkZW9fY29uZmlnLT5jb2xvcl9zcGFjZSkpIHsKKwkJCQkgJmRwX3ZpZGVvX2NvbmZpZy0+ Y29sb3Jfc3BhY2UpKSB7CiAJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBjb2xvci1zcGFj ZVxuIik7CiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCX0KIAogCWlmIChvZl9wcm9wZXJ0 eV9yZWFkX3UzMihkcF9ub2RlLCAic2Ftc3VuZyxkeW5hbWljLXJhbmdlIiwKLQkJCQkmZHBfdmlk ZW9fY29uZmlnLT5keW5hbWljX3JhbmdlKSkgeworCQkJCSAmZHBfdmlkZW9fY29uZmlnLT5keW5h bWljX3JhbmdlKSkgewogCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgZHluYW1pYy1yYW5n ZVxuIik7CiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCX0KIAogCWlmIChvZl9wcm9wZXJ0 eV9yZWFkX3UzMihkcF9ub2RlLCAic2Ftc3VuZyx5Y2Jjci1jb2VmZiIsCi0JCQkJJmRwX3ZpZGVv X2NvbmZpZy0+eWNiY3JfY29lZmYpKSB7CisJCQkJICZkcF92aWRlb19jb25maWctPnljYmNyX2Nv ZWZmKSkgewogCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgeWNiY3ItY29lZmZcbiIpOwog CQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAl9CiAKIAlpZiAob2ZfcHJvcGVydHlfcmVhZF91 MzIoZHBfbm9kZSwgInNhbXN1bmcsY29sb3ItZGVwdGgiLAotCQkJCSZkcF92aWRlb19jb25maWct PmNvbG9yX2RlcHRoKSkgeworCQkJCSAmZHBfdmlkZW9fY29uZmlnLT5jb2xvcl9kZXB0aCkpIHsK IAkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IGNvbG9yLWRlcHRoXG4iKTsKIAkJcmV0dXJu IEVSUl9QVFIoLUVJTlZBTCk7CiAJfQogCiAJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRwX25v ZGUsICJzYW1zdW5nLGxpbmstcmF0ZSIsCi0JCQkJJmRwX3ZpZGVvX2NvbmZpZy0+bGlua19yYXRl KSkgeworCQkJCSAmZHBfdmlkZW9fY29uZmlnLT5saW5rX3JhdGUpKSB7CiAJCWRldl9lcnIoZGV2 LCAiZmFpbGVkIHRvIGdldCBsaW5rLXJhdGVcbiIpOwogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFM KTsKIAl9CiAKIAlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIoZHBfbm9kZSwgInNhbXN1bmcsbGFu ZS1jb3VudCIsCi0JCQkJJmRwX3ZpZGVvX2NvbmZpZy0+bGFuZV9jb3VudCkpIHsKKwkJCQkgJmRw X3ZpZGVvX2NvbmZpZy0+bGFuZV9jb3VudCkpIHsKIAkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8g Z2V0IGxhbmUtY291bnRcbiIpOwogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAl9CkBAIC0x MjM5LDcgKzEyMzIsNyBAQCBpbnQgYW5hbG9naXhfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAogCXBtX3J1bnRpbWVfZW5hYmxlKGRldik7CiAK IAlyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKCZwZGV2LT5kZXYsIGRwLT5pcnEsIGFuYWxvZ2l4X2Rw X2lycV9oYW5kbGVyLAotCQkJaXJxX2ZsYWdzLCAiYW5hbG9naXgtZHAiLCBkcCk7CisJCQkgICAg ICAgaXJxX2ZsYWdzLCAiYW5hbG9naXgtZHAiLCBkcCk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJy KCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVxdWVzdCBpcnFcbiIpOwogCQlnb3RvIGVycl9kaXNh YmxlX3BtX3J1bnRpbWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxv Z2l4L2FuYWxvZ2l4X2RwX2NvcmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgv YW5hbG9naXhfZHBfY29yZS5oCmluZGV4IDE5MjUyMTYuLjhlODQyMDggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCkBAIC0xODcs NTAgKzE4Nyw1NSBAQCBpbnQgYW5hbG9naXhfZHBfZ2V0X3BsdWdfaW5fc3RhdHVzKHN0cnVjdCBh bmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKIHZvaWQgYW5hbG9naXhfZHBfZW5hYmxlX3N3X2Z1bmN0 aW9uKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKIGludCBhbmFsb2dpeF9kcF9zdGFy dF9hdXhfdHJhbnNhY3Rpb24oc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwogaW50IGFu YWxvZ2l4X2RwX3dyaXRlX2J5dGVfdG9fZHBjZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpk cCwKLQkJCQl1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCi0JCQkJdW5zaWduZWQgY2hhciBkYXRhKTsK KwkJCQkgICB1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCisJCQkJICAgdW5zaWduZWQgY2hhciBkYXRh KTsKIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9kcGNkKHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwLAotCQkJCXVuc2lnbmVkIGludCByZWdfYWRkciwKLQkJCQl1bnNpZ25lZCBj aGFyICpkYXRhKTsKKwkJCQkgICAgdW5zaWduZWQgaW50IHJlZ19hZGRyLAorCQkJCSAgICB1bnNp Z25lZCBjaGFyICpkYXRhKTsKIGludCBhbmFsb2dpeF9kcF93cml0ZV9ieXRlc190b19kcGNkKHN0 cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXVuc2lnbmVkIGludCByZWdfYWRkciwK LQkJCQl1bnNpZ25lZCBpbnQgY291bnQsCi0JCQkJdW5zaWduZWQgY2hhciBkYXRhW10pOworCQkJ CSAgICB1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCisJCQkJICAgIHVuc2lnbmVkIGludCBjb3VudCwK KwkJCQkgICAgdW5zaWduZWQgY2hhciBkYXRhW10pOwogaW50IGFuYWxvZ2l4X2RwX3JlYWRfYnl0 ZXNfZnJvbV9kcGNkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXVuc2lnbmVk IGludCByZWdfYWRkciwKLQkJCQl1bnNpZ25lZCBpbnQgY291bnQsCi0JCQkJdW5zaWduZWQgY2hh ciBkYXRhW10pOworCQkJCSAgICAgdW5zaWduZWQgaW50IHJlZ19hZGRyLAorCQkJCSAgICAgdW5z aWduZWQgaW50IGNvdW50LAorCQkJCSAgICAgdW5zaWduZWQgY2hhciBkYXRhW10pOwogaW50IGFu YWxvZ2l4X2RwX3NlbGVjdF9pMmNfZGV2aWNlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRw LAotCQkJCXVuc2lnbmVkIGludCBkZXZpY2VfYWRkciwKLQkJCQl1bnNpZ25lZCBpbnQgcmVnX2Fk ZHIpOworCQkJCSAgdW5zaWduZWQgaW50IGRldmljZV9hZGRyLAorCQkJCSAgdW5zaWduZWQgaW50 IHJlZ19hZGRyKTsKIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9pMmMoc3RydWN0IGFu YWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJdW5zaWduZWQgaW50IGRldmljZV9hZGRyLAotCQkJ CXVuc2lnbmVkIGludCByZWdfYWRkciwKLQkJCQl1bnNpZ25lZCBpbnQgKmRhdGEpOworCQkJCSAg IHVuc2lnbmVkIGludCBkZXZpY2VfYWRkciwKKwkJCQkgICB1bnNpZ25lZCBpbnQgcmVnX2FkZHIs CisJCQkJICAgdW5zaWduZWQgaW50ICpkYXRhKTsKIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVz X2Zyb21faTJjKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXVuc2lnbmVkIGlu dCBkZXZpY2VfYWRkciwKLQkJCQl1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCi0JCQkJdW5zaWduZWQg aW50IGNvdW50LAotCQkJCXVuc2lnbmVkIGNoYXIgZWRpZFtdKTsKKwkJCQkgICAgdW5zaWduZWQg aW50IGRldmljZV9hZGRyLAorCQkJCSAgICB1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCisJCQkJICAg IHVuc2lnbmVkIGludCBjb3VudCwKKwkJCQkgICAgdW5zaWduZWQgY2hhciBlZGlkW10pOwogdm9p ZCBhbmFsb2dpeF9kcF9zZXRfbGlua19iYW5kd2lkdGgoc3RydWN0IGFuYWxvZ2l4X2RwX2Rldmlj ZSAqZHAsIHUzMiBid3R5cGUpOwogdm9pZCBhbmFsb2dpeF9kcF9nZXRfbGlua19iYW5kd2lkdGgo c3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiAqYnd0eXBlKTsKIHZvaWQgYW5hbG9n aXhfZHBfc2V0X2xhbmVfY291bnQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiBj b3VudCk7CiB2b2lkIGFuYWxvZ2l4X2RwX2dldF9sYW5lX2NvdW50KHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwLCB1MzIgKmNvdW50KTsKLXZvaWQgYW5hbG9naXhfZHBfZW5hYmxlX2VuaGFu Y2VkX21vZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIGJvb2wgZW5hYmxlKTsKK3Zv aWQgYW5hbG9naXhfZHBfZW5hYmxlX2VuaGFuY2VkX21vZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2Rl dmljZSAqZHAsCisJCQkJICAgICAgYm9vbCBlbmFibGUpOwogdm9pZCBhbmFsb2dpeF9kcF9zZXRf dHJhaW5pbmdfcGF0dGVybihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQllbnVt IHBhdHRlcm5fc2V0IHBhdHRlcm4pOwotdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTBfcHJlX2Vt cGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwpOwotdm9pZCBh bmFsb2dpeF9kcF9zZXRfbGFuZTFfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZp Y2UgKmRwLCB1MzIgbGV2ZWwpOwotdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTJfcHJlX2VtcGhh c2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwpOwotdm9pZCBhbmFs b2dpeF9kcF9zZXRfbGFuZTNfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2Ug KmRwLCB1MzIgbGV2ZWwpOworCQkJCSAgICAgIGVudW0gcGF0dGVybl9zZXQgcGF0dGVybik7Cit2 b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMF9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2Rw X2RldmljZSAqZHAsCisJCQkJCXUzMiBsZXZlbCk7Cit2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5l MV9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJCQkJCXUzMiBs ZXZlbCk7Cit2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMl9wcmVfZW1waGFzaXMoc3RydWN0IGFu YWxvZ2l4X2RwX2RldmljZSAqZHAsCisJCQkJCXUzMiBsZXZlbCk7Cit2b2lkIGFuYWxvZ2l4X2Rw X3NldF9sYW5lM19wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJ CQkJCXUzMiBsZXZlbCk7CiB2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMF9saW5rX3RyYWluaW5n KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXUzMiB0cmFpbmluZ19sYW5lKTsK KwkJCQkJIHUzMiB0cmFpbmluZ19sYW5lKTsKIHZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUxX2xp bmtfdHJhaW5pbmcoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJdTMyIHRyYWlu aW5nX2xhbmUpOworCQkJCQkgdTMyIHRyYWluaW5nX2xhbmUpOwogdm9pZCBhbmFsb2dpeF9kcF9z ZXRfbGFuZTJfbGlua190cmFpbmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJ CQl1MzIgdHJhaW5pbmdfbGFuZSk7CisJCQkJCSB1MzIgdHJhaW5pbmdfbGFuZSk7CiB2b2lkIGFu YWxvZ2l4X2RwX3NldF9sYW5lM19saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZp Y2UgKmRwLAotCQkJCXUzMiB0cmFpbmluZ19sYW5lKTsKKwkJCQkJIHUzMiB0cmFpbmluZ19sYW5l KTsKIHUzMiBhbmFsb2dpeF9kcF9nZXRfbGFuZTBfbGlua190cmFpbmluZyhzdHJ1Y3QgYW5hbG9n aXhfZHBfZGV2aWNlICpkcCk7CiB1MzIgYW5hbG9naXhfZHBfZ2V0X2xhbmUxX2xpbmtfdHJhaW5p bmcoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwogdTMyIGFuYWxvZ2l4X2RwX2dldF9s YW5lMl9saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKQEAgLTI0 MSwxMSArMjQ2LDEyIEBAIHZvaWQgYW5hbG9naXhfZHBfaW5pdF92aWRlbyhzdHJ1Y3QgYW5hbG9n aXhfZHBfZGV2aWNlICpkcCk7CiB2b2lkIGFuYWxvZ2l4X2RwX3NldF92aWRlb19jb2xvcl9mb3Jt YXQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwogaW50IGFuYWxvZ2l4X2RwX2lzX3Ns YXZlX3ZpZGVvX3N0cmVhbV9jbG9ja19vbihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7 CiB2b2lkIGFuYWxvZ2l4X2RwX3NldF92aWRlb19jcl9tbihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2 aWNlICpkcCwKLQkJCWVudW0gY2xvY2tfcmVjb3ZlcnlfbV92YWx1ZV90eXBlIHR5cGUsCi0JCQl1 MzIgbV92YWx1ZSwKLQkJCXUzMiBuX3ZhbHVlKTsKKwkJCQkgZW51bSBjbG9ja19yZWNvdmVyeV9t X3ZhbHVlX3R5cGUgdHlwZSwKKwkJCQkgdTMyIG1fdmFsdWUsCisJCQkJIHUzMiBuX3ZhbHVlKTsK IHZvaWQgYW5hbG9naXhfZHBfc2V0X3ZpZGVvX3RpbWluZ19tb2RlKHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwLCB1MzIgdHlwZSk7Ci12b2lkIGFuYWxvZ2l4X2RwX2VuYWJsZV92aWRlb19t YXN0ZXIoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIGJvb2wgZW5hYmxlKTsKK3ZvaWQg YW5hbG9naXhfZHBfZW5hYmxlX3ZpZGVvX21hc3RlcihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNl ICpkcCwKKwkJCQkgICAgIGJvb2wgZW5hYmxlKTsKIHZvaWQgYW5hbG9naXhfZHBfc3RhcnRfdmlk ZW8oc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwogaW50IGFuYWxvZ2l4X2RwX2lzX3Zp ZGVvX3N0cmVhbV9vbihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCk7CiB2b2lkIGFuYWxv Z2l4X2RwX2NvbmZpZ192aWRlb19zbGF2ZV9tb2RlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2Ug KmRwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9n aXhfZHBfcmVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2Rw X3JlZy5jCmluZGV4IDQ0MmNjNjYuLmEzODhjMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfcmVnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9yZWcuYwpAQCAtNTQsMTAgKzU0LDEwIEBAIHZv aWQgYW5hbG9naXhfZHBfbGFuZV9zd2FwKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCBi b29sIGVuYWJsZSkKIAogCWlmIChlbmFibGUpCiAJCXJlZyA9IExBTkUzX01BUF9MT0dJQ19MQU5F XzAgfCBMQU5FMl9NQVBfTE9HSUNfTEFORV8xIHwKLQkJCUxBTkUxX01BUF9MT0dJQ19MQU5FXzIg fCBMQU5FMF9NQVBfTE9HSUNfTEFORV8zOworCQkgICAgICBMQU5FMV9NQVBfTE9HSUNfTEFORV8y IHwgTEFORTBfTUFQX0xPR0lDX0xBTkVfMzsKIAllbHNlCiAJCXJlZyA9IExBTkUzX01BUF9MT0dJ Q19MQU5FXzMgfCBMQU5FMl9NQVBfTE9HSUNfTEFORV8yIHwKLQkJCUxBTkUxX01BUF9MT0dJQ19M QU5FXzEgfCBMQU5FMF9NQVBfTE9HSUNfTEFORV8wOworCQkgICAgICBMQU5FMV9NQVBfTE9HSUNf TEFORV8xIHwgTEFORTBfTUFQX0xPR0lDX0xBTkVfMDsKIAogCXdyaXRlbChyZWcsIGRwLT5yZWdf YmFzZSArIEFOQUxPR0lYX0RQX0xBTkVfTUFQKTsKIH0KQEAgLTIwMiw4ICsyMDIsOCBAQCB2b2lk IGFuYWxvZ2l4X2RwX3NldF9wbGxfcG93ZXJfZG93bihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNl ICpkcCwgYm9vbCBlbmFibGUpCiB9CiAKIHZvaWQgYW5hbG9naXhfZHBfc2V0X2FuYWxvZ19wb3dl cl9kb3duKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCWVudW0gYW5hbG9nX3Bv d2VyX2Jsb2NrIGJsb2NrLAotCQkJCWJvb2wgZW5hYmxlKQorCQkJCSAgICAgICBlbnVtIGFuYWxv Z19wb3dlcl9ibG9jayBibG9jaywKKwkJCQkgICAgICAgYm9vbCBlbmFibGUpCiB7CiAJdTMyIHJl ZzsKIApAQCAtMzk5LDggKzM5OSw4IEBAIHZvaWQgYW5hbG9naXhfZHBfaW5pdF9hdXgoc3RydWN0 IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJYW5hbG9naXhfZHBfcmVzZXRfYXV4KGRwKTsKIAog CS8qIERpc2FibGUgQVVYIHRyYW5zYWN0aW9uIEgvVyByZXRyeSAqLwotCXJlZyA9IEFVWF9CSVRf UEVSSU9EX0VYUEVDVEVEX0RFTEFZKDMpIHwgQVVYX0hXX1JFVFJZX0NPVU5UX1NFTCgwKXwKLQkJ QVVYX0hXX1JFVFJZX0lOVEVSVkFMXzYwMF9NSUNST1NFQ09ORFM7CisJcmVnID0gQVVYX0JJVF9Q RVJJT0RfRVhQRUNURURfREVMQVkoMykgfCBBVVhfSFdfUkVUUllfQ09VTlRfU0VMKDApIHwKKwkg ICAgICBBVVhfSFdfUkVUUllfSU5URVJWQUxfNjAwX01JQ1JPU0VDT05EUzsKIAl3cml0ZWwocmVn LCBkcC0+cmVnX2Jhc2UgKyBBTkFMT0dJWF9EUF9BVVhfSFdfUkVUUllfQ1RMKTsKIAogCS8qIFJl Y2VpdmUgQVVYIENoYW5uZWwgREVGRVIgY29tbWFuZHMgZXF1YWwgdG8gREVGRkVSX0NPVU5UKjY0 ICovCkBAIC00ODMsOCArNDgzLDggQEAgaW50IGFuYWxvZ2l4X2RwX3N0YXJ0X2F1eF90cmFuc2Fj dGlvbihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKIH0KIAogaW50IGFuYWxvZ2l4X2Rw X3dyaXRlX2J5dGVfdG9fZHBjZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQl1 bnNpZ25lZCBpbnQgcmVnX2FkZHIsCi0JCQkJdW5zaWduZWQgY2hhciBkYXRhKQorCQkJCSAgIHVu c2lnbmVkIGludCByZWdfYWRkciwKKwkJCQkgICB1bnNpZ25lZCBjaGFyIGRhdGEpCiB7CiAJdTMy IHJlZzsKIAlpbnQgaTsKQEAgLTUxOSwxNyArNTE5LDE2IEBAIGludCBhbmFsb2dpeF9kcF93cml0 ZV9ieXRlX3RvX2RwY2Qoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCiAJCXJldHZhbCA9 IGFuYWxvZ2l4X2RwX3N0YXJ0X2F1eF90cmFuc2FjdGlvbihkcCk7CiAJCWlmIChyZXR2YWwgPT0g MCkKIAkJCWJyZWFrOwotCQllbHNlCi0JCQlkZXZfZGJnKGRwLT5kZXYsICIlczogQXV4IFRyYW5z YWN0aW9uIGZhaWwhXG4iLAotCQkJCV9fZnVuY19fKTsKKworCQlkZXZfZGJnKGRwLT5kZXYsICIl czogQXV4IFRyYW5zYWN0aW9uIGZhaWwhXG4iLCBfX2Z1bmNfXyk7CiAJfQogCiAJcmV0dXJuIHJl dHZhbDsKIH0KIAogaW50IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9mcm9tX2RwY2Qoc3RydWN0IGFu YWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJdW5zaWduZWQgaW50IHJlZ19hZGRyLAotCQkJCXVu c2lnbmVkIGNoYXIgKmRhdGEpCisJCQkJICAgIHVuc2lnbmVkIGludCByZWdfYWRkciwKKwkJCQkg ICAgdW5zaWduZWQgY2hhciAqZGF0YSkKIHsKIAl1MzIgcmVnOwogCWludCBpOwpAQCAtNTYwLDkg KzU1OSw4IEBAIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9kcGNkKHN0cnVjdCBhbmFs b2dpeF9kcF9kZXZpY2UgKmRwLAogCQlyZXR2YWwgPSBhbmFsb2dpeF9kcF9zdGFydF9hdXhfdHJh bnNhY3Rpb24oZHApOwogCQlpZiAocmV0dmFsID09IDApCiAJCQlicmVhazsKLQkJZWxzZQotCQkJ ZGV2X2RiZyhkcC0+ZGV2LCAiJXM6IEF1eCBUcmFuc2FjdGlvbiBmYWlsIVxuIiwKLQkJCQlfX2Z1 bmNfXyk7CisKKwkJZGV2X2RiZyhkcC0+ZGV2LCAiJXM6IEF1eCBUcmFuc2FjdGlvbiBmYWlsIVxu IiwgX19mdW5jX18pOwogCX0KIAogCS8qIFJlYWQgZGF0YSBidWZmZXIgKi8KQEAgLTU3Myw5ICs1 NzEsOSBAQCBpbnQgYW5hbG9naXhfZHBfcmVhZF9ieXRlX2Zyb21fZHBjZChzdHJ1Y3QgYW5hbG9n aXhfZHBfZGV2aWNlICpkcCwKIH0KIAogaW50IGFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVzX3RvX2Rw Y2Qoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJdW5zaWduZWQgaW50IHJlZ19h ZGRyLAotCQkJCXVuc2lnbmVkIGludCBjb3VudCwKLQkJCQl1bnNpZ25lZCBjaGFyIGRhdGFbXSkK KwkJCQkgICAgdW5zaWduZWQgaW50IHJlZ19hZGRyLAorCQkJCSAgICB1bnNpZ25lZCBpbnQgY291 bnQsCisJCQkJICAgIHVuc2lnbmVkIGNoYXIgZGF0YVtdKQogewogCXUzMiByZWc7CiAJdW5zaWdu ZWQgaW50IHN0YXJ0X29mZnNldDsKQEAgLTYwOCw4ICs2MDYsOSBAQCBpbnQgYW5hbG9naXhfZHBf d3JpdGVfYnl0ZXNfdG9fZHBjZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIAkJCWZv ciAoY3VyX2RhdGFfaWR4ID0gMDsgY3VyX2RhdGFfaWR4IDwgY3VyX2RhdGFfY291bnQ7CiAJCQkg ICAgIGN1cl9kYXRhX2lkeCsrKSB7CiAJCQkJcmVnID0gZGF0YVtzdGFydF9vZmZzZXQgKyBjdXJf ZGF0YV9pZHhdOwotCQkJCXdyaXRlbChyZWcsIGRwLT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQX0JV Rl9EQVRBXzAKLQkJCQkJCQkgICsgNCAqIGN1cl9kYXRhX2lkeCk7CisJCQkJd3JpdGVsKHJlZywg ZHAtPnJlZ19iYXNlICsKKwkJCQkgICAgICAgQU5BTE9HSVhfRFBfQlVGX0RBVEFfMCArCisJCQkJ ICAgICAgIDQgKiBjdXJfZGF0YV9pZHgpOwogCQkJfQogCiAJCQkvKgpAQCAtNjI1LDkgKzYyNCw5 IEBAIGludCBhbmFsb2dpeF9kcF93cml0ZV9ieXRlc190b19kcGNkKHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwLAogCQkJcmV0dmFsID0gYW5hbG9naXhfZHBfc3RhcnRfYXV4X3RyYW5zYWN0 aW9uKGRwKTsKIAkJCWlmIChyZXR2YWwgPT0gMCkKIAkJCQlicmVhazsKLQkJCWVsc2UKLQkJCQlk ZXZfZGJnKGRwLT5kZXYsICIlczogQXV4IFRyYW5zYWN0aW9uIGZhaWwhXG4iLAotCQkJCQlfX2Z1 bmNfXyk7CisKKwkJCWRldl9kYmcoZHAtPmRldiwgIiVzOiBBdXggVHJhbnNhY3Rpb24gZmFpbCFc biIsCisJCQkJX19mdW5jX18pOwogCQl9CiAKIAkJc3RhcnRfb2Zmc2V0ICs9IGN1cl9kYXRhX2Nv dW50OwpAQCAtNjM3LDkgKzYzNiw5IEBAIGludCBhbmFsb2dpeF9kcF93cml0ZV9ieXRlc190b19k cGNkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogfQogCiBpbnQgYW5hbG9naXhfZHBf cmVhZF9ieXRlc19mcm9tX2RwY2Qoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJ dW5zaWduZWQgaW50IHJlZ19hZGRyLAotCQkJCXVuc2lnbmVkIGludCBjb3VudCwKLQkJCQl1bnNp Z25lZCBjaGFyIGRhdGFbXSkKKwkJCQkgICAgIHVuc2lnbmVkIGludCByZWdfYWRkciwKKwkJCQkg ICAgIHVuc2lnbmVkIGludCBjb3VudCwKKwkJCQkgICAgIHVuc2lnbmVkIGNoYXIgZGF0YVtdKQog ewogCXUzMiByZWc7CiAJdW5zaWduZWQgaW50IHN0YXJ0X29mZnNldDsKQEAgLTY4Myw5ICs2ODIs OSBAQCBpbnQgYW5hbG9naXhfZHBfcmVhZF9ieXRlc19mcm9tX2RwY2Qoc3RydWN0IGFuYWxvZ2l4 X2RwX2RldmljZSAqZHAsCiAJCQlyZXR2YWwgPSBhbmFsb2dpeF9kcF9zdGFydF9hdXhfdHJhbnNh Y3Rpb24oZHApOwogCQkJaWYgKHJldHZhbCA9PSAwKQogCQkJCWJyZWFrOwotCQkJZWxzZQotCQkJ CWRldl9kYmcoZHAtPmRldiwgIiVzOiBBdXggVHJhbnNhY3Rpb24gZmFpbCFcbiIsCi0JCQkJCV9f ZnVuY19fKTsKKworCQkJZGV2X2RiZyhkcC0+ZGV2LCAiJXM6IEF1eCBUcmFuc2FjdGlvbiBmYWls IVxuIiwKKwkJCQlfX2Z1bmNfXyk7CiAJCX0KIAogCQlmb3IgKGN1cl9kYXRhX2lkeCA9IDA7IGN1 cl9kYXRhX2lkeCA8IGN1cl9kYXRhX2NvdW50OwpAQCAtNzAzLDggKzcwMiw4IEBAIGludCBhbmFs b2dpeF9kcF9yZWFkX2J5dGVzX2Zyb21fZHBjZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpk cCwKIH0KIAogaW50IGFuYWxvZ2l4X2RwX3NlbGVjdF9pMmNfZGV2aWNlKHN0cnVjdCBhbmFsb2dp eF9kcF9kZXZpY2UgKmRwLAotCQkJCXVuc2lnbmVkIGludCBkZXZpY2VfYWRkciwKLQkJCQl1bnNp Z25lZCBpbnQgcmVnX2FkZHIpCisJCQkJICB1bnNpZ25lZCBpbnQgZGV2aWNlX2FkZHIsCisJCQkJ ICB1bnNpZ25lZCBpbnQgcmVnX2FkZHIpCiB7CiAJdTMyIHJlZzsKIAlpbnQgcmV0dmFsOwpAQCAt NzM2LDkgKzczNSw5IEBAIGludCBhbmFsb2dpeF9kcF9zZWxlY3RfaTJjX2RldmljZShzdHJ1Y3Qg YW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIH0KIAogaW50IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9m cm9tX2kyYyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQl1bnNpZ25lZCBpbnQg ZGV2aWNlX2FkZHIsCi0JCQkJdW5zaWduZWQgaW50IHJlZ19hZGRyLAotCQkJCXVuc2lnbmVkIGlu dCAqZGF0YSkKKwkJCQkgICB1bnNpZ25lZCBpbnQgZGV2aWNlX2FkZHIsCisJCQkJICAgdW5zaWdu ZWQgaW50IHJlZ19hZGRyLAorCQkJCSAgIHVuc2lnbmVkIGludCAqZGF0YSkKIHsKIAl1MzIgcmVn OwogCWludCBpOwpAQCAtNzUwLDcgKzc0OSw4IEBAIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVf ZnJvbV9pMmMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCiAJCXdyaXRlbChyZWcsIGRw LT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQX0JVRkZFUl9EQVRBX0NUTCk7CiAKIAkJLyogU2VsZWN0 IEVESUQgZGV2aWNlICovCi0JCXJldHZhbCA9IGFuYWxvZ2l4X2RwX3NlbGVjdF9pMmNfZGV2aWNl KGRwLCBkZXZpY2VfYWRkciwgcmVnX2FkZHIpOworCQlyZXR2YWwgPSBhbmFsb2dpeF9kcF9zZWxl Y3RfaTJjX2RldmljZShkcCwgZGV2aWNlX2FkZHIsCisJCQkJCQkgICAgICAgcmVnX2FkZHIpOwog CQlpZiAocmV0dmFsICE9IDApCiAJCQljb250aW51ZTsKIApAQCAtNzY3LDkgKzc2Nyw4IEBAIGlu dCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9pMmMoc3RydWN0IGFuYWxvZ2l4X2RwX2Rldmlj ZSAqZHAsCiAJCXJldHZhbCA9IGFuYWxvZ2l4X2RwX3N0YXJ0X2F1eF90cmFuc2FjdGlvbihkcCk7 CiAJCWlmIChyZXR2YWwgPT0gMCkKIAkJCWJyZWFrOwotCQllbHNlCi0JCQlkZXZfZGJnKGRwLT5k ZXYsICIlczogQXV4IFRyYW5zYWN0aW9uIGZhaWwhXG4iLAotCQkJCV9fZnVuY19fKTsKKworCQlk ZXZfZGJnKGRwLT5kZXYsICIlczogQXV4IFRyYW5zYWN0aW9uIGZhaWwhXG4iLCBfX2Z1bmNfXyk7 CiAJfQogCiAJLyogUmVhZCBkYXRhICovCkBAIC03ODAsMTAgKzc3OSwxMCBAQCBpbnQgYW5hbG9n aXhfZHBfcmVhZF9ieXRlX2Zyb21faTJjKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAog fQogCiBpbnQgYW5hbG9naXhfZHBfcmVhZF9ieXRlc19mcm9tX2kyYyhzdHJ1Y3QgYW5hbG9naXhf ZHBfZGV2aWNlICpkcCwKLQkJCQl1bnNpZ25lZCBpbnQgZGV2aWNlX2FkZHIsCi0JCQkJdW5zaWdu ZWQgaW50IHJlZ19hZGRyLAotCQkJCXVuc2lnbmVkIGludCBjb3VudCwKLQkJCQl1bnNpZ25lZCBj aGFyIGVkaWRbXSkKKwkJCQkgICAgdW5zaWduZWQgaW50IGRldmljZV9hZGRyLAorCQkJCSAgICB1 bnNpZ25lZCBpbnQgcmVnX2FkZHIsCisJCQkJICAgIHVuc2lnbmVkIGludCBjb3VudCwKKwkJCQkg ICAgdW5zaWduZWQgY2hhciBlZGlkW10pCiB7CiAJdTMyIHJlZzsKIAl1bnNpZ25lZCBpbnQgaSwg ajsKQEAgLTgyOCwxNSArODI3LDE0IEBAIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVzX2Zyb21f aTJjKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogCQkJCXJldHZhbCA9IGFuYWxvZ2l4 X2RwX3N0YXJ0X2F1eF90cmFuc2FjdGlvbihkcCk7CiAJCQkJaWYgKHJldHZhbCA9PSAwKQogCQkJ CQlicmVhazsKLQkJCQllbHNlCi0JCQkJCWRldl9kYmcoZHAtPmRldiwKLQkJCQkJCSIlczogQXV4 IFRyYW5zYWN0aW9uIGZhaWwhXG4iLAotCQkJCQkJX19mdW5jX18pOworCisJCQkJZGV2X2RiZyhk cC0+ZGV2LCAiJXM6IEF1eCBUcmFuc2FjdGlvbiBmYWlsIVxuIiwKKwkJCQkJX19mdW5jX18pOwog CQkJfQogCQkJLyogQ2hlY2sgaWYgUnggc2VuZHMgZGVmZXIgKi8KIAkJCXJlZyA9IHJlYWRsKGRw LT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQX0FVWF9SWF9DT01NKTsKIAkJCWlmIChyZWcgPT0gQVVY X1JYX0NPTU1fQVVYX0RFRkVSIHx8Ci0JCQkJcmVnID09IEFVWF9SWF9DT01NX0kyQ19ERUZFUikg eworCQkJICAgIHJlZyA9PSBBVVhfUlhfQ09NTV9JMkNfREVGRVIpIHsKIAkJCQlkZXZfZXJyKGRw LT5kZXYsICJEZWZlcjogJWRcblxuIiwgcmVnKTsKIAkJCQlkZWZlciA9IDE7CiAJCQl9CkBAIC04 ODUsNyArODgzLDggQEAgdm9pZCBhbmFsb2dpeF9kcF9nZXRfbGFuZV9jb3VudChzdHJ1Y3QgYW5h bG9naXhfZHBfZGV2aWNlICpkcCwgdTMyICpjb3VudCkKIAkqY291bnQgPSByZWc7CiB9CiAKLXZv aWQgYW5hbG9naXhfZHBfZW5hYmxlX2VuaGFuY2VkX21vZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2Rl dmljZSAqZHAsIGJvb2wgZW5hYmxlKQordm9pZCBhbmFsb2dpeF9kcF9lbmFibGVfZW5oYW5jZWRf bW9kZShzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkgICAgICBib29sIGVuYWJs ZSkKIHsKIAl1MzIgcmVnOwogCkBAIC05MDEsNyArOTAwLDcgQEAgdm9pZCBhbmFsb2dpeF9kcF9l bmFibGVfZW5oYW5jZWRfbW9kZShzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwgYm9vbCBl bmFibGUKIH0KIAogdm9pZCBhbmFsb2dpeF9kcF9zZXRfdHJhaW5pbmdfcGF0dGVybihzdHJ1Y3Qg YW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQllbnVtIHBhdHRlcm5fc2V0IHBhdHRlcm4pCisJ CQkJICAgICAgZW51bSBwYXR0ZXJuX3NldCBwYXR0ZXJuKQogewogCXUzMiByZWc7CiAKQEAgLTkz Myw3ICs5MzIsOCBAQCB2b2lkIGFuYWxvZ2l4X2RwX3NldF90cmFpbmluZ19wYXR0ZXJuKHN0cnVj dCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogCX0KIH0KIAotdm9pZCBhbmFsb2dpeF9kcF9zZXRf bGFuZTBfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2 ZWwpCit2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMF9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxv Z2l4X2RwX2RldmljZSAqZHAsCisJCQkJCXUzMiBsZXZlbCkKIHsKIAl1MzIgcmVnOwogCkBAIC05 NDMsNyArOTQzLDggQEAgdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTBfcHJlX2VtcGhhc2lzKHN0 cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwKIAl3cml0ZWwocmVnLCBkcC0+ cmVnX2Jhc2UgKyBBTkFMT0dJWF9EUF9MTjBfTElOS19UUkFJTklOR19DVEwpOwogfQogCi12b2lk IGFuYWxvZ2l4X2RwX3NldF9sYW5lMV9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2Rl dmljZSAqZHAsIHUzMiBsZXZlbCkKK3ZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUxX3ByZV9lbXBo YXNpcyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkJdTMyIGxldmVsKQogewog CXUzMiByZWc7CiAKQEAgLTk1Myw3ICs5NTQsOCBAQCB2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5l MV9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiBsZXZlbAog CXdyaXRlbChyZWcsIGRwLT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQX0xOMV9MSU5LX1RSQUlOSU5H X0NUTCk7CiB9CiAKLXZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUyX3ByZV9lbXBoYXNpcyhzdHJ1 Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwgdTMyIGxldmVsKQordm9pZCBhbmFsb2dpeF9kcF9z ZXRfbGFuZTJfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAorCQkJ CQl1MzIgbGV2ZWwpCiB7CiAJdTMyIHJlZzsKIApAQCAtOTYzLDcgKzk2NSw4IEBAIHZvaWQgYW5h bG9naXhfZHBfc2V0X2xhbmUyX3ByZV9lbXBoYXNpcyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNl ICpkcCwgdTMyIGxldmVsCiAJd3JpdGVsKHJlZywgZHAtPnJlZ19iYXNlICsgQU5BTE9HSVhfRFBf TE4yX0xJTktfVFJBSU5JTkdfQ1RMKTsKIH0KIAotdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTNf cHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwpCit2 b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lM19wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2Rw X2RldmljZSAqZHAsCisJCQkJCXUzMiBsZXZlbCkKIHsKIAl1MzIgcmVnOwogCkBAIC05NzQsNyAr OTc3LDcgQEAgdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTNfcHJlX2VtcGhhc2lzKHN0cnVjdCBh bmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwKIH0KIAogdm9pZCBhbmFsb2dpeF9kcF9z ZXRfbGFuZTBfbGlua190cmFpbmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJ CQkJdTMyIHRyYWluaW5nX2xhbmUpCisJCQkJCSB1MzIgdHJhaW5pbmdfbGFuZSkKIHsKIAl1MzIg cmVnOwogCkBAIC05ODMsNyArOTg2LDcgQEAgdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTBfbGlu a190cmFpbmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIH0KIAogdm9pZCBhbmFs b2dpeF9kcF9zZXRfbGFuZTFfbGlua190cmFpbmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNl ICpkcCwKLQkJCQkJdTMyIHRyYWluaW5nX2xhbmUpCisJCQkJCSB1MzIgdHJhaW5pbmdfbGFuZSkK IHsKIAl1MzIgcmVnOwogCkBAIC0xMDAxLDcgKzEwMDQsNyBAQCB2b2lkIGFuYWxvZ2l4X2RwX3Nl dF9sYW5lMl9saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogfQog CiB2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lM19saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dp eF9kcF9kZXZpY2UgKmRwLAotCQkJCQl1MzIgdHJhaW5pbmdfbGFuZSkKKwkJCQkJIHUzMiB0cmFp bmluZ19sYW5lKQogewogCXUzMiByZWc7CiAKQEAgLTExMjUsOSArMTEyOCw4IEBAIGludCBhbmFs b2dpeF9kcF9pc19zbGF2ZV92aWRlb19zdHJlYW1fY2xvY2tfb24oc3RydWN0IGFuYWxvZ2l4X2Rw X2RldmljZSAqZHApCiB9CiAKIHZvaWQgYW5hbG9naXhfZHBfc2V0X3ZpZGVvX2NyX21uKHN0cnVj dCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQllbnVtIGNsb2NrX3JlY292ZXJ5X21fdmFsdWVf dHlwZSB0eXBlLAotCQl1MzIgbV92YWx1ZSwKLQkJdTMyIG5fdmFsdWUpCisJCQkJIGVudW0gY2xv Y2tfcmVjb3ZlcnlfbV92YWx1ZV90eXBlIHR5cGUsCisJCQkJIHUzMiBtX3ZhbHVlLCB1MzIgbl92 YWx1ZSkKIHsKIAl1MzIgcmVnOwogCkBAIC0xMjIxLDcgKzEyMjMsNyBAQCB2b2lkIGFuYWxvZ2l4 X2RwX2NvbmZpZ192aWRlb19zbGF2ZV9tb2RlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRw KQogCXUzMiByZWc7CiAKIAlyZWcgPSByZWFkbChkcC0+cmVnX2Jhc2UgKyBBTkFMT0dJWF9EUF9G VU5DX0VOXzEpOwotCXJlZyAmPSB+KE1BU1RFUl9WSURfRlVOQ19FTl9OfFNMQVZFX1ZJRF9GVU5D X0VOX04pOworCXJlZyAmPSB+KE1BU1RFUl9WSURfRlVOQ19FTl9OIHwgU0xBVkVfVklEX0ZVTkNf RU5fTik7CiAJcmVnIHw9IE1BU1RFUl9WSURfRlVOQ19FTl9OOwogCXdyaXRlbChyZWcsIGRwLT5y ZWdfYmFzZSArIEFOQUxPR0lYX0RQX0ZVTkNfRU5fMSk7CiAKLS0gCjEuOS4xCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK