From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v4.1 01/13] drm/i915: Use global atomic state for staged pll, config, v3. Date: Thu, 04 Jun 2015 10:21:28 +0200 Message-ID: <55700A88.5050309@linux.intel.com> References: <1433155811-9671-1-git-send-email-maarten.lankhorst@linux.intel.com> <1433155811-9671-16-git-send-email-maarten.lankhorst@linux.intel.com> <873827di48.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 8F6467215F for ; Thu, 4 Jun 2015 01:21:39 -0700 (PDT) In-Reply-To: <873827di48.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , intel-gfx@lists.freedesktop.org Cc: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org Tm93IHRoYXQgd2UgY2FuIHN1YmNsYXNzIGRybV9hdG9taWNfc3RhdGUgd2UgY2FuIGFsc28gdXNl IGl0IHRvIGtlZXAKdHJhY2sgb2YgYWxsIHRoZSBwbGwgc2V0dGluZ3MuIGF0b21pY19zdGF0ZSBp cyBhIGJldHRlciBwbGFjZSB0byBob2xkCmFsbCBzaGFyZWQgc3RhdGUgdGhhbiBrZWVwaW5nIHBs bC0+bmV3X2NvbmZpZyBldmVyeXdoZXJlLgoKQ2hhbmdlcyBzaW5jZSB2MToKLSBBc3NlcnQgY29u bmVjdGlvbl9tdXRleCBpcyBoZWxkLgpDaGFuZ2VzIHNpbmNlIHYyOgotIEZpeCBzd2FwcGVkIGFy Z3VtZW50cyB0byBremFsbG9jIGZvciBpbnRlbF9hdG9taWNfc3RhdGVfYWxsb2MuIChKYW5pIE5p a3VsYSkKClNpZ25lZC1vZmYtYnk6IEFuZGVyIENvbnNlbHZhbiBkZSBPbGl2ZWlyYSA8YW5kZXIu Y29uc2VsdmFuLmRlLm9saXZlaXJhQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBM YW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6 IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Ci0tLQpPb3BzLCB0aGFua3Mg Zm9yIGNhdGNoaW5nIGl0LCBjYW4geW91IGFwcGx5IHJlc3Qgb2YgdGhlIHNlcmllcyB0b28/Cgog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8ICA1MSArKysrKysrKysrKysrKysrCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMTEgKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAx MyArKysrCiA0IGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKyksIDc5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDg2MmJiOWQ0YjA4ZC4uMGNkYzgxYzBlNmUx IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTM3Niw3ICszNzYsNiBAQCBzdHJ1Y3QgaW50 ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHsKIAogc3RydWN0IGludGVsX3NoYXJlZF9kcGxsIHsKIAlz dHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnIGNvbmZpZzsKLQlzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGxfY29uZmlnICpuZXdfY29uZmlnOwogCiAJaW50IGFjdGl2ZTsgLyogY291bnQgb2Yg bnVtYmVyIG9mIGFjdGl2ZSBDUlRDcyAoaS5lLiBEUE1TIG9uKSAqLwogCWJvb2wgb247IC8qIGlz IHRoZSBQTEwgYWN0dWFsbHkgYWN0aXZlPyBEaXNhYmxlZCBkdXJpbmcgbW9kZXNldCAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwppbmRleCA3ZWQ4MDMzYWFlNjAuLjQ1YWYzY2M5ZDA0 YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKQEAgLTQyMSwzICs0MjEsNTQgQEAg aW50IGludGVsX2F0b21pY19zZXR1cF9zY2FsZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAK IAlyZXR1cm4gMDsKIH0KKworc3RhdGljIHZvaWQKK2ludGVsX2F0b21pY19kdXBsaWNhdGVfZHBs bF9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJICBzdHJ1Y3Qg aW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnICpzaGFyZWRfZHBsbCkKK3sKKwllbnVtIGludGVsX2Rw bGxfaWQgaTsKKworCS8qIENvcHkgc2hhcmVkIGRwbGwgc3RhdGUgKi8KKwlmb3IgKGkgPSAwOyBp IDwgZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKSB7CisJCXN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbCAqcGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07CisKKwkJc2hhcmVkX2Rw bGxbaV0gPSBwbGwtPmNvbmZpZzsKKwl9Cit9CisKK3N0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9j b25maWcgKgoraW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0ZShzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqcykKK3sKKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9IHRv X2ludGVsX2F0b21pY19zdGF0ZShzKTsKKworCVdBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tl ZCgmcy0+ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KSk7CisKKwlpZiAoIXN0YXRl LT5kcGxsX3NldCkgeworCQlzdGF0ZS0+ZHBsbF9zZXQgPSB0cnVlOworCisJCWludGVsX2F0b21p Y19kdXBsaWNhdGVfZHBsbF9zdGF0ZSh0b19pOTE1KHMtPmRldiksCisJCQkJCQkgIHN0YXRlLT5z aGFyZWRfZHBsbCk7CisJfQorCisJcmV0dXJuIHN0YXRlLT5zaGFyZWRfZHBsbDsKK30KKworc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKgoraW50ZWxfYXRvbWljX3N0YXRlX2FsbG9jKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBr emFsbG9jKHNpemVvZigqc3RhdGUpLCBHRlBfS0VSTkVMKTsKKworCWlmICghc3RhdGUgfHwgZHJt X2F0b21pY19zdGF0ZV9pbml0KGRldiwgJnN0YXRlLT5iYXNlKSA8IDApIHsKKwkJa2ZyZWUoc3Rh dGUpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gJnN0YXRlLT5iYXNlOworfQorCit2 b2lkIGludGVsX2F0b21pY19zdGF0ZV9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqcykK K3sKKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9IHRvX2ludGVsX2F0b21pY19z dGF0ZShzKTsKKwlkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfY2xlYXIoJnN0YXRlLT5iYXNlKTsK KwlzdGF0ZS0+ZHBsbF9zZXQgPSBmYWxzZTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwppbmRleCAzZWMzMjQ2NTFiOGEuLjM1MzhhMTA1OWRiMCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwpAQCAtNDE4Niw4ICs0MTg2LDExIEBAIHN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbCAqaW50ZWxfZ2V0X3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNydGMtPmJhc2UuZGV2LT5k ZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKKwlzdHJ1Y3QgaW50 ZWxfc2hhcmVkX2RwbGxfY29uZmlnICpzaGFyZWRfZHBsbDsKIAllbnVtIGludGVsX2RwbGxfaWQg aTsKIAorCXNoYXJlZF9kcGxsID0gaW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0ZShj cnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwogCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdi0+ZGV2 KSkgewogCQkvKiBJcm9ubGFrZSBQQ0ggaGFzIGEgZml4ZWQgUExMLT5QQ0ggcGlwZSBtYXBwaW5n LiAqLwogCQlpID0gKGVudW0gaW50ZWxfZHBsbF9pZCkgY3J0Yy0+cGlwZTsKQEAgLTQxOTYsNyAr NDE5OSw3IEBAIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqaW50ZWxfZ2V0X3NoYXJlZF9kcGxs KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQlEUk1fREVCVUdfS01TKCJDUlRDOiVkIHVzaW5n IHByZS1hbGxvY2F0ZWQgJXNcbiIsCiAJCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIHBsbC0+ bmFtZSk7CiAKLQkJV0FSTl9PTihwbGwtPm5ld19jb25maWctPmNydGNfbWFzayk7CisJCVdBUk5f T04oc2hhcmVkX2RwbGxbaV0uY3J0Y19tYXNrKTsKIAogCQlnb3RvIGZvdW5kOwogCX0KQEAgLTQy MTYsNyArNDIxOSw3IEBAIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqaW50ZWxfZ2V0X3NoYXJl ZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJl ZF9kcGxsc1tpXTsKIAkJRFJNX0RFQlVHX0tNUygiQ1JUQzolZCB1c2luZyBwcmUtYWxsb2NhdGVk ICVzXG4iLAogCQkJY3J0Yy0+YmFzZS5iYXNlLmlkLCBwbGwtPm5hbWUpOwotCQlXQVJOX09OKHBs bC0+bmV3X2NvbmZpZy0+Y3J0Y19tYXNrKTsKKwkJV0FSTl9PTihzaGFyZWRfZHBsbFtpXS5jcnRj X21hc2spOwogCiAJCWdvdG8gZm91bmQ7CiAJfQpAQCAtNDIyNSwxNSArNDIyOCwxNSBAQCBzdHJ1 Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVsX2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKIAkJcGxsID0gJmRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV07CiAKIAkJLyog T25seSB3YW50IHRvIGNoZWNrIGVuYWJsZWQgdGltaW5ncyBmaXJzdCAqLwotCQlpZiAocGxsLT5u ZXdfY29uZmlnLT5jcnRjX21hc2sgPT0gMCkKKwkJaWYgKHNoYXJlZF9kcGxsW2ldLmNydGNfbWFz ayA9PSAwKQogCQkJY29udGludWU7CiAKIAkJaWYgKG1lbWNtcCgmY3J0Y19zdGF0ZS0+ZHBsbF9o d19zdGF0ZSwKLQkJCSAgICZwbGwtPm5ld19jb25maWctPmh3X3N0YXRlLAotCQkJICAgc2l6ZW9m KHBsbC0+bmV3X2NvbmZpZy0+aHdfc3RhdGUpKSA9PSAwKSB7CisJCQkgICAmc2hhcmVkX2RwbGxb aV0uaHdfc3RhdGUsCisJCQkgICBzaXplb2YoY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSkpID09 IDApIHsKIAkJCURSTV9ERUJVR19LTVMoIkNSVEM6JWQgc2hhcmluZyBleGlzdGluZyAlcyAoY3J0 YyBtYXNrIDB4JTA4eCwgYXRpdmUgJWQpXG4iLAogCQkJCSAgICAgIGNydGMtPmJhc2UuYmFzZS5p ZCwgcGxsLT5uYW1lLAotCQkJCSAgICAgIHBsbC0+bmV3X2NvbmZpZy0+Y3J0Y19tYXNrLAorCQkJ CSAgICAgIHNoYXJlZF9kcGxsW2ldLmNydGNfbWFzaywKIAkJCQkgICAgICBwbGwtPmFjdGl2ZSk7 CiAJCQlnb3RvIGZvdW5kOwogCQl9CkBAIC00MjQyLDcgKzQyNDUsNyBAQCBzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGwgKmludGVsX2dldF9zaGFyZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKIAkvKiBPayBubyBtYXRjaGluZyB0aW1pbmdzLCBtYXliZSB0aGVyZSdzIGEgZnJlZSBvbmU/ ICovCiAJZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT5udW1fc2hhcmVkX2RwbGw7IGkrKykgewog CQlwbGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsKLQkJaWYgKHBsbC0+bmV3X2NvbmZp Zy0+Y3J0Y19tYXNrID09IDApIHsKKwkJaWYgKHNoYXJlZF9kcGxsW2ldLmNydGNfbWFzayA9PSAw KSB7CiAJCQlEUk1fREVCVUdfS01TKCJDUlRDOiVkIGFsbG9jYXRlZCAlc1xuIiwKIAkJCQkgICAg ICBjcnRjLT5iYXNlLmJhc2UuaWQsIHBsbC0+bmFtZSk7CiAJCQlnb3RvIGZvdW5kOwpAQCAtNDI1 Miw4MyArNDI1NSwzMyBAQCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVsX2dldF9zaGFy ZWRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlyZXR1cm4gTlVMTDsKIAogZm91bmQ6 Ci0JaWYgKHBsbC0+bmV3X2NvbmZpZy0+Y3J0Y19tYXNrID09IDApCi0JCXBsbC0+bmV3X2NvbmZp Zy0+aHdfc3RhdGUgPSBjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlOworCWlmIChzaGFyZWRfZHBs bFtpXS5jcnRjX21hc2sgPT0gMCkKKwkJc2hhcmVkX2RwbGxbaV0uaHdfc3RhdGUgPQorCQkJY3J0 Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZTsKIAogCWNydGNfc3RhdGUtPnNoYXJlZF9kcGxsID0gaTsK IAlEUk1fREVCVUdfRFJJVkVSKCJ1c2luZyAlcyBmb3IgcGlwZSAlY1xuIiwgcGxsLT5uYW1lLAog CQkJIHBpcGVfbmFtZShjcnRjLT5waXBlKSk7CiAKLQlwbGwtPm5ld19jb25maWctPmNydGNfbWFz ayB8PSAxIDw8IGNydGMtPnBpcGU7CisJc2hhcmVkX2RwbGxbaV0uY3J0Y19tYXNrIHw9IDEgPDwg Y3J0Yy0+cGlwZTsKIAogCXJldHVybiBwbGw7CiB9CiAKLS8qKgotICogaW50ZWxfc2hhcmVkX2Rw bGxfc3RhcnRfY29uZmlnIC0gc3RhcnQgYSBuZXcgUExMIHN0YWdlZCBjb25maWcKLSAqIEBkZXZf cHJpdjogRFJNIGRldmljZQotICogQGNsZWFyX3BpcGVzOiBtYXNrIG9mIHBpcGVzIHRoYXQgd2ls bCBoYXZlIHRoZWlyIFBMTHMgZnJlZWQKLSAqCi0gKiBTdGFydHMgYSBuZXcgUExMIHN0YWdlZCBj b25maWcsIGNvcHlpbmcgdGhlIGN1cnJlbnQgY29uZmlnIGJ1dAotICogcmVsZWFzaW5nIHRoZSBy ZWZlcmVuY2VzIG9mIHBpcGVzIHNwZWNpZmllZCBpbiBjbGVhcl9waXBlcy4KLSAqLwotc3RhdGlj IGludCBpbnRlbF9zaGFyZWRfZHBsbF9zdGFydF9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAotCQkJCQkgIHVuc2lnbmVkIGNsZWFyX3BpcGVzKQotewotCXN0cnVjdCBp bnRlbF9zaGFyZWRfZHBsbCAqcGxsOwotCWVudW0gaW50ZWxfZHBsbF9pZCBpOwotCi0JZm9yIChp ID0gMDsgaSA8IGRldl9wcml2LT5udW1fc2hhcmVkX2RwbGw7IGkrKykgewotCQlwbGwgPSAmZGV2 X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsKLQotCQlwbGwtPm5ld19jb25maWcgPSBrbWVtZHVwKCZw bGwtPmNvbmZpZywgc2l6ZW9mIHBsbC0+Y29uZmlnLAotCQkJCQkgIEdGUF9LRVJORUwpOwotCQlp ZiAoIXBsbC0+bmV3X2NvbmZpZykKLQkJCWdvdG8gY2xlYW51cDsKLQotCQlwbGwtPm5ld19jb25m aWctPmNydGNfbWFzayAmPSB+Y2xlYXJfcGlwZXM7Ci0JfQotCi0JcmV0dXJuIDA7Ci0KLWNsZWFu dXA6Ci0Jd2hpbGUgKC0taSA+PSAwKSB7Ci0JCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxz W2ldOwotCQlrZnJlZShwbGwtPm5ld19jb25maWcpOwotCQlwbGwtPm5ld19jb25maWcgPSBOVUxM OwotCX0KLQotCXJldHVybiAtRU5PTUVNOwotfQotCi1zdGF0aWMgdm9pZCBpbnRlbF9zaGFyZWRf ZHBsbF9jb21taXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZv aWQgaW50ZWxfc2hhcmVkX2RwbGxfY29tbWl0KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRl LT5kZXYpOworCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcgKnNoYXJlZF9kcGxsOwog CXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwogCWVudW0gaW50ZWxfZHBsbF9pZCBpOwog Ci0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT5udW1fc2hhcmVkX2RwbGw7IGkrKykgewotCQlw bGwgPSAmZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXTsKLQotCQlXQVJOX09OKHBsbC0+bmV3X2Nv bmZpZyA9PSAmcGxsLT5jb25maWcpOwotCi0JCXBsbC0+Y29uZmlnID0gKnBsbC0+bmV3X2NvbmZp ZzsKLQkJa2ZyZWUocGxsLT5uZXdfY29uZmlnKTsKLQkJcGxsLT5uZXdfY29uZmlnID0gTlVMTDsK LQl9Ci19Ci0KLXN0YXRpYyB2b2lkIGludGVsX3NoYXJlZF9kcGxsX2Fib3J0X2NvbmZpZyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0Jc3RydWN0IGludGVsX3NoYXJlZF9k cGxsICpwbGw7Ci0JZW51bSBpbnRlbF9kcGxsX2lkIGk7CisJaWYgKCF0b19pbnRlbF9hdG9taWNf c3RhdGUoc3RhdGUpLT5kcGxsX3NldCkKKwkJcmV0dXJuOwogCisJc2hhcmVkX2RwbGwgPSB0b19p bnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT5zaGFyZWRfZHBsbDsKIAlmb3IgKGkgPSAwOyBpIDwg ZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKSB7CiAJCXBsbCA9ICZkZXZfcHJpdi0+c2hh cmVkX2RwbGxzW2ldOwotCi0JCVdBUk5fT04ocGxsLT5uZXdfY29uZmlnID09ICZwbGwtPmNvbmZp Zyk7Ci0KLQkJa2ZyZWUocGxsLT5uZXdfY29uZmlnKTsKLQkJcGxsLT5uZXdfY29uZmlnID0gTlVM TDsKKwkJcGxsLT5jb25maWcgPSBzaGFyZWRfZHBsbFtpXTsKIAl9CiB9CiAKQEAgLTExOTc1LDEz ICsxMTkyOCwxMiBAQCBzdGF0aWMgdm9pZAogaW50ZWxfbW9kZXNldF91cGRhdGVfc3RhdGUoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBzdGF0ZS0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7CiAJc3Ry dWN0IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsK IAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCi0JaW50ZWxfc2hhcmVkX2RwbGxf Y29tbWl0KGRldl9wcml2KTsKKwlpbnRlbF9zaGFyZWRfZHBsbF9jb21taXQoc3RhdGUpOwogCWRy bV9hdG9taWNfaGVscGVyX3N3YXBfc3RhdGUoc3RhdGUtPmRldiwgc3RhdGUpOwogCiAJZm9yX2Vh Y2hfaW50ZWxfZW5jb2RlcihkZXYsIGludGVsX2VuY29kZXIpIHsKQEAgLTEyNjEwLDkgKzEyNTYy LDEzIEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZV9zZXR1cF9wbGxzKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJfQogCX0KIAotCXJldCA9IGludGVsX3NoYXJlZF9kcGxs X3N0YXJ0X2NvbmZpZyhkZXZfcHJpdiwgY2xlYXJfcGlwZXMpOwotCWlmIChyZXQpCi0JCWdvdG8g ZG9uZTsKKwlpZiAoY2xlYXJfcGlwZXMpIHsKKwkJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2Nv bmZpZyAqc2hhcmVkX2RwbGwgPQorCQkJaW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0 ZShzdGF0ZSk7CisKKwkJZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT5udW1fc2hhcmVkX2RwbGw7 IGkrKykKKwkJCXNoYXJlZF9kcGxsW2ldLmNydGNfbWFzayAmPSB+Y2xlYXJfcGlwZXM7CisJfQog CiAJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewog CQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkgfHwgIWNydGNfc3RhdGUtPmVuYWJsZSkK QEAgLTEyNjIzLDEzICsxMjU3OSwxMCBAQCBzdGF0aWMgaW50IF9faW50ZWxfc2V0X21vZGVfc2V0 dXBfcGxscyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIAkJcmV0ID0gZGV2X3By aXYtPmRpc3BsYXkuY3J0Y19jb21wdXRlX2Nsb2NrKGludGVsX2NydGMsCiAJCQkJCQkJICAgaW50 ZWxfY3J0Y19zdGF0ZSk7Ci0JCWlmIChyZXQpIHsKLQkJCWludGVsX3NoYXJlZF9kcGxsX2Fib3J0 X2NvbmZpZyhkZXZfcHJpdik7Ci0JCQlnb3RvIGRvbmU7Ci0JCX0KKwkJaWYgKHJldCkKKwkJCXJl dHVybiByZXQ7CiAJfQogCi1kb25lOgogCXJldHVybiByZXQ7CiB9CiAKQEAgLTE0MzI0LDYgKzE0 Mjc3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgaW50ZWxf bW9kZV9mdW5jcyA9IHsKIAkub3V0cHV0X3BvbGxfY2hhbmdlZCA9IGludGVsX2ZiZGV2X291dHB1 dF9wb2xsX2NoYW5nZWQsCiAJLmF0b21pY19jaGVjayA9IGludGVsX2F0b21pY19jaGVjaywKIAku YXRvbWljX2NvbW1pdCA9IGludGVsX2F0b21pY19jb21taXQsCisJLmF0b21pY19zdGF0ZV9hbGxv YyA9IGludGVsX2F0b21pY19zdGF0ZV9hbGxvYywKKwkuYXRvbWljX3N0YXRlX2NsZWFyID0gaW50 ZWxfYXRvbWljX3N0YXRlX2NsZWFyLAogfTsKIAogLyogU2V0IHVwIGNoaXAgc3BlY2lmaWMgZGlz cGxheSBmdW5jdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggYjkwODJmZDE2 NzkyLi5kZGFlMjhhYzRlNmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0yNDEsNiAr MjQxLDEzIEBAIHR5cGVkZWYgc3RydWN0IGRwbGwgewogCWludAlwOwogfSBpbnRlbF9jbG9ja190 OwogCitzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlIHsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSBiYXNlOworCisJYm9vbCBkcGxsX3NldDsKKwlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29u ZmlnIHNoYXJlZF9kcGxsW0k5MTVfTlVNX1BMTFNdOworfTsKKwogc3RydWN0IGludGVsX3BsYW5l X3N0YXRlIHsKIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIGJhc2U7CiAJc3RydWN0IGRybV9yZWN0 IHNyYzsKQEAgLTYyOCw2ICs2MzUsNyBAQCBzdHJ1Y3QgY3hzcl9sYXRlbmN5IHsKIAl1bnNpZ25l ZCBsb25nIGN1cnNvcl9ocGxsX2Rpc2FibGU7CiB9OwogCisjZGVmaW5lIHRvX2ludGVsX2F0b21p Y19zdGF0ZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSwgYmFz ZSkKICNkZWZpbmUgdG9faW50ZWxfY3J0Yyh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVs X2NydGMsIGJhc2UpCiAjZGVmaW5lIHRvX2ludGVsX2NydGNfc3RhdGUoeCkgY29udGFpbmVyX29m KHgsIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBiYXNlKQogI2RlZmluZSB0b19pbnRlbF9jb25u ZWN0b3IoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IsIGJhc2UpCkBA IC0xNDA1LDYgKzE0MTMsMTEgQEAgaW50IGludGVsX2Nvbm5lY3Rvcl9hdG9taWNfZ2V0X3Byb3Bl cnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiBzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKmludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiB2 b2lkIGludGVsX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkg ICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSk7CitzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqaW50ZWxfYXRvbWljX3N0YXRlX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwor dm9pZCBpbnRlbF9hdG9taWNfc3RhdGVfY2xlYXIoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKik7 CitzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnICoKK2ludGVsX2F0b21pY19nZXRfc2hh cmVkX2RwbGxfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnMpOworCiBzdGF0aWMgaW5s aW5lIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICoKIGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0 ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkgICAgc3RydWN0IGludGVsX2Ny dGMgKmNydGMpCi0tIAoyLjEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==