From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: [PATCH] drm: i2c: adv7511: Convert to drm_bridge Date: Sat, 9 Jan 2016 22:20:25 +0530 Message-ID: <1452358225-5919-1-git-send-email-architt@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, laurent.pinchart@ideasonboard.com Cc: linux-arm-msm@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org V2UgZG9uJ3Qgd2FudCB0byB1c2UgdGhlIG9sZCBpMmMgc2xhdmUgZW5jb2RlciBpbnRlcmZhY2Ug YW55bW9yZS4KClJlbW92ZSB0aGF0IGFuZCBtYWtlIHRoZSBpMmMgZHJpdmVyIGNyZWF0ZSBhIGRy bV9icmlkZ2UgZW50aXR5IGluc3RlYWQuCkNvbnZlcnRpbmcgdG8gYnJpZGdlcyBoZWxwcyBiZWNh dXNlIHRoZSBrbXMgZHJpdmVycyBkb24ndCBuZWVkIHRvCmV4cmFjdCBlbmNvZGVyIHNsYXZlIG9w cyBmcm9tIHRoaXMgZHJpdmVyIGFuZCB1c2UgaXQgd2l0aGluIHRoZWlyCm93biBlbmNvZGVyL2Nv bm5lY3RvciBvcHMuCgpUaGUgZHJpdmVyIG5vdyBjcmVhdGVzIGl0cyBvd24gY29ubmVjdG9yIHdo ZW4gYSBrbXMgZHJpdmVyIGF0dGFjaGVzCml0c2VsZiB0byB0aGUgYnJpZGdlLiBUaGVyZWZvcmUs IGttcyBkcml2ZXJzIGRvbid0IG5lZWQgdG8gY3JlYXRlCnRoZWlyIG93biBjb25uZWN0b3JzIGFu eW1vcmUuCgpUaGUgb2xkIGVuY29kZXIgc2xhdmUgb3BzIGFyZSBub3cgdXNlZCBieSB0aGUgbmV3 IGJyaWRnZSBhbmQgY29ubmVjdG9yCmVudGl0aWVzLgoKU2lnbmVkLW9mZi1ieTogQXJjaGl0IFRh bmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTJjL2Fk djc1MTEuYyB8IDIzNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAxNjAgaW5zZXJ0aW9ucygrKSwgNzQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2kyYy9hZHY3NTExLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTJjL2Fkdjc1MTEuYwppbmRleCAwMDQxNmYyLi4zZmRhMTBmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTJjL2Fkdjc1MTEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL2Fkdjc1MTEu YwpAQCAtMTYsNyArMTYsOCBAQAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJt L2RybV9jcnRjX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgotI2luY2x1ZGUg PGRybS9kcm1fZW5jb2Rlcl9zbGF2ZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+Cisj aW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAKICNpbmNsdWRlICJhZHY3NTExLmgi CiAKQEAgLTM2LDcgKzM3LDggQEAgc3RydWN0IGFkdjc1MTEgewogCWJvb2wgZWRpZF9yZWFkOwog CiAJd2FpdF9xdWV1ZV9oZWFkX3Qgd3E7Ci0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwor CXN0cnVjdCBkcm1fYnJpZGdlIGJyaWRnZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0 b3I7CiAKIAlib29sIGVtYmVkZGVkX3N5bmM7CiAJZW51bSBhZHY3NTExX3N5bmNfcG9sYXJpdHkg dnN5bmNfcG9sYXJpdHk7CkBAIC00OCwxMSArNTAsNiBAQCBzdHJ1Y3QgYWR2NzUxMSB7CiAJc3Ry dWN0IGdwaW9fZGVzYyAqZ3Bpb19wZDsKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgYWR2NzUxMSAqZW5j b2Rlcl90b19hZHY3NTExKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKLXsKLQlyZXR1cm4g dG9fZW5jb2Rlcl9zbGF2ZShlbmNvZGVyKS0+c2xhdmVfcHJpdjsKLX0KLQogLyogQURJIHJlY29t bWVuZGVkIHZhbHVlcyBmb3IgcHJvcGVyIG9wZXJhdGlvbi4gKi8KIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgcmVnX3NlcXVlbmNlIGFkdjc1MTFfZml4ZWRfcmVnaXN0ZXJzW10gPSB7CiAJeyAweDk4LCAw eDAzIH0sCkBAIC00MzgsOCArNDM1LDggQEAgc3RhdGljIGludCBhZHY3NTExX2lycV9wcm9jZXNz KHN0cnVjdCBhZHY3NTExICphZHY3NTExKQogCXJlZ21hcF93cml0ZShhZHY3NTExLT5yZWdtYXAs IEFEVjc1MTFfUkVHX0lOVCgwKSwgaXJxMCk7CiAJcmVnbWFwX3dyaXRlKGFkdjc1MTEtPnJlZ21h cCwgQURWNzUxMV9SRUdfSU5UKDEpLCBpcnExKTsKIAotCWlmIChpcnEwICYgQURWNzUxMV9JTlQw X0hEUCAmJiBhZHY3NTExLT5lbmNvZGVyKQotCQlkcm1faGVscGVyX2hwZF9pcnFfZXZlbnQoYWR2 NzUxMS0+ZW5jb2Rlci0+ZGV2KTsKKwlpZiAoaXJxMCAmIEFEVjc1MTFfSU5UMF9IRFAgJiYgYWR2 NzUxMS0+YnJpZGdlLmVuY29kZXIpCisJCWRybV9oZWxwZXJfaHBkX2lycV9ldmVudChhZHY3NTEx LT5jb25uZWN0b3IuZGV2KTsKIAogCWlmIChpcnEwICYgQURWNzUxMV9JTlQwX0VESURfUkVBRFkg fHwgaXJxMSAmIEFEVjc1MTFfSU5UMV9ERENfRVJST1IpIHsKIAkJYWR2NzUxMS0+ZWRpZF9yZWFk ID0gdHJ1ZTsKQEAgLTU1NSwxMyArNTUyLDEyIEBAIHN0YXRpYyBpbnQgYWR2NzUxMV9nZXRfZWRp ZF9ibG9jayh2b2lkICpkYXRhLCB1OCAqYnVmLCB1bnNpZ25lZCBpbnQgYmxvY2ssCiB9CiAKIC8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBFbmNvZGVyIG9wZXJhdGlvbnMKKyAqIEFEVjc1eHgg aGVscGVycwogICovCiAKLXN0YXRpYyBpbnQgYWR2NzUxMV9nZXRfbW9kZXMoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLAorc3RhdGljIGludCBhZHY3NTExX2dldF9tb2RlcyhzdHJ1Y3QgYWR2 NzUxMSAqYWR2NzUxMSwKIAkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK IHsKLQlzdHJ1Y3QgYWR2NzUxMSAqYWR2NzUxMSA9IGVuY29kZXJfdG9fYWR2NzUxMShlbmNvZGVy KTsKIAlzdHJ1Y3QgZWRpZCAqZWRpZDsKIAl1bnNpZ25lZCBpbnQgY291bnQ7CiAKQEAgLTU5Niwy MSArNTkyLDkgQEAgc3RhdGljIGludCBhZHY3NTExX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsCiAJcmV0dXJuIGNvdW50OwogfQogCi1zdGF0aWMgdm9pZCBhZHY3NTExX2Vu Y29kZXJfZHBtcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGludCBtb2RlKQotewotCXN0 cnVjdCBhZHY3NTExICphZHY3NTExID0gZW5jb2Rlcl90b19hZHY3NTExKGVuY29kZXIpOwotCi0J aWYgKG1vZGUgPT0gRFJNX01PREVfRFBNU19PTikKLQkJYWR2NzUxMV9wb3dlcl9vbihhZHY3NTEx KTsKLQllbHNlCi0JCWFkdjc1MTFfcG93ZXJfb2ZmKGFkdjc1MTEpOwotfQotCiBzdGF0aWMgZW51 bSBkcm1fY29ubmVjdG9yX3N0YXR1cwotYWR2NzUxMV9lbmNvZGVyX2RldGVjdChzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsCi0JCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKQorYWR2NzUxMV9kZXRlY3Qoc3RydWN0IGFkdjc1MTEgKmFkdjc1MTEsIHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGFkdjc1MTEgKmFkdjc1MTEgPSBlbmNv ZGVyX3RvX2Fkdjc1MTEoZW5jb2Rlcik7CiAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0 dXM7CiAJdW5zaWduZWQgaW50IHZhbDsKIAlib29sIGhwZDsKQEAgLTYzNCw3ICs2MTgsNyBAQCBh ZHY3NTExX2VuY29kZXJfZGV0ZWN0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAlpZiAo c3RhdHVzID09IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkICYmIGhwZCAmJiBhZHY3NTExLT5w b3dlcmVkKSB7CiAJCXJlZ2NhY2hlX21hcmtfZGlydHkoYWR2NzUxMS0+cmVnbWFwKTsKIAkJYWR2 NzUxMV9wb3dlcl9vbihhZHY3NTExKTsKLQkJYWR2NzUxMV9nZXRfbW9kZXMoZW5jb2RlciwgY29u bmVjdG9yKTsKKwkJYWR2NzUxMV9nZXRfbW9kZXMoYWR2NzUxMSwgY29ubmVjdG9yKTsKIAkJaWYg KGFkdjc1MTEtPnN0YXR1cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkKIAkJCXN0YXR1 cyA9IGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOwogCX0gZWxzZSB7CkBAIC02NDgsOCAr NjMyLDggQEAgYWR2NzUxMV9lbmNvZGVyX2RldGVjdChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIsCiAJcmV0dXJuIHN0YXR1czsKIH0KIAotc3RhdGljIGludCBhZHY3NTExX2VuY29kZXJfbW9k ZV92YWxpZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCi0JCQkJICAgICAgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGUpCitzdGF0aWMgaW50IGFkdjc1MTFfbW9kZV92YWxpZChzdHJ1 Y3QgYWR2NzUxMSAqYWR2NzUxMSwKKwkJCSAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlKQogewogCWlmIChtb2RlLT5jbG9jayA+IDE2NTAwMCkKIAkJcmV0dXJuIE1PREVfQ0xPQ0tf SElHSDsKQEAgLTY1NywxMSArNjQxLDEwIEBAIHN0YXRpYyBpbnQgYWR2NzUxMV9lbmNvZGVyX21v ZGVfdmFsaWQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCXJldHVybiBNT0RFX09LOwog fQogCi1zdGF0aWMgdm9pZCBhZHY3NTExX2VuY29kZXJfbW9kZV9zZXQoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLAotCQkJCSAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCi0J CQkJICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqX21vZGUpCitzdGF0aWMgdm9pZCBh ZHY3NTExX21vZGVfc2V0KHN0cnVjdCBhZHY3NTExICphZHY3NTExLAorCQkJICAgICBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKKwkJCSAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkal9tb2RlKQogewotCXN0cnVjdCBhZHY3NTExICphZHY3NTExID0gZW5jb2Rlcl90b19hZHY3 NTExKGVuY29kZXIpOwogCXVuc2lnbmVkIGludCBsb3dfcmVmcmVzaF9yYXRlOwogCXVuc2lnbmVk IGludCBoc3luY19wb2xhcml0eSA9IDA7CiAJdW5zaWduZWQgaW50IHZzeW5jX3BvbGFyaXR5ID0g MDsKQEAgLTc1MiwxMiArNzM1LDEzMiBAQCBzdGF0aWMgdm9pZCBhZHY3NTExX2VuY29kZXJfbW9k ZV9zZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCWFkdjc1MTEtPmZfdG1kcyA9IG1v ZGUtPmNsb2NrOwogfQogCi1zdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyX3NsYXZlX2Z1bmNzIGFk djc1MTFfZW5jb2Rlcl9mdW5jcyA9IHsKLQkuZHBtcyA9IGFkdjc1MTFfZW5jb2Rlcl9kcG1zLAot CS5tb2RlX3ZhbGlkID0gYWR2NzUxMV9lbmNvZGVyX21vZGVfdmFsaWQsCi0JLm1vZGVfc2V0ID0g YWR2NzUxMV9lbmNvZGVyX21vZGVfc2V0LAotCS5kZXRlY3QgPSBhZHY3NTExX2VuY29kZXJfZGV0 ZWN0LAotCS5nZXRfbW9kZXMgPSBhZHY3NTExX2dldF9tb2RlcywKKy8qIENvbm5lY3RvciBmdW5j cyAqLworc3RhdGljIHN0cnVjdCBhZHY3NTExICpjb25uZWN0b3JfdG9fYWR2NzUxMShzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXJldHVybiBjb250YWluZXJfb2YoY29ubmVj dG9yLCBzdHJ1Y3QgYWR2NzUxMSwgY29ubmVjdG9yKTsKK30KKworc3RhdGljIGludCBhZHY3NTEx X2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sK KwlzdHJ1Y3QgYWR2NzUxMSAqYWR2ID0gY29ubmVjdG9yX3RvX2Fkdjc1MTEoY29ubmVjdG9yKTsK KworCXJldHVybiBhZHY3NTExX2dldF9tb2RlcyhhZHYsIGNvbm5lY3Rvcik7Cit9CisKK3N0YXRp YyBzdHJ1Y3QgZHJtX2VuY29kZXIgKgorYWR2NzUxMV9jb25uZWN0b3JfYmVzdF9lbmNvZGVyKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGFkdjc1MTEgKmFkdiA9 IGNvbm5lY3Rvcl90b19hZHY3NTExKGNvbm5lY3Rvcik7CisKKwlyZXR1cm4gYWR2LT5icmlkZ2Uu ZW5jb2RlcjsKK30KKworc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzCithZHY3NTExX2Nvbm5l Y3Rvcl9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkgICAg IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQoreworCXN0cnVjdCBhZHY3NTExICphZHYg PSBjb25uZWN0b3JfdG9fYWR2NzUxMShjb25uZWN0b3IpOworCisJcmV0dXJuIGFkdjc1MTFfbW9k ZV92YWxpZChhZHYsIG1vZGUpOworfQorCitzdGF0aWMgc3RydWN0IGRybV9jb25uZWN0b3JfaGVs cGVyX2Z1bmNzIGFkdjc1MTFfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyA9IHsKKwkuZ2V0X21vZGVz ID0gYWR2NzUxMV9jb25uZWN0b3JfZ2V0X21vZGVzLAorCS5iZXN0X2VuY29kZXIgPSBhZHY3NTEx X2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIsCisJLm1vZGVfdmFsaWQgPSBhZHY3NTExX2Nvbm5lY3Rv cl9tb2RlX3ZhbGlkLAorfTsKKworc3RhdGljIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMKK2Fk djc1MTFfY29ubmVjdG9yX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBi b29sIGZvcmNlKQoreworCXN0cnVjdCBhZHY3NTExICphZHYgPSBjb25uZWN0b3JfdG9fYWR2NzUx MShjb25uZWN0b3IpOworCisJcmV0dXJuIGFkdjc1MTFfZGV0ZWN0KGFkdiwgY29ubmVjdG9yKTsK K30KKworc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGFkdjc1MTFfY29ubmVjdG9y X2Z1bmNzID0geworCS5kcG1zID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2RwbXMsCisJ LmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCisJ LmRldGVjdCA9IGFkdjc1MTFfY29ubmVjdG9yX2RldGVjdCwKKwkuZGVzdHJveSA9IGRybV9jb25u ZWN0b3JfY2xlYW51cCwKKwkucmVzZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVz ZXQsCisJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0 b3JfZHVwbGljYXRlX3N0YXRlLAorCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNf aGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAorfTsKKworLyogQnJpZGdlIGZ1bmNzICov CitzdGF0aWMgc3RydWN0IGFkdjc1MTEgKmJyaWRnZV90b19hZHY3NTExKHN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UpCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihicmlkZ2UsIHN0cnVjdCBhZHY3 NTExLCBicmlkZ2UpOworfQorCitzdGF0aWMgdm9pZCBhZHY3NTExX2JyaWRnZV9wcmVfZW5hYmxl KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCit7CisJc3RydWN0IGFkdjc1MTEgKmFkdiA9IGJy aWRnZV90b19hZHY3NTExKGJyaWRnZSk7CisKKwlhZHY3NTExX3Bvd2VyX29uKGFkdik7Cit9CisK K3N0YXRpYyB2b2lkIGFkdjc1MTFfYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRn ZSAqYnJpZGdlKQoreworCXN0cnVjdCBhZHY3NTExICphZHYgPSBicmlkZ2VfdG9fYWR2NzUxMShi cmlkZ2UpOworCisJYWR2NzUxMV9wb3dlcl9vZmYoYWR2KTsKK30KKworc3RhdGljIHZvaWQgYWR2 NzUxMV9icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCit7Cit9CisKK3N0 YXRpYyB2b2lkIGFkdjc1MTFfYnJpZGdlX2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSkKK3sKK30KKworc3RhdGljIHZvaWQgYWR2NzUxMV9icmlkZ2VfbW9kZV9zZXQoc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSwKKwkJCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUs CisJCQkJICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGpfbW9kZSkKK3sKKwlzdHJ1Y3Qg YWR2NzUxMSAqYWR2ID0gYnJpZGdlX3RvX2Fkdjc1MTEoYnJpZGdlKTsKKworCWFkdjc1MTFfbW9k ZV9zZXQoYWR2LCBtb2RlLCBhZGpfbW9kZSk7Cit9CisKK3N0YXRpYyBpbnQgYWR2NzUxMV9icmlk Z2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCit7CisJc3RydWN0IGFkdjc1MTEg KmFkdiA9IGJyaWRnZV90b19hZHY3NTExKGJyaWRnZSk7CisJaW50IHJldDsKKworCWlmICghYnJp ZGdlLT5lbmNvZGVyKSB7CisJCURSTV9FUlJPUigiUGFyZW50IGVuY29kZXIgb2JqZWN0IG5vdCBm b3VuZCIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlhZHYtPmNvbm5lY3Rvci5wb2xsZWQg PSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOworCisJcmV0ID0gZHJtX2Nvbm5lY3Rvcl9pbml0KGJy aWRnZS0+ZGV2LCAmYWR2LT5jb25uZWN0b3IsCisJCQkmYWR2NzUxMV9jb25uZWN0b3JfZnVuY3Ms IERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSk7CisJaWYgKHJldCkgeworCQlEUk1fRVJST1IoIkZh aWxlZCB0byBpbml0aWFsaXplIGNvbm5lY3RvciB3aXRoIGRybVxuIik7CisJCXJldHVybiByZXQ7 CisJfQorCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmYWR2LT5jb25uZWN0b3IsCisJCQkJCSZh ZHY3NTExX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOworCWRybV9jb25uZWN0b3JfcmVnaXN0ZXIo JmFkdi0+Y29ubmVjdG9yKTsKKwlkcm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoJmFk di0+Y29ubmVjdG9yLCBicmlkZ2UtPmVuY29kZXIpOworCisJZHJtX2hlbHBlcl9ocGRfaXJxX2V2 ZW50KGFkdi0+Y29ubmVjdG9yLmRldik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgc3Ry dWN0IGRybV9icmlkZ2VfZnVuY3MgYWR2NzUxMV9icmlkZ2VfZnVuY3MgPSB7CisJLnByZV9lbmFi bGUgPSBhZHY3NTExX2JyaWRnZV9wcmVfZW5hYmxlLAorCS5lbmFibGUgPSBhZHY3NTExX2JyaWRn ZV9lbmFibGUsCisJLmRpc2FibGUgPSBhZHY3NTExX2JyaWRnZV9kaXNhYmxlLAorCS5wb3N0X2Rp c2FibGUgPSBhZHY3NTExX2JyaWRnZV9wb3N0X2Rpc2FibGUsCisJLm1vZGVfc2V0ID0gYWR2NzUx MV9icmlkZ2VfbW9kZV9zZXQsCisJLmF0dGFjaCA9IGFkdjc1MTFfYnJpZGdlX2F0dGFjaCwKIH07 CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC05MzQsNiArMTAzNywxNSBAQCBzdGF0aWMg aW50IGFkdjc1MTFfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmkyYywgY29uc3Qgc3RydWN0IGky Y19kZXZpY2VfaWQgKmlkKQogCiAJYWR2NzUxMV9zZXRfbGlua19jb25maWcoYWR2NzUxMSwgJmxp bmtfY29uZmlnKTsKIAorCWFkdjc1MTEtPmJyaWRnZS5mdW5jcyA9ICZhZHY3NTExX2JyaWRnZV9m dW5jczsKKwlhZHY3NTExLT5icmlkZ2Uub2Zfbm9kZSA9IGRldi0+b2Zfbm9kZTsKKworCXJldCA9 IGRybV9icmlkZ2VfYWRkKCZhZHY3NTExLT5icmlkZ2UpOworCWlmIChyZXQpIHsKKwkJZGV2X2Vy cihkZXYsICJmYWlsZWQgdG8gYWRkIGFkdjc1MTEgYnJpZGdlXG4iKTsKKwkJZ290byBlcnJfaTJj X3VucmVnaXN0ZXJfZGV2aWNlOworCX0KKwogCXJldHVybiAwOwogCiBlcnJfaTJjX3VucmVnaXN0 ZXJfZGV2aWNlOgpAQCAtOTQ2LDYgKzEwNTgsOCBAQCBzdGF0aWMgaW50IGFkdjc1MTFfcmVtb3Zl KHN0cnVjdCBpMmNfY2xpZW50ICppMmMpCiB7CiAJc3RydWN0IGFkdjc1MTEgKmFkdjc1MTEgPSBp MmNfZ2V0X2NsaWVudGRhdGEoaTJjKTsKIAorCWRybV9icmlkZ2VfcmVtb3ZlKCZhZHY3NTExLT5i cmlkZ2UpOworCiAJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKGFkdjc1MTEtPmkyY19lZGlkKTsKIAog CWtmcmVlKGFkdjc1MTEtPmVkaWQpOwpAQCAtOTUzLDIwICsxMDY3LDYgQEAgc3RhdGljIGludCBh ZHY3NTExX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjKQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IGFkdjc1MTFfZW5jb2Rlcl9pbml0KHN0cnVjdCBpMmNfY2xpZW50ICppMmMsIHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJc3RydWN0IGRybV9lbmNvZGVyX3NsYXZlICplbmNv ZGVyKQotewotCi0Jc3RydWN0IGFkdjc1MTEgKmFkdjc1MTEgPSBpMmNfZ2V0X2NsaWVudGRhdGEo aTJjKTsKLQotCWVuY29kZXItPnNsYXZlX3ByaXYgPSBhZHY3NTExOwotCWVuY29kZXItPnNsYXZl X2Z1bmNzID0gJmFkdjc1MTFfZW5jb2Rlcl9mdW5jczsKLQotCWFkdjc1MTEtPmVuY29kZXIgPSAm ZW5jb2Rlci0+YmFzZTsKLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGky Y19kZXZpY2VfaWQgYWR2NzUxMV9pMmNfaWRzW10gPSB7CiAJeyAiYWR2NzUxMSIsIDAgfSwKIAl7 ICJhZHY3NTExdyIsIDAgfSwKQEAgLTk4MywzMSArMTA4MywxNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IG9mX2RldmljZV9pZCBhZHY3NTExX29mX2lkc1tdID0gewogfTsKIE1PRFVMRV9ERVZJQ0Vf VEFCTEUob2YsIGFkdjc1MTFfb2ZfaWRzKTsKIAotc3RhdGljIHN0cnVjdCBkcm1faTJjX2VuY29k ZXJfZHJpdmVyIGFkdjc1MTFfZHJpdmVyID0gewotCS5pMmNfZHJpdmVyID0gewotCQkuZHJpdmVy ID0gewotCQkJLm5hbWUgPSAiYWR2NzUxMSIsCi0JCQkub2ZfbWF0Y2hfdGFibGUgPSBhZHY3NTEx X29mX2lkcywKLQkJfSwKLQkJLmlkX3RhYmxlID0gYWR2NzUxMV9pMmNfaWRzLAotCQkucHJvYmUg PSBhZHY3NTExX3Byb2JlLAotCQkucmVtb3ZlID0gYWR2NzUxMV9yZW1vdmUsCitzdGF0aWMgc3Ry dWN0IGkyY19kcml2ZXIgYWR2NzUxMV9kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUg PSAiYWR2NzUxMSIsCisJCS5vZl9tYXRjaF90YWJsZSA9IGFkdjc1MTFfb2ZfaWRzLAogCX0sCi0K LQkuZW5jb2Rlcl9pbml0ID0gYWR2NzUxMV9lbmNvZGVyX2luaXQsCisJLmlkX3RhYmxlID0gYWR2 NzUxMV9pMmNfaWRzLAorCS5wcm9iZSA9IGFkdjc1MTFfcHJvYmUsCisJLnJlbW92ZSA9IGFkdjc1 MTFfcmVtb3ZlLAogfTsKIAotc3RhdGljIGludCBfX2luaXQgYWR2NzUxMV9pbml0KHZvaWQpCi17 Ci0JcmV0dXJuIGRybV9pMmNfZW5jb2Rlcl9yZWdpc3RlcihUSElTX01PRFVMRSwgJmFkdjc1MTFf ZHJpdmVyKTsKLX0KLW1vZHVsZV9pbml0KGFkdjc1MTFfaW5pdCk7Ci0KLXN0YXRpYyB2b2lkIF9f ZXhpdCBhZHY3NTExX2V4aXQodm9pZCkKLXsKLQlkcm1faTJjX2VuY29kZXJfdW5yZWdpc3Rlcigm YWR2NzUxMV9kcml2ZXIpOwotfQotbW9kdWxlX2V4aXQoYWR2NzUxMV9leGl0KTsKK21vZHVsZV9p MmNfZHJpdmVyKGFkdjc1MTFfZHJpdmVyKTsKIAogTU9EVUxFX0FVVEhPUigiTGFycy1QZXRlciBD bGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkFEVjc1MTEg SERNSSB0cmFuc21pdHRlciBkcml2ZXIiKTsKLS0gClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENl bnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sCmhvc3RlZCBi eSBUaGUgTGludXggRm91bmRhdGlvbgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK