From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 06/19] drm/i915: Split skl_update_scaler, v3. Date: Mon, 15 Jun 2015 12:33:43 +0200 Message-ID: <1434364436-6366-7-git-send-email-maarten.lankhorst@linux.intel.com> References: <1434364436-6366-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 56D9D6E731 for ; Mon, 15 Jun 2015 03:34:14 -0700 (PDT) In-Reply-To: <1434364436-6366-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 IHNjYWxlciBzdGF0ZS4KCkNoYW5nZXMgc2luY2UgdjE6CiAtIFVwZGF0ZSBkb2N1bWVudGF0aW9u LgpDaGFuZ2VzIHNpbmNlIHYyOgogLSBHZXQgcmlkIG9mIHBhcmFtZXRlcnMgdG8gc2tsX3VwZGF0 ZV9zY2FsZXIgb25seSB1c2VkIGZvciB0cmFjZXMuCiAgIFRoaXMgYXZvaWRzIG5lZWRpbmcgdG8g ZG9jdW1lbnQgdGhlIG90aGVyIHBhcmFtZXRlcnMuCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExh bmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDIxMSArKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMTIgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8ICAgMyArLQogNCBmaWxlcyBjaGFuZ2Vk LCAxMjEgaW5zZXJ0aW9ucygrKSwgMTA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwppbmRleCAwZjc2NTJhMzFjOTUuLjI2ZDYxMGFjYjYxZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNDMwMyw2MiArNDMwMywxNiBAQCBzdGF0aWMg dm9pZCBjcHRfdmVyaWZ5X21vZGVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUp CiAJfQogfQogCi0vKioKLSAqIHNrbF91cGRhdGVfc2NhbGVyX3VzZXJzIC0gU3RhZ2VzIHVwZGF0 ZSB0byBjcnRjJ3Mgc2NhbGVyIHN0YXRlCi0gKiBAaW50ZWxfY3J0YzogY3J0YwotICogQGNydGNf c3RhdGU6IGNydGNfc3RhdGUKLSAqIEBwbGFuZTogcGxhbmUgKE5VTEwgaW5kaWNhdGVzIGNydGMg aXMgcmVxdWVzdGluZyB1cGRhdGUpCi0gKiBAcGxhbmVfc3RhdGU6IHBsYW5lJ3Mgc3RhdGUKLSAq IEBmb3JjZV9kZXRhY2g6IHJlcXVlc3QgdW5jb25kaXRpb25hbCBkZXRhY2htZW50IG9mIHNjYWxl cgotICoKLSAqIFRoaXMgZnVuY3Rpb24gdXBkYXRlcyBzY2FsZXIgc3RhdGUgZm9yIHJlcXVlc3Rl ZCBwbGFuZSBvciBjcnRjLgotICogVG8gcmVxdWVzdCBzY2FsZXIgdXNhZ2UgdXBkYXRlIGZvciBh IHBsYW5lLCBjYWxsZXIgc2hhbGwgcGFzcyBwbGFuZSBwb2ludGVyLgotICogVG8gcmVxdWVzdCBz Y2FsZXIgdXNhZ2UgdXBkYXRlIGZvciBjcnRjLCBjYWxsZXIgc2hhbGwgcGFzcyBwbGFuZSBwb2lu dGVyCi0gKiBhcyBOVUxMLgotICoKLSAqIFJldHVybgotICogICAgIDAgLSBzY2FsZXJfdXNhZ2Ug dXBkYXRlZCBzdWNjZXNzZnVsbHkKLSAqICAgIGVycm9yIC0gcmVxdWVzdGVkIHNjYWxpbmcgY2Fu bm90IGJlIHN1cHBvcnRlZCBvciBvdGhlciBlcnJvciBjb25kaXRpb24KLSAqLwotaW50Ci1za2xf dXBkYXRlX3NjYWxlcl91c2VycygKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0Yywgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCi0Jc3RydWN0IGludGVsX3BsYW5lICpp bnRlbF9wbGFuZSwgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKLQlpbnQg Zm9yY2VfZGV0YWNoKQorc3RhdGljIGludAorc2tsX3VwZGF0ZV9zY2FsZXIoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIGJvb2wgZm9yY2VfZGV0YWNoLAorCQkgIHVuc2lnbmVk IHNjYWxlcl9pZHgsIGludCAqc2NhbGVyX2lkLCB1bnNpZ25lZCBpbnQgcm90YXRpb24sCisJCSAg aW50IHNyY193LCBpbnQgc3JjX2gsIGludCBkc3RfdywgaW50IGRzdF9oKQogeworCXN0cnVjdCBp bnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAqc2NhbGVyX3N0YXRlID0KKwkJJmNydGNfc3RhdGUtPnNj YWxlcl9zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9CisJCXRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAlpbnQgbmVlZF9zY2FsaW5nOwotCWludCBp ZHg7Ci0JaW50IHNyY193LCBzcmNfaCwgZHN0X3csIGRzdF9oOwotCWludCAqc2NhbGVyX2lkOwot CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwotCXN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9z dGF0ZSAqc2NhbGVyX3N0YXRlOwotCXVuc2lnbmVkIGludCByb3RhdGlvbjsKLQotCWlmICghaW50 ZWxfY3J0YyB8fCAhY3J0Y19zdGF0ZSkKLQkJcmV0dXJuIDA7Ci0KLQlzY2FsZXJfc3RhdGUgPSAm Y3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlOwotCi0JaWR4ID0gaW50ZWxfcGxhbmUgPyBkcm1fcGxh bmVfaW5kZXgoJmludGVsX3BsYW5lLT5iYXNlKSA6IFNLTF9DUlRDX0lOREVYOwotCWZiID0gaW50 ZWxfcGxhbmUgPyBwbGFuZV9zdGF0ZS0+YmFzZS5mYiA6IE5VTEw7Ci0KLQlpZiAoaW50ZWxfcGxh bmUpIHsKLQkJc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7 Ci0JCXNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNjsKLQkJ ZHN0X3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmRzdCk7Ci0JCWRzdF9oID0gZHJt X3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+ZHN0KTsKLQkJc2NhbGVyX2lkID0gJnBsYW5lX3N0 YXRlLT5zY2FsZXJfaWQ7Ci0JCXJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247 Ci0JfSBlbHNlIHsKLQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQot CQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKLQkJc3JjX3cgPSBjcnRjX3N0YXRl LT5waXBlX3NyY193OwotCQlzcmNfaCA9IGNydGNfc3RhdGUtPnBpcGVfc3JjX2g7Ci0JCWRzdF93 ID0gYWRqdXN0ZWRfbW9kZS0+aGRpc3BsYXk7Ci0JCWRzdF9oID0gYWRqdXN0ZWRfbW9kZS0+dmRp c3BsYXk7Ci0JCXNjYWxlcl9pZCA9ICZzY2FsZXJfc3RhdGUtPnNjYWxlcl9pZDsKLQkJcm90YXRp b24gPSBEUk1fUk9UQVRFXzA7Ci0JfQogCiAJbmVlZF9zY2FsaW5nID0gaW50ZWxfcm90YXRpb25f OTBfb3JfMjcwKHJvdGF0aW9uKSA/CiAJCShzcmNfaCAhPSBkc3RfdyB8fCBzcmNfdyAhPSBkc3Rf aCk6CkBAIC00Mzc0LDE3ICs0MzI4LDE0IEBAIHNrbF91cGRhdGVfc2NhbGVyX3VzZXJzKAogCSAq IHVwZGF0ZSB0byBmcmVlIHRoZSBzY2FsZXIgaXMgZG9uZSBpbiBwbGFuZS9wYW5lbC1maXQgcHJv Z3JhbW1pbmcuCiAJICogRm9yIHRoaXMgcHVycG9zZSBjcnRjL3BsYW5lX3N0YXRlLT5zY2FsZXJf aWQgaXNuJ3QgcmVzZXQgaGVyZS4KIAkgKi8KLQlpZiAoZm9yY2VfZGV0YWNoIHx8ICFuZWVkX3Nj YWxpbmcgfHwgKGludGVsX3BsYW5lICYmCi0JCSghZmIgfHwgIXBsYW5lX3N0YXRlLT52aXNpYmxl KSkpIHsKKwlpZiAoZm9yY2VfZGV0YWNoIHx8ICFuZWVkX3NjYWxpbmcpIHsKIAkJaWYgKCpzY2Fs ZXJfaWQgPj0gMCkgewotCQkJc2NhbGVyX3N0YXRlLT5zY2FsZXJfdXNlcnMgJj0gfigxIDw8IGlk eCk7CisJCQlzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2VycyAmPSB+KDEgPDwgc2NhbGVyX2lkeCk7 CiAJCQlzY2FsZXJfc3RhdGUtPnNjYWxlcnNbKnNjYWxlcl9pZF0uaW5fdXNlID0gMDsKIAotCQkJ RFJNX0RFQlVHX0tNUygiU3RhZ2VkIGZyZWVpbmcgc2NhbGVyIGlkICVkLiVkIGZyb20gJXM6JWQg IgotCQkJCSJjcnRjX3N0YXRlID0gJXAgc2NhbGVyX3VzZXJzID0gMHgleFxuIiwKLQkJCQlpbnRl bF9jcnRjLT5waXBlLCAqc2NhbGVyX2lkLCBpbnRlbF9wbGFuZSA/ICJQTEFORSIgOiAiQ1JUQyIs Ci0JCQkJaW50ZWxfcGxhbmUgPyBpbnRlbF9wbGFuZS0+YmFzZS5iYXNlLmlkIDoKLQkJCQlpbnRl bF9jcnRjLT5iYXNlLmJhc2UuaWQsIGNydGNfc3RhdGUsCisJCQlEUk1fREVCVUdfS01TKCJzY2Fs ZXJfdXNlciBpbmRleCAldS4ldTogIgorCQkJCSJTdGFnZWQgZnJlZWluZyBzY2FsZXIgaWQgJWQu JWQgc2NhbGVyX3VzZXJzID0gMHgleFxuIiwKKwkJCQlpbnRlbF9jcnRjLT5waXBlLCBzY2FsZXJf aWR4LCAqc2NhbGVyX2lkLCBzY2FsZXJfaWR4LAogCQkJCXNjYWxlcl9zdGF0ZS0+c2NhbGVyX3Vz ZXJzKTsKIAkJCSpzY2FsZXJfaWQgPSAtMTsKIAkJfQpAQCAtNDM5Nyw1MSArNDM0OCwxMTIgQEAg c2tsX3VwZGF0ZV9zY2FsZXJfdXNlcnMoCiAKIAkJc3JjX3cgPiBTS0xfTUFYX1NSQ19XIHx8IHNy Y19oID4gU0tMX01BWF9TUkNfSCB8fAogCQlkc3RfdyA+IFNLTF9NQVhfRFNUX1cgfHwgZHN0X2gg PiBTS0xfTUFYX0RTVF9IKSB7Ci0JCURSTV9ERUJVR19LTVMoIiVzOiVkIHNjYWxlcl91c2VyIGlu ZGV4ICV1LiV1OiBzcmMgJXV4JXUgZHN0ICV1eCV1ICIKKwkJRFJNX0RFQlVHX0tNUygic2NhbGVy X3VzZXIgaW5kZXggJXUuJXU6IHNyYyAldXgldSBkc3QgJXV4JXUgIgogCQkJInNpemUgaXMgb3V0 IG9mIHNjYWxlciByYW5nZVxuIiwKLQkJCWludGVsX3BsYW5lID8gIlBMQU5FIiA6ICJDUlRDIiwK LQkJCWludGVsX3BsYW5lID8gaW50ZWxfcGxhbmUtPmJhc2UuYmFzZS5pZCA6IGludGVsX2NydGMt PmJhc2UuYmFzZS5pZCwKLQkJCWludGVsX2NydGMtPnBpcGUsIGlkeCwgc3JjX3csIHNyY19oLCBk c3RfdywgZHN0X2gpOworCQkJaW50ZWxfY3J0Yy0+cGlwZSwgc2NhbGVyX2lkeCwgc3JjX3csIHNy Y19oLCBkc3RfdywgZHN0X2gpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKKwkvKiBtYXJrIHRo aXMgcGxhbmUgYXMgYSBzY2FsZXIgdXNlciBpbiBjcnRjX3N0YXRlICovCisJc2NhbGVyX3N0YXRl LT5zY2FsZXJfdXNlcnMgfD0gKDEgPDwgc2NhbGVyX2lkeCk7CisJRFJNX0RFQlVHX0tNUygic2Nh bGVyX3VzZXIgaW5kZXggJXUuJXU6ICIKKwkJInN0YWdlZCBzY2FsaW5nIHJlcXVlc3QgZm9yICV1 eCV1LT4ldXgldSBzY2FsZXJfdXNlcnMgPSAweCV4XG4iLAorCQlpbnRlbF9jcnRjLT5waXBlLCBz Y2FsZXJfaWR4LCBzcmNfdywgc3JjX2gsIGRzdF93LCBkc3RfaCwKKwkJc2NhbGVyX3N0YXRlLT5z Y2FsZXJfdXNlcnMpOworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogc2tsX3VwZGF0ZV9zY2Fs ZXJfY3J0YyAtIFN0YWdlcyB1cGRhdGUgdG8gc2NhbGVyIHN0YXRlIGZvciBhIGdpdmVuIGNydGMu CisgKgorICogQHN0YXRlOiBjcnRjJ3Mgc2NhbGVyIHN0YXRlCisgKiBAZm9yY2VfZGV0YWNoOiB3 aGV0aGVyIHRvIGZvcmNpYmx5IGRpc2FibGUgc2NhbGVyCisgKgorICogUmV0dXJuCisgKiAgICAg MCAtIHNjYWxlcl91c2FnZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseQorICogICAgZXJyb3IgLSByZXF1 ZXN0ZWQgc2NhbGluZyBjYW5ub3QgYmUgc3VwcG9ydGVkIG9yIG90aGVyIGVycm9yIGNvbmRpdGlv bgorICovCitpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqc3RhdGUsIGludCBmb3JjZV9kZXRhY2gpCit7CisJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKHN0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KKwkJJnN0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7 CisKKwlEUk1fREVCVUdfS01TKCJVcGRhdGluZyBzY2FsZXIgZm9yIFtDUlRDOiVpXSBzY2FsZXJf dXNlciBpbmRleCAldS4ldVxuIiwKKwkJICAgICAgaW50ZWxfY3J0Yy0+YmFzZS5iYXNlLmlkLCBp bnRlbF9jcnRjLT5waXBlLCBTS0xfQ1JUQ19JTkRFWCk7CisKKwlyZXR1cm4gc2tsX3VwZGF0ZV9z Y2FsZXIoc3RhdGUsIGZvcmNlX2RldGFjaCwgU0tMX0NSVENfSU5ERVgsCisJCSZzdGF0ZS0+c2Nh bGVyX3N0YXRlLnNjYWxlcl9pZCwgRFJNX1JPVEFURV8wLAorCQlzdGF0ZS0+cGlwZV9zcmNfdywg c3RhdGUtPnBpcGVfc3JjX2gsCisJCWFkanVzdGVkX21vZGUtPmhkaXNwbGF5LCBhZGp1c3RlZF9t b2RlLT5oZGlzcGxheSk7Cit9CisKKy8qKgorICogc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUgLSBT dGFnZXMgdXBkYXRlIHRvIHNjYWxlciBzdGF0ZSBmb3IgYSBnaXZlbiBwbGFuZS4KKyAqCisgKiBA c3RhdGU6IGNydGMncyBzY2FsZXIgc3RhdGUKKyAqIEBpbnRlbF9wbGFuZTogYWZmZWN0ZWQgcGxh bmUKKyAqIEBwbGFuZV9zdGF0ZTogYXRvbWljIHBsYW5lIHN0YXRlIHRvIHVwZGF0ZQorICoKKyAq IFJldHVybgorICogICAgIDAgLSBzY2FsZXJfdXNhZ2UgdXBkYXRlZCBzdWNjZXNzZnVsbHkKKyAq ICAgIGVycm9yIC0gcmVxdWVzdGVkIHNjYWxpbmcgY2Fubm90IGJlIHN1cHBvcnRlZCBvciBvdGhl ciBlcnJvciBjb25kaXRpb24KKyAqLworaW50IHNrbF91cGRhdGVfc2NhbGVyX3BsYW5lKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJICAgIHN0cnVjdCBpbnRlbF9wbGFu ZSAqaW50ZWxfcGxhbmUsCisJCQkgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSkKK3sKKworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0g cGxhbmVfc3RhdGUtPmJhc2UuZmI7CisJaW50IHJldDsKKworCWJvb2wgZm9yY2VfZGV0YWNoID0g IWZiIHx8ICFwbGFuZV9zdGF0ZS0+dmlzaWJsZTsKKworCURSTV9ERUJVR19LTVMoIlVwZGF0aW5n IHNjYWxlciBmb3IgW1BMQU5FOiVkXSBzY2FsZXJfdXNlciBpbmRleCAldS4ldVxuIiwKKwkJICAg ICAgaW50ZWxfcGxhbmUtPmJhc2UuYmFzZS5pZCwgaW50ZWxfY3J0Yy0+cGlwZSwKKwkJICAgICAg ZHJtX3BsYW5lX2luZGV4KCZpbnRlbF9wbGFuZS0+YmFzZSkpOworCisJcmV0ID0gc2tsX3VwZGF0 ZV9zY2FsZXIoY3J0Y19zdGF0ZSwgZm9yY2VfZGV0YWNoLAorCQkJCWRybV9wbGFuZV9pbmRleCgm aW50ZWxfcGxhbmUtPmJhc2UpLAorCQkJCSZwbGFuZV9zdGF0ZS0+c2NhbGVyX2lkLAorCQkJCXBs YW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uLAorCQkJCWRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0 ZS0+c3JjKSA+PiAxNiwKKwkJCQlkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5zcmMpID4+ IDE2LAorCQkJCWRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+ZHN0KSwKKwkJCQlkcm1fcmVj dF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5kc3QpKTsKKworCWlmIChyZXQgfHwgcGxhbmVfc3RhdGUt PnNjYWxlcl9pZCA8IDApCisJCXJldHVybiByZXQ7CisKIAkvKiBjaGVjayBjb2xvcmtleSAqLwot CWlmIChXQVJOX09OKGludGVsX3BsYW5lICYmCi0JCWludGVsX3BsYW5lLT5ja2V5LmZsYWdzICE9 IEk5MTVfU0VUX0NPTE9SS0VZX05PTkUpKSB7Ci0JCURSTV9ERUJVR19LTVMoIlBMQU5FOiVkIHNj YWxpbmcgJXV4JXUtPiV1eCV1IG5vdCBhbGxvd2VkIHdpdGggY29sb3JrZXkiLAotCQkJaW50ZWxf cGxhbmUtPmJhc2UuYmFzZS5pZCwgc3JjX3csIHNyY19oLCBkc3RfdywgZHN0X2gpOworCWlmIChX QVJOX09OKGludGVsX3BsYW5lLT5ja2V5LmZsYWdzICE9IEk5MTVfU0VUX0NPTE9SS0VZX05PTkUp KSB7CisJCURSTV9ERUJVR19LTVMoIltQTEFORTolZF0gc2NhbGluZyB3aXRoIGNvbG9yIGtleSBu b3QgYWxsb3dlZCIsCisJCQlpbnRlbF9wbGFuZS0+YmFzZS5iYXNlLmlkKTsKIAkJcmV0dXJuIC1F SU5WQUw7CiAJfQogCiAJLyogQ2hlY2sgc3JjIGZvcm1hdCAqLwotCWlmIChpbnRlbF9wbGFuZSkg ewotCQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKLQkJY2FzZSBEUk1fRk9STUFUX1JHQjU2 NToKLQkJY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4OgotCQljYXNlIERSTV9GT1JNQVRfWFJHQjg4 ODg6Ci0JCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKLQkJY2FzZSBEUk1fRk9STUFUX0FSR0I4 ODg4OgotCQljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6Ci0JCWNhc2UgRFJNX0ZPUk1BVF9Y QkdSMjEwMTAxMDoKLQkJY2FzZSBEUk1fRk9STUFUX1lVWVY6Ci0JCWNhc2UgRFJNX0ZPUk1BVF9Z VllVOgotCQljYXNlIERSTV9GT1JNQVRfVVlWWToKLQkJY2FzZSBEUk1fRk9STUFUX1ZZVVk6Ci0J CQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCURSTV9ERUJVR19LTVMoIlBMQU5FOiVkIEZCOiVkIHVu c3VwcG9ydGVkIHNjYWxpbmcgZm9ybWF0IDB4JXhcbiIsCi0JCQkJaW50ZWxfcGxhbmUtPmJhc2Uu YmFzZS5pZCwgZmItPmJhc2UuaWQsIGZiLT5waXhlbF9mb3JtYXQpOwotCQkJcmV0dXJuIC1FSU5W QUw7Ci0JCX0KKwlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwljYXNlIERSTV9GT1JNQVRf UkdCNTY1OgorCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoKKwljYXNlIERSTV9GT1JNQVRfWFJH Qjg4ODg6CisJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4OgorCWNhc2UgRFJNX0ZPUk1BVF9BUkdC ODg4ODoKKwljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6CisJY2FzZSBEUk1fRk9STUFUX1hC R1IyMTAxMDEwOgorCWNhc2UgRFJNX0ZPUk1BVF9ZVVlWOgorCWNhc2UgRFJNX0ZPUk1BVF9ZVllV OgorCWNhc2UgRFJNX0ZPUk1BVF9VWVZZOgorCWNhc2UgRFJNX0ZPUk1BVF9WWVVZOgorCQlicmVh azsKKwlkZWZhdWx0OgorCQlEUk1fREVCVUdfS01TKCJbUExBTkU6JWRdIEZCOiVkIHVuc3VwcG9y dGVkIHNjYWxpbmcgZm9ybWF0IDB4JXhcbiIsCisJCQlpbnRlbF9wbGFuZS0+YmFzZS5iYXNlLmlk LCBmYi0+YmFzZS5pZCwgZmItPnBpeGVsX2Zvcm1hdCk7CisJCXJldHVybiAtRUlOVkFMOwogCX0K IAotCS8qIG1hcmsgdGhpcyBwbGFuZSBhcyBhIHNjYWxlciB1c2VyIGluIGNydGNfc3RhdGUgKi8K LQlzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2VycyB8PSAoMSA8PCBpZHgpOwotCURSTV9ERUJVR19L TVMoIiVzOiVkIHN0YWdlZCBzY2FsaW5nIHJlcXVlc3QgZm9yICV1eCV1LT4ldXgldSAiCi0JCSJj cnRjX3N0YXRlID0gJXAgc2NhbGVyX3VzZXJzID0gMHgleFxuIiwKLQkJaW50ZWxfcGxhbmUgPyAi UExBTkUiIDogIkNSVEMiLAotCQlpbnRlbF9wbGFuZSA/IGludGVsX3BsYW5lLT5iYXNlLmJhc2Uu aWQgOiBpbnRlbF9jcnRjLT5iYXNlLmJhc2UuaWQsCi0JCXNyY193LCBzcmNfaCwgZHN0X3csIGRz dF9oLCBjcnRjX3N0YXRlLCBzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2Vycyk7CiAJcmV0dXJuIDA7 CiB9CiAKQEAgLTQ0NTYsNyArNDQ2OCw3IEBAIHN0YXRpYyB2b2lkIHNreWxha2VfcGZpdF91cGRh dGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsIGludCBlbmFibGUpCiAJRFJNX0RFQlVHX0tNUygi Zm9yIGNydGNfc3RhdGUgPSAlcFxuIiwgY3J0Yy0+Y29uZmlnKTsKIAogCS8qIFRvIHVwZGF0ZSBw Zml0LCBmaXJzdCB1cGRhdGUgc2NhbGVyIHN0YXRlICovCi0Jc2tsX3VwZGF0ZV9zY2FsZXJfdXNl cnMoY3J0YywgY3J0Yy0+Y29uZmlnLCBOVUxMLCBOVUxMLCAhZW5hYmxlKTsKKwlza2xfdXBkYXRl X3NjYWxlcl9jcnRjKGNydGMtPmNvbmZpZywgIWVuYWJsZSk7CiAJaW50ZWxfYXRvbWljX3NldHVw X3NjYWxlcnMoY3J0Yy0+YmFzZS5kZXYsIGNydGMsIGNydGMtPmNvbmZpZyk7CiAJc2tsX2RldGFj aF9zY2FsZXJzKGNydGMpOwogCWlmICghZW5hYmxlKQpAQCAtMTM2NDcsOCArMTM2NTksOSBAQCBp bnRlbF9jaGVja19wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCX0KIAog CWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7Ci0JCXJldCA9IHNrbF91cGRhdGVfc2Nh bGVyX3VzZXJzKGludGVsX2NydGMsIGNydGNfc3RhdGUsCi0JCQl0b19pbnRlbF9wbGFuZShwbGFu ZSksIHN0YXRlLCAwKTsKKwkJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoY3J0Y19zdGF0 ZSwKKwkJCQkJICAgICAgdG9faW50ZWxfcGxhbmUocGxhbmUpLAorCQkJCQkgICAgICBzdGF0ZSk7 CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCmlu ZGV4IGZiM2Q3ZjE1YzA0Yi4uZjVjZThmZGM4YmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMK QEAgLTEzNzcsNyArMTM3Nyw3IEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCiAJCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7 CiAJCQlpbnQgcmV0OwotCQkJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXJfdXNlcnMoaW50ZWxfY3J0 YywgcGlwZV9jb25maWcsIE5VTEwsIE5VTEwsIDApOworCQkJcmV0ID0gc2tsX3VwZGF0ZV9zY2Fs ZXJfY3J0YyhwaXBlX2NvbmZpZywgMCk7CiAJCQlpZiAocmV0KQogCQkJCXJldHVybiByZXQ7CiAJ CX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggMjlkNjAzMWIxOWQ4Li5iNzhmYTQ1N2E3 ODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0yNjMsNyArMjYzLDcgQEAgc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlIHsKIAkgKiBwbGFuZSByZXF1aXJpbmcgYSBzY2FsZXI6CiAJICog ICAtIER1cmluZyBjaGVja19wbGFuZSwgaXRzIGJpdCBpcyBzZXQgaW4KIAkgKiAgICAgY3J0Y19z dGF0ZS0+c2NhbGVyX3N0YXRlLnNjYWxlcl91c2VycyBieSBjYWxsaW5nIGhlbHBlciBmdW5jdGlv bgotCSAqICAgICB1cGRhdGVfc2NhbGVyX3VzZXJzLgorCSAqICAgICB1cGRhdGVfc2NhbGVyX3Bs YW5lLgogCSAqICAgLSBzY2FsZXJfaWQgaW5kaWNhdGVzIHRoZSBzY2FsZXIgaXQgZ290IGFzc2ln bmVkLgogCSAqCiAJICogcGxhbmUgZG9lc24ndCByZXF1aXJlIGEgc2NhbGVyOgpAQCAtMjcxLDcg KzI3MSw3IEBAIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7CiAJICogICAgIGdvdCBkaXNhYmxl ZC4KIAkgKiAgIC0gRHVyaW5nIGNoZWNrX3BsYW5lLCBjb3JyZXNwb25kaW5nIGJpdCBpcyByZXNl dCBpbgogCSAqICAgICBjcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyX3VzZXJzIGJ5IGNh bGxpbmcgaGVscGVyIGZ1bmN0aW9uCi0JICogICAgIHVwZGF0ZV9zY2FsZXJfdXNlcnMuCisJICog ICAgIHVwZGF0ZV9zY2FsZXJfcGxhbmUuCiAJICovCiAJaW50IHNjYWxlcl9pZDsKIH07CkBAIC0x MTQ3LDkgKzExNDcsMTEgQEAgdm9pZCBpbnRlbF9tb2RlX2Zyb21fcGlwZV9jb25maWcoc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCiB2b2lkIGludGVsX2NydGNfd2FpdF9mb3JfcGVuZGlu Z19mbGlwcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogdm9pZCBpbnRlbF9tb2Rlc2V0X3ByZWNs b3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7CiB2b2lk IHNrbF9kZXRhY2hfc2NhbGVycyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0Yyk7Ci1pbnQg c2tsX3VwZGF0ZV9zY2FsZXJfdXNlcnMoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCi0J c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIHN0cnVjdCBpbnRlbF9wbGFuZSAq aW50ZWxfcGxhbmUsCi0Jc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwgaW50 IGZvcmNlX2RldGFjaCk7CitpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgc3RydWN0IGludGVsX3BsYW5lICppbnRl bF9wbGFuZSwKKwkJCSAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsK KworaW50IHNrbF91cGRhdGVfc2NhbGVyX2NydGMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsIGludCBmb3JjZV9kZXRhY2gpOwogaW50IHNrbF9tYXhfc2NhbGUoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKIAog dW5zaWduZWQgbG9uZyBpbnRlbF9wbGFuZV9vYmpfb2Zmc2V0KHN0cnVjdCBpbnRlbF9wbGFuZSAq aW50ZWxfcGxhbmUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCmluZGV4IDgxOTNhMzUz ODhkNy4uZmU5NWYyNWYwMTlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwpAQCAt OTQxLDggKzk0MSw3IEBAIGZpbmlzaDoKIAl9CiAKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4g Pj0gOSkgewotCQlyZXQgPSBza2xfdXBkYXRlX3NjYWxlcl91c2VycyhpbnRlbF9jcnRjLCBjcnRj X3N0YXRlLCBpbnRlbF9wbGFuZSwKLQkJCXN0YXRlLCAwKTsKKwkJcmV0ID0gc2tsX3VwZGF0ZV9z Y2FsZXJfcGxhbmUoY3J0Y19zdGF0ZSwgaW50ZWxfcGxhbmUsIHN0YXRlKTsKIAkJaWYgKHJldCkK IAkJCXJldHVybiByZXQ7CiAJfQotLSAKMi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==