From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 38/42] drm/i915: Use global atomic state for staged pll config Date: Mon, 11 May 2015 16:25:14 +0200 Message-ID: <1431354318-11995-39-git-send-email-maarten.lankhorst@linux.intel.com> References: <1431354318-11995-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 1EBC66E25C for ; Mon, 11 May 2015 07:25:46 -0700 (PDT) In-Reply-To: <1431354318-11995-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 Cc: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUub2xp dmVpcmFAaW50ZWwuY29tPgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0 ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oICAgICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj LmMgIHwgIDQ5ICsrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyB8IDExMSArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDEzICsrKysKIDQgZmlsZXMgY2hhbmdl ZCwgOTUgaW5zZXJ0aW9ucygrKSwgNzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKaW5kZXggM2JhMTVkZjRjOTNhLi4wN2MxNmE4M2EwOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaApAQCAtMzE5LDcgKzMxOSw2IEBAIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcg ewogCiBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgewogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBs bF9jb25maWcgY29uZmlnOwotCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcgKm5ld19j b25maWc7CiAKIAlpbnQgYWN0aXZlOyAvKiBjb3VudCBvZiBudW1iZXIgb2YgYWN0aXZlIENSVENz IChpLmUuIERQTVMgb24pICovCiAJYm9vbCBvbjsgLyogaXMgdGhlIFBMTCBhY3R1YWxseSBhY3Rp dmU/IERpc2FibGVkIGR1cmluZyBtb2Rlc2V0ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21p Yy5jCmluZGV4IDAzMTVkYzQ0YjE3YS4uODI4NmE3OWY0ZGIxIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdG9taWMuYwpAQCAtMzg1LDMgKzM4NSw1MiBAQCBpbnQgaW50ZWxfYXRvbWljX3NldHVw X3NjYWxlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCXJldHVybiAwOwogfQorCitzdGF0 aWMgdm9pZCBpbnRlbF9hdG9taWNfZHVwbGljYXRlX2RwbGxfc3RhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKKwkJCQkJICAgICAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOworCWVudW0gaW50ZWxfZHBsbF9pZCBpOworCisJ c3RhdGUtPmRwbGxfc2V0ID0gdHJ1ZTsKKworCS8qIENvcHkgc2hhcmVkIGRwbGwgc3RhdGUgKi8K Kwlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKSB7CisJCXBs bCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOworCisJCW1lbWNweSgmc3RhdGUtPnNoYXJl ZF9kcGxsW2ldLAorCQkgICAgICAgJnBsbC0+Y29uZmlnLCBzaXplb2YocGxsLT5jb25maWcpKTsK Kwl9Cit9CisKK3N0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcgKgoraW50ZWxfYXRvbWlj X2dldF9zaGFyZWRfZHBsbF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqcykKK3sKKwlz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShz KTsKKworCWlmICghc3RhdGUtPmRwbGxfc2V0KQorCQlpbnRlbF9hdG9taWNfZHVwbGljYXRlX2Rw bGxfc3RhdGUoc3RhdGUtPmJhc2UuZGV2LCBzdGF0ZSk7CisKKwlyZXR1cm4gc3RhdGUtPnNoYXJl ZF9kcGxsOworfQorCitzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqCitpbnRlbF9hdG9taWNfbmV3 X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUgPSBremFsbG9jKEdGUF9LRVJORUwsIHNpemVvZigqc3RhdGUpKTsKKworCWlm ICghc3RhdGUgfHwgX19kcm1fYXRvbWljX25ld19zdGF0ZShkZXYsICZzdGF0ZS0+YmFzZSkgPCAw KSB7CisJCWtmcmVlKHN0YXRlKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJcmV0dXJuICZzdGF0 ZS0+YmFzZTsKK30KKwordm9pZCBpbnRlbF9hdG9taWNfY2xlYXJfc3RhdGUoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnMpCit7CisJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSB0 b19pbnRlbF9hdG9taWNfc3RhdGUocyk7CisJX19kcm1fYXRvbWljX2NsZWFyX3N0YXRlKCZzdGF0 ZS0+YmFzZSk7CisJc3RhdGUtPmRwbGxfc2V0ID0gZmFsc2U7Cit9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKaW5kZXggMTA1YmRmODRlNDZhLi4wMmU0NDQzODRkYzAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTQxODIsOCArNDE4MiwxMSBAQCBzdHJ1Y3Qg aW50ZWxfc2hhcmVkX2RwbGwgKmludGVsX2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5i YXNlLmRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CisJ c3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyAqc2hhcmVkX2RwbGw7CiAJZW51bSBpbnRl bF9kcGxsX2lkIGk7CiAKKwlzaGFyZWRfZHBsbCA9IGludGVsX2F0b21pY19nZXRfc2hhcmVkX2Rw bGxfc3RhdGUoY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7CisKIAlpZiAoSEFTX1BDSF9JQlgoZGV2 X3ByaXYtPmRldikpIHsKIAkJLyogSXJvbmxha2UgUENIIGhhcyBhIGZpeGVkIFBMTC0+UENIIHBp cGUgbWFwcGluZy4gKi8KIAkJaSA9IChlbnVtIGludGVsX2RwbGxfaWQpIGNydGMtPnBpcGU7CkBA IC00MTkyLDcgKzQxOTUsNyBAQCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVsX2dldF9z aGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJRFJNX0RFQlVHX0tNUygiQ1JU QzolZCB1c2luZyBwcmUtYWxsb2NhdGVkICVzXG4iLAogCQkJICAgICAgY3J0Yy0+YmFzZS5iYXNl LmlkLCBwbGwtPm5hbWUpOwogCi0JCVdBUk5fT04ocGxsLT5uZXdfY29uZmlnLT5jcnRjX21hc2sp OworCQlXQVJOX09OKHNoYXJlZF9kcGxsW2ldLmNydGNfbWFzayk7CiAKIAkJZ290byBmb3VuZDsK IAl9CkBAIC00MjEyLDcgKzQyMTUsNyBAQCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVs X2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJcGxsID0gJmRldl9w cml2LT5zaGFyZWRfZHBsbHNbaV07CiAJCURSTV9ERUJVR19LTVMoIkNSVEM6JWQgdXNpbmcgcHJl LWFsbG9jYXRlZCAlc1xuIiwKIAkJCWNydGMtPmJhc2UuYmFzZS5pZCwgcGxsLT5uYW1lKTsKLQkJ V0FSTl9PTihwbGwtPm5ld19jb25maWctPmNydGNfbWFzayk7CisJCVdBUk5fT04oc2hhcmVkX2Rw bGxbaV0uY3J0Y19tYXNrKTsKIAogCQlnb3RvIGZvdW5kOwogCX0KQEAgLTQyMjEsMTUgKzQyMjQs MTUgQEAgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICppbnRlbF9nZXRfc2hhcmVkX2RwbGwoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCiAJCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ld OwogCiAJCS8qIE9ubHkgd2FudCB0byBjaGVjayBlbmFibGVkIHRpbWluZ3MgZmlyc3QgKi8KLQkJ aWYgKHBsbC0+bmV3X2NvbmZpZy0+Y3J0Y19tYXNrID09IDApCisJCWlmIChzaGFyZWRfZHBsbFtp XS5jcnRjX21hc2sgPT0gMCkKIAkJCWNvbnRpbnVlOwogCiAJCWlmIChtZW1jbXAoJmNydGNfc3Rh dGUtPmRwbGxfaHdfc3RhdGUsCi0JCQkgICAmcGxsLT5uZXdfY29uZmlnLT5od19zdGF0ZSwKLQkJ CSAgIHNpemVvZihwbGwtPm5ld19jb25maWctPmh3X3N0YXRlKSkgPT0gMCkgeworCQkJICAgJnNo YXJlZF9kcGxsW2ldLmh3X3N0YXRlLAorCQkJICAgc2l6ZW9mKGNydGNfc3RhdGUtPmRwbGxfaHdf c3RhdGUpKSA9PSAwKSB7CiAJCQlEUk1fREVCVUdfS01TKCJDUlRDOiVkIHNoYXJpbmcgZXhpc3Rp bmcgJXMgKGNydGMgbWFzayAweCUwOHgsIGF0aXZlICVkKVxuIiwKIAkJCQkgICAgICBjcnRjLT5i YXNlLmJhc2UuaWQsIHBsbC0+bmFtZSwKLQkJCQkgICAgICBwbGwtPm5ld19jb25maWctPmNydGNf bWFzaywKKwkJCQkgICAgICBzaGFyZWRfZHBsbFtpXS5jcnRjX21hc2ssCiAJCQkJICAgICAgcGxs LT5hY3RpdmUpOwogCQkJZ290byBmb3VuZDsKIAkJfQpAQCAtNDIzOCw3ICs0MjQxLDcgQEAgc3Ry dWN0IGludGVsX3NoYXJlZF9kcGxsICppbnRlbF9nZXRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVs X2NydGMgKmNydGMsCiAJLyogT2sgbm8gbWF0Y2hpbmcgdGltaW5ncywgbWF5YmUgdGhlcmUncyBh IGZyZWUgb25lPyAqLwogCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxs OyBpKyspIHsKIAkJcGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07Ci0JCWlmIChwbGwt Pm5ld19jb25maWctPmNydGNfbWFzayA9PSAwKSB7CisJCWlmIChzaGFyZWRfZHBsbFtpXS5jcnRj X21hc2sgPT0gMCkgewogCQkJRFJNX0RFQlVHX0tNUygiQ1JUQzolZCBhbGxvY2F0ZWQgJXNcbiIs CiAJCQkJICAgICAgY3J0Yy0+YmFzZS5iYXNlLmlkLCBwbGwtPm5hbWUpOwogCQkJZ290byBmb3Vu ZDsKQEAgLTQyNDgsODMgKzQyNTEsMzMgQEAgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICppbnRl bF9nZXRfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJcmV0dXJuIE5VTEw7 CiAKIGZvdW5kOgotCWlmIChwbGwtPm5ld19jb25maWctPmNydGNfbWFzayA9PSAwKQotCQlwbGwt Pm5ld19jb25maWctPmh3X3N0YXRlID0gY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZTsKKwlpZiAo c2hhcmVkX2RwbGxbaV0uY3J0Y19tYXNrID09IDApCisJCXNoYXJlZF9kcGxsW2ldLmh3X3N0YXRl ID0KKwkJCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGU7CiAKIAljcnRjX3N0YXRlLT5zaGFyZWRf ZHBsbCA9IGk7CiAJRFJNX0RFQlVHX0RSSVZFUigidXNpbmcgJXMgZm9yIHBpcGUgJWNcbiIsIHBs bC0+bmFtZSwKIAkJCSBwaXBlX25hbWUoY3J0Yy0+cGlwZSkpOwogCi0JcGxsLT5uZXdfY29uZmln LT5jcnRjX21hc2sgfD0gMSA8PCBjcnRjLT5waXBlOworCXNoYXJlZF9kcGxsW2ldLmNydGNfbWFz ayB8PSAxIDw8IGNydGMtPnBpcGU7CiAKIAlyZXR1cm4gcGxsOwogfQogCi0vKioKLSAqIGludGVs X3NoYXJlZF9kcGxsX3N0YXJ0X2NvbmZpZyAtIHN0YXJ0IGEgbmV3IFBMTCBzdGFnZWQgY29uZmln Ci0gKiBAZGV2X3ByaXY6IERSTSBkZXZpY2UKLSAqIEBjbGVhcl9waXBlczogbWFzayBvZiBwaXBl cyB0aGF0IHdpbGwgaGF2ZSB0aGVpciBQTExzIGZyZWVkCi0gKgotICogU3RhcnRzIGEgbmV3IFBM TCBzdGFnZWQgY29uZmlnLCBjb3B5aW5nIHRoZSBjdXJyZW50IGNvbmZpZyBidXQKLSAqIHJlbGVh c2luZyB0aGUgcmVmZXJlbmNlcyBvZiBwaXBlcyBzcGVjaWZpZWQgaW4gY2xlYXJfcGlwZXMuCi0g Ki8KLXN0YXRpYyBpbnQgaW50ZWxfc2hhcmVkX2RwbGxfc3RhcnRfY29uZmlnKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkJICB1bnNpZ25lZCBjbGVhcl9waXBlcykKLXsK LQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKLQllbnVtIGludGVsX2RwbGxfaWQgaTsK LQotCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsOyBpKyspIHsKLQkJ cGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07Ci0KLQkJcGxsLT5uZXdfY29uZmlnID0g a21lbWR1cCgmcGxsLT5jb25maWcsIHNpemVvZiBwbGwtPmNvbmZpZywKLQkJCQkJICBHRlBfS0VS TkVMKTsKLQkJaWYgKCFwbGwtPm5ld19jb25maWcpCi0JCQlnb3RvIGNsZWFudXA7Ci0KLQkJcGxs LT5uZXdfY29uZmlnLT5jcnRjX21hc2sgJj0gfmNsZWFyX3BpcGVzOwotCX0KLQotCXJldHVybiAw OwotCi1jbGVhbnVwOgotCXdoaWxlICgtLWkgPj0gMCkgewotCQlwbGwgPSAmZGV2X3ByaXYtPnNo YXJlZF9kcGxsc1tpXTsKLQkJa2ZyZWUocGxsLT5uZXdfY29uZmlnKTsKLQkJcGxsLT5uZXdfY29u ZmlnID0gTlVMTDsKLQl9Ci0KLQlyZXR1cm4gLUVOT01FTTsKLX0KLQotc3RhdGljIHZvaWQgaW50 ZWxfc2hhcmVkX2RwbGxfY29tbWl0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK K3N0YXRpYyB2b2lkIGludGVsX3NoYXJlZF9kcGxsX2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShzdGF0ZS0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnICpzaGFy ZWRfZHBsbDsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAllbnVtIGludGVsX2Rw bGxfaWQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsOyBp KyspIHsKLQkJcGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07Ci0KLQkJV0FSTl9PTihw bGwtPm5ld19jb25maWcgPT0gJnBsbC0+Y29uZmlnKTsKLQotCQlwbGwtPmNvbmZpZyA9ICpwbGwt Pm5ld19jb25maWc7Ci0JCWtmcmVlKHBsbC0+bmV3X2NvbmZpZyk7Ci0JCXBsbC0+bmV3X2NvbmZp ZyA9IE5VTEw7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9hYm9ydF9j b25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbCAqcGxsOwotCWVudW0gaW50ZWxfZHBsbF9pZCBpOworCWlmICghdG9faW50 ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+ZHBsbF9zZXQpCisJCXJldHVybjsKIAorCXNoYXJlZF9k cGxsID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+c2hhcmVkX2RwbGw7CiAJZm9yIChp ID0gMDsgaSA8IGRldl9wcml2LT5udW1fc2hhcmVkX2RwbGw7IGkrKykgewogCQlwbGwgPSAmZGV2 X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsKLQotCQlXQVJOX09OKHBsbC0+bmV3X2NvbmZpZyA9PSAm cGxsLT5jb25maWcpOwotCi0JCWtmcmVlKHBsbC0+bmV3X2NvbmZpZyk7Ci0JCXBsbC0+bmV3X2Nv bmZpZyA9IE5VTEw7CisJCXBsbC0+Y29uZmlnID0gc2hhcmVkX2RwbGxbaV07CiAJfQogfQogCkBA IC0xMTQxOSwxMyArMTEzNzIsMTIgQEAgc3RhdGljIHZvaWQKIGludGVsX21vZGVzZXRfdXBkYXRl X3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gc3RhdGUtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGU7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKIAotCWludGVsX3No YXJlZF9kcGxsX2NvbW1pdChkZXZfcHJpdik7CisJaW50ZWxfc2hhcmVkX2RwbGxfY29tbWl0KHN0 YXRlKTsKIAogCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBpbnRlbF9lbmNvZGVyKSB7CiAJ CWlmICghaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjKQpAQCAtMTIwNzQsOSArMTIwMjYsMTMgQEAg c3RhdGljIGludCBfX2ludGVsX3NldF9tb2RlX3NldHVwX3BsbHMoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKQogCQl9CiAJfQogCi0JcmV0ID0gaW50ZWxfc2hhcmVkX2RwbGxfc3RhcnRf Y29uZmlnKGRldl9wcml2LCBjbGVhcl9waXBlcyk7Ci0JaWYgKHJldCkKLQkJZ290byBkb25lOwor CWlmIChjbGVhcl9waXBlcykgeworCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnICpz aGFyZWRfZHBsbCA9CisJCQlpbnRlbF9hdG9taWNfZ2V0X3NoYXJlZF9kcGxsX3N0YXRlKHN0YXRl KTsKKworCQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKQor CQkJc2hhcmVkX2RwbGxbaV0uY3J0Y19tYXNrICY9IH5jbGVhcl9waXBlczsKKwl9CiAKIAlmb3Jf ZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7CiAJCWlmICgh bmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSB8fCAhY3J0Y19zdGF0ZS0+YWN0aXZlKQpAQCAtMTIw ODcsMTMgKzEyMDQzLDEwIEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZV9zZXR1cF9wbGxz KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAogCQlyZXQgPSBkZXZfcHJpdi0+ZGlz cGxheS5jcnRjX2NvbXB1dGVfY2xvY2soaW50ZWxfY3J0YywKIAkJCQkJCQkgICBpbnRlbF9jcnRj X3N0YXRlKTsKLQkJaWYgKHJldCkgewotCQkJaW50ZWxfc2hhcmVkX2RwbGxfYWJvcnRfY29uZmln KGRldl9wcml2KTsKLQkJCWdvdG8gZG9uZTsKLQkJfQorCQlpZiAocmV0KQorCQkJcmV0dXJuIHJl dDsKIAl9CiAKLWRvbmU6CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTQwNzMsNiArMTQwMjYsOCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyBpbnRlbF9tb2RlX2Z1 bmNzID0gewogCS5vdXRwdXRfcG9sbF9jaGFuZ2VkID0gaW50ZWxfZmJkZXZfb3V0cHV0X3BvbGxf Y2hhbmdlZCwKIAkuYXRvbWljX2NoZWNrID0gaW50ZWxfYXRvbWljX2NoZWNrLAogCS5hdG9taWNf Y29tbWl0ID0gaW50ZWxfYXRvbWljX2NvbW1pdCwKKwkuYXRvbWljX25ld19zdGF0ZSA9IGludGVs X2F0b21pY19uZXdfc3RhdGUsCisJLmF0b21pY19jbGVhcl9zdGF0ZSA9IGludGVsX2F0b21pY19j bGVhcl9zdGF0ZSwKIH07CiAKIC8qIFNldCB1cCBjaGlwIHNwZWNpZmljIGRpc3BsYXkgZnVuY3Rp b25zICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGVlMDg5ZWJjYTQ0Zi4uNDk3MWE1 YTM1ZGI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMjMxLDYgKzIzMSwxMyBAQCB0 eXBlZGVmIHN0cnVjdCBkcGxsIHsKIAlpbnQJcDsKIH0gaW50ZWxfY2xvY2tfdDsKIAorc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSB7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgYmFzZTsKKwor CWJvb2wgZHBsbF9zZXQ7CisJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyBzaGFyZWRf ZHBsbFtJOTE1X05VTV9QTExTXTsKK307CisKIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7CiAJ c3RydWN0IGRybV9wbGFuZV9zdGF0ZSBiYXNlOwogCXN0cnVjdCBkcm1fcmVjdCBzcmM7CkBAIC02 MTEsNiArNjE4LDcgQEAgc3RydWN0IGN4c3JfbGF0ZW5jeSB7CiAJdW5zaWduZWQgbG9uZyBjdXJz b3JfaHBsbF9kaXNhYmxlOwogfTsKIAorI2RlZmluZSB0b19pbnRlbF9hdG9taWNfc3RhdGUoeCkg Y29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUsIGJhc2UpCiAjZGVmaW5l IHRvX2ludGVsX2NydGMoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9jcnRjLCBiYXNl KQogI2RlZmluZSB0b19pbnRlbF9jcnRjX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSwgYmFzZSkKICNkZWZpbmUgdG9faW50ZWxfY29ubmVjdG9yKHgpIGNv bnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yLCBiYXNlKQpAQCAtMTM4OCw2ICsx Mzk2LDExIEBAIGludCBpbnRlbF9jb25uZWN0b3JfYXRvbWljX2dldF9wcm9wZXJ0eShzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogc3RydWN0IGRybV9jcnRjX3N0YXRlICppbnRlbF9j cnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogdm9pZCBpbnRlbF9j cnRjX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJICAgICAgIHN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpOworc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmludGVs X2F0b21pY19uZXdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cit2b2lkIGludGVsX2F0 b21pY19jbGVhcl9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqKTsKK3N0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbF9jb25maWcgKgoraW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0 ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqcyk7CisKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKgogaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKLS0g CjIuMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=