From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yakir Yang Subject: [PATCH v12 02/18] drm: bridge: analogix/dp: fix some obvious code style Date: Wed, 23 Dec 2015 20:31:45 +0800 Message-ID: <1450873905-18936-1-git-send-email-ykk@rock-chips.com> References: <1450873538-18304-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: <1450873538-18304-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 LmNvbT4KQWNrZWQtYnk6IEppbmdvbyBIYW4gPGppbmdvb2hhbjFAZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogS3J6eXN6dG9mIEtvemxvd3NraSA8ay5rb3psb3dza2lAc2Ftc3VuZy5jb20+ClRlc3Rl ZC1ieTogSmF2aWVyIE1hcnRpbmV6IENhbmlsbGFzIDxqYXZpZXJAb3NnLnNhbXN1bmcuY29tPgot LS0KQ2hhbmdlcyBpbiB2MTI6Ci0gQWRkIHRoZSBhY2sgZnJvbSBKaW5nb28KCkNoYW5nZXMgaW4g djExOiBOb25lCkNoYW5nZXMgaW4gdjEwOiBOb25lCkNoYW5nZXMgaW4gdjk6IE5vbmUKQ2hhbmdl cyBpbiB2ODogTm9uZQpDaGFuZ2VzIGluIHY3OiBOb25lCkNoYW5nZXMgaW4gdjY6IE5vbmUKQ2hh bmdlcyBpbiB2NToKLSBSZXNlcXVlbmNlIHRoaXMgcGF0Y2ggYWZ0ZXIgYW5hbG9naXhfZHAgZHJp dmVyIGhhdmUgYmVlbiBzcGxpdAogIGZyb20gZXh5bm9zX2RwIGNvZGUsIGFuZCByZXBocmFzZSBy ZWFzb25hYmxlIGNvbW1pdCBtZXNzYWdlLCBhbmQKICByZW1vdmUgc29tZSBjb250cm92ZXJzaWFs IHN0eWxlIChLcnp5c3p0b2YpCiAgICAtCQlhbmFsb2dpeF9kcF93cml0ZV9ieXRlX3RvX2RwY2Qo CiAgICAtIAkJCQlkcCwgRFBfVEVTVF9SRVNQT05TRSwKICAgICsJCWFuYWxvZ2l4X2RwX3dyaXRl X2J5dGVfdG9fZHBjZChkcCwKICAgICsJCQkJRFBfVEVTVF9SRVNQT05TRSwKCQkJCURQX1RFU1Rf RURJRF9DSEVDS1NVTV9XUklURSk7CgpDaGFuZ2VzIGluIHY0OiBOb25lCkNoYW5nZXMgaW4gdjM6 IE5vbmUKQ2hhbmdlcyBpbiB2MjoKLSBJbXByb3ZlZCBjb21taXQgbWVzc2FnZSBtb3JlIHJlYWRh YmxlLCBhbmQgYXZvaWQgdXNpbmcgc29tZQogIHVuY29tbW9uIHN0eWxlIGxpa2UgYmVsbG93OiAo Sm9lIFByZWNoZXMpCiAgICAtICByZXR2YWwgPSBleHlub3NfZHBfcmVhZF9ieXRlc19mcm9tX2ky YyguLi4KICAJCQkJICAuLi4pOwogICAgKyAgcmV0dmFsID0KICAgICsgIGV4eW5vc19kcF9yZWFk X2J5dGVzX2Zyb21faTJjKC4uLi4uLik7CgogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dp eC9hbmFsb2dpeF9kcF9jb3JlLmMgfCAxMjkgKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuaCB8ICA3MiArKysrKyst LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfcmVnLmMg IHwgMTI0ICsrKysrKysrKystLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRp b25zKCspLCAxNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYwppbmRleCAzYWM0ZjFkLi45MTVmYjQ2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUu YwpAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2RldGVjdF9ocGQoc3Ry dWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAKIAl3aGlsZSAoYW5hbG9naXhfZHBfZ2V0X3Bs dWdfaW5fc3RhdHVzKGRwKSAhPSAwKSB7CiAJCXRpbWVvdXRfbG9vcCsrOwotCQlpZiAoRFBfVElN RU9VVF9MT09QX0NPVU5UIDwgdGltZW91dF9sb29wKSB7CisJCWlmICh0aW1lb3V0X2xvb3AgPiBE UF9USU1FT1VUX0xPT1BfQ09VTlQpIHsKIAkJCWRldl9lcnIoZHAtPmRldiwgImZhaWxlZCB0byBn ZXQgaHBkIHBsdWcgc3RhdHVzXG4iKTsKIAkJCXJldHVybiAtRVRJTUVET1VUOwogCQl9CkBAIC0x MDEsOCArMTAxLDggQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9yZWFkX2VkaWQoc3RydWN0IGFu YWxvZ2l4X2RwX2RldmljZSAqZHApCiAKIAkvKiBSZWFkIEV4dGVuc2lvbiBGbGFnLCBOdW1iZXIg b2YgMTI4LWJ5dGUgRURJRCBleHRlbnNpb24gYmxvY2tzICovCiAJcmV0dmFsID0gYW5hbG9naXhf ZHBfcmVhZF9ieXRlX2Zyb21faTJjKGRwLCBJMkNfRURJRF9ERVZJQ0VfQUREUiwKLQkJCQlFRElE X0VYVEVOU0lPTl9GTEFHLAotCQkJCSZleHRlbmRfYmxvY2spOworCQkJCQkJRURJRF9FWFRFTlNJ T05fRkxBRywKKwkJCQkJCSZleHRlbmRfYmxvY2spOwogCWlmIChyZXR2YWwpCiAJCXJldHVybiBy ZXR2YWw7CiAKQEAgLTExMCw3ICsxMTAsOCBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX3JlYWRf ZWRpZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKIAkJZGV2X2RiZyhkcC0+ZGV2LCAi RURJRCBkYXRhIGluY2x1ZGVzIGEgc2luZ2xlIGV4dGVuc2lvbiFcbiIpOwogCiAJCS8qIFJlYWQg RURJRCBkYXRhICovCi0JCXJldHZhbCA9IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZXNfZnJvbV9pMmMo ZHAsIEkyQ19FRElEX0RFVklDRV9BRERSLAorCQlyZXR2YWwgPSBhbmFsb2dpeF9kcF9yZWFkX2J5 dGVzX2Zyb21faTJjKGRwLAorCQkJCQkJSTJDX0VESURfREVWSUNFX0FERFIsCiAJCQkJCQlFRElE X0hFQURFUl9QQVRURVJOLAogCQkJCQkJRURJRF9CTE9DS19MRU5HVEgsCiAJCQkJCQkmZWRpZFtF RElEX0hFQURFUl9QQVRURVJOXSk7CkBAIC0xNDEsNyArMTQyLDcgQEAgc3RhdGljIGludCBhbmFs b2dpeF9kcF9yZWFkX2VkaWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJCX0KIAog CQlhbmFsb2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9kcGNkKGRwLCBEUF9URVNUX1JFUVVFU1QsCi0J CQkJCSZ0ZXN0X3ZlY3Rvcik7CisJCQkJCQkmdGVzdF92ZWN0b3IpOwogCQlpZiAodGVzdF92ZWN0 b3IgJiBEUF9URVNUX0xJTktfRURJRF9SRUFEKSB7CiAJCQlhbmFsb2dpeF9kcF93cml0ZV9ieXRl X3RvX2RwY2QoZHAsCiAJCQkJRFBfVEVTVF9FRElEX0NIRUNLU1VNLApAQCAtMTU1LDEwICsxNTYs OCBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX3JlYWRfZWRpZChzdHJ1Y3QgYW5hbG9naXhfZHBf ZGV2aWNlICpkcCkKIAogCQkvKiBSZWFkIEVESUQgZGF0YSAqLwogCQlyZXR2YWwgPSBhbmFsb2dp eF9kcF9yZWFkX2J5dGVzX2Zyb21faTJjKGRwLAotCQkJCUkyQ19FRElEX0RFVklDRV9BRERSLAot CQkJCUVESURfSEVBREVSX1BBVFRFUk4sCi0JCQkJRURJRF9CTE9DS19MRU5HVEgsCi0JCQkJJmVk aWRbRURJRF9IRUFERVJfUEFUVEVSTl0pOworCQkJCUkyQ19FRElEX0RFVklDRV9BRERSLCBFRElE X0hFQURFUl9QQVRURVJOLAorCQkJCUVESURfQkxPQ0tfTEVOR1RILCAmZWRpZFtFRElEX0hFQURF Ul9QQVRURVJOXSk7CiAJCWlmIChyZXR2YWwgIT0gMCkgewogCQkJZGV2X2VycihkcC0+ZGV2LCAi RURJRCBSZWFkIGZhaWxlZCFcbiIpOwogCQkJcmV0dXJuIC1FSU87CkBAIC0xNjksMTYgKzE2OCwx MyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX3JlYWRfZWRpZChzdHJ1Y3QgYW5hbG9naXhfZHBf ZGV2aWNlICpkcCkKIAkJCXJldHVybiAtRUlPOwogCQl9CiAKLQkJYW5hbG9naXhfZHBfcmVhZF9i eXRlX2Zyb21fZHBjZChkcCwKLQkJCURQX1RFU1RfUkVRVUVTVCwKLQkJCSZ0ZXN0X3ZlY3Rvcik7 CisJCWFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9mcm9tX2RwY2QoZHAsIERQX1RFU1RfUkVRVUVTVCwK KwkJCQkJCSZ0ZXN0X3ZlY3Rvcik7CiAJCWlmICh0ZXN0X3ZlY3RvciAmIERQX1RFU1RfTElOS19F RElEX1JFQUQpIHsKIAkJCWFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVfdG9fZHBjZChkcCwKLQkJCQlE UF9URVNUX0VESURfQ0hFQ0tTVU0sCi0JCQkJZWRpZFtFRElEX0NIRUNLU1VNXSk7CisJCQkJRFBf VEVTVF9FRElEX0NIRUNLU1VNLCBlZGlkW0VESURfQ0hFQ0tTVU1dKTsKIAkJCWFuYWxvZ2l4X2Rw X3dyaXRlX2J5dGVfdG9fZHBjZChkcCwKLQkJCQlEUF9URVNUX1JFU1BPTlNFLAotCQkJCURQX1RF U1RfRURJRF9DSEVDS1NVTV9XUklURSk7CisJCQkJRFBfVEVTVF9SRVNQT05TRSwgRFBfVEVTVF9F RElEX0NIRUNLU1VNX1dSSVRFKTsKIAkJfQogCX0KIApAQCAtMTkzLDggKzE4OSw3IEBAIHN0YXRp YyBpbnQgYW5hbG9naXhfZHBfaGFuZGxlX2VkaWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAq ZHApCiAJaW50IHJldHZhbDsKIAogCS8qIFJlYWQgRFBDRCBEUF9EUENEX1JFVn5SRUNFSVZFX1BP UlQxX0NBUF8xICovCi0JcmV0dmFsID0gYW5hbG9naXhfZHBfcmVhZF9ieXRlc19mcm9tX2RwY2Qo ZHAsIERQX0RQQ0RfUkVWLAotCQkJCTEyLCBidWYpOworCXJldHZhbCA9IGFuYWxvZ2l4X2RwX3Jl YWRfYnl0ZXNfZnJvbV9kcGNkKGRwLCBEUF9EUENEX1JFViwgMTIsIGJ1Zik7CiAJaWYgKHJldHZh bCkKIAkJcmV0dXJuIHJldHZhbDsKIApAQCAtMjA4LDggKzIwMyw5IEBAIHN0YXRpYyBpbnQgYW5h bG9naXhfZHBfaGFuZGxlX2VkaWQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJcmV0 dXJuIHJldHZhbDsKIH0KIAotc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfZW5hYmxlX3J4X3RvX2Vu aGFuY2VkX21vZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJCQlib29sIGVu YWJsZSkKK3N0YXRpYyB2b2lkCithbmFsb2dpeF9kcF9lbmFibGVfcnhfdG9fZW5oYW5jZWRfbW9k ZShzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkgICAgICAgYm9vbCBlbmFibGUp CiB7CiAJdTggZGF0YTsKIApAQCAtMjE3LDExICsyMTMsMTEgQEAgc3RhdGljIHZvaWQgYW5hbG9n aXhfZHBfZW5hYmxlX3J4X3RvX2VuaGFuY2VkX21vZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2Rldmlj ZSAqZHAKIAogCWlmIChlbmFibGUpCiAJCWFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVfdG9fZHBjZChk cCwgRFBfTEFORV9DT1VOVF9TRVQsCi0JCQlEUF9MQU5FX0NPVU5UX0VOSEFOQ0VEX0ZSQU1FX0VO IHwKLQkJCURQQ0RfTEFORV9DT1VOVF9TRVQoZGF0YSkpOworCQkJCQkgICAgICAgRFBfTEFORV9D T1VOVF9FTkhBTkNFRF9GUkFNRV9FTiB8CisJCQkJCSAgICAgICBEUENEX0xBTkVfQ09VTlRfU0VU KGRhdGEpKTsKIAllbHNlCiAJCWFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVfdG9fZHBjZChkcCwgRFBf TEFORV9DT1VOVF9TRVQsCi0JCQlEUENEX0xBTkVfQ09VTlRfU0VUKGRhdGEpKTsKKwkJCQkJICAg ICAgIERQQ0RfTEFORV9DT1VOVF9TRVQoZGF0YSkpOwogfQogCiBzdGF0aWMgaW50IGFuYWxvZ2l4 X2RwX2lzX2VuaGFuY2VkX21vZGVfYXZhaWxhYmxlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2Ug KmRwKQpAQCAtMjQ4LDEzICsyNDQsMTMgQEAgc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfdHJhaW5p bmdfcGF0dGVybl9kaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiB7CiAJYW5hbG9n aXhfZHBfc2V0X3RyYWluaW5nX3BhdHRlcm4oZHAsIERQX05PTkUpOwogCi0JYW5hbG9naXhfZHBf d3JpdGVfYnl0ZV90b19kcGNkKGRwLAotCQlEUF9UUkFJTklOR19QQVRURVJOX1NFVCwKLQkJRFBf VFJBSU5JTkdfUEFUVEVSTl9ESVNBQkxFKTsKKwlhbmFsb2dpeF9kcF93cml0ZV9ieXRlX3RvX2Rw Y2QoZHAsIERQX1RSQUlOSU5HX1BBVFRFUk5fU0VULAorCQkJCSAgICAgICBEUF9UUkFJTklOR19Q QVRURVJOX0RJU0FCTEUpOwogfQogCi1zdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZV9s YW5lX3ByZV9lbXBoYXNpcyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQkJaW50 IHByZV9lbXBoYXNpcywgaW50IGxhbmUpCitzdGF0aWMgdm9pZAorYW5hbG9naXhfZHBfc2V0X2xh bmVfbGFuZV9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJCQkJ ICAgICAgIGludCBwcmVfZW1waGFzaXMsIGludCBsYW5lKQogewogCXN3aXRjaCAobGFuZSkgewog CWNhc2UgMDoKQEAgLTI5NCw4ICsyOTAsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2xpbmtf c3RhcnQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJLyogU2V0dXAgUlggY29uZmln dXJhdGlvbiAqLwogCWJ1ZlswXSA9IGRwLT5saW5rX3RyYWluLmxpbmtfcmF0ZTsKIAlidWZbMV0g PSBkcC0+bGlua190cmFpbi5sYW5lX2NvdW50OwotCXJldHZhbCA9IGFuYWxvZ2l4X2RwX3dyaXRl X2J5dGVzX3RvX2RwY2QoZHAsIERQX0xJTktfQldfU0VULAotCQkJCTIsIGJ1Zik7CisJcmV0dmFs ID0gYW5hbG9naXhfZHBfd3JpdGVfYnl0ZXNfdG9fZHBjZChkcCwgRFBfTElOS19CV19TRVQsIDIs IGJ1Zik7CiAJaWYgKHJldHZhbCkKIAkJcmV0dXJuIHJldHZhbDsKIApAQCAtMzMxLDcgKzMyNiw3 IEBAIHN0YXRpYyBpbnQgYW5hbG9naXhfZHBfbGlua19zdGFydChzdHJ1Y3QgYW5hbG9naXhfZHBf ZGV2aWNlICpkcCkKIAkJCSAgICBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzA7CiAKIAly ZXR2YWwgPSBhbmFsb2dpeF9kcF93cml0ZV9ieXRlc190b19kcGNkKGRwLCBEUF9UUkFJTklOR19M QU5FMF9TRVQsCi0JCQlsYW5lX2NvdW50LCBidWYpOworCQkJCQkJIGxhbmVfY291bnQsIGJ1Zik7 CiAKIAlyZXR1cm4gcmV0dmFsOwogfQpAQCAtMzM5LDcgKzMzNCw3IEBAIHN0YXRpYyBpbnQgYW5h bG9naXhfZHBfbGlua19zdGFydChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKIHN0YXRp YyB1bnNpZ25lZCBjaGFyIGFuYWxvZ2l4X2RwX2dldF9sYW5lX3N0YXR1cyh1OCBsaW5rX3N0YXR1 c1syXSwgaW50IGxhbmUpCiB7CiAJaW50IHNoaWZ0ID0gKGxhbmUgJiAxKSAqIDQ7Ci0JdTggbGlu a192YWx1ZSA9IGxpbmtfc3RhdHVzW2xhbmU+PjFdOworCXU4IGxpbmtfdmFsdWUgPSBsaW5rX3N0 YXR1c1tsYW5lID4+IDFdOwogCiAJcmV0dXJuIChsaW5rX3ZhbHVlID4+IHNoaWZ0KSAmIDB4ZjsK IH0KQEAgLTM1OCw3ICszNTMsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2Nsb2NrX3JlY292 ZXJ5X29rKHU4IGxpbmtfc3RhdHVzWzJdLCBpbnQgbGFuZV9jb3VudCkKIH0KIAogc3RhdGljIGlu dCBhbmFsb2dpeF9kcF9jaGFubmVsX2VxX29rKHU4IGxpbmtfc3RhdHVzWzJdLCB1OCBsaW5rX2Fs aWduLAotCQkJCWludCBsYW5lX2NvdW50KQorCQkJCSAgICAgaW50IGxhbmVfY291bnQpCiB7CiAJ aW50IGxhbmU7CiAJdTggbGFuZV9zdGF0dXM7CkBAIC0zNzYsMTEgKzM3MSwxMSBAQCBzdGF0aWMg aW50IGFuYWxvZ2l4X2RwX2NoYW5uZWxfZXFfb2sodTggbGlua19zdGF0dXNbMl0sIHU4IGxpbmtf YWxpZ24sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGFuYWxvZ2l4X2Rw X2dldF9hZGp1c3RfcmVxdWVzdF92b2x0YWdlKHU4IGFkanVzdF9yZXF1ZXN0WzJdLAotCQkJCQkJ CWludCBsYW5lKQorc3RhdGljIHVuc2lnbmVkIGNoYXIKK2FuYWxvZ2l4X2RwX2dldF9hZGp1c3Rf cmVxdWVzdF92b2x0YWdlKHU4IGFkanVzdF9yZXF1ZXN0WzJdLCBpbnQgbGFuZSkKIHsKIAlpbnQg c2hpZnQgPSAobGFuZSAmIDEpICogNDsKLQl1OCBsaW5rX3ZhbHVlID0gYWRqdXN0X3JlcXVlc3Rb bGFuZT4+MV07CisJdTggbGlua192YWx1ZSA9IGFkanVzdF9yZXF1ZXN0W2xhbmUgPj4gMV07CiAK IAlyZXR1cm4gKGxpbmtfdmFsdWUgPj4gc2hpZnQpICYgMHgzOwogfQpAQCAtMzkwLDEzICszODUs MTMgQEAgc3RhdGljIHVuc2lnbmVkIGNoYXIgYW5hbG9naXhfZHBfZ2V0X2FkanVzdF9yZXF1ZXN0 X3ByZV9lbXBoYXNpcygKIAkJCQkJaW50IGxhbmUpCiB7CiAJaW50IHNoaWZ0ID0gKGxhbmUgJiAx KSAqIDQ7Ci0JdTggbGlua192YWx1ZSA9IGFkanVzdF9yZXF1ZXN0W2xhbmU+PjFdOworCXU4IGxp bmtfdmFsdWUgPSBhZGp1c3RfcmVxdWVzdFtsYW5lID4+IDFdOwogCiAJcmV0dXJuICgobGlua192 YWx1ZSA+PiBzaGlmdCkgJiAweGMpID4+IDI7CiB9CiAKIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2Rw X3NldF9sYW5lX2xpbmtfdHJhaW5pbmcoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0J CQkJCXU4IHRyYWluaW5nX2xhbmVfc2V0LCBpbnQgbGFuZSkKKwkJCQkJICAgICAgIHU4IHRyYWlu aW5nX2xhbmVfc2V0LCBpbnQgbGFuZSkKIHsKIAlzd2l0Y2ggKGxhbmUpIHsKIAljYXNlIDA6CkBA IC00MTYsOSArNDExLDkgQEAgc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmVfbGlua190 cmFpbmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIAl9CiB9CiAKLXN0YXRpYyB1 bnNpZ25lZCBpbnQgYW5hbG9naXhfZHBfZ2V0X2xhbmVfbGlua190cmFpbmluZygKLQkJCQlzdHJ1 Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQlpbnQgbGFuZSkKK3N0YXRpYyB1bnNpZ25l ZCBpbnQKK2FuYWxvZ2l4X2RwX2dldF9sYW5lX2xpbmtfdHJhaW5pbmcoc3RydWN0IGFuYWxvZ2l4 X2RwX2RldmljZSAqZHAsCisJCQkJICAgaW50IGxhbmUpCiB7CiAJdTMyIHJlZzsKIApAQCAtNDUy LDcgKzQ0Nyw3IEBAIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX3JlZHVjZV9saW5rX3JhdGUoc3Ry dWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiB9CiAKIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2Rw X2dldF9hZGp1c3RfdHJhaW5pbmdfbGFuZShzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwK LQkJCQkJdTggYWRqdXN0X3JlcXVlc3RbMl0pCisJCQkJCQkgdTggYWRqdXN0X3JlcXVlc3RbMl0p CiB7CiAJaW50IGxhbmUsIGxhbmVfY291bnQ7CiAJdTggdm9sdGFnZV9zd2luZywgcHJlX2VtcGhh c2lzLCB0cmFpbmluZ19sYW5lOwpAQCAtNjI1LDcgKzYyMCw3IEBAIHN0YXRpYyBpbnQgYW5hbG9n aXhfZHBfcHJvY2Vzc19lcXVhbGl6ZXJfdHJhaW5pbmcoc3RydWN0IGFuYWxvZ2l4X2RwX2Rldmlj ZSAqZHApCiB9CiAKIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX2dldF9tYXhfcnhfYmFuZHdpZHRo KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCQl1OCAqYmFuZHdpZHRoKQorCQkJ CQkgICAgIHU4ICpiYW5kd2lkdGgpCiB7CiAJdTggZGF0YTsKIApAQCAtNjM4LDcgKzYzMyw3IEBA IHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX2dldF9tYXhfcnhfYmFuZHdpZHRoKHN0cnVjdCBhbmFs b2dpeF9kcF9kZXZpY2UgKmRwLAogfQogCiBzdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9nZXRfbWF4 X3J4X2xhbmVfY291bnQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJCXU4ICps YW5lX2NvdW50KQorCQkJCQkgICAgICB1OCAqbGFuZV9jb3VudCkKIHsKIAl1OCBkYXRhOwogCkBA IC02NTEsOCArNjQ2LDggQEAgc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfZ2V0X21heF9yeF9sYW5l X2NvdW50KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogfQogCiBzdGF0aWMgdm9pZCBh bmFsb2dpeF9kcF9pbml0X3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAot CQkJZW51bSBsaW5rX2xhbmVfY291bnRfdHlwZSBtYXhfbGFuZSwKLQkJCWVudW0gbGlua19yYXRl X3R5cGUgbWF4X3JhdGUpCisJCQkJICAgICAgZW51bSBsaW5rX2xhbmVfY291bnRfdHlwZSBtYXhf bGFuZSwKKwkJCQkgICAgICBlbnVtIGxpbmtfcmF0ZV90eXBlIG1heF9yYXRlKQogewogCS8qCiAJ ICogTUFDUk9fUlNUIG11c3QgYmUgYXBwbGllZCBhZnRlciB0aGUgUExMX0xPQ0sgdG8gYXZvaWQK QEAgLTY2NSw3ICs2NjAsNyBAQCBzdGF0aWMgdm9pZCBhbmFsb2dpeF9kcF9pbml0X3RyYWluaW5n KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogCWFuYWxvZ2l4X2RwX2dldF9tYXhfcnhf bGFuZV9jb3VudChkcCwgJmRwLT5saW5rX3RyYWluLmxhbmVfY291bnQpOwogCiAJaWYgKChkcC0+ bGlua190cmFpbi5saW5rX3JhdGUgIT0gTElOS19SQVRFXzFfNjJHQlBTKSAmJgotCSAgIChkcC0+ bGlua190cmFpbi5saW5rX3JhdGUgIT0gTElOS19SQVRFXzJfNzBHQlBTKSkgeworCSAgICAoZHAt PmxpbmtfdHJhaW4ubGlua19yYXRlICE9IExJTktfUkFURV8yXzcwR0JQUykpIHsKIAkJZGV2X2Vy cihkcC0+ZGV2LCAiUnggTWF4IExpbmsgUmF0ZSBpcyBhYm5vcm1hbCA6JXggIVxuIiwKIAkJCWRw LT5saW5rX3RyYWluLmxpbmtfcmF0ZSk7CiAJCWRwLT5saW5rX3RyYWluLmxpbmtfcmF0ZSA9IExJ TktfUkFURV8xXzYyR0JQUzsKQEAgLTcyNSw4ICs3MjAsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4 X2RwX3N3X2xpbmtfdHJhaW5pbmcoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiB9CiAK IHN0YXRpYyBpbnQgYW5hbG9naXhfZHBfc2V0X2xpbmtfdHJhaW4oc3RydWN0IGFuYWxvZ2l4X2Rw X2RldmljZSAqZHAsCi0JCQkJdTMyIGNvdW50LAotCQkJCXUzMiBid3R5cGUpCisJCQkJICAgICAg dTMyIGNvdW50LCB1MzIgYnd0eXBlKQogewogCWludCBpOwogCWludCByZXR2YWw7CkBAIC03NjIs NyArNzU2LDcgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9jb25maWdfdmlkZW8oc3RydWN0IGFu YWxvZ2l4X2RwX2RldmljZSAqZHApCiAJCXRpbWVvdXRfbG9vcCsrOwogCQlpZiAoYW5hbG9naXhf ZHBfaXNfc2xhdmVfdmlkZW9fc3RyZWFtX2Nsb2NrX29uKGRwKSA9PSAwKQogCQkJYnJlYWs7Ci0J CWlmIChEUF9USU1FT1VUX0xPT1BfQ09VTlQgPCB0aW1lb3V0X2xvb3ApIHsKKwkJaWYgKHRpbWVv dXRfbG9vcCA+IERQX1RJTUVPVVRfTE9PUF9DT1VOVCkgewogCQkJZGV2X2VycihkcC0+ZGV2LCAi VGltZW91dCBvZiB2aWRlbyBzdHJlYW1jbGsgb2tcbiIpOwogCQkJcmV0dXJuIC1FVElNRURPVVQ7 CiAJCX0KQEAgLTc5Myw3ICs3ODcsNyBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2NvbmZpZ192 aWRlbyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKIAkJfSBlbHNlIGlmIChkb25lX2Nv dW50KSB7CiAJCQlkb25lX2NvdW50ID0gMDsKIAkJfQotCQlpZiAoRFBfVElNRU9VVF9MT09QX0NP VU5UIDwgdGltZW91dF9sb29wKSB7CisJCWlmICh0aW1lb3V0X2xvb3AgPiBEUF9USU1FT1VUX0xP T1BfQ09VTlQpIHsKIAkJCWRldl9lcnIoZHAtPmRldiwgIlRpbWVvdXQgb2YgdmlkZW8gc3RyZWFt Y2xrIG9rXG4iKTsKIAkJCXJldHVybiAtRVRJTUVET1VUOwogCQl9CkBAIC04MDcsMjUgKzgwMSwy NCBAQCBzdGF0aWMgaW50IGFuYWxvZ2l4X2RwX2NvbmZpZ192aWRlbyhzdHJ1Y3QgYW5hbG9naXhf ZHBfZGV2aWNlICpkcCkKIAlyZXR1cm4gcmV0dmFsOwogfQogCi1zdGF0aWMgdm9pZCBhbmFsb2dp eF9kcF9lbmFibGVfc2NyYW1ibGUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIGJvb2wg ZW5hYmxlKQorc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfZW5hYmxlX3NjcmFtYmxlKHN0cnVjdCBh bmFsb2dpeF9kcF9kZXZpY2UgKmRwLAorCQkJCQlib29sIGVuYWJsZSkKIHsKIAl1OCBkYXRhOwog CiAJaWYgKGVuYWJsZSkgewogCQlhbmFsb2dpeF9kcF9lbmFibGVfc2NyYW1ibGluZyhkcCk7CiAK LQkJYW5hbG9naXhfZHBfcmVhZF9ieXRlX2Zyb21fZHBjZChkcCwKLQkJCURQX1RSQUlOSU5HX1BB VFRFUk5fU0VULAotCQkJJmRhdGEpOworCQlhbmFsb2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9kcGNk KGRwLCBEUF9UUkFJTklOR19QQVRURVJOX1NFVCwKKwkJCQkJCSZkYXRhKTsKIAkJYW5hbG9naXhf ZHBfd3JpdGVfYnl0ZV90b19kcGNkKGRwLAogCQkJRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVQsCiAJ CQkodTgpKGRhdGEgJiB+RFBfTElOS19TQ1JBTUJMSU5HX0RJU0FCTEUpKTsKIAl9IGVsc2Ugewog CQlhbmFsb2dpeF9kcF9kaXNhYmxlX3NjcmFtYmxpbmcoZHApOwogCi0JCWFuYWxvZ2l4X2RwX3Jl YWRfYnl0ZV9mcm9tX2RwY2QoZHAsCi0JCQlEUF9UUkFJTklOR19QQVRURVJOX1NFVCwKLQkJCSZk YXRhKTsKKwkJYW5hbG9naXhfZHBfcmVhZF9ieXRlX2Zyb21fZHBjZChkcCwgRFBfVFJBSU5JTkdf UEFUVEVSTl9TRVQsCisJCQkJCQkmZGF0YSk7CiAJCWFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVfdG9f ZHBjZChkcCwKIAkJCURQX1RSQUlOSU5HX1BBVFRFUk5fU0VULAogCQkJKHU4KShkYXRhIHwgRFBf TElOS19TQ1JBTUJMSU5HX0RJU0FCTEUpKTsKQEAgLTg5OCw3ICs4OTEsNyBAQCBzdGF0aWMgdm9p ZCBhbmFsb2dpeF9kcF9jb21taXQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJfQog CiAJcmV0ID0gYW5hbG9naXhfZHBfc2V0X2xpbmtfdHJhaW4oZHAsIGRwLT52aWRlb19pbmZvLT5s YW5lX2NvdW50LAotCQkJCQlkcC0+dmlkZW9faW5mby0+bGlua19yYXRlKTsKKwkJCQkJIGRwLT52 aWRlb19pbmZvLT5saW5rX3JhdGUpOwogCWlmIChyZXQpIHsKIAkJZGV2X2VycihkcC0+ZGV2LCAi dW5hYmxlIHRvIGRvIGxpbmsgdHJhaW5cbiIpOwogCQlyZXR1cm47CkBAIC0xMTMwLDggKzExMjMs OCBAQCBzdGF0aWMgc3RydWN0IHZpZGVvX2luZm8gKmFuYWxvZ2l4X2RwX2R0X3BhcnNlX3BkYXRh KHN0cnVjdCBkZXZpY2UgKmRldikKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKmRwX25vZGUgPSBkZXYt Pm9mX25vZGU7CiAJc3RydWN0IHZpZGVvX2luZm8gKmRwX3ZpZGVvX2NvbmZpZzsKIAotCWRwX3Zp ZGVvX2NvbmZpZyA9IGRldm1fa3phbGxvYyhkZXYsCi0JCQkJc2l6ZW9mKCpkcF92aWRlb19jb25m aWcpLCBHRlBfS0VSTkVMKTsKKwlkcF92aWRlb19jb25maWcgPSBkZXZtX2t6YWxsb2MoZGV2LCBz aXplb2YoKmRwX3ZpZGVvX2NvbmZpZyksCisJCQkJICAgICAgIEdGUF9LRVJORUwpOwogCWlmICgh ZHBfdmlkZW9fY29uZmlnKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIApAQCAtMTE0NSwz NyArMTEzOCwzNyBAQCBzdGF0aWMgc3RydWN0IHZpZGVvX2luZm8gKmFuYWxvZ2l4X2RwX2R0X3Bh cnNlX3BkYXRhKHN0cnVjdCBkZXZpY2UgKmRldikKIAkJb2ZfcHJvcGVydHlfcmVhZF9ib29sKGRw X25vZGUsICJpbnRlcmxhY2VkIik7CiAKIAlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIoZHBfbm9k ZSwgInNhbXN1bmcsY29sb3Itc3BhY2UiLAotCQkJCSZkcF92aWRlb19jb25maWctPmNvbG9yX3Nw YWNlKSkgeworCQkJCSAmZHBfdmlkZW9fY29uZmlnLT5jb2xvcl9zcGFjZSkpIHsKIAkJZGV2X2Vy cihkZXYsICJmYWlsZWQgdG8gZ2V0IGNvbG9yLXNwYWNlXG4iKTsKIAkJcmV0dXJuIEVSUl9QVFIo LUVJTlZBTCk7CiAJfQogCiAJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRwX25vZGUsICJzYW1z dW5nLGR5bmFtaWMtcmFuZ2UiLAotCQkJCSZkcF92aWRlb19jb25maWctPmR5bmFtaWNfcmFuZ2Up KSB7CisJCQkJICZkcF92aWRlb19jb25maWctPmR5bmFtaWNfcmFuZ2UpKSB7CiAJCWRldl9lcnIo ZGV2LCAiZmFpbGVkIHRvIGdldCBkeW5hbWljLXJhbmdlXG4iKTsKIAkJcmV0dXJuIEVSUl9QVFIo LUVJTlZBTCk7CiAJfQogCiAJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRwX25vZGUsICJzYW1z dW5nLHljYmNyLWNvZWZmIiwKLQkJCQkmZHBfdmlkZW9fY29uZmlnLT55Y2Jjcl9jb2VmZikpIHsK KwkJCQkgJmRwX3ZpZGVvX2NvbmZpZy0+eWNiY3JfY29lZmYpKSB7CiAJCWRldl9lcnIoZGV2LCAi ZmFpbGVkIHRvIGdldCB5Y2Jjci1jb2VmZlxuIik7CiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwp OwogCX0KIAogCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihkcF9ub2RlLCAic2Ftc3VuZyxjb2xv ci1kZXB0aCIsCi0JCQkJJmRwX3ZpZGVvX2NvbmZpZy0+Y29sb3JfZGVwdGgpKSB7CisJCQkJICZk cF92aWRlb19jb25maWctPmNvbG9yX2RlcHRoKSkgewogCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0 byBnZXQgY29sb3ItZGVwdGhcbiIpOwogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAl9CiAK IAlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIoZHBfbm9kZSwgInNhbXN1bmcsbGluay1yYXRlIiwK LQkJCQkmZHBfdmlkZW9fY29uZmlnLT5saW5rX3JhdGUpKSB7CisJCQkJICZkcF92aWRlb19jb25m aWctPmxpbmtfcmF0ZSkpIHsKIAkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0IGxpbmstcmF0 ZVxuIik7CiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCX0KIAogCWlmIChvZl9wcm9wZXJ0 eV9yZWFkX3UzMihkcF9ub2RlLCAic2Ftc3VuZyxsYW5lLWNvdW50IiwKLQkJCQkmZHBfdmlkZW9f Y29uZmlnLT5sYW5lX2NvdW50KSkgeworCQkJCSAmZHBfdmlkZW9fY29uZmlnLT5sYW5lX2NvdW50 KSkgewogCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgbGFuZS1jb3VudFxuIik7CiAJCXJl dHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCX0KQEAgLTEyODQsNyArMTI3Nyw3IEBAIGludCBhbmFs b2dpeF9kcF9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9kZXZpY2UgKmRybV9k ZXYsCiAJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKIAogCXJldCA9IGRldm1fcmVxdWVzdF9pcnEo JnBkZXYtPmRldiwgZHAtPmlycSwgYW5hbG9naXhfZHBfaXJxX2hhbmRsZXIsCi0JCQlpcnFfZmxh Z3MsICJhbmFsb2dpeC1kcCIsIGRwKTsKKwkJCSAgICAgICBpcnFfZmxhZ3MsICJhbmFsb2dpeC1k cCIsIGRwKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBy ZXF1ZXN0IGlycVxuIik7CiAJCWdvdG8gZXJyX2Rpc2FibGVfcG1fcnVudGltZTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oIGIv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmgKaW5kZXgg NzA3MjRlYy4uZjdkZmM4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFs b2dpeC9hbmFsb2dpeF9kcF9jb3JlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFs b2dpeC9hbmFsb2dpeF9kcF9jb3JlLmgKQEAgLTE4Nyw1MCArMTg3LDU1IEBAIGludCBhbmFsb2dp eF9kcF9nZXRfcGx1Z19pbl9zdGF0dXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwog dm9pZCBhbmFsb2dpeF9kcF9lbmFibGVfc3dfZnVuY3Rpb24oc3RydWN0IGFuYWxvZ2l4X2RwX2Rl dmljZSAqZHApOwogaW50IGFuYWxvZ2l4X2RwX3N0YXJ0X2F1eF90cmFuc2FjdGlvbihzdHJ1Y3Qg YW5hbG9naXhfZHBfZGV2aWNlICpkcCk7CiBpbnQgYW5hbG9naXhfZHBfd3JpdGVfYnl0ZV90b19k cGNkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXVuc2lnbmVkIGludCByZWdf YWRkciwKLQkJCQl1bnNpZ25lZCBjaGFyIGRhdGEpOworCQkJCSAgIHVuc2lnbmVkIGludCByZWdf YWRkciwKKwkJCQkgICB1bnNpZ25lZCBjaGFyIGRhdGEpOwogaW50IGFuYWxvZ2l4X2RwX3JlYWRf Ynl0ZV9mcm9tX2RwY2Qoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJdW5zaWdu ZWQgaW50IHJlZ19hZGRyLAotCQkJCXVuc2lnbmVkIGNoYXIgKmRhdGEpOworCQkJCSAgICB1bnNp Z25lZCBpbnQgcmVnX2FkZHIsCisJCQkJICAgIHVuc2lnbmVkIGNoYXIgKmRhdGEpOwogaW50IGFu YWxvZ2l4X2RwX3dyaXRlX2J5dGVzX3RvX2RwY2Qoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAq ZHAsCi0JCQkJdW5zaWduZWQgaW50IHJlZ19hZGRyLAotCQkJCXVuc2lnbmVkIGludCBjb3VudCwK LQkJCQl1bnNpZ25lZCBjaGFyIGRhdGFbXSk7CisJCQkJICAgIHVuc2lnbmVkIGludCByZWdfYWRk ciwKKwkJCQkgICAgdW5zaWduZWQgaW50IGNvdW50LAorCQkJCSAgICB1bnNpZ25lZCBjaGFyIGRh dGFbXSk7CiBpbnQgYW5hbG9naXhfZHBfcmVhZF9ieXRlc19mcm9tX2RwY2Qoc3RydWN0IGFuYWxv Z2l4X2RwX2RldmljZSAqZHAsCi0JCQkJdW5zaWduZWQgaW50IHJlZ19hZGRyLAotCQkJCXVuc2ln bmVkIGludCBjb3VudCwKLQkJCQl1bnNpZ25lZCBjaGFyIGRhdGFbXSk7CisJCQkJICAgICB1bnNp Z25lZCBpbnQgcmVnX2FkZHIsCisJCQkJICAgICB1bnNpZ25lZCBpbnQgY291bnQsCisJCQkJICAg ICB1bnNpZ25lZCBjaGFyIGRhdGFbXSk7CiBpbnQgYW5hbG9naXhfZHBfc2VsZWN0X2kyY19kZXZp Y2Uoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJdW5zaWduZWQgaW50IGRldmlj ZV9hZGRyLAotCQkJCXVuc2lnbmVkIGludCByZWdfYWRkcik7CisJCQkJICB1bnNpZ25lZCBpbnQg ZGV2aWNlX2FkZHIsCisJCQkJICB1bnNpZ25lZCBpbnQgcmVnX2FkZHIpOwogaW50IGFuYWxvZ2l4 X2RwX3JlYWRfYnl0ZV9mcm9tX2kyYyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJ CQl1bnNpZ25lZCBpbnQgZGV2aWNlX2FkZHIsCi0JCQkJdW5zaWduZWQgaW50IHJlZ19hZGRyLAot CQkJCXVuc2lnbmVkIGludCAqZGF0YSk7CisJCQkJICAgdW5zaWduZWQgaW50IGRldmljZV9hZGRy LAorCQkJCSAgIHVuc2lnbmVkIGludCByZWdfYWRkciwKKwkJCQkgICB1bnNpZ25lZCBpbnQgKmRh dGEpOwogaW50IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZXNfZnJvbV9pMmMoc3RydWN0IGFuYWxvZ2l4 X2RwX2RldmljZSAqZHAsCi0JCQkJdW5zaWduZWQgaW50IGRldmljZV9hZGRyLAotCQkJCXVuc2ln bmVkIGludCByZWdfYWRkciwKLQkJCQl1bnNpZ25lZCBpbnQgY291bnQsCi0JCQkJdW5zaWduZWQg Y2hhciBlZGlkW10pOworCQkJCSAgICB1bnNpZ25lZCBpbnQgZGV2aWNlX2FkZHIsCisJCQkJICAg IHVuc2lnbmVkIGludCByZWdfYWRkciwKKwkJCQkgICAgdW5zaWduZWQgaW50IGNvdW50LAorCQkJ CSAgICB1bnNpZ25lZCBjaGFyIGVkaWRbXSk7CiB2b2lkIGFuYWxvZ2l4X2RwX3NldF9saW5rX2Jh bmR3aWR0aChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwgdTMyIGJ3dHlwZSk7CiB2b2lk IGFuYWxvZ2l4X2RwX2dldF9saW5rX2JhbmR3aWR0aChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNl ICpkcCwgdTMyICpid3R5cGUpOwogdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZV9jb3VudChzdHJ1 Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwgdTMyIGNvdW50KTsKIHZvaWQgYW5hbG9naXhfZHBf Z2V0X2xhbmVfY291bnQoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiAqY291bnQp Owotdm9pZCBhbmFsb2dpeF9kcF9lbmFibGVfZW5oYW5jZWRfbW9kZShzdHJ1Y3QgYW5hbG9naXhf ZHBfZGV2aWNlICpkcCwgYm9vbCBlbmFibGUpOwordm9pZCBhbmFsb2dpeF9kcF9lbmFibGVfZW5o YW5jZWRfbW9kZShzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkgICAgICBib29s IGVuYWJsZSk7CiB2b2lkIGFuYWxvZ2l4X2RwX3NldF90cmFpbmluZ19wYXR0ZXJuKHN0cnVjdCBh bmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCWVudW0gcGF0dGVybl9zZXQgcGF0dGVybik7Ci12 b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMF9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2Rw X2RldmljZSAqZHAsIHUzMiBsZXZlbCk7Ci12b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMV9wcmVf ZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiBsZXZlbCk7Ci12b2lk IGFuYWxvZ2l4X2RwX3NldF9sYW5lMl9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2Rl dmljZSAqZHAsIHUzMiBsZXZlbCk7Ci12b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lM19wcmVfZW1w aGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiBsZXZlbCk7CisJCQkJICAg ICAgZW51bSBwYXR0ZXJuX3NldCBwYXR0ZXJuKTsKK3ZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUw X3ByZV9lbXBoYXNpcyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkJdTMyIGxl dmVsKTsKK3ZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUxX3ByZV9lbXBoYXNpcyhzdHJ1Y3QgYW5h bG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkJdTMyIGxldmVsKTsKK3ZvaWQgYW5hbG9naXhfZHBf c2V0X2xhbmUyX3ByZV9lbXBoYXNpcyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJ CQkJdTMyIGxldmVsKTsKK3ZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUzX3ByZV9lbXBoYXNpcyhz dHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkJdTMyIGxldmVsKTsKIHZvaWQgYW5h bG9naXhfZHBfc2V0X2xhbmUwX2xpbmtfdHJhaW5pbmcoc3RydWN0IGFuYWxvZ2l4X2RwX2Rldmlj ZSAqZHAsCi0JCQkJdTMyIHRyYWluaW5nX2xhbmUpOworCQkJCQkgdTMyIHRyYWluaW5nX2xhbmUp Owogdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTFfbGlua190cmFpbmluZyhzdHJ1Y3QgYW5hbG9n aXhfZHBfZGV2aWNlICpkcCwKLQkJCQl1MzIgdHJhaW5pbmdfbGFuZSk7CisJCQkJCSB1MzIgdHJh aW5pbmdfbGFuZSk7CiB2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMl9saW5rX3RyYWluaW5nKHN0 cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXUzMiB0cmFpbmluZ19sYW5lKTsKKwkJ CQkJIHUzMiB0cmFpbmluZ19sYW5lKTsKIHZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUzX2xpbmtf dHJhaW5pbmcoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJdTMyIHRyYWluaW5n X2xhbmUpOworCQkJCQkgdTMyIHRyYWluaW5nX2xhbmUpOwogdTMyIGFuYWxvZ2l4X2RwX2dldF9s YW5lMF9saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKIHUzMiBh bmFsb2dpeF9kcF9nZXRfbGFuZTFfbGlua190cmFpbmluZyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2 aWNlICpkcCk7CiB1MzIgYW5hbG9naXhfZHBfZ2V0X2xhbmUyX2xpbmtfdHJhaW5pbmcoc3RydWN0 IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwpAQCAtMjQxLDExICsyNDYsMTIgQEAgdm9pZCBhbmFs b2dpeF9kcF9pbml0X3ZpZGVvKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKIHZvaWQg YW5hbG9naXhfZHBfc2V0X3ZpZGVvX2NvbG9yX2Zvcm1hdChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2 aWNlICpkcCk7CiBpbnQgYW5hbG9naXhfZHBfaXNfc2xhdmVfdmlkZW9fc3RyZWFtX2Nsb2NrX29u KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwKTsKIHZvaWQgYW5hbG9naXhfZHBfc2V0X3Zp ZGVvX2NyX21uKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJZW51bSBjbG9ja19y ZWNvdmVyeV9tX3ZhbHVlX3R5cGUgdHlwZSwKLQkJCXUzMiBtX3ZhbHVlLAotCQkJdTMyIG5fdmFs dWUpOworCQkJCSBlbnVtIGNsb2NrX3JlY292ZXJ5X21fdmFsdWVfdHlwZSB0eXBlLAorCQkJCSB1 MzIgbV92YWx1ZSwKKwkJCQkgdTMyIG5fdmFsdWUpOwogdm9pZCBhbmFsb2dpeF9kcF9zZXRfdmlk ZW9fdGltaW5nX21vZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiB0eXBlKTsK LXZvaWQgYW5hbG9naXhfZHBfZW5hYmxlX3ZpZGVvX21hc3RlcihzdHJ1Y3QgYW5hbG9naXhfZHBf ZGV2aWNlICpkcCwgYm9vbCBlbmFibGUpOwordm9pZCBhbmFsb2dpeF9kcF9lbmFibGVfdmlkZW9f bWFzdGVyKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAorCQkJCSAgICAgYm9vbCBlbmFi bGUpOwogdm9pZCBhbmFsb2dpeF9kcF9zdGFydF92aWRlbyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2 aWNlICpkcCk7CiBpbnQgYW5hbG9naXhfZHBfaXNfdmlkZW9fc3RyZWFtX29uKHN0cnVjdCBhbmFs b2dpeF9kcF9kZXZpY2UgKmRwKTsKIHZvaWQgYW5hbG9naXhfZHBfY29uZmlnX3ZpZGVvX3NsYXZl X21vZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9yZWcuYyBiL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfcmVnLmMKaW5kZXggNDQyY2M2Ni4uYTM4 OGMwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dp eF9kcF9yZWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4 X2RwX3JlZy5jCkBAIC01NCwxMCArNTQsMTAgQEAgdm9pZCBhbmFsb2dpeF9kcF9sYW5lX3N3YXAo c3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIGJvb2wgZW5hYmxlKQogCiAJaWYgKGVuYWJs ZSkKIAkJcmVnID0gTEFORTNfTUFQX0xPR0lDX0xBTkVfMCB8IExBTkUyX01BUF9MT0dJQ19MQU5F XzEgfAotCQkJTEFORTFfTUFQX0xPR0lDX0xBTkVfMiB8IExBTkUwX01BUF9MT0dJQ19MQU5FXzM7 CisJCSAgICAgIExBTkUxX01BUF9MT0dJQ19MQU5FXzIgfCBMQU5FMF9NQVBfTE9HSUNfTEFORV8z OwogCWVsc2UKIAkJcmVnID0gTEFORTNfTUFQX0xPR0lDX0xBTkVfMyB8IExBTkUyX01BUF9MT0dJ Q19MQU5FXzIgfAotCQkJTEFORTFfTUFQX0xPR0lDX0xBTkVfMSB8IExBTkUwX01BUF9MT0dJQ19M QU5FXzA7CisJCSAgICAgIExBTkUxX01BUF9MT0dJQ19MQU5FXzEgfCBMQU5FMF9NQVBfTE9HSUNf TEFORV8wOwogCiAJd3JpdGVsKHJlZywgZHAtPnJlZ19iYXNlICsgQU5BTE9HSVhfRFBfTEFORV9N QVApOwogfQpAQCAtMjAyLDggKzIwMiw4IEBAIHZvaWQgYW5hbG9naXhfZHBfc2V0X3BsbF9wb3dl cl9kb3duKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCBib29sIGVuYWJsZSkKIH0KIAog dm9pZCBhbmFsb2dpeF9kcF9zZXRfYW5hbG9nX3Bvd2VyX2Rvd24oc3RydWN0IGFuYWxvZ2l4X2Rw X2RldmljZSAqZHAsCi0JCQkJZW51bSBhbmFsb2dfcG93ZXJfYmxvY2sgYmxvY2ssCi0JCQkJYm9v bCBlbmFibGUpCisJCQkJICAgICAgIGVudW0gYW5hbG9nX3Bvd2VyX2Jsb2NrIGJsb2NrLAorCQkJ CSAgICAgICBib29sIGVuYWJsZSkKIHsKIAl1MzIgcmVnOwogCkBAIC0zOTksOCArMzk5LDggQEAg dm9pZCBhbmFsb2dpeF9kcF9pbml0X2F1eChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkK IAlhbmFsb2dpeF9kcF9yZXNldF9hdXgoZHApOwogCiAJLyogRGlzYWJsZSBBVVggdHJhbnNhY3Rp b24gSC9XIHJldHJ5ICovCi0JcmVnID0gQVVYX0JJVF9QRVJJT0RfRVhQRUNURURfREVMQVkoMykg fCBBVVhfSFdfUkVUUllfQ09VTlRfU0VMKDApfAotCQlBVVhfSFdfUkVUUllfSU5URVJWQUxfNjAw X01JQ1JPU0VDT05EUzsKKwlyZWcgPSBBVVhfQklUX1BFUklPRF9FWFBFQ1RFRF9ERUxBWSgzKSB8 IEFVWF9IV19SRVRSWV9DT1VOVF9TRUwoMCkgfAorCSAgICAgIEFVWF9IV19SRVRSWV9JTlRFUlZB TF82MDBfTUlDUk9TRUNPTkRTOwogCXdyaXRlbChyZWcsIGRwLT5yZWdfYmFzZSArIEFOQUxPR0lY X0RQX0FVWF9IV19SRVRSWV9DVEwpOwogCiAJLyogUmVjZWl2ZSBBVVggQ2hhbm5lbCBERUZFUiBj b21tYW5kcyBlcXVhbCB0byBERUZGRVJfQ09VTlQqNjQgKi8KQEAgLTQ4Myw4ICs0ODMsOCBAQCBp bnQgYW5hbG9naXhfZHBfc3RhcnRfYXV4X3RyYW5zYWN0aW9uKHN0cnVjdCBhbmFsb2dpeF9kcF9k ZXZpY2UgKmRwKQogfQogCiBpbnQgYW5hbG9naXhfZHBfd3JpdGVfYnl0ZV90b19kcGNkKHN0cnVj dCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXVuc2lnbmVkIGludCByZWdfYWRkciwKLQkJ CQl1bnNpZ25lZCBjaGFyIGRhdGEpCisJCQkJICAgdW5zaWduZWQgaW50IHJlZ19hZGRyLAorCQkJ CSAgIHVuc2lnbmVkIGNoYXIgZGF0YSkKIHsKIAl1MzIgcmVnOwogCWludCBpOwpAQCAtNTE5LDE3 ICs1MTksMTYgQEAgaW50IGFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVfdG9fZHBjZChzdHJ1Y3QgYW5h bG9naXhfZHBfZGV2aWNlICpkcCwKIAkJcmV0dmFsID0gYW5hbG9naXhfZHBfc3RhcnRfYXV4X3Ry YW5zYWN0aW9uKGRwKTsKIAkJaWYgKHJldHZhbCA9PSAwKQogCQkJYnJlYWs7Ci0JCWVsc2UKLQkJ CWRldl9kYmcoZHAtPmRldiwgIiVzOiBBdXggVHJhbnNhY3Rpb24gZmFpbCFcbiIsCi0JCQkJX19m dW5jX18pOworCisJCWRldl9kYmcoZHAtPmRldiwgIiVzOiBBdXggVHJhbnNhY3Rpb24gZmFpbCFc biIsIF9fZnVuY19fKTsKIAl9CiAKIAlyZXR1cm4gcmV0dmFsOwogfQogCiBpbnQgYW5hbG9naXhf ZHBfcmVhZF9ieXRlX2Zyb21fZHBjZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJ CQl1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCi0JCQkJdW5zaWduZWQgY2hhciAqZGF0YSkKKwkJCQkg ICAgdW5zaWduZWQgaW50IHJlZ19hZGRyLAorCQkJCSAgICB1bnNpZ25lZCBjaGFyICpkYXRhKQog ewogCXUzMiByZWc7CiAJaW50IGk7CkBAIC01NjAsOSArNTU5LDggQEAgaW50IGFuYWxvZ2l4X2Rw X3JlYWRfYnl0ZV9mcm9tX2RwY2Qoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCiAJCXJl dHZhbCA9IGFuYWxvZ2l4X2RwX3N0YXJ0X2F1eF90cmFuc2FjdGlvbihkcCk7CiAJCWlmIChyZXR2 YWwgPT0gMCkKIAkJCWJyZWFrOwotCQllbHNlCi0JCQlkZXZfZGJnKGRwLT5kZXYsICIlczogQXV4 IFRyYW5zYWN0aW9uIGZhaWwhXG4iLAotCQkJCV9fZnVuY19fKTsKKworCQlkZXZfZGJnKGRwLT5k ZXYsICIlczogQXV4IFRyYW5zYWN0aW9uIGZhaWwhXG4iLCBfX2Z1bmNfXyk7CiAJfQogCiAJLyog UmVhZCBkYXRhIGJ1ZmZlciAqLwpAQCAtNTczLDkgKzU3MSw5IEBAIGludCBhbmFsb2dpeF9kcF9y ZWFkX2J5dGVfZnJvbV9kcGNkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogfQogCiBp bnQgYW5hbG9naXhfZHBfd3JpdGVfYnl0ZXNfdG9fZHBjZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2 aWNlICpkcCwKLQkJCQl1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCi0JCQkJdW5zaWduZWQgaW50IGNv dW50LAotCQkJCXVuc2lnbmVkIGNoYXIgZGF0YVtdKQorCQkJCSAgICB1bnNpZ25lZCBpbnQgcmVn X2FkZHIsCisJCQkJICAgIHVuc2lnbmVkIGludCBjb3VudCwKKwkJCQkgICAgdW5zaWduZWQgY2hh ciBkYXRhW10pCiB7CiAJdTMyIHJlZzsKIAl1bnNpZ25lZCBpbnQgc3RhcnRfb2Zmc2V0OwpAQCAt NjA4LDggKzYwNiw5IEBAIGludCBhbmFsb2dpeF9kcF93cml0ZV9ieXRlc190b19kcGNkKHN0cnVj dCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogCQkJZm9yIChjdXJfZGF0YV9pZHggPSAwOyBjdXJf ZGF0YV9pZHggPCBjdXJfZGF0YV9jb3VudDsKIAkJCSAgICAgY3VyX2RhdGFfaWR4KyspIHsKIAkJ CQlyZWcgPSBkYXRhW3N0YXJ0X29mZnNldCArIGN1cl9kYXRhX2lkeF07Ci0JCQkJd3JpdGVsKHJl ZywgZHAtPnJlZ19iYXNlICsgQU5BTE9HSVhfRFBfQlVGX0RBVEFfMAotCQkJCQkJCSAgKyA0ICog Y3VyX2RhdGFfaWR4KTsKKwkJCQl3cml0ZWwocmVnLCBkcC0+cmVnX2Jhc2UgKworCQkJCSAgICAg ICBBTkFMT0dJWF9EUF9CVUZfREFUQV8wICsKKwkJCQkgICAgICAgNCAqIGN1cl9kYXRhX2lkeCk7 CiAJCQl9CiAKIAkJCS8qCkBAIC02MjUsOSArNjI0LDkgQEAgaW50IGFuYWxvZ2l4X2RwX3dyaXRl X2J5dGVzX3RvX2RwY2Qoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCiAJCQlyZXR2YWwg PSBhbmFsb2dpeF9kcF9zdGFydF9hdXhfdHJhbnNhY3Rpb24oZHApOwogCQkJaWYgKHJldHZhbCA9 PSAwKQogCQkJCWJyZWFrOwotCQkJZWxzZQotCQkJCWRldl9kYmcoZHAtPmRldiwgIiVzOiBBdXgg VHJhbnNhY3Rpb24gZmFpbCFcbiIsCi0JCQkJCV9fZnVuY19fKTsKKworCQkJZGV2X2RiZyhkcC0+ ZGV2LCAiJXM6IEF1eCBUcmFuc2FjdGlvbiBmYWlsIVxuIiwKKwkJCQlfX2Z1bmNfXyk7CiAJCX0K IAogCQlzdGFydF9vZmZzZXQgKz0gY3VyX2RhdGFfY291bnQ7CkBAIC02MzcsOSArNjM2LDkgQEAg aW50IGFuYWxvZ2l4X2RwX3dyaXRlX2J5dGVzX3RvX2RwY2Qoc3RydWN0IGFuYWxvZ2l4X2RwX2Rl dmljZSAqZHAsCiB9CiAKIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVzX2Zyb21fZHBjZChzdHJ1 Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKLQkJCQl1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCi0J CQkJdW5zaWduZWQgaW50IGNvdW50LAotCQkJCXVuc2lnbmVkIGNoYXIgZGF0YVtdKQorCQkJCSAg ICAgdW5zaWduZWQgaW50IHJlZ19hZGRyLAorCQkJCSAgICAgdW5zaWduZWQgaW50IGNvdW50LAor CQkJCSAgICAgdW5zaWduZWQgY2hhciBkYXRhW10pCiB7CiAJdTMyIHJlZzsKIAl1bnNpZ25lZCBp bnQgc3RhcnRfb2Zmc2V0OwpAQCAtNjgzLDkgKzY4Miw5IEBAIGludCBhbmFsb2dpeF9kcF9yZWFk X2J5dGVzX2Zyb21fZHBjZChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIAkJCXJldHZh bCA9IGFuYWxvZ2l4X2RwX3N0YXJ0X2F1eF90cmFuc2FjdGlvbihkcCk7CiAJCQlpZiAocmV0dmFs ID09IDApCiAJCQkJYnJlYWs7Ci0JCQllbHNlCi0JCQkJZGV2X2RiZyhkcC0+ZGV2LCAiJXM6IEF1 eCBUcmFuc2FjdGlvbiBmYWlsIVxuIiwKLQkJCQkJX19mdW5jX18pOworCisJCQlkZXZfZGJnKGRw LT5kZXYsICIlczogQXV4IFRyYW5zYWN0aW9uIGZhaWwhXG4iLAorCQkJCV9fZnVuY19fKTsKIAkJ fQogCiAJCWZvciAoY3VyX2RhdGFfaWR4ID0gMDsgY3VyX2RhdGFfaWR4IDwgY3VyX2RhdGFfY291 bnQ7CkBAIC03MDMsOCArNzAyLDggQEAgaW50IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZXNfZnJvbV9k cGNkKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAogfQogCiBpbnQgYW5hbG9naXhfZHBf c2VsZWN0X2kyY19kZXZpY2Uoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJdW5z aWduZWQgaW50IGRldmljZV9hZGRyLAotCQkJCXVuc2lnbmVkIGludCByZWdfYWRkcikKKwkJCQkg IHVuc2lnbmVkIGludCBkZXZpY2VfYWRkciwKKwkJCQkgIHVuc2lnbmVkIGludCByZWdfYWRkcikK IHsKIAl1MzIgcmVnOwogCWludCByZXR2YWw7CkBAIC03MzYsOSArNzM1LDkgQEAgaW50IGFuYWxv Z2l4X2RwX3NlbGVjdF9pMmNfZGV2aWNlKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAog fQogCiBpbnQgYW5hbG9naXhfZHBfcmVhZF9ieXRlX2Zyb21faTJjKHN0cnVjdCBhbmFsb2dpeF9k cF9kZXZpY2UgKmRwLAotCQkJCXVuc2lnbmVkIGludCBkZXZpY2VfYWRkciwKLQkJCQl1bnNpZ25l ZCBpbnQgcmVnX2FkZHIsCi0JCQkJdW5zaWduZWQgaW50ICpkYXRhKQorCQkJCSAgIHVuc2lnbmVk IGludCBkZXZpY2VfYWRkciwKKwkJCQkgICB1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCisJCQkJICAg dW5zaWduZWQgaW50ICpkYXRhKQogewogCXUzMiByZWc7CiAJaW50IGk7CkBAIC03NTAsNyArNzQ5 LDggQEAgaW50IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9mcm9tX2kyYyhzdHJ1Y3QgYW5hbG9naXhf ZHBfZGV2aWNlICpkcCwKIAkJd3JpdGVsKHJlZywgZHAtPnJlZ19iYXNlICsgQU5BTE9HSVhfRFBf QlVGRkVSX0RBVEFfQ1RMKTsKIAogCQkvKiBTZWxlY3QgRURJRCBkZXZpY2UgKi8KLQkJcmV0dmFs ID0gYW5hbG9naXhfZHBfc2VsZWN0X2kyY19kZXZpY2UoZHAsIGRldmljZV9hZGRyLCByZWdfYWRk cik7CisJCXJldHZhbCA9IGFuYWxvZ2l4X2RwX3NlbGVjdF9pMmNfZGV2aWNlKGRwLCBkZXZpY2Vf YWRkciwKKwkJCQkJCSAgICAgICByZWdfYWRkcik7CiAJCWlmIChyZXR2YWwgIT0gMCkKIAkJCWNv bnRpbnVlOwogCkBAIC03NjcsOSArNzY3LDggQEAgaW50IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZV9m cm9tX2kyYyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKIAkJcmV0dmFsID0gYW5hbG9n aXhfZHBfc3RhcnRfYXV4X3RyYW5zYWN0aW9uKGRwKTsKIAkJaWYgKHJldHZhbCA9PSAwKQogCQkJ YnJlYWs7Ci0JCWVsc2UKLQkJCWRldl9kYmcoZHAtPmRldiwgIiVzOiBBdXggVHJhbnNhY3Rpb24g ZmFpbCFcbiIsCi0JCQkJX19mdW5jX18pOworCisJCWRldl9kYmcoZHAtPmRldiwgIiVzOiBBdXgg VHJhbnNhY3Rpb24gZmFpbCFcbiIsIF9fZnVuY19fKTsKIAl9CiAKIAkvKiBSZWFkIGRhdGEgKi8K QEAgLTc4MCwxMCArNzc5LDEwIEBAIGludCBhbmFsb2dpeF9kcF9yZWFkX2J5dGVfZnJvbV9pMmMo c3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCiB9CiAKIGludCBhbmFsb2dpeF9kcF9yZWFk X2J5dGVzX2Zyb21faTJjKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCXVuc2ln bmVkIGludCBkZXZpY2VfYWRkciwKLQkJCQl1bnNpZ25lZCBpbnQgcmVnX2FkZHIsCi0JCQkJdW5z aWduZWQgaW50IGNvdW50LAotCQkJCXVuc2lnbmVkIGNoYXIgZWRpZFtdKQorCQkJCSAgICB1bnNp Z25lZCBpbnQgZGV2aWNlX2FkZHIsCisJCQkJICAgIHVuc2lnbmVkIGludCByZWdfYWRkciwKKwkJ CQkgICAgdW5zaWduZWQgaW50IGNvdW50LAorCQkJCSAgICB1bnNpZ25lZCBjaGFyIGVkaWRbXSkK IHsKIAl1MzIgcmVnOwogCXVuc2lnbmVkIGludCBpLCBqOwpAQCAtODI4LDE1ICs4MjcsMTQgQEAg aW50IGFuYWxvZ2l4X2RwX3JlYWRfYnl0ZXNfZnJvbV9pMmMoc3RydWN0IGFuYWxvZ2l4X2RwX2Rl dmljZSAqZHAsCiAJCQkJcmV0dmFsID0gYW5hbG9naXhfZHBfc3RhcnRfYXV4X3RyYW5zYWN0aW9u KGRwKTsKIAkJCQlpZiAocmV0dmFsID09IDApCiAJCQkJCWJyZWFrOwotCQkJCWVsc2UKLQkJCQkJ ZGV2X2RiZyhkcC0+ZGV2LAotCQkJCQkJIiVzOiBBdXggVHJhbnNhY3Rpb24gZmFpbCFcbiIsCi0J CQkJCQlfX2Z1bmNfXyk7CisKKwkJCQlkZXZfZGJnKGRwLT5kZXYsICIlczogQXV4IFRyYW5zYWN0 aW9uIGZhaWwhXG4iLAorCQkJCQlfX2Z1bmNfXyk7CiAJCQl9CiAJCQkvKiBDaGVjayBpZiBSeCBz ZW5kcyBkZWZlciAqLwogCQkJcmVnID0gcmVhZGwoZHAtPnJlZ19iYXNlICsgQU5BTE9HSVhfRFBf QVVYX1JYX0NPTU0pOwogCQkJaWYgKHJlZyA9PSBBVVhfUlhfQ09NTV9BVVhfREVGRVIgfHwKLQkJ CQlyZWcgPT0gQVVYX1JYX0NPTU1fSTJDX0RFRkVSKSB7CisJCQkgICAgcmVnID09IEFVWF9SWF9D T01NX0kyQ19ERUZFUikgewogCQkJCWRldl9lcnIoZHAtPmRldiwgIkRlZmVyOiAlZFxuXG4iLCBy ZWcpOwogCQkJCWRlZmVyID0gMTsKIAkJCX0KQEAgLTg4NSw3ICs4ODMsOCBAQCB2b2lkIGFuYWxv Z2l4X2RwX2dldF9sYW5lX2NvdW50KHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIg KmNvdW50KQogCSpjb3VudCA9IHJlZzsKIH0KIAotdm9pZCBhbmFsb2dpeF9kcF9lbmFibGVfZW5o YW5jZWRfbW9kZShzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwgYm9vbCBlbmFibGUpCit2 b2lkIGFuYWxvZ2l4X2RwX2VuYWJsZV9lbmhhbmNlZF9tb2RlKHN0cnVjdCBhbmFsb2dpeF9kcF9k ZXZpY2UgKmRwLAorCQkJCSAgICAgIGJvb2wgZW5hYmxlKQogewogCXUzMiByZWc7CiAKQEAgLTkw MSw3ICs5MDAsNyBAQCB2b2lkIGFuYWxvZ2l4X2RwX2VuYWJsZV9lbmhhbmNlZF9tb2RlKHN0cnVj dCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCBib29sIGVuYWJsZQogfQogCiB2b2lkIGFuYWxvZ2l4 X2RwX3NldF90cmFpbmluZ19wYXR0ZXJuKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAot CQkJCWVudW0gcGF0dGVybl9zZXQgcGF0dGVybikKKwkJCQkgICAgICBlbnVtIHBhdHRlcm5fc2V0 IHBhdHRlcm4pCiB7CiAJdTMyIHJlZzsKIApAQCAtOTMzLDcgKzkzMiw4IEBAIHZvaWQgYW5hbG9n aXhfZHBfc2V0X3RyYWluaW5nX3BhdHRlcm4oc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAs CiAJfQogfQogCi12b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMF9wcmVfZW1waGFzaXMoc3RydWN0 IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUzMiBsZXZlbCkKK3ZvaWQgYW5hbG9naXhfZHBfc2V0 X2xhbmUwX3ByZV9lbXBoYXNpcyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkJ dTMyIGxldmVsKQogewogCXUzMiByZWc7CiAKQEAgLTk0Myw3ICs5NDMsOCBAQCB2b2lkIGFuYWxv Z2l4X2RwX3NldF9sYW5lMF9wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAq ZHAsIHUzMiBsZXZlbAogCXdyaXRlbChyZWcsIGRwLT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQX0xO MF9MSU5LX1RSQUlOSU5HX0NUTCk7CiB9CiAKLXZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUxX3By ZV9lbXBoYXNpcyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwgdTMyIGxldmVsKQordm9p ZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTFfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9k ZXZpY2UgKmRwLAorCQkJCQl1MzIgbGV2ZWwpCiB7CiAJdTMyIHJlZzsKIApAQCAtOTUzLDcgKzk1 NCw4IEBAIHZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUxX3ByZV9lbXBoYXNpcyhzdHJ1Y3QgYW5h bG9naXhfZHBfZGV2aWNlICpkcCwgdTMyIGxldmVsCiAJd3JpdGVsKHJlZywgZHAtPnJlZ19iYXNl ICsgQU5BTE9HSVhfRFBfTE4xX0xJTktfVFJBSU5JTkdfQ1RMKTsKIH0KIAotdm9pZCBhbmFsb2dp eF9kcF9zZXRfbGFuZTJfcHJlX2VtcGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRw LCB1MzIgbGV2ZWwpCit2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMl9wcmVfZW1waGFzaXMoc3Ry dWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCisJCQkJCXUzMiBsZXZlbCkKIHsKIAl1MzIgcmVn OwogCkBAIC05NjMsNyArOTY1LDggQEAgdm9pZCBhbmFsb2dpeF9kcF9zZXRfbGFuZTJfcHJlX2Vt cGhhc2lzKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLCB1MzIgbGV2ZWwKIAl3cml0ZWwo cmVnLCBkcC0+cmVnX2Jhc2UgKyBBTkFMT0dJWF9EUF9MTjJfTElOS19UUkFJTklOR19DVEwpOwog fQogCi12b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lM19wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxv Z2l4X2RwX2RldmljZSAqZHAsIHUzMiBsZXZlbCkKK3ZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUz X3ByZV9lbXBoYXNpcyhzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCwKKwkJCQkJdTMyIGxl dmVsKQogewogCXUzMiByZWc7CiAKQEAgLTk3NCw3ICs5NzcsNyBAQCB2b2lkIGFuYWxvZ2l4X2Rw X3NldF9sYW5lM19wcmVfZW1waGFzaXMoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsIHUz MiBsZXZlbAogfQogCiB2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMF9saW5rX3RyYWluaW5nKHN0 cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCQl1MzIgdHJhaW5pbmdfbGFuZSkKKwkJ CQkJIHUzMiB0cmFpbmluZ19sYW5lKQogewogCXUzMiByZWc7CiAKQEAgLTk4Myw3ICs5ODYsNyBA QCB2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMF9saW5rX3RyYWluaW5nKHN0cnVjdCBhbmFsb2dp eF9kcF9kZXZpY2UgKmRwLAogfQogCiB2b2lkIGFuYWxvZ2l4X2RwX3NldF9sYW5lMV9saW5rX3Ry YWluaW5nKHN0cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwLAotCQkJCQl1MzIgdHJhaW5pbmdf bGFuZSkKKwkJCQkJIHUzMiB0cmFpbmluZ19sYW5lKQogewogCXUzMiByZWc7CiAKQEAgLTEwMDEs NyArMTAwNCw3IEBAIHZvaWQgYW5hbG9naXhfZHBfc2V0X2xhbmUyX2xpbmtfdHJhaW5pbmcoc3Ry dWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCiB9CiAKIHZvaWQgYW5hbG9naXhfZHBfc2V0X2xh bmUzX2xpbmtfdHJhaW5pbmcoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAsCi0JCQkJCXUz MiB0cmFpbmluZ19sYW5lKQorCQkJCQkgdTMyIHRyYWluaW5nX2xhbmUpCiB7CiAJdTMyIHJlZzsK IApAQCAtMTEyNSw5ICsxMTI4LDggQEAgaW50IGFuYWxvZ2l4X2RwX2lzX3NsYXZlX3ZpZGVvX3N0 cmVhbV9jbG9ja19vbihzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKIH0KIAogdm9pZCBh bmFsb2dpeF9kcF9zZXRfdmlkZW9fY3JfbW4oc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAs Ci0JCWVudW0gY2xvY2tfcmVjb3ZlcnlfbV92YWx1ZV90eXBlIHR5cGUsCi0JCXUzMiBtX3ZhbHVl LAotCQl1MzIgbl92YWx1ZSkKKwkJCQkgZW51bSBjbG9ja19yZWNvdmVyeV9tX3ZhbHVlX3R5cGUg dHlwZSwKKwkJCQkgdTMyIG1fdmFsdWUsIHUzMiBuX3ZhbHVlKQogewogCXUzMiByZWc7CiAKQEAg LTEyMjEsNyArMTIyMyw3IEBAIHZvaWQgYW5hbG9naXhfZHBfY29uZmlnX3ZpZGVvX3NsYXZlX21v ZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAJdTMyIHJlZzsKIAogCXJlZyA9IHJl YWRsKGRwLT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQX0ZVTkNfRU5fMSk7Ci0JcmVnICY9IH4oTUFT VEVSX1ZJRF9GVU5DX0VOX058U0xBVkVfVklEX0ZVTkNfRU5fTik7CisJcmVnICY9IH4oTUFTVEVS X1ZJRF9GVU5DX0VOX04gfCBTTEFWRV9WSURfRlVOQ19FTl9OKTsKIAlyZWcgfD0gTUFTVEVSX1ZJ RF9GVU5DX0VOX047CiAJd3JpdGVsKHJlZywgZHAtPnJlZ19iYXNlICsgQU5BTE9HSVhfRFBfRlVO Q19FTl8xKTsKIAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=