From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 07/20] drm/i915: Rework primary plane stuff slightly. Date: Tue, 7 Jul 2015 09:08:18 +0200 Message-ID: <1436252911-5703-8-git-send-email-maarten.lankhorst@linux.intel.com> References: <1436252911-5703-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 ESMTPS id 3AA306E457 for ; Tue, 7 Jul 2015 00:08:50 -0700 (PDT) In-Reply-To: <1436252911-5703-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 TWFrZSBzdXJlIHRoZSBwcmltYXJ5IHBsYW5lIGlzIHNldCB1cCBjb3JyZWN0bHkuIFRoaXMgaXMg ZG9uZSBieQpzZXR0aW5nIHBsYW5lX3N0YXRlLT5zcmMgYW5kIHBsYW5lX3N0YXRlLT5jcnRjLgoK QWxsIG5vbi1wcmltYXJ5IHBsYW5lcyBnZXQgZGlzYWJsZWQuCgpTaWduZWQtb2ZmLWJ5OiBNYWFy dGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8ICAgNyAtLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTY3ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDIgLQog MyBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCAxMTYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwppbmRleCA0Mjk2NzdhMTExZDUuLmI1OTM2MTJhOTE3 ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKQEAgLTk4LDEzICs5OCw2IEBAIGlu dCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJcmV0dXJuIC1F SU5WQUw7CiAJfQogCi0JaWYgKGNydGNfc3RhdGUgJiYKLQkgICAgY3J0Y19zdGF0ZS0+cXVpcmtz ICYgUElQRV9DT05GSUdfUVVJUktfSU5JVElBTF9QTEFORVMpIHsKLQkJcmV0ID0gZHJtX2F0b21p Y19hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0YXRlLCAmbnVjbGVhcl9jcnRjLT5iYXNlKTsKLQkJaWYg KHJldCkKLQkJCXJldHVybiByZXQ7Ci0JfQotCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hl Y2tfcGxhbmVzKGRldiwgc3RhdGUpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggZWI3YzJlMjgxOWI3Li5mYTExMDIzOTJlY2Eg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEwOSw2ICsxMDksNyBAQCBz dGF0aWMgdm9pZCBza2xfaW5pdF9zY2FsZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcgogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKTsKIHN0YXRpYyBpbnQgaTl4eF9nZXRfcmVmY2xrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgaW50IG51bV9jb25uZWN0b3JzKTsKK3N0YXRpYyB2 b2lkIGludGVsX3ByZV9kaXNhYmxlX3ByaW1hcnkoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIAog c3RhdGljIHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9maW5kX2VuY29kZXIoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBpbnQgcGlwZSkKIHsKQEAgLTI1ODIsMTEgKzI1ODMs MTIgQEAgaW50ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YywKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfY3J0Yy0+YmFzZS5k ZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmM7Ci0Jc3RydWN0IGludGVsX2NydGMgKmk7CiAJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0g aW50ZWxfY3J0Yy0+YmFzZS5wcmltYXJ5OwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwor CXN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnkgPSBpbnRlbF9jcnRjLT5iYXNlLnByaW1hcnk7CisJ c3RydWN0IGludGVsX3BsYW5lICpwOworCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUgPQorCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwcmltYXJ5LT5zdGF0ZSk7CiAKIAlpZiAo IXBsYW5lX2NvbmZpZy0+ZmIpCiAJCXJldHVybjsKQEAgLTI2MDIsMTYgKzI2MDQsMTEgQEAgaW50 ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywK IAkgKiBGYWlsZWQgdG8gYWxsb2MgdGhlIG9iaiwgY2hlY2sgdG8gc2VlIGlmIHdlIHNob3VsZCBz aGFyZQogCSAqIGFuIGZiIHdpdGggYW5vdGhlciBDUlRDIGluc3RlYWQKIAkgKi8KLQlmb3JfZWFj aF9jcnRjKGRldiwgYykgewotCQlpID0gdG9faW50ZWxfY3J0YyhjKTsKLQotCQlpZiAoYyA9PSAm aW50ZWxfY3J0Yy0+YmFzZSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmICghaS0+YWN0aXZlKQorCWZv cl9lYWNoX2ludGVsX3BsYW5lKGRldiwgcCkgeworCQlpZiAocC0+YmFzZS50eXBlICE9IERSTV9Q TEFORV9UWVBFX1BSSU1BUlkpCiAJCQljb250aW51ZTsKIAotCQlmYiA9IGMtPnByaW1hcnktPmZi OworCQlmYiA9IHAtPmJhc2Uuc3RhdGUtPmZiOwogCQlpZiAoIWZiKQogCQkJY29udGludWU7CiAK QEAgLTI2MjIsMTggKzI2MTksMjggQEAgaW50ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJfQogCX0KIAorCWludGVsX3ByZV9kaXNhYmxl X3ByaW1hcnkoJmludGVsX2NydGMtPmJhc2UpOworCXRvX2ludGVsX3BsYW5lKHByaW1hcnkpLT5k aXNhYmxlX3BsYW5lKHByaW1hcnksICZpbnRlbF9jcnRjLT5iYXNlKTsKKwogCXJldHVybjsKIAog dmFsaWRfZmI6CisJZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShmYik7CisJcHJpbWFyeS0+ZmIg PSBwbGFuZV9zdGF0ZS0+YmFzZS5mYiA9IGZiOworCXBsYW5lX3N0YXRlLT5iYXNlLmNydGMgPSBw cmltYXJ5LT5jcnRjID0gJmludGVsX2NydGMtPmJhc2U7CisKKwlwbGFuZV9zdGF0ZS0+YmFzZS5z cmNfeCA9IHBsYW5lX3N0YXRlLT5iYXNlLnNyY195ID0gMDsKKwlwbGFuZV9zdGF0ZS0+YmFzZS5z cmNfdyA9IGZiLT53aWR0aCA8PCAxNjsKKwlwbGFuZV9zdGF0ZS0+YmFzZS5zcmNfaCA9IGZiLT5o ZWlnaHQgPDwgMTY7CisKKwlwbGFuZV9zdGF0ZS0+YmFzZS5jcnRjX3ggPSBwbGFuZV9zdGF0ZS0+ YmFzZS5zcmNfeSA9IDA7CisJcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y193ID0gZmItPndpZHRoOwor CXBsYW5lX3N0YXRlLT5iYXNlLmNydGNfaCA9IGZiLT5oZWlnaHQ7CisKKwlwbGFuZV9zdGF0ZS0+ dmlzaWJsZSA9IHRydWU7CiAJb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAlpZiAob2JqLT50aWxp bmdfbW9kZSAhPSBJOTE1X1RJTElOR19OT05FKQogCQlkZXZfcHJpdi0+cHJlc2VydmVfYmlvc19z d2l6emxlID0gdHJ1ZTsKLQotCXByaW1hcnktPmZiID0gZmI7Ci0JcHJpbWFyeS0+Y3J0YyA9IHBy aW1hcnktPnN0YXRlLT5jcnRjID0gJmludGVsX2NydGMtPmJhc2U7Ci0JdXBkYXRlX3N0YXRlX2Zi KHByaW1hcnkpOwotCWludGVsX2NydGMtPmJhc2Uuc3RhdGUtPnBsYW5lX21hc2sgfD0gKDEgPDwg ZHJtX3BsYW5lX2luZGV4KHByaW1hcnkpKTsKLQlvYmotPmZyb250YnVmZmVyX2JpdHMgfD0gdG9f aW50ZWxfcGxhbmUocHJpbWFyeSktPmZyb250YnVmZmVyX2JpdDsKIH0KIAogc3RhdGljIHZvaWQg aTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCkBAIC0xMTc2 MSwzNCArMTE3NjgsNiBAQCBzdGF0aWMgYm9vbCBjaGVja19lbmNvZGVyX2Nsb25pbmcoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9p ZCBpbnRlbF9jcnRjX2NoZWNrX2luaXRpYWxfcGxhbmVzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK LQkJCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKLXsKLQlzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQotCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNy dGNfc3RhdGUpOwotCXN0cnVjdCBkcm1fcGxhbmUgKnA7Ci0JdW5zaWduZWQgdmlzaWJsZV9tYXNr ID0gMDsKLQotCWRybV9mb3JfZWFjaF9wbGFuZV9tYXNrKHAsIGNydGMtPmRldiwgY3J0Y19zdGF0 ZS0+cGxhbmVfbWFzaykgewotCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9 Ci0JCQlkcm1fYXRvbWljX2dldF9leGlzdGluZ19wbGFuZV9zdGF0ZShjcnRjX3N0YXRlLT5zdGF0 ZSwgcCk7Ci0KLQkJaWYgKFdBUk5fT04oIXBsYW5lX3N0YXRlKSkKLQkJCWNvbnRpbnVlOwotCi0J CWlmICghcGxhbmVfc3RhdGUtPmZiKQotCQkJY3J0Y19zdGF0ZS0+cGxhbmVfbWFzayAmPQotCQkJ CX4oMSA8PCBkcm1fcGxhbmVfaW5kZXgocCkpOwotCQllbHNlIGlmICh0b19pbnRlbF9wbGFuZV9z dGF0ZShwbGFuZV9zdGF0ZSktPnZpc2libGUpCi0JCQl2aXNpYmxlX21hc2sgfD0gMSA8PCBkcm1f cGxhbmVfaW5kZXgocCk7Ci0JfQotCi0JaWYgKCF2aXNpYmxlX21hc2spCi0JCXJldHVybjsKLQot CXBpcGVfY29uZmlnLT5xdWlya3MgJj0gflBJUEVfQ09ORklHX1FVSVJLX0lOSVRJQUxfUExBTkVT OwotfQotCiBzdGF0aWMgaW50IGludGVsX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKIAkJCQkgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CkBA IC0xMTgxMCwxMCArMTE3ODksNiBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfYXRvbWljX2NoZWNr KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJIltDUlRDOiVpXSBtaXNtYXRjaCBiZXR3ZWVuIHN0 YXRlLT5hY3RpdmUoJWkpIGFuZCBjcnRjLT5hY3RpdmUoJWkpXG4iLAogCQlpZHgsIGNydGMtPnN0 YXRlLT5hY3RpdmUsIGludGVsX2NydGMtPmFjdGl2ZSk7CiAKLQkvKiBwbGFuZSBtYXNrIGlzIGZp eGVkIHVwIGFmdGVyIGFsbCBpbml0aWFsIHBsYW5lcyBhcmUgY2FsY3VsYXRlZCAqLwotCWlmIChw aXBlX2NvbmZpZy0+cXVpcmtzICYgUElQRV9DT05GSUdfUVVJUktfSU5JVElBTF9QTEFORVMpCi0J CWludGVsX2NydGNfY2hlY2tfaW5pdGlhbF9wbGFuZXMoY3J0YywgY3J0Y19zdGF0ZSk7Ci0KIAlp ZiAobW9kZV9jaGFuZ2VkICYmICFjcnRjX3N0YXRlLT5hY3RpdmUpCiAJCWludGVsX2NydGMtPmF0 b21pYy51cGRhdGVfd21fcG9zdCA9IHRydWU7CiAKQEAgLTEzMTU1LDE5ICsxMzEzMCw2IEBAIGlu dGVsX21vZGVzZXRfY29tcHV0ZV9jb25maWcoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KQogCQkJY29udGludWU7CiAJCX0KIAotCQlpZiAocGlwZV9jb25maWctPnF1aXJrcyAmIFBJUEVf Q09ORklHX1FVSVJLX0lOSVRJQUxfUExBTkVTKSB7Ci0JCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9h ZmZlY3RlZF9wbGFuZXMoc3RhdGUsIGNydGMpOwotCQkJaWYgKHJldCkKLQkJCQlyZXR1cm4gcmV0 OwotCi0JCQkvKgotCQkJICogV2Ugb3VnaHQgdG8gaGFuZGxlIGk5MTUuZmFzdGJvb3QgaGVyZS4K LQkJCSAqIElmIG5vIG1vZGVzZXQgaXMgcmVxdWlyZWQgYW5kIHRoZSBwcmltYXJ5IHBsYW5lIGhh cwotCQkJICogYSBmYiwgdXBkYXRlIHRoZSBtZW1iZXJzIG9mIGNydGNfc3RhdGUgYXMgbmVlZGVk LAotCQkJICogYW5kIHJ1biB0aGUgbmVjZXNzYXJ5IHVwZGF0ZXMgZHVyaW5nIHZibGFuayBldmFz aW9uLgotCQkJICovCi0JCX0KLQogCQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpIHsK IAkJCWlmICghKHBpcGVfY29uZmlnLT5xdWlya3MgJiBQSVBFX0NPTkZJR19RVUlSS19JTkhFUklU RURfTU9ERSkpCiAJCQkJY29udGludWU7CkBAIC0xNTE0OSwyNSArMTUxMTEsMzAgQEAgdm9pZCBp bnRlbF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlkcm1fbW9kZXNldF91 bmxvY2tfYWxsKGRldik7CiAKIAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0YykgewotCQlp ZiAoIWNydGMtPmFjdGl2ZSkKKwkJc3RydWN0IGludGVsX2luaXRpYWxfcGxhbmVfY29uZmlnIHBs YW5lX2NvbmZpZzsKKwkJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CisKKwkJaWYgKCFjcnRjLT5i YXNlLnN0YXRlLT5hY3RpdmUpCiAJCQljb250aW51ZTsKIAorCQkvKiBkaXNhYmxlIGFsbCBub24t cHJpbWFyeSBwbGFuZXMgKi8KKwkJZHJtX2Zvcl9lYWNoX3BsYW5lX21hc2socGxhbmUsIGRldiwK KwkJCQkJY3J0Yy0+YmFzZS5zdGF0ZS0+cGxhbmVfbWFzaykKKwkJCWlmIChwbGFuZS0+dHlwZSAh PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKQorCQkJCXRvX2ludGVsX3BsYW5lKHBsYW5lKS0+ZGlz YWJsZV9wbGFuZShwbGFuZSwgJmNydGMtPmJhc2UpOworCisJCWNydGMtPmJhc2Uuc3RhdGUtPnBs YW5lX21hc2sgJj0KKwkJCTEgPDwgZHJtX3BsYW5lX2luZGV4KGNydGMtPmJhc2UucHJpbWFyeSk7 CisKKwkJcGxhbmVfY29uZmlnLmZiID0gTlVMTDsKKwkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2lu aXRpYWxfcGxhbmVfY29uZmlnKGNydGMsCisJCQkJCQkJICAgJnBsYW5lX2NvbmZpZyk7CisKIAkJ LyoKLQkJICogTm90ZSB0aGF0IHJlc2VydmluZyB0aGUgQklPUyBmYiB1cCBmcm9udCBwcmV2ZW50 cyB1cwotCQkgKiBmcm9tIHN0dWZmaW5nIG90aGVyIHN0b2xlbiBhbGxvY2F0aW9ucyBsaWtlIHRo ZSByaW5nCi0JCSAqIG9uIHRvcC4gIFRoaXMgcHJldmVudHMgc29tZSB1Z2xpbmVzcyBhdCBib290 IHRpbWUsIGFuZAotCQkgKiBjYW4gZXZlbiBhbGxvdyBmb3Igc21vb3RoIGJvb3QgdHJhbnNpdGlv bnMgaWYgdGhlIEJJT1MKLQkJICogZmIgaXMgbGFyZ2UgZW5vdWdoIGZvciB0aGUgYWN0aXZlIHBp cGUgY29uZmlndXJhdGlvbi4KKwkJICogSWYgdGhlIGZiIGlzIHNoYXJlZCBiZXR3ZWVuIG11bHRp cGxlIGhlYWRzLCB3ZSdsbAorCQkgKiBqdXN0IGdldCB0aGUgZmlyc3Qgb25lLgogCQkgKi8KLQkJ aWYgKGRldl9wcml2LT5kaXNwbGF5LmdldF9pbml0aWFsX3BsYW5lX2NvbmZpZykgewotCQkJZGV2 X3ByaXYtPmRpc3BsYXkuZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKGNydGMsCi0JCQkJCQkJICAg JmNydGMtPnBsYW5lX2NvbmZpZyk7Ci0JCQkvKgotCQkJICogSWYgdGhlIGZiIGlzIHNoYXJlZCBi ZXR3ZWVuIG11bHRpcGxlIGhlYWRzLCB3ZSdsbAotCQkJICoganVzdCBnZXQgdGhlIGZpcnN0IG9u ZS4KLQkJCSAqLwotCQkJaW50ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihjcnRjLCAmY3J0Yy0+ cGxhbmVfY29uZmlnKTsKLQkJfQorCQlpbnRlbF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKGNydGMs ICZwbGFuZV9jb25maWcpOwogCX0KIH0KIApAQCAtMTU0MDQsNDcgKzE1MzcxLDMwIEBAIHN0YXRp YyB2b2lkIHJlYWRvdXRfcGxhbmVfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJc3Ry dWN0IGludGVsX3BsYW5lICpwOwogCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKmRybV9wbGFuZV9z dGF0ZTsKIAlib29sIGFjdGl2ZSA9IGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlOworCWJvb2wgd3Jv bmdfcGxhbmU7CiAKLQlpZiAoYWN0aXZlKSB7Ci0JCWNydGNfc3RhdGUtPnF1aXJrcyB8PSBQSVBF X0NPTkZJR19RVUlSS19JTklUSUFMX1BMQU5FUzsKLQotCQkvKiBhcHBseSB0byBwcmV2aW91cyBz dyBzdGF0ZSB0b28gKi8KLQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNlLnN0YXRlKS0+ cXVpcmtzIHw9Ci0JCQlQSVBFX0NPTkZJR19RVUlSS19JTklUSUFMX1BMQU5FUzsKLQl9CisJd3Jv bmdfcGxhbmUgPSBhY3RpdmUgJiYgIWludGVsX2NoZWNrX3BsYW5lX21hcHBpbmcoY3J0Yyk7CisJ aWYgKHdyb25nX3BsYW5lKQorCQljcnRjLT5waXBlID0gIWNydGMtPnBpcGU7CiAKIAlmb3JfZWFj aF9pbnRlbF9wbGFuZShjcnRjLT5iYXNlLmRldiwgcCkgewotCQlib29sIHZpc2libGUgPSBhY3Rp dmU7Ci0KIAkJaWYgKGNydGMtPnBpcGUgIT0gcC0+cGlwZSkKIAkJCWNvbnRpbnVlOwogCiAJCWRy bV9wbGFuZV9zdGF0ZSA9IHAtPmJhc2Uuc3RhdGU7CiAKLQkJLyogUGxhbmUgc2NhbGVyIHN0YXRl IGlzIG5vdCB0b3VjaGVkIGhlcmUuIFRoZSBmaXJzdCBhdG9taWMKLQkJICogY29tbWl0IHdpbGwg cmVzdG9yZSBhbGwgcGxhbmUgc2NhbGVycyB0byBpdHMgb2xkIHN0YXRlLgotCQkgKi8KLQotCQlp ZiAoYWN0aXZlICYmIHAtPmJhc2UudHlwZSA9PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKSB7Ci0J CQl2aXNpYmxlID0gcHJpbWFyeV9nZXRfaHdfc3RhdGUoY3J0Yyk7Ci0JCQl0b19pbnRlbF9wbGFu ZV9zdGF0ZShkcm1fcGxhbmVfc3RhdGUpLT52aXNpYmxlID0gdmlzaWJsZTsKLQkJfSBlbHNlIHsK LQkJCS8qCi0JCQkgKiB1bmtub3duIHN0YXRlLCBhc3N1bWUgaXQncyBvZmYgdG8gZm9yY2UgYSB0 cmFuc2l0aW9uCi0JCQkgKiB0byBvbiB3aGVuIGNhbGN1bGF0aW5nIHN0YXRlIGNoYW5nZXMuCi0J CQkgKi8KKwkJaWYgKHAtPmJhc2UudHlwZSA9PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKQorCQkJ dG9faW50ZWxfcGxhbmVfc3RhdGUoZHJtX3BsYW5lX3N0YXRlKS0+dmlzaWJsZSA9CisJCQkJcHJp bWFyeV9nZXRfaHdfc3RhdGUoY3J0Yyk7CisJCWVsc2UKIAkJCXRvX2ludGVsX3BsYW5lX3N0YXRl KGRybV9wbGFuZV9zdGF0ZSktPnZpc2libGUgPSBmYWxzZTsKLQkJfQogCi0JCWlmICh2aXNpYmxl KSB7Ci0JCQljcnRjX3N0YXRlLT5iYXNlLnBsYW5lX21hc2sgfD0KLQkJCQkxIDw8IGRybV9wbGFu ZV9pbmRleCgmcC0+YmFzZSk7Ci0JCX0gZWxzZSBpZiAoY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSkg ewotCQkJLyogTWFrZSB0aGlzIHVuY29uZGl0aW9uYWwgZm9yIGF0b21pYyBodyByZWFkb3V0LiAq LwotCQkJY3J0Y19zdGF0ZS0+YmFzZS5wbGFuZV9tYXNrICY9Ci0JCQkJfigxIDw8IGRybV9wbGFu ZV9pbmRleCgmcC0+YmFzZSkpOwotCQl9CisJCWNydGNfc3RhdGUtPmJhc2UucGxhbmVfbWFzayB8 PQorCQkJMSA8PCBkcm1fcGxhbmVfaW5kZXgoJnAtPmJhc2UpOwogCX0KKworCWlmICh3cm9uZ19w bGFuZSkKKwkJY3J0Yy0+cGlwZSA9ICFjcnRjLT5waXBlOwogfQogCiBzdGF0aWMgdm9pZCBpbnRl bF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKQEAgLTE1 NjY0LDYgKzE1NjE0LDkgQEAgdm9pZCBpbnRlbF9tb2Rlc2V0X2dlbV9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAJCQl1cGRhdGVfc3RhdGVfZmIoYy0+cHJpbWFyeSk7CiAJCQljLT5zdGF0 ZS0+cGxhbmVfbWFzayAmPSB+KDEgPDwgZHJtX3BsYW5lX2luZGV4KGMtPnByaW1hcnkpKTsKIAkJ fQorCQllbHNlCisJCQlvYmotPmZyb250YnVmZmVyX2JpdHMgfD0KKwkJCQl0b19pbnRlbF9wbGFu ZShjLT5wcmltYXJ5KS0+ZnJvbnRidWZmZXJfYml0OwogCX0KIAogCWludGVsX2JhY2tsaWdodF9y ZWdpc3RlcihkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCAyZWQ2MThmNzhmZTYu LmMzY2VhMTc4YzgwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTM0MSw3ICszNDEs NiBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7CiAJICovCiAjZGVmaW5lIFBJUEVfQ09ORklH X1FVSVJLX01PREVfU1lOQ19GTEFHUwkoMTw8MCkgLyogdW5yZWxpYWJsZSBzeW5jIG1vZGUuZmxh Z3MgKi8KICNkZWZpbmUgUElQRV9DT05GSUdfUVVJUktfSU5IRVJJVEVEX01PREUJKDE8PDEpIC8q IG1vZGUgaW5oZXJpdGVkIGZyb20gZmlybXdhcmUgKi8KLSNkZWZpbmUgUElQRV9DT05GSUdfUVVJ UktfSU5JVElBTF9QTEFORVMJKDE8PDIpIC8qIHBsYW5lcyBhcmUgaW4gdW5rbm93biBzdGF0ZSAq LwogCXVuc2lnbmVkIGxvbmcgcXVpcmtzOwogCiAJLyogUGlwZSBzb3VyY2Ugc2l6ZSAoaWUuIHBh bmVsIGZpdHRlciBpbnB1dCBzaXplKQpAQCAtNTUwLDcgKzU0OSw2IEBAIHN0cnVjdCBpbnRlbF9j cnRjIHsKIAl1aW50MzJfdCBjdXJzb3Jfc2l6ZTsKIAl1aW50MzJfdCBjdXJzb3JfYmFzZTsKIAot CXN0cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5lX2NvbmZpZyBwbGFuZV9jb25maWc7CiAJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNvbmZpZzsKIAlib29sIG5ld19lbmFibGVkOwogCi0tIAoyLjEu MAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK