From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 11/24] drm/i915: Split skl_update_scaler. Date: Mon, 1 Jun 2015 15:27:14 +0200 Message-ID: <1433165247-15928-12-git-send-email-maarten.lankhorst@linux.intel.com> References: <1433165247-15928-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTP id DFCD46E605 for ; Mon, 1 Jun 2015 06:27:44 -0700 (PDT) In-Reply-To: <1433165247-15928-1-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SXQncyBlYXNpZXIgdG8gcmVhZCBzZXBhcmF0ZSBmdW5jdGlvbnMgZm9yIGNydGMgYW5kIHBsYW5l IHNjYWxlciBzdGF0ZS4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVu Lmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIHwgMTYyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAxMiArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jICB8ICAgMyArLQogNCBmaWxlcyBjaGFuZ2VkLCA5MiBpbnNlcnRpb25z KCspLCA4NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5k ZXggM2MwNWYzMTI2ODNlLi44MmVkN2U5NDI3YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKQEAgLTQzMTYsNDUgKzQzMTYsMTcgQEAgc3RhdGljIHZvaWQgY3B0X3ZlcmlmeV9t b2Rlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQogICogICAgIDAgLSBzY2Fs ZXJfdXNhZ2UgdXBkYXRlZCBzdWNjZXNzZnVsbHkKICAqICAgIGVycm9yIC0gcmVxdWVzdGVkIHNj YWxpbmcgY2Fubm90IGJlIHN1cHBvcnRlZCBvciBvdGhlciBlcnJvciBjb25kaXRpb24KICAqLwot aW50Ci1za2xfdXBkYXRlX3NjYWxlcl91c2VycygKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0Jc3RydWN0IGludGVs X3BsYW5lICppbnRlbF9wbGFuZSwgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSwKLQlpbnQgZm9yY2VfZGV0YWNoKQorc3RhdGljIGludAorc2tsX3VwZGF0ZV9zY2FsZXIoY29u c3QgY2hhciAqbmFtZSwgaW50IGksIHVuc2lnbmVkIGlkeCwKKwkJICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCisJCSAgaW50ICpzY2FsZXJf aWQsIHVuc2lnbmVkIGludCByb3RhdGlvbiwKKwkJICBpbnQgc3JjX3csIGludCBzcmNfaCwgaW50 IGRzdF93LCBpbnQgZHN0X2gpCiB7CisJc3RydWN0IGludGVsX2NydGNfc2NhbGVyX3N0YXRlICpz Y2FsZXJfc3RhdGUgPQorCQkmY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlOworCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0KKwkJdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOwogCWludCBuZWVkX3NjYWxpbmc7Ci0JaW50IGlkeDsKLQlpbnQgc3JjX3csIHNyY19oLCBk c3RfdywgZHN0X2g7Ci0JaW50ICpzY2FsZXJfaWQ7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmI7Ci0Jc3RydWN0IGludGVsX2NydGNfc2NhbGVyX3N0YXRlICpzY2FsZXJfc3RhdGU7Ci0JdW5z aWduZWQgaW50IHJvdGF0aW9uOwotCi0JaWYgKCFpbnRlbF9jcnRjIHx8ICFjcnRjX3N0YXRlKQot CQlyZXR1cm4gMDsKLQotCXNjYWxlcl9zdGF0ZSA9ICZjcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGU7 Ci0KLQlpZHggPSBpbnRlbF9wbGFuZSA/IGRybV9wbGFuZV9pbmRleCgmaW50ZWxfcGxhbmUtPmJh c2UpIDogU0tMX0NSVENfSU5ERVg7Ci0JZmIgPSBpbnRlbF9wbGFuZSA/IHBsYW5lX3N0YXRlLT5i YXNlLmZiIDogTlVMTDsKLQotCWlmIChpbnRlbF9wbGFuZSkgewotCQlzcmNfdyA9IGRybV9yZWN0 X3dpZHRoKCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNjsKLQkJc3JjX2ggPSBkcm1fcmVjdF9oZWln aHQoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2OwotCQlkc3RfdyA9IGRybV9yZWN0X3dpZHRoKCZw bGFuZV9zdGF0ZS0+ZHN0KTsKLQkJZHN0X2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRl LT5kc3QpOwotCQlzY2FsZXJfaWQgPSAmcGxhbmVfc3RhdGUtPnNjYWxlcl9pZDsKLQkJcm90YXRp b24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKLQl9IGVsc2UgewotCQlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1 c3RlZF9tb2RlOwotCQlzcmNfdyA9IGNydGNfc3RhdGUtPnBpcGVfc3JjX3c7Ci0JCXNyY19oID0g Y3J0Y19zdGF0ZS0+cGlwZV9zcmNfaDsKLQkJZHN0X3cgPSBhZGp1c3RlZF9tb2RlLT5oZGlzcGxh eTsKLQkJZHN0X2ggPSBhZGp1c3RlZF9tb2RlLT52ZGlzcGxheTsKLQkJc2NhbGVyX2lkID0gJnNj YWxlcl9zdGF0ZS0+c2NhbGVyX2lkOwotCQlyb3RhdGlvbiA9IERSTV9ST1RBVEVfMDsKLQl9CiAK IAluZWVkX3NjYWxpbmcgPSBpbnRlbF9yb3RhdGlvbl85MF9vcl8yNzAocm90YXRpb24pID8KIAkJ KHNyY19oICE9IGRzdF93IHx8IHNyY193ICE9IGRzdF9oKToKQEAgLTQzNzAsMTggKzQzNDIsMTUg QEAgc2tsX3VwZGF0ZV9zY2FsZXJfdXNlcnMoCiAJICogdXBkYXRlIHRvIGZyZWUgdGhlIHNjYWxl ciBpcyBkb25lIGluIHBsYW5lL3BhbmVsLWZpdCBwcm9ncmFtbWluZy4KIAkgKiBGb3IgdGhpcyBw dXJwb3NlIGNydGMvcGxhbmVfc3RhdGUtPnNjYWxlcl9pZCBpc24ndCByZXNldCBoZXJlLgogCSAq LwotCWlmIChmb3JjZV9kZXRhY2ggfHwgIW5lZWRfc2NhbGluZyB8fCAoaW50ZWxfcGxhbmUgJiYK LQkJKCFmYiB8fCAhcGxhbmVfc3RhdGUtPnZpc2libGUpKSkgeworCWlmIChmb3JjZV9kZXRhY2gg fHwgIW5lZWRfc2NhbGluZykgewogCQlpZiAoKnNjYWxlcl9pZCA+PSAwKSB7CiAJCQlzY2FsZXJf c3RhdGUtPnNjYWxlcl91c2VycyAmPSB+KDEgPDwgaWR4KTsKIAkJCXNjYWxlcl9zdGF0ZS0+c2Nh bGVyc1sqc2NhbGVyX2lkXS5pbl91c2UgPSAwOwogCiAJCQlEUk1fREVCVUdfS01TKCJTdGFnZWQg ZnJlZWluZyBzY2FsZXIgaWQgJWQuJWQgZnJvbSAlczolZCAiCiAJCQkJImNydGNfc3RhdGUgPSAl cCBzY2FsZXJfdXNlcnMgPSAweCV4XG4iLAotCQkJCWludGVsX2NydGMtPnBpcGUsICpzY2FsZXJf aWQsIGludGVsX3BsYW5lID8gIlBMQU5FIiA6ICJDUlRDIiwKLQkJCQlpbnRlbF9wbGFuZSA/IGlu dGVsX3BsYW5lLT5iYXNlLmJhc2UuaWQgOgotCQkJCWludGVsX2NydGMtPmJhc2UuYmFzZS5pZCwg Y3J0Y19zdGF0ZSwKLQkJCQlzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2Vycyk7CisJCQkJaW50ZWxf Y3J0Yy0+cGlwZSwgKnNjYWxlcl9pZCwgbmFtZSwgaSwKKwkJCQljcnRjX3N0YXRlLCBzY2FsZXJf c3RhdGUtPnNjYWxlcl91c2Vycyk7CiAJCQkqc2NhbGVyX2lkID0gLTE7CiAJCX0KIAkJcmV0dXJu IDA7CkBAIC00Mzk1LDQ5ICs0MzY0LDgzIEBAIHNrbF91cGRhdGVfc2NhbGVyX3VzZXJzKAogCQlk c3RfdyA+IFNLTF9NQVhfRFNUX1cgfHwgZHN0X2ggPiBTS0xfTUFYX0RTVF9IKSB7CiAJCURSTV9E RUJVR19LTVMoIiVzOiVkIHNjYWxlcl91c2VyIGluZGV4ICV1LiV1OiBzcmMgJXV4JXUgZHN0ICV1 eCV1ICIKIAkJCSJzaXplIGlzIG91dCBvZiBzY2FsZXIgcmFuZ2VcbiIsCi0JCQlpbnRlbF9wbGFu ZSA/ICJQTEFORSIgOiAiQ1JUQyIsCi0JCQlpbnRlbF9wbGFuZSA/IGludGVsX3BsYW5lLT5iYXNl LmJhc2UuaWQgOiBpbnRlbF9jcnRjLT5iYXNlLmJhc2UuaWQsCi0JCQlpbnRlbF9jcnRjLT5waXBl LCBpZHgsIHNyY193LCBzcmNfaCwgZHN0X3csIGRzdF9oKTsKKwkJCW5hbWUsIGksIGludGVsX2Ny dGMtPnBpcGUsIGlkeCwgc3JjX3csIHNyY19oLCBkc3RfdywgZHN0X2gpOwogCQlyZXR1cm4gLUVJ TlZBTDsKIAl9CiAKKwkvKiBtYXJrIHRoaXMgcGxhbmUgYXMgYSBzY2FsZXIgdXNlciBpbiBjcnRj X3N0YXRlICovCisJc2NhbGVyX3N0YXRlLT5zY2FsZXJfdXNlcnMgfD0gKDEgPDwgaWR4KTsKKwlE Uk1fREVCVUdfS01TKCIlczolZCBzdGFnZWQgc2NhbGluZyByZXF1ZXN0IGZvciAldXgldS0+JXV4 JXUgIgorCQkiY3J0Y19zdGF0ZSA9ICVwIHNjYWxlcl91c2VycyA9IDB4JXhcbiIsCisJCW5hbWUs IGksIHNyY193LCBzcmNfaCwgZHN0X3csIGRzdF9oLAorCQljcnRjX3N0YXRlLCBzY2FsZXJfc3Rh dGUtPnNjYWxlcl91c2Vycyk7CisKKwlyZXR1cm4gMDsKK30KKworaW50IHNrbF91cGRhdGVfc2Nh bGVyX2NydGMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnN0YXRlLCBpbnQgZm9yY2VfZGV0YWNo KQoreworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7CisJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQorCQkmc3RhdGUtPmJhc2UuYWRqdXN0 ZWRfbW9kZTsKKworCXJldHVybiBza2xfdXBkYXRlX3NjYWxlcigiQ1JUQyIsIGNydGMtPmJhc2Uu aWQsCisJCVNLTF9DUlRDX0lOREVYLCBzdGF0ZSwgZm9yY2VfZGV0YWNoLAorCQkmc3RhdGUtPnNj YWxlcl9zdGF0ZS5zY2FsZXJfaWQsIERSTV9ST1RBVEVfMCwKKwkJc3RhdGUtPnBpcGVfc3JjX3cs IHN0YXRlLT5waXBlX3NyY19oLAorCQlhZGp1c3RlZF9tb2RlLT5oZGlzcGxheSwgYWRqdXN0ZWRf bW9kZS0+aGRpc3BsYXkpOworfQorCitpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgc3RydWN0IGludGVsX3BsYW5l ICppbnRlbF9wbGFuZSwKKwkJCSAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQoreworCisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFz ZS5mYjsKKwlpbnQgcmV0OworCisJYm9vbCBmb3JjZV9kZXRhY2ggPSAhZmIgfHwgIXBsYW5lX3N0 YXRlLT52aXNpYmxlOworCisJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXIoIlBMQU5FIiwgaW50ZWxf cGxhbmUtPmJhc2UuYmFzZS5pZCwKKwkJCQlkcm1fcGxhbmVfaW5kZXgoJmludGVsX3BsYW5lLT5i YXNlKSwKKwkJCQljcnRjX3N0YXRlLCBmb3JjZV9kZXRhY2gsCisJCQkJJnBsYW5lX3N0YXRlLT5z Y2FsZXJfaWQsCisJCQkJcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24sCisJCQkJZHJtX3JlY3Rf d2lkdGgoJnBsYW5lX3N0YXRlLT5zcmMpID4+IDE2LAorCQkJCWRybV9yZWN0X2hlaWdodCgmcGxh bmVfc3RhdGUtPnNyYykgPj4gMTYsCisJCQkJZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5k c3QpLAorCQkJCWRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmRzdCkpOworCisJaWYgKHJl dCB8fCBwbGFuZV9zdGF0ZS0+c2NhbGVyX2lkIDwgMCkKKwkJcmV0dXJuIHJldDsKKwogCS8qIGNo ZWNrIGNvbG9ya2V5ICovCi0JaWYgKFdBUk5fT04oaW50ZWxfcGxhbmUgJiYKLQkJaW50ZWxfcGxh bmUtPmNrZXkuZmxhZ3MgIT0gSTkxNV9TRVRfQ09MT1JLRVlfTk9ORSkpIHsKLQkJRFJNX0RFQlVH X0tNUygiUExBTkU6JWQgc2NhbGluZyAldXgldS0+JXV4JXUgbm90IGFsbG93ZWQgd2l0aCBjb2xv cmtleSIsCi0JCQlpbnRlbF9wbGFuZS0+YmFzZS5iYXNlLmlkLCBzcmNfdywgc3JjX2gsIGRzdF93 LCBkc3RfaCk7CisJaWYgKFdBUk5fT04oaW50ZWxfcGxhbmUtPmNrZXkuZmxhZ3MgIT0gSTkxNV9T RVRfQ09MT1JLRVlfTk9ORSkpIHsKKwkJRFJNX0RFQlVHX0tNUygiUExBTkU6JWQgc2NhbGluZyB3 aXRoIGNvbG9yIGtleSBub3QgYWxsb3dlZCIsCisJCQlpbnRlbF9wbGFuZS0+YmFzZS5iYXNlLmlk KTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJLyogQ2hlY2sgc3JjIGZvcm1hdCAqLwotCWlm IChpbnRlbF9wbGFuZSkgewotCQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKLQkJY2FzZSBE Uk1fRk9STUFUX1JHQjU2NToKLQkJY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4OgotCQljYXNlIERS TV9GT1JNQVRfWFJHQjg4ODg6Ci0JCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKLQkJY2FzZSBE Uk1fRk9STUFUX0FSR0I4ODg4OgotCQljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6Ci0JCWNh c2UgRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMDoKLQkJY2FzZSBEUk1fRk9STUFUX1lVWVY6Ci0JCWNh c2UgRFJNX0ZPUk1BVF9ZVllVOgotCQljYXNlIERSTV9GT1JNQVRfVVlWWToKLQkJY2FzZSBEUk1f Rk9STUFUX1ZZVVk6Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCURSTV9ERUJVR19LTVMoIlBM QU5FOiVkIEZCOiVkIHVuc3VwcG9ydGVkIHNjYWxpbmcgZm9ybWF0IDB4JXhcbiIsCi0JCQkJaW50 ZWxfcGxhbmUtPmJhc2UuYmFzZS5pZCwgZmItPmJhc2UuaWQsIGZiLT5waXhlbF9mb3JtYXQpOwot CQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KKwlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwlj YXNlIERSTV9GT1JNQVRfUkdCNTY1OgorCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoKKwljYXNl IERSTV9GT1JNQVRfWFJHQjg4ODg6CisJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4OgorCWNhc2Ug RFJNX0ZPUk1BVF9BUkdCODg4ODoKKwljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6CisJY2Fz ZSBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOgorCWNhc2UgRFJNX0ZPUk1BVF9ZVVlWOgorCWNhc2Ug RFJNX0ZPUk1BVF9ZVllVOgorCWNhc2UgRFJNX0ZPUk1BVF9VWVZZOgorCWNhc2UgRFJNX0ZPUk1B VF9WWVVZOgorCQlicmVhazsKKwlkZWZhdWx0OgorCQlEUk1fREVCVUdfS01TKCJQTEFORTolZCBG QjolZCB1bnN1cHBvcnRlZCBzY2FsaW5nIGZvcm1hdCAweCV4XG4iLAorCQkJaW50ZWxfcGxhbmUt PmJhc2UuYmFzZS5pZCwgZmItPmJhc2UuaWQsIGZiLT5waXhlbF9mb3JtYXQpOworCQlyZXR1cm4g LUVJTlZBTDsKIAl9CiAKLQkvKiBtYXJrIHRoaXMgcGxhbmUgYXMgYSBzY2FsZXIgdXNlciBpbiBj cnRjX3N0YXRlICovCi0Jc2NhbGVyX3N0YXRlLT5zY2FsZXJfdXNlcnMgfD0gKDEgPDwgaWR4KTsK LQlEUk1fREVCVUdfS01TKCIlczolZCBzdGFnZWQgc2NhbGluZyByZXF1ZXN0IGZvciAldXgldS0+ JXV4JXUgIgotCQkiY3J0Y19zdGF0ZSA9ICVwIHNjYWxlcl91c2VycyA9IDB4JXhcbiIsCi0JCWlu dGVsX3BsYW5lID8gIlBMQU5FIiA6ICJDUlRDIiwKLQkJaW50ZWxfcGxhbmUgPyBpbnRlbF9wbGFu ZS0+YmFzZS5iYXNlLmlkIDogaW50ZWxfY3J0Yy0+YmFzZS5iYXNlLmlkLAotCQlzcmNfdywgc3Jj X2gsIGRzdF93LCBkc3RfaCwgY3J0Y19zdGF0ZSwgc2NhbGVyX3N0YXRlLT5zY2FsZXJfdXNlcnMp OwogCXJldHVybiAwOwogfQogCkBAIC00NDUyLDcgKzQ0NTUsNyBAQCBzdGF0aWMgdm9pZCBza3ls YWtlX3BmaXRfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBpbnQgZW5hYmxlKQogCURS TV9ERUJVR19LTVMoImZvciBjcnRjX3N0YXRlID0gJXBcbiIsIGNydGMtPmNvbmZpZyk7CiAKIAkv KiBUbyB1cGRhdGUgcGZpdCwgZmlyc3QgdXBkYXRlIHNjYWxlciBzdGF0ZSAqLwotCXNrbF91cGRh dGVfc2NhbGVyX3VzZXJzKGNydGMsIGNydGMtPmNvbmZpZywgTlVMTCwgTlVMTCwgIWVuYWJsZSk7 CisJc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyhjcnRjLT5jb25maWcsICFlbmFibGUpOwogCWludGVs X2F0b21pY19zZXR1cF9zY2FsZXJzKGNydGMtPmJhc2UuZGV2LCBjcnRjLCBjcnRjLT5jb25maWcp OwogCXNrbF9kZXRhY2hfc2NhbGVycyhjcnRjKTsKIAlpZiAoIWVuYWJsZSkKQEAgLTEzMzIyLDgg KzEzMzI1LDkgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKIAl9CiAKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewotCQlyZXQgPSBz a2xfdXBkYXRlX3NjYWxlcl91c2VycyhpbnRlbF9jcnRjLCBjcnRjX3N0YXRlLAotCQkJdG9faW50 ZWxfcGxhbmUocGxhbmUpLCBzdGF0ZSwgMCk7CisJCXJldCA9IHNrbF91cGRhdGVfc2NhbGVyX3Bs YW5lKGNydGNfc3RhdGUsCisJCQkJCSAgICAgIHRvX2ludGVsX3BsYW5lKHBsYW5lKSwKKwkJCQkJ ICAgICAgc3RhdGUpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwppbmRleCA2ZjUyNTA5M2Y1ZWQuLjZjOTI2ZDNlMzFlOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCkBAIC0xMzcxLDcgKzEzNzEsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCQlpZiAoSU5URUxfSU5GTyhkZXYp LT5nZW4gPj0gOSkgewogCQkJaW50IHJldDsKLQkJCXJldCA9IHNrbF91cGRhdGVfc2NhbGVyX3Vz ZXJzKGludGVsX2NydGMsIHBpcGVfY29uZmlnLCBOVUxMLCBOVUxMLCAwKTsKKwkJCXJldCA9IHNr bF91cGRhdGVfc2NhbGVyX2NydGMocGlwZV9jb25maWcsIDApOwogCQkJaWYgKHJldCkKIAkJCQly ZXR1cm4gcmV0OwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDcxYWQ4YTFlMTNh Yi4uNzMwMWJiM2E0ZGIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMjUyLDcgKzI1 Miw3IEBAIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7CiAJICogcGxhbmUgcmVxdWlyaW5nIGEg c2NhbGVyOgogCSAqICAgLSBEdXJpbmcgY2hlY2tfcGxhbmUsIGl0cyBiaXQgaXMgc2V0IGluCiAJ ICogICAgIGNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJfdXNlcnMgYnkgY2FsbGluZyBo ZWxwZXIgZnVuY3Rpb24KLQkgKiAgICAgdXBkYXRlX3NjYWxlcl91c2Vycy4KKwkgKiAgICAgdXBk YXRlX3NjYWxlcl9wbGFuZS4KIAkgKiAgIC0gc2NhbGVyX2lkIGluZGljYXRlcyB0aGUgc2NhbGVy IGl0IGdvdCBhc3NpZ25lZC4KIAkgKgogCSAqIHBsYW5lIGRvZXNuJ3QgcmVxdWlyZSBhIHNjYWxl cjoKQEAgLTI2MCw3ICsyNjAsNyBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewogCSAqICAg ICBnb3QgZGlzYWJsZWQuCiAJICogICAtIER1cmluZyBjaGVja19wbGFuZSwgY29ycmVzcG9uZGlu ZyBiaXQgaXMgcmVzZXQgaW4KIAkgKiAgICAgY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlLnNjYWxl cl91c2VycyBieSBjYWxsaW5nIGhlbHBlciBmdW5jdGlvbgotCSAqICAgICB1cGRhdGVfc2NhbGVy X3VzZXJzLgorCSAqICAgICB1cGRhdGVfc2NhbGVyX3BsYW5lLgogCSAqLwogCWludCBzY2FsZXJf aWQ7CiB9OwpAQCAtMTEzOCw5ICsxMTM4LDExIEBAIHZvaWQgaW50ZWxfbW9kZV9mcm9tX3BpcGVf Y29uZmlnKHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAogdm9pZCBpbnRlbF9jcnRjX3dh aXRfZm9yX3BlbmRpbmdfZmxpcHMoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIHZvaWQgaW50ZWxf bW9kZXNldF9wcmVjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGUpOwogdm9pZCBza2xfZGV0YWNoX3NjYWxlcnMoc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMpOwotaW50IHNrbF91cGRhdGVfc2NhbGVyX3VzZXJzKHN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjLAotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBzdHJ1Y3Qg aW50ZWxfcGxhbmUgKmludGVsX3BsYW5lLAotCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUsIGludCBmb3JjZV9kZXRhY2gpOworaW50IHNrbF91cGRhdGVfc2NhbGVyX3BsYW5l KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJICAgIHN0cnVjdCBpbnRl bF9wbGFuZSAqaW50ZWxfcGxhbmUsCisJCQkgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSk7CisKK2ludCBza2xfdXBkYXRlX3NjYWxlcl9jcnRjKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLCBpbnQgZm9yY2VfZGV0YWNoKTsKIGludCBza2xfbWF4X3Nj YWxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSk7CiAKIHVuc2lnbmVkIGxvbmcgaW50ZWxfcGxhbmVfb2JqX29mZnNldChzdHJ1Y3Qg aW50ZWxfcGxhbmUgKmludGVsX3BsYW5lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwpp bmRleCA4MTkzYTM1Mzg4ZDcuLmZlOTVmMjVmMDE5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMKQEAgLTk0MSw4ICs5NDEsNyBAQCBmaW5pc2g6CiAJfQogCiAJaWYgKElOVEVMX0lO Rk8oZGV2KS0+Z2VuID49IDkpIHsKLQkJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXJfdXNlcnMoaW50 ZWxfY3J0YywgY3J0Y19zdGF0ZSwgaW50ZWxfcGxhbmUsCi0JCQlzdGF0ZSwgMCk7CisJCXJldCA9 IHNrbF91cGRhdGVfc2NhbGVyX3BsYW5lKGNydGNfc3RhdGUsIGludGVsX3BsYW5lLCBzdGF0ZSk7 CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KLS0gCjIuMS4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=