From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [DPU PATCH 01/11] drm/msm: Skip seamless disables in crtc/encoder Date: Wed, 28 Feb 2018 14:18:56 -0500 Message-ID: <20180228191906.185417-2-seanpaul@chromium.org> References: <20180228191906.185417-1-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180228191906.185417-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Sean Paul , hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org SW5zdGVhZCBvZiBkdXBsaWNhdGluZyB3aG9sZSBzd2F0aHMgb2YgYXRvbWljIGhlbHBlciBmdW5j dGlvbnMgKHdoaWNoCmFyZSBhbHJlYWR5IG91dC1vZi1kYXRlKSwganVzdCBza2lwIHRoZSBlbmNv ZGVyL2NydGMgZGlzYWJsZXMgaW4gdGhlCi5kaXNhYmxlIGhvb2tzLgoKQ2hhbmdlLUlkOiBJN2Jk OTE4M2FlNjA2MjQyMDRmYjFkZTk1NTA2NTZiNzc2ZWZjNzIwMgpTaWduZWQtb2ZmLWJ5OiBTZWFu IFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfY3J0Yy5jICAgIHwgICA4ICsKIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9lbmNvZGVyLmMgfCAgIDggKwogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWlj LmMgICAgICAgICAgICB8IDE4NSArLS0tLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2Vk LCAxNyBpbnNlcnRpb25zKCspLCAxODQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9jcnRjLmMKaW5kZXggM2NkZjFlM2Q5ZDk2Li5hM2FiNmVkMmJmMWQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwpAQCAtMzM5Myw2ICszMzkz LDcgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp CiB7CiAJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YzsKIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUg KmNzdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAlzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXI7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKIAl1bnNpZ25l ZCBsb25nIGZsYWdzOwpAQCAtMzQwNyw4ICszNDA4LDE1IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRj X2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCX0KIAlkcHVfY3J0YyA9IHRvX2RwdV9j cnRjKGNydGMpOwogCWNzdGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKKwlt b2RlID0gJmNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOwogCXByaXYgPSBjcnRjLT5kZXYtPmRl dl9wcml2YXRlOwogCisJaWYgKG1zbV9pc19tb2RlX3NlYW1sZXNzKG1vZGUpIHx8IG1zbV9pc19t b2RlX3NlYW1sZXNzX3Zycihtb2RlKSB8fAorCSAgICBtc21faXNfbW9kZV9zZWFtbGVzc19kbXMo bW9kZSkpIHsKKwkJRFBVX0RFQlVHKCJTZWFtbGVzcyBtb2RlIGlzIGJlaW5nIGFwcGxpZWQsIHNr aXAgZGlzYWJsZVxuIik7CisJCXJldHVybjsKKwl9CisKIAlEUFVfREVCVUcoImNydGMlZFxuIiwg Y3J0Yy0+YmFzZS5pZCk7CiAKIAlpZiAoZHB1X2ttc19pc19zdXNwZW5kX3N0YXRlKGNydGMtPmRl dikpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rl ci5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwppbmRleCAz ZDE2OGZhMDlmM2YuLjI4Y2ViNTg5ZWU0MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfZW5jb2Rlci5jCkBAIC0yMTgzLDYgKzIxODMsNyBAQCBzdGF0aWMgdm9pZCBkcHVf ZW5jb2Rlcl92aXJ0X2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jKQogCXN0cnVj dCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jID0gTlVMTDsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2 YXRlICpwcml2OwogCXN0cnVjdCBkcHVfa21zICpkcHVfa21zOworCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOwogCWludCBpID0gMDsKIAogCWlmICghZHJtX2VuYykgewpAQCAtMjE5Niw2 ICsyMTk3LDEzIEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3ZpcnRfZGlzYWJsZShzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmRybV9lbmMpCiAJCXJldHVybjsKIAl9CiAKKwltb2RlID0gJmRybV9lbmMt PmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOworCWlmIChtc21faXNfbW9kZV9zZWFtbGVzcyht b2RlKSB8fCBtc21faXNfbW9kZV9zZWFtbGVzc192cnIobW9kZSkgfHwKKwkgICAgbXNtX2lzX21v ZGVfc2VhbWxlc3NfZG1zKG1vZGUpKSB7CisJCURQVV9ERUJVRygiU2VhbWxlc3MgbW9kZSBpcyBi ZWluZyBhcHBsaWVkLCBza2lwIGRpc2FibGVcbiIpOworCQlyZXR1cm47CisJfQorCiAJZHB1X2Vu YyA9IHRvX2RwdV9lbmNvZGVyX3ZpcnQoZHJtX2VuYyk7CiAJRFBVX0RFQlVHX0VOQyhkcHVfZW5j LCAiXG4iKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwppbmRleCA0NjUzNmVkYjcyZWUuLjVj ZmI4MDM0NTA1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKQEAgLTg0LDE4OSArODQsNiBA QCBzdGF0aWMgdm9pZCBtc21fYXRvbWljX3dhaXRfZm9yX2NvbW1pdF9kb25lKAogCX0KIH0KIAot c3RhdGljIHZvaWQKLW1zbV9kaXNhYmxlX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKLXsKLQlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yOwotCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9z dGF0ZSwgKm5ld19jb25uX3N0YXRlOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKLQlzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLCAqbmV3X2NydGNfc3RhdGU7Ci0JaW50IGk7 Ci0KLQlmb3JfZWFjaF9vbGRuZXdfY29ubmVjdG9yX2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubmVj dG9yLCBvbGRfY29ubl9zdGF0ZSwgbmV3X2Nvbm5fc3RhdGUsIGkpIHsKLQkJY29uc3Qgc3RydWN0 IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyAqZnVuY3M7Ci0JCXN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcjsKLQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZTsKLQkJdW5z aWduZWQgaW50IGNydGNfaWR4OwotCi0JCS8qCi0JCSAqIFNodXQgZG93biBldmVyeXRoaW5nIHRo YXQncyBpbiB0aGUgY2hhbmdlc2V0IGFuZCBjdXJyZW50bHkKLQkJICogc3RpbGwgb24uIFNvIG5l ZWQgdG8gY2hlY2sgdGhlIG9sZCwgc2F2ZWQgc3RhdGUuCi0JCSAqLwotCQlpZiAoIW9sZF9jb25u X3N0YXRlLT5jcnRjKQotCQkJY29udGludWU7Ci0KLQkJY3J0Y19pZHggPSBkcm1fY3J0Y19pbmRl eChvbGRfY29ubl9zdGF0ZS0+Y3J0Yyk7Ci0JCW9sZF9jcnRjX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfb2xkX2NydGNfc3RhdGUob2xkX3N0YXRlLAotCQkJCQkJCW9sZF9jb25uX3N0YXRlLT5jcnRj KTsKLQotCQlpZiAoIW9sZF9jcnRjX3N0YXRlLT5hY3RpdmUgfHwKLQkJICAgICFkcm1fYXRvbWlj X2NydGNfbmVlZHNfbW9kZXNldChvbGRfY29ubl9zdGF0ZS0+Y3J0Yy0+c3RhdGUpKQotCQkJY29u dGludWU7Ci0KLQkJZW5jb2RlciA9IG9sZF9jb25uX3N0YXRlLT5iZXN0X2VuY29kZXI7Ci0KLQkJ LyogV2Ugc2hvdWxkbid0IGdldCB0aGlzIGZhciBpZiB3ZSBkaWRuJ3QgcHJldmlvdXNseSBoYXZl Ci0JCSAqIGFuIGVuY29kZXIuLiBidXQgV0FSTl9PTigpIHJhdGhlciB0aGFuIGV4cGxvZGUuCi0J CSAqLwotCQlpZiAoV0FSTl9PTighZW5jb2RlcikpCi0JCQljb250aW51ZTsKLQotCQlpZiAobXNt X2lzX21vZGVfc2VhbWxlc3MoCi0JCQkmY29ubmVjdG9yLT5lbmNvZGVyLT5jcnRjLT5zdGF0ZS0+ bW9kZSkgfHwKLQkJCW1zbV9pc19tb2RlX3NlYW1sZXNzX3ZycigKLQkJCSZjb25uZWN0b3ItPmVu Y29kZXItPmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlKSkKLQkJCWNvbnRpbnVlOwotCi0JCWlm IChtc21faXNfbW9kZV9zZWFtbGVzc19kbXMoCi0JCQkmY29ubmVjdG9yLT5lbmNvZGVyLT5jcnRj LT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZSkpCi0JCQljb250aW51ZTsKLQotCQlmdW5jcyA9IGVuY29k ZXItPmhlbHBlcl9wcml2YXRlOwotCi0JCURSTV9ERUJVR19BVE9NSUMoImRpc2FibGluZyBbRU5D T0RFUjolZDolc11cbiIsCi0JCQkJIGVuY29kZXItPmJhc2UuaWQsIGVuY29kZXItPm5hbWUpOwot Ci0JCS8qCi0JCSAqIEVhY2ggZW5jb2RlciBoYXMgYXQgbW9zdCBvbmUgY29ubmVjdG9yIChzaW5j ZSB3ZSBhbHdheXMgc3RlYWwKLQkJICogaXQgYXdheSksIHNvIHdlIHdvbid0IGNhbGwgZGlzYWJs ZSBob29rcyB0d2ljZS4KLQkJICovCi0JCWRybV9icmlkZ2VfZGlzYWJsZShlbmNvZGVyLT5icmlk Z2UpOwotCi0JCS8qIFJpZ2h0IGZ1bmN0aW9uIGRlcGVuZHMgdXBvbiB0YXJnZXQgc3RhdGUuICov Ci0JCWlmIChuZXdfY29ubl9zdGF0ZS0+Y3J0YyAmJiBmdW5jcy0+cHJlcGFyZSkKLQkJCWZ1bmNz LT5wcmVwYXJlKGVuY29kZXIpOwotCQllbHNlIGlmIChmdW5jcy0+ZGlzYWJsZSkKLQkJCWZ1bmNz LT5kaXNhYmxlKGVuY29kZXIpOwotCQllbHNlCi0JCQlmdW5jcy0+ZHBtcyhlbmNvZGVyLCBEUk1f TU9ERV9EUE1TX09GRik7Ci0KLQkJZHJtX2JyaWRnZV9wb3N0X2Rpc2FibGUoZW5jb2Rlci0+YnJp ZGdlKTsKLQl9Ci0KLQlmb3JfZWFjaF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShvbGRfc3RhdGUsIGNy dGMsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQljb25zdCBzdHJ1Y3Qg ZHJtX2NydGNfaGVscGVyX2Z1bmNzICpmdW5jczsKLQotCQkvKiBTaHV0IGRvd24gZXZlcnl0aGlu ZyB0aGF0IG5lZWRzIGEgZnVsbCBtb2Rlc2V0LiAqLwotCQlpZiAoIWRybV9hdG9taWNfY3J0Y19u ZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmICghb2xk X2NydGNfc3RhdGUtPmFjdGl2ZSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChtc21faXNfbW9kZV9z ZWFtbGVzcygmY3J0Yy0+c3RhdGUtPm1vZGUpIHx8Ci0JCQltc21faXNfbW9kZV9zZWFtbGVzc192 cnIoJmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlKSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmICht c21faXNfbW9kZV9zZWFtbGVzc19kbXMoJmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlKSkKLQkJ CWNvbnRpbnVlOwotCi0JCWZ1bmNzID0gY3J0Yy0+aGVscGVyX3ByaXZhdGU7Ci0KLQkJRFJNX0RF QlVHX0FUT01JQygiZGlzYWJsaW5nIFtDUlRDOiVkXVxuIiwKLQkJCQkgY3J0Yy0+YmFzZS5pZCk7 Ci0KLQkJLyogUmlnaHQgZnVuY3Rpb24gZGVwZW5kcyB1cG9uIHRhcmdldCBzdGF0ZS4gKi8KLQkJ aWYgKG5ld19jcnRjX3N0YXRlLT5lbmFibGUgJiYgZnVuY3MtPnByZXBhcmUpCi0JCQlmdW5jcy0+ cHJlcGFyZShjcnRjKTsKLQkJZWxzZSBpZiAoZnVuY3MtPmRpc2FibGUpCi0JCQlmdW5jcy0+ZGlz YWJsZShjcnRjKTsKLQkJZWxzZQotCQkJZnVuY3MtPmRwbXMoY3J0YywgRFJNX01PREVfRFBNU19P RkYpOwotCX0KLX0KLQotc3RhdGljIHZvaWQKLW1zbV9jcnRjX3NldF9tb2RlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCi17Ci0Jc3Ry dWN0IGRybV9jcnRjICpjcnRjOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3Rh dGU7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKLQlzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGU7Ci0JaW50IGk7Ci0KLQlmb3JfZWFjaF9uZXdfY3J0 Y19pbl9zdGF0ZShvbGRfc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7Ci0JCWNvbnN0 IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgKmZ1bmNzOwotCi0JCWlmICghbmV3X2NydGNf c3RhdGUtPm1vZGVfY2hhbmdlZCkKLQkJCWNvbnRpbnVlOwotCi0JCWZ1bmNzID0gY3J0Yy0+aGVs cGVyX3ByaXZhdGU7Ci0KLQkJaWYgKG5ld19jcnRjX3N0YXRlLT5lbmFibGUgJiYgZnVuY3MtPm1v ZGVfc2V0X25vZmIpIHsKLQkJCURSTV9ERUJVR19BVE9NSUMoIm1vZGVzZXQgb24gW0NSVEM6JWRd XG4iLAotCQkJCQkgY3J0Yy0+YmFzZS5pZCk7Ci0KLQkJCWZ1bmNzLT5tb2RlX3NldF9ub2ZiKGNy dGMpOwotCQl9Ci0JfQotCi0JZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShvbGRfc3Rh dGUsIGNvbm5lY3RvciwgbmV3X2Nvbm5fc3RhdGUsIGkpIHsKLQkJY29uc3Qgc3RydWN0IGRybV9l bmNvZGVyX2hlbHBlcl9mdW5jcyAqZnVuY3M7Ci0JCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3 X2NydGNfc3RhdGU7Ci0JCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKLQkJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGUsICphZGp1c3RlZF9tb2RlOwotCi0JCWlmICghbmV3X2Nvbm5f c3RhdGUtPmJlc3RfZW5jb2RlcikKLQkJCWNvbnRpbnVlOwotCi0JCWVuY29kZXIgPSBuZXdfY29u bl9zdGF0ZS0+YmVzdF9lbmNvZGVyOwotCQlmdW5jcyA9IGVuY29kZXItPmhlbHBlcl9wcml2YXRl OwotCQluZXdfY3J0Y19zdGF0ZSA9IG5ld19jb25uX3N0YXRlLT5jcnRjLT5zdGF0ZTsKLQkJbW9k ZSA9ICZuZXdfY3J0Y19zdGF0ZS0+bW9kZTsKLQkJYWRqdXN0ZWRfbW9kZSA9ICZuZXdfY3J0Y19z dGF0ZS0+YWRqdXN0ZWRfbW9kZTsKLQotCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5tb2RlX2NoYW5n ZWQpCi0JCQljb250aW51ZTsKLQotCQlEUk1fREVCVUdfQVRPTUlDKCJtb2Rlc2V0IG9uIFtFTkNP REVSOiVkOiVzXVxuIiwKLQkJCQkgZW5jb2Rlci0+YmFzZS5pZCwgZW5jb2Rlci0+bmFtZSk7Ci0K LQkJLyoKLQkJICogRWFjaCBlbmNvZGVyIGhhcyBhdCBtb3N0IG9uZSBjb25uZWN0b3IgKHNpbmNl IHdlIGFsd2F5cyBzdGVhbAotCQkgKiBpdCBhd2F5KSwgc28gd2Ugd29uJ3QgY2FsbCBtb2RlX3Nl dCBob29rcyB0d2ljZS4KLQkJICovCi0JCWlmIChmdW5jcy0+bW9kZV9zZXQpCi0JCQlmdW5jcy0+ bW9kZV9zZXQoZW5jb2RlciwgbW9kZSwgYWRqdXN0ZWRfbW9kZSk7Ci0KLQkJZHJtX2JyaWRnZV9t b2RlX3NldChlbmNvZGVyLT5icmlkZ2UsIG1vZGUsIGFkanVzdGVkX21vZGUpOwotCX0KLX0KLQot LyoqCi0gKiBtc21fYXRvbWljX2hlbHBlcl9jb21taXRfbW9kZXNldF9kaXNhYmxlcyAtIG1vZGVz ZXQgY29tbWl0IHRvIGRpc2FibGUgb3V0cHV0cwotICogQGRldjogRFJNIGRldmljZQotICogQG9s ZF9zdGF0ZTogYXRvbWljIHN0YXRlIG9iamVjdCB3aXRoIG9sZCBzdGF0ZSBzdHJ1Y3R1cmVzCi0g KgotICogVGhpcyBmdW5jdGlvbiBzaHV0cyBkb3duIGFsbCB0aGUgb3V0cHV0cyB0aGF0IG5lZWQg dG8gYmUgc2h1dCBkb3duIGFuZAotICogcHJlcGFyZXMgdGhlbSAoaWYgcmVxdWlyZWQpIHdpdGgg dGhlIG5ldyBtb2RlLgotICoKLSAqIEZvciBjb21wYXRpYmlsaXR5IHdpdGggbGVnYWN5IGNydGMg aGVscGVycyB0aGlzIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlCi0gKiBkcm1fYXRvbWljX2hlbHBl cl9jb21taXRfcGxhbmVzKCksIHdoaWNoIGlzIHdoYXQgdGhlIGRlZmF1bHQgY29tbWl0IGZ1bmN0 aW9uCi0gKiBkb2VzLiBCdXQgZHJpdmVycyB3aXRoIGRpZmZlcmVudCBuZWVkcyBjYW4gZ3JvdXAg dGhlIG1vZGVzZXQgY29tbWl0cyB0b2dldGhlcgotICogYW5kIGRvIHRoZSBwbGFuZSBjb21taXRz IGF0IHRoZSBlbmQuIFRoaXMgaXMgdXNlZnVsIGZvciBkcml2ZXJzIGRvaW5nIHJ1bnRpbWUKLSAq IFBNIHNpbmNlIHBsYW5lcyB1cGRhdGVzIHRoZW4gb25seSBoYXBwZW4gd2hlbiB0aGUgQ1JUQyBp cyBhY3R1YWxseSBlbmFibGVkLgotICovCi12b2lkIG1zbV9hdG9taWNfaGVscGVyX2NvbW1pdF9t b2Rlc2V0X2Rpc2FibGVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCXN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpvbGRfc3RhdGUpCi17Ci0JbXNtX2Rpc2FibGVfb3V0cHV0cyhkZXYsIG9sZF9z dGF0ZSk7Ci0KLQlkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUo ZGV2LCBvbGRfc3RhdGUpOwotCi0JbXNtX2NydGNfc2V0X21vZGUoZGV2LCBvbGRfc3RhdGUpOwot fQotCiAvKioKICAqIG1zbV9hdG9taWNfaGVscGVyX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMgLSBt b2Rlc2V0IGNvbW1pdCB0byBlbmFibGUgb3V0cHV0cwogICogQGRldjogRFJNIGRldmljZQpAQCAt NDA2LDcgKzIyMyw3IEBAIHN0YXRpYyB2b2lkIGNvbXBsZXRlX2NvbW1pdChzdHJ1Y3QgbXNtX2Nv bW1pdCAqYykKIAogCWttcy0+ZnVuY3MtPnByZXBhcmVfY29tbWl0KGttcywgc3RhdGUpOwogCi0J bXNtX2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZGlzYWJsZXMoZGV2LCBzdGF0ZSk7CisJ ZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZGlzYWJsZXMoZGV2LCBzdGF0ZSk7CiAK IAlkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzKGRldiwgc3RhdGUsIDApOwogCi0tIApT ZWFuIFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxp bmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==