From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stanislav Lisovskiy Subject: [PATCH v8 1/2] drm/i915: Refactor intel_can_enable_sagv Date: Fri, 25 Oct 2019 12:53:51 +0300 Message-ID: <20191025095352.3891-2-stanislav.lisovskiy@intel.com> References: <20191025095352.3891-1-stanislav.lisovskiy@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id A11616E951 for ; Fri, 25 Oct 2019 09:56:19 +0000 (UTC) In-Reply-To: <20191025095352.3891-1-stanislav.lisovskiy@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 Q3VycmVudGx5IGludGVsX2Nhbl9lbmFibGVfc2FndiBmdW5jdGlvbiBjb250YWlucwphIG1peCBv ZiB3b3JrYXJvdW5kcyBmb3IgZGlmZmVyZW50IHBsYXRmb3Jtcwpzb21lIG9mIHRoZW0gYXJlIG5v dCB2YWxpZCBmb3IgZ2VucyA+PSAxMSBhbHJlYWR5LApzbyBsZXRzIHNwbGl0IGl0IGludG8gc2Vw YXJhdGUgZnVuY3Rpb25zLgoKdjI6CiAgICAtIFJld29yayB3YXRlcm1hcmsgY2FsY3VsYXRpb24g YWxnb3JpdGhtIHRvCiAgICAgIGF0dGVtcHQgdG8gY2FsY3VsYXRlIExldmVsIDAgd2F0ZXJtYXJr CiAgICAgIHdpdGggYWRkZWQgc2FndiBibG9jayB0aW1lIGxhdGVuY3kgYW5kCiAgICAgIGNoZWNr IGlmIGl0IGZpdHMgaW4gREJ1ZiBpbiBvcmRlciB0bwogICAgICBkZXRlcm1pbmUgaWYgU0FHViBj YW4gYmUgZW5hYmxlZCBhbHJlYWR5CiAgICAgIGF0IHRoaXMgc3RhZ2UsIGp1c3QgYXMgQlNwZWMg NDkzMjUgc3RhdGVzLgogICAgICBpZiB0aGF0IGZhaWxzIHJvbGxiYWNrIHRvIHVzdWFsIExldmVs IDAKICAgICAgbGF0ZW5jeSBhbmQgZGlzYWJsZSBTQUdWLgogICAgLSBSZW1vdmUgdW5uZWVkZWQg dGFicyhKYW1lcyBBdXNtdXMpCgp2MzogUmViYXNlZCB0aGUgcGF0Y2gKCnY0OiAtIEFkZGVkIGJh Y2sgaW50ZXJsYWNlZCBjaGVjayBmb3IgR2VuMTIgYW5kCiAgICAgIGFkZGVkIHNlcGFyYXRlIGZ1 bmN0aW9uIGZvciBUR0wgU0FHViBjaGVjawogICAgICAodGhhbmtzIHRvIEphbWVzIEF1c211cyBm b3Igc3BvdHRpbmcpCiAgICAtIFJlbW92ZWQgdW5uZWVkZWQgZ2VuIGNoZWNrCiAgICAtIEV4dHJh Y3RlZCBHZW4xMiBTQUdWIGRlY2lzaW9uIG1ha2luZyBjb2RlCiAgICAgIHRvIGEgc2VwYXJhdGUg ZnVuY3Rpb24gZnJvbSBza2xfY29tcHV0ZV93bQoKU2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IExp c292c2tpeSA8c3RhbmlzbGF2Lmxpc292c2tpeUBpbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAaW50ZWwuY29tPgpDYzogSmFtZXMgQXVzbXVzIDxqYW1lcy5hdXNt dXNAaW50ZWwuY29tPgotLS0KIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlw ZXMuaCAgICB8ICAgOCArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAg ICAgICAgfCAyNTQgKysrKysrKysrKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDI1NCBpbnNl cnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKaW5kZXggODM1ODE1MmU0MDNlLi5mMDljODBj OTY0NzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheV90eXBlcy5oCkBAIC00OTAsNiArNDkwLDEzIEBAIHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgewogCSAqLwogCXU4IGFjdGl2ZV9waXBlX2NoYW5nZXM7CiAKKwkvKgorCSAqIEZvciBHZW4x MiBvbmx5IGFmdGVyIGNhbGN1bGF0aW5nIHdhdGVybWFya3Mgd2l0aAorCSAqIGFkZGl0aW9uYWwg bGF0ZW5jeSwgd2UgY2FuIGRldGVybWluZSBpZiBTQUdWIGNhbiBiZSBlbmFibGVkCisJICogb3Ig bm90IGZvciB0aGF0IHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbi4KKwkgKi8KKwlib29sIGdlbjEy X2Nhbl9zYWd2OworCiAJdTggYWN0aXZlX3BpcGVzOwogCS8qIG1pbmltdW0gYWNjZXB0YWJsZSBj ZGNsayBmb3IgZWFjaCBwaXBlICovCiAJaW50IG1pbl9jZGNsa1tJOTE1X01BWF9QSVBFU107CkBA IC02NDIsNiArNjQ5LDcgQEAgc3RydWN0IHNrbF9wbGFuZV93bSB7CiAJc3RydWN0IHNrbF93bV9s ZXZlbCB3bVs4XTsKIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHV2X3dtWzhdOwogCXN0cnVjdCBza2xf d21fbGV2ZWwgdHJhbnNfd207CisJc3RydWN0IHNrbF93bV9sZXZlbCBzYWd2X3dtX2wwOwogCWJv b2wgaXNfcGxhbmFyOwogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggMzYyMjM0NDQ5 MDg3Li5iNjFlYjZhYWE4OWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMzc1MSw3ICsz NzUxLDcgQEAgaW50ZWxfZGlzYWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAlyZXR1cm4gMDsKIH0KIAotYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCitib29sIHNrbF9jYW5fZW5hYmxlX3NhZ3Yoc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHN0YXRlLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7CkBAIC0zODE3LDYgKzM4MTcsOTUgQEAgYm9vbCBpbnRlbF9jYW5fZW5h YmxlX3NhZ3Yoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJuIHRydWU7 CiB9CiAKK2Jvb2wgaWNsX2Nhbl9lbmFibGVfc2FndihzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmJhc2UuZGV2Owor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YzsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNf c3RhdGU7CisJaW50IGxldmVsLCBsYXRlbmN5OworCWludCBpOworCWludCBwbGFuZV9pZDsKKwor CWlmICghaW50ZWxfaGFzX3NhZ3YoZGV2X3ByaXYpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgor CSAqIElmIHRoZXJlIGFyZSBubyBhY3RpdmUgQ1JUQ3MsIG5vIGFkZGl0aW9uYWwgY2hlY2tzIG5l ZWQgYmUgcGVyZm9ybWVkCisJICovCisJaWYgKGh3ZWlnaHQ4KHN0YXRlLT5hY3RpdmVfcGlwZXMp ID09IDApCisJCXJldHVybiB0cnVlOworCisJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3Rh dGUoc3RhdGUsIGNydGMsCisJCQkJCSAgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKKwkJdW5zaWdu ZWQgaW50IGZsYWdzID0gY3J0Yy0+YmFzZS5zdGF0ZS0+YWRqdXN0ZWRfbW9kZS5mbGFnczsKKwor CQlpZiAoZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKKwkJCXJldHVybiBmYWxzZTsK KworCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKKwkJCWNvbnRpbnVlOworCisJ CWZvcl9lYWNoX3BsYW5lX2lkX29uX2NydGMoY3J0YywgcGxhbmVfaWQpIHsKKwkJCXN0cnVjdCBz a2xfcGxhbmVfd20gKndtID0KKwkJCQkmbmV3X2NydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBs YW5lc1twbGFuZV9pZF07CisKKwkJCS8qIFNraXAgdGhpcyBwbGFuZSBpZiBpdCdzIG5vdCBlbmFi bGVkICovCisJCQlpZiAoIXdtLT53bVswXS5wbGFuZV9lbikKKwkJCQljb250aW51ZTsKKworCQkJ LyogRmluZCB0aGUgaGlnaGVzdCBlbmFibGVkIHdtIGxldmVsIGZvciB0aGlzIHBsYW5lICovCisJ CQlmb3IgKGxldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CisJCQkgICAgICF3bS0+ d21bbGV2ZWxdLnBsYW5lX2VuOyAtLWxldmVsKSB7CisJCQl9CisKKwkJCWxhdGVuY3kgPSBkZXZf cHJpdi0+d20uc2tsX2xhdGVuY3lbbGV2ZWxdOworCisJCQkvKgorCQkJICogSWYgYW55IG9mIHRo ZSBwbGFuZXMgb24gdGhpcyBwaXBlIGRvbid0IGVuYWJsZQorCQkJICogd20gbGV2ZWxzIHRoYXQg aW5jdXIgbWVtb3J5IGxhdGVuY2llcyBoaWdoZXIgdGhhbgorCQkJICogc2Fndl9ibG9ja190aW1l X3VzIHdlIGNhbid0IGVuYWJsZSBTQUdWLgorCQkJICovCisJCQlpZiAobGF0ZW5jeSA8IGRldl9w cml2LT5zYWd2X2Jsb2NrX3RpbWVfdXMpCisJCQkJcmV0dXJuIGZhbHNlOworCQl9CisJfQorCisJ cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgdGdsX2Nhbl9lbmFibGVfc2FndihzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKKwlzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CisJaW50IGk7CisKKwlpZiAoIXN0 YXRlLT5nZW4xMl9jYW5fc2FndikKKwkJcmV0dXJuIGZhbHNlOworCisJZm9yX2VhY2hfbmV3X2lu dGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsCisJCQkJCSAgICAgbmV3X2NydGNfc3RhdGUs IGkpIHsKKwkJdW5zaWduZWQgaW50IGZsYWdzID0gY3J0Yy0+YmFzZS5zdGF0ZS0+YWRqdXN0ZWRf bW9kZS5mbGFnczsKKworCQlpZiAoZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKKwkJ CXJldHVybiBmYWxzZTsKKwl9CisJcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgaW50ZWxfY2FuX2Vu YWJsZV9zYWd2KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg Pj0gMTIpCisJCXJldHVybiB0Z2xfY2FuX2VuYWJsZV9zYWd2KHN0YXRlKTsKKwllbHNlIGlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID09IDExKQorCQlyZXR1cm4gaWNsX2Nhbl9lbmFibGVfc2Fndihz dGF0ZSk7CisKKwlyZXR1cm4gc2tsX2Nhbl9lbmFibGVfc2FndihzdGF0ZSk7Cit9CisKIHN0YXRp YyB1MTYgaW50ZWxfZ2V0X2RkYl9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CQkJICAgICAgY29uc3QgdTY0IHRvdGFsX2RhdGFfcmF0ZSwKQEAgLTM5MzYsNiArNDAyNSw3IEBA IHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfd21fcGFyYW1zKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSBpbnQgY29sb3JfcGxhbmUpOwogc3RhdGljIHZvaWQg c2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCiAJCQkJIGludCBsZXZlbCwKKwkJCQkgdTMyIGxhdGVuY3ksCiAJCQkJIGNvbnN0IHN0 cnVjdCBza2xfd21fcGFyYW1zICp3cCwKIAkJCQkgY29uc3Qgc3RydWN0IHNrbF93bV9sZXZlbCAq cmVzdWx0X3ByZXYsCiAJCQkJIHN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdCAvKiBvdXQgKi8p OwpAQCAtMzk1OCw3ICs0MDQ4LDkgQEAgc2tsX2N1cnNvcl9hbGxvY2F0aW9uKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCVdBUk5fT04ocmV0KTsKIAogCWZvciAo bGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKLQkJc2tsX2NvbXB1dGVf cGxhbmVfd20oY3J0Y19zdGF0ZSwgbGV2ZWwsICZ3cCwgJndtLCAmd20pOworCQl1MzIgbGF0ZW5j eSA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeVtsZXZlbF07CisJCXNrbF9jb21wdXRlX3BsYW5l X3dtKGNydGNfc3RhdGUsIGxldmVsLCBsYXRlbmN5LCAmd3AsICZ3bSwgJndtKTsKKwogCQlpZiAo d20ubWluX2RkYl9hbGxvYyA9PSBVMTZfTUFYKQogCQkJYnJlYWs7CiAKQEAgLTQzMTAsNiArNDQw Miw2OCBAQCBpY2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlyZXR1cm4gdG90YWxfZGF0YV9yYXRlOwogfQogCitzdGF0 aWMgaW50Cit0Z2xfY2hlY2tfcGlwZV9maXRzX3NhZ3Zfd20oc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCisJCSAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAv KiBvdXQgKi8pCit7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+YmFzZS5j cnRjOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Yyk7CisJc3RydWN0IHNrbF9kZGJfZW50cnkgKmFsbG9jID0gJmNydGNfc3RhdGUtPndtLnNrbC5k ZGI7CisJdTE2IGFsbG9jX3NpemU7CisJdTE2IHRvdGFsW0k5MTVfTUFYX1BMQU5FU10gPSB7fTsK Kwl1NjQgdG90YWxfZGF0YV9yYXRlOworCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQ7CisJaW50IG51 bV9hY3RpdmU7CisJdTY0IHBsYW5lX2RhdGFfcmF0ZVtJOTE1X01BWF9QTEFORVNdID0ge307CisJ dTMyIGJsb2NrczsKKworCS8qCisJICogTm8gbmVlZCB0byBjaGVjayBnZW4gaGVyZSwgd2UgY2Fs bCB0aGlzIG9ubHkgZm9yIGdlbjEyCisJICovCisJdG90YWxfZGF0YV9yYXRlID0KKwkJaWNsX2dl dF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoY3J0Y19zdGF0ZSwKKwkJCQkJCSBwbGFuZV9kYXRh X3JhdGUpOworCisJc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhkZXZfcHJpdiwg Y3J0Y19zdGF0ZSwKKwkJCQkJICAgdG90YWxfZGF0YV9yYXRlLAorCQkJCQkgICBkZGIsIGFsbG9j LCAmbnVtX2FjdGl2ZSk7CisJYWxsb2Nfc2l6ZSA9IHNrbF9kZGJfZW50cnlfc2l6ZShhbGxvYyk7 CisJaWYgKGFsbG9jX3NpemUgPT0gMCkKKwkJcmV0dXJuIC1FTk9TUEM7CisKKwkvKiBBbGxvY2F0 ZSBmaXhlZCBudW1iZXIgb2YgYmxvY2tzIGZvciBjdXJzb3IuICovCisJdG90YWxbUExBTkVfQ1VS U09SXSA9IHNrbF9jdXJzb3JfYWxsb2NhdGlvbihjcnRjX3N0YXRlLCBudW1fYWN0aXZlKTsKKwlh bGxvY19zaXplIC09IHRvdGFsW1BMQU5FX0NVUlNPUl07CisJY3J0Y19zdGF0ZS0+d20uc2tsLnBs YW5lX2RkYl95W1BMQU5FX0NVUlNPUl0uc3RhcnQgPQorCQlhbGxvYy0+ZW5kIC0gdG90YWxbUExB TkVfQ1VSU09SXTsKKwljcnRjX3N0YXRlLT53bS5za2wucGxhbmVfZGRiX3lbUExBTkVfQ1VSU09S XS5lbmQgPSBhbGxvYy0+ZW5kOworCisJLyoKKwkgKiBEbyBjaGVjayBpZiB3ZSBjYW4gZml0IEww ICsgc2Fndl9ibG9ja190aW1lIGFuZAorCSAqIGRpc2FibGUgU0FHViBpZiB3ZSBjYW4ndC4KKwkg Ki8KKwlibG9ja3MgPSAwOworCWZvcl9lYWNoX3BsYW5lX2lkX29uX2NydGMoaW50ZWxfY3J0Yywg cGxhbmVfaWQpIHsKKwkJY29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqd20gPQorCQkJJmNydGNf c3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV9pZF07CisKKwkJaWYgKHBsYW5lX2lk ID09IFBMQU5FX0NVUlNPUikgeworCQkJaWYgKFdBUk5fT04od20tPnNhZ3Zfd21fbDAubWluX2Rk Yl9hbGxvYyA+CisJCQkJICAgIHRvdGFsW1BMQU5FX0NVUlNPUl0pKSB7CisJCQkJYmxvY2tzID0g VTMyX01BWDsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWNvbnRpbnVlOworCQl9CisKKwkJYmxvY2tz ICs9IHdtLT5zYWd2X3dtX2wwLm1pbl9kZGJfYWxsb2M7CisJCWlmIChibG9ja3MgPiBhbGxvY19z aXplKQorCQkJcmV0dXJuIC1FTk9TUEM7CisJfQorCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50 CiBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAJCSAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBvdXQgKi8pCkBA IC00NzM5LDEyICs0ODkzLDEyIEBAIHN0YXRpYyBib29sIHNrbF93bV9oYXNfbGluZXMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgbGV2ZWwpCiAKIHN0YXRpYyB2b2lkIHNr bF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAogCQkJCSBpbnQgbGV2ZWwsCisJCQkJIHUzMiBsYXRlbmN5LAogCQkJCSBjb25zdCBzdHJ1 Y3Qgc2tsX3dtX3BhcmFtcyAqd3AsCiAJCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fbGV2ZWwgKnJl c3VsdF9wcmV2LAogCQkJCSBzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHQgLyogb3V0ICovKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXUzMiBsYXRlbmN5ID0gZGV2X3ByaXYtPndtLnNrbF9sYXRl bmN5W2xldmVsXTsKIAl1aW50X2ZpeGVkXzE2XzE2X3QgbWV0aG9kMSwgbWV0aG9kMjsKIAl1aW50 X2ZpeGVkXzE2XzE2X3Qgc2VsZWN0ZWRfcmVzdWx0OwogCXUzMiByZXNfYmxvY2tzLCByZXNfbGlu ZXMsIG1pbl9kZGJfYWxsb2MgPSAwOwpAQCAtNDg2NSwxOSArNTAxOSw0NCBAQCBzdGF0aWMgdm9p ZCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIHN0YXRpYyB2b2lkCiBza2xfY29tcHV0ZV93bV9sZXZlbHMoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBza2xf d21fcGFyYW1zICp3bV9wYXJhbXMsCi0JCSAgICAgIHN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVs cykKKwkJICAgICAgc3RydWN0IHNrbF9wbGFuZV93bSAqcGxhbmVfd20sCisJCSAgICAgIGJvb2wg eXV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwogCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dt X21heF9sZXZlbChkZXZfcHJpdik7CisJLyoKKwkgKiBDaGVjayB3aGljaCBraW5kIG9mIHBsYW5l IGlzIGl0IGFuZCBiYXNlZCBvbiB0aGF0IGNhbGN1bGF0ZQorCSAqIGNvcnJlc3BvbmRlbnQgV00g bGV2ZWxzLgorCSAqLworCXN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVscyA9IHl1diA/IHBsYW5l X3dtLT51dl93bSA6IHBsYW5lX3dtLT53bTsKIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHRf cHJldiA9ICZsZXZlbHNbMF07CiAKIAlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVs OyBsZXZlbCsrKSB7CiAJCXN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdCA9ICZsZXZlbHNbbGV2 ZWxdOworCQl1MzIgbGF0ZW5jeSA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeVtsZXZlbF07CiAK LQkJc2tsX2NvbXB1dGVfcGxhbmVfd20oY3J0Y19zdGF0ZSwgbGV2ZWwsIHdtX3BhcmFtcywKLQkJ CQkgICAgIHJlc3VsdF9wcmV2LCByZXN1bHQpOworCQlza2xfY29tcHV0ZV9wbGFuZV93bShjcnRj X3N0YXRlLCBsZXZlbCwgbGF0ZW5jeSwKKwkJCQkgICAgIHdtX3BhcmFtcywgcmVzdWx0X3ByZXYs IHJlc3VsdCk7CiAKIAkJcmVzdWx0X3ByZXYgPSByZXN1bHQ7CisJCWlmIChsZXZlbCA9PSAwKSB7 CisJCQkvKgorCQkJICogRm9yIEdlbjEyIGlmIGl0IGlzIGFuIEwwIHdlIG5lZWQgdG8gYWxzbwor CQkJICogY29uc2lkZXIgc2Fndl9ibG9ja190aW1lIHdoZW4gY2FsY3VsYXRpbmcKKwkJCSAqIEww IHdhdGVybWFyayAtIHdlIHdpbGwgbmVlZCB0aGF0IHdoZW4gbWFraW5nCisJCQkgKiBhIGRlY2lz aW9uIHdoZXRoZXIgZW5hYmxlIFNBR1Ygb3Igbm90LgorCQkJICogRm9yIG9sZGVyIGdlbnMgd2Ug YWdyZWVkIHRvIGNvcHkgTDAgdmFsdWUgZm9yCisJCQkgKiBjb21wYXRpYmlsaXR5LgorCQkJICov CisJCQlpZiAoKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpKSB7CisJCQkJbGF0ZW5jeSArPSBk ZXZfcHJpdi0+c2Fndl9ibG9ja190aW1lX3VzOworCQkJCXNrbF9jb21wdXRlX3BsYW5lX3dtKGNy dGNfc3RhdGUsIGxldmVsLCBsYXRlbmN5LAorCQkJCSAgICAgd21fcGFyYW1zLCByZXN1bHRfcHJl diwKKwkJCQkgICAgJnBsYW5lX3dtLT5zYWd2X3dtX2wwKTsKKwkJCX0gZWxzZQorCQkJCW1lbWNw eSgmcGxhbmVfd20tPnNhZ3Zfd21fbDAsICZsZXZlbHNbMF0sCisJCQkJCXNpemVvZihzdHJ1Y3Qg c2tsX3dtX2xldmVsKSk7CisJCX0KIAl9CiB9CiAKQEAgLTQ5NzEsNyArNTE1MCw3IEBAIHN0YXRp YyBpbnQgc2tsX2J1aWxkX3BsYW5lX3dtX3NpbmdsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0Jc2tsX2NvbXB1dGVfd21f bGV2ZWxzKGNydGNfc3RhdGUsICZ3bV9wYXJhbXMsIHdtLT53bSk7CisJc2tsX2NvbXB1dGVfd21f bGV2ZWxzKGNydGNfc3RhdGUsICZ3bV9wYXJhbXMsIHdtLCBmYWxzZSk7CiAJc2tsX2NvbXB1dGVf dHJhbnNpdGlvbl93bShjcnRjX3N0YXRlLCAmd21fcGFyYW1zLCB3bSk7CiAKIAlyZXR1cm4gMDsK QEAgLTQ5OTMsNyArNTE3Miw3IEBAIHN0YXRpYyBpbnQgc2tsX2J1aWxkX3BsYW5lX3dtX3V2KHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWlmIChyZXQpCiAJCXJldHVybiBy ZXQ7CiAKLQlza2xfY29tcHV0ZV93bV9sZXZlbHMoY3J0Y19zdGF0ZSwgJndtX3BhcmFtcywgd20t PnV2X3dtKTsKKwlza2xfY29tcHV0ZV93bV9sZXZlbHMoY3J0Y19zdGF0ZSwgJndtX3BhcmFtcywg d20sIHRydWUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC01NTQxLDkgKzU3MjAsNjIgQEAgc3RhdGlj IGludCBza2xfd21fYWRkX2FmZmVjdGVkX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgdGdsX2NoZWNrX2FuZF9zZXRf c2FndihzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gc3RhdGUtPmJhc2UuZGV2OworCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsK KwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CisJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlOworCXN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24g KmRkYiA9ICZzdGF0ZS0+d21fcmVzdWx0cy5kZGI7CisJaW50IHJldCwgaTsKKworCS8qCisJICog TGV0cyBhc3N1bWUgd2UgY2FuIHRvbGVyYXRlIFNBR1YgZm9yIG5vdywKKwkgKiB1bnRpbCB3YXRl cm1hcmsgY2FsY3VsYXRpb25zIHByb3ZlIHRoZSBvcHBvc2l0ZQorCSAqIGlmIGFueSBvZiB0aGUg cGlwZSBwbGFuZXMgaW4gdGhlIHN0YXRlIHdpbGwKKwkgKiBmYWlsIHRoZSByZXF1aXJlbWVudHMg aXQgd2lsbCBiZSBhc3NpZ25lZCB0byBmYWxzZQorCSAqIGluIHNrbF9jb21wdXRlX2RkYi4KKwkg Ki8KKwlzdGF0ZS0+Z2VuMTJfY2FuX3NhZ3YgPSB0cnVlOworCisJZm9yX2VhY2hfb2xkbmV3X2lu dGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLAorCQkJCQkgICAg bmV3X2NydGNfc3RhdGUsIGkpIHsKKwkJcmV0ID0gdGdsX2NoZWNrX3BpcGVfZml0c19zYWd2X3dt KG5ld19jcnRjX3N0YXRlLCBkZGIpOworCQlpZiAocmV0KSB7CisJCQlzdGF0ZS0+Z2VuMTJfY2Fu X3NhZ3YgPSBmYWxzZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKHN0YXRlLT5nZW4xMl9j YW5fc2FndikgeworCQkvKgorCQkgKiBJZiB3ZSBkZXRlcm1pbmVkIHRoYXQgd2UgY2FuIGFjdHVh bGx5IGVuYWJsZSBTQUdWLCB0aGVuCisJCSAqIGFjdHVhbGx5IHVzZSB0aG9zZSBsZXZlbHMgdGds X2NoZWNrX3BpcGVfZml0c19zYWd2X3dtCisJCSAqIGhhcyBhbHJlYWR5IHRha2VuIGNhcmUgb2Yg Y2hlY2tpbmcgaWYgTDAgKyBzYWd2IGJsb2NrIHRpbWUKKwkJICogZml0cyBpbnRvIGRkYi4KKwkJ ICovCisJCWZvcl9lYWNoX29sZG5ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBv bGRfY3J0Y19zdGF0ZSwKKwkJCQkJICAgIG5ld19jcnRjX3N0YXRlLCBpKSB7CisJCQlzdHJ1Y3Qg aW50ZWxfcGxhbmUgKnBsYW5lOworCQkJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YygmZGV2 X3ByaXYtPmRybSwgY3J0YywgcGxhbmUpIHsKKwkJCQllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0g cGxhbmUtPmlkOworCQkJCXN0cnVjdCBza2xfcGxhbmVfd20gKnBsYW5lX3dtID0gXAorCQkJCSAg ICAmbmV3X2NydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV9pZF07CisJCQkJ c3RydWN0IHNrbF93bV9sZXZlbCAqc2Fndl93bTAgPSAmcGxhbmVfd20tPnNhZ3Zfd21fbDA7CisJ CQkJc3RydWN0IHNrbF93bV9sZXZlbCAqbDBfd20wID0gJnBsYW5lX3dtLT53bVswXTsKKworCQkJ CW1lbWNweShsMF93bTAsIHNhZ3Zfd20wLCBzaXplb2Yoc3RydWN0IHNrbF93bV9sZXZlbCkpOwor CQkJfQorCQl9CisJfQorfQorCiBzdGF0aWMgaW50CiBza2xfY29tcHV0ZV93bShzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3Rh dGUtPmJhc2UuZGV2OworCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9s ZF9jcnRjX3N0YXRlOwpAQCAtNTU1Myw2ICs1Nzg1LDkgQEAgc2tsX2NvbXB1dGVfd20oc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJLyogQ2xlYXIgYWxsIGRpcnR5IGZsYWdzICov CiAJcmVzdWx0cy0+ZGlydHlfcGlwZXMgPSAwOwogCisJLyogSWYgd2UgZXhpdCBiZWZvcmUgY2hl Y2sgaXMgZG9uZSAqLworCXN0YXRlLT5nZW4xMl9jYW5fc2FndiA9IGZhbHNlOworCiAJcmV0ID0g c2tsX2RkYl9hZGRfYWZmZWN0ZWRfcGlwZXMoc3RhdGUpOwogCWlmIChyZXQpCiAJCXJldHVybiBy ZXQ7CkBAIC01NTc5LDYgKzU4MTQsOSBAQCBza2xfY29tcHV0ZV93bShzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSkKIAkJCXJlc3VsdHMtPmRpcnR5X3BpcGVzIHw9IEJJVChjcnRjLT5w aXBlKTsKIAl9CiAKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKKwkJdGdsX2NoZWNr X2FuZF9zZXRfc2FndihzdGF0ZSk7CisKIAlyZXQgPSBza2xfY29tcHV0ZV9kZGIoc3RhdGUpOwog CWlmIChyZXQpCiAJCXJldHVybiByZXQ7Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5D5B2CA9EA0 for ; Fri, 25 Oct 2019 09:56:27 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3E37C21D7B for ; Fri, 25 Oct 2019 09:56:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3E37C21D7B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D81256E952; Fri, 25 Oct 2019 09:56:26 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id A11616E951 for ; Fri, 25 Oct 2019 09:56:19 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Oct 2019 02:56:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,228,1569308400"; d="scan'208";a="204509978" Received: from slisovsk-lenovo-ideapad-720s-13ikb.fi.intel.com ([10.237.72.89]) by FMSMGA003.fm.intel.com with ESMTP; 25 Oct 2019 02:56:17 -0700 From: Stanislav Lisovskiy To: intel-gfx@lists.freedesktop.org Date: Fri, 25 Oct 2019 12:53:51 +0300 Message-Id: <20191025095352.3891-2-stanislav.lisovskiy@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191025095352.3891-1-stanislav.lisovskiy@intel.com> References: <20191025095352.3891-1-stanislav.lisovskiy@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v8 1/2] drm/i915: Refactor intel_can_enable_sagv X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191025095351.CsBoUz6SV3kmq1I7fysnJfTzWvc2wnw0bxlj6tnL3J0@z> Q3VycmVudGx5IGludGVsX2Nhbl9lbmFibGVfc2FndiBmdW5jdGlvbiBjb250YWlucwphIG1peCBv ZiB3b3JrYXJvdW5kcyBmb3IgZGlmZmVyZW50IHBsYXRmb3Jtcwpzb21lIG9mIHRoZW0gYXJlIG5v dCB2YWxpZCBmb3IgZ2VucyA+PSAxMSBhbHJlYWR5LApzbyBsZXRzIHNwbGl0IGl0IGludG8gc2Vw YXJhdGUgZnVuY3Rpb25zLgoKdjI6CiAgICAtIFJld29yayB3YXRlcm1hcmsgY2FsY3VsYXRpb24g YWxnb3JpdGhtIHRvCiAgICAgIGF0dGVtcHQgdG8gY2FsY3VsYXRlIExldmVsIDAgd2F0ZXJtYXJr CiAgICAgIHdpdGggYWRkZWQgc2FndiBibG9jayB0aW1lIGxhdGVuY3kgYW5kCiAgICAgIGNoZWNr IGlmIGl0IGZpdHMgaW4gREJ1ZiBpbiBvcmRlciB0bwogICAgICBkZXRlcm1pbmUgaWYgU0FHViBj YW4gYmUgZW5hYmxlZCBhbHJlYWR5CiAgICAgIGF0IHRoaXMgc3RhZ2UsIGp1c3QgYXMgQlNwZWMg NDkzMjUgc3RhdGVzLgogICAgICBpZiB0aGF0IGZhaWxzIHJvbGxiYWNrIHRvIHVzdWFsIExldmVs IDAKICAgICAgbGF0ZW5jeSBhbmQgZGlzYWJsZSBTQUdWLgogICAgLSBSZW1vdmUgdW5uZWVkZWQg dGFicyhKYW1lcyBBdXNtdXMpCgp2MzogUmViYXNlZCB0aGUgcGF0Y2gKCnY0OiAtIEFkZGVkIGJh Y2sgaW50ZXJsYWNlZCBjaGVjayBmb3IgR2VuMTIgYW5kCiAgICAgIGFkZGVkIHNlcGFyYXRlIGZ1 bmN0aW9uIGZvciBUR0wgU0FHViBjaGVjawogICAgICAodGhhbmtzIHRvIEphbWVzIEF1c211cyBm b3Igc3BvdHRpbmcpCiAgICAtIFJlbW92ZWQgdW5uZWVkZWQgZ2VuIGNoZWNrCiAgICAtIEV4dHJh Y3RlZCBHZW4xMiBTQUdWIGRlY2lzaW9uIG1ha2luZyBjb2RlCiAgICAgIHRvIGEgc2VwYXJhdGUg ZnVuY3Rpb24gZnJvbSBza2xfY29tcHV0ZV93bQoKU2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IExp c292c2tpeSA8c3RhbmlzbGF2Lmxpc292c2tpeUBpbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAaW50ZWwuY29tPgpDYzogSmFtZXMgQXVzbXVzIDxqYW1lcy5hdXNt dXNAaW50ZWwuY29tPgotLS0KIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlw ZXMuaCAgICB8ICAgOCArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAg ICAgICAgfCAyNTQgKysrKysrKysrKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDI1NCBpbnNl cnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKaW5kZXggODM1ODE1MmU0MDNlLi5mMDljODBj OTY0NzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheV90eXBlcy5oCkBAIC00OTAsNiArNDkwLDEzIEBAIHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgewogCSAqLwogCXU4IGFjdGl2ZV9waXBlX2NoYW5nZXM7CiAKKwkvKgorCSAqIEZvciBHZW4x MiBvbmx5IGFmdGVyIGNhbGN1bGF0aW5nIHdhdGVybWFya3Mgd2l0aAorCSAqIGFkZGl0aW9uYWwg bGF0ZW5jeSwgd2UgY2FuIGRldGVybWluZSBpZiBTQUdWIGNhbiBiZSBlbmFibGVkCisJICogb3Ig bm90IGZvciB0aGF0IHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbi4KKwkgKi8KKwlib29sIGdlbjEy X2Nhbl9zYWd2OworCiAJdTggYWN0aXZlX3BpcGVzOwogCS8qIG1pbmltdW0gYWNjZXB0YWJsZSBj ZGNsayBmb3IgZWFjaCBwaXBlICovCiAJaW50IG1pbl9jZGNsa1tJOTE1X01BWF9QSVBFU107CkBA IC02NDIsNiArNjQ5LDcgQEAgc3RydWN0IHNrbF9wbGFuZV93bSB7CiAJc3RydWN0IHNrbF93bV9s ZXZlbCB3bVs4XTsKIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHV2X3dtWzhdOwogCXN0cnVjdCBza2xf d21fbGV2ZWwgdHJhbnNfd207CisJc3RydWN0IHNrbF93bV9sZXZlbCBzYWd2X3dtX2wwOwogCWJv b2wgaXNfcGxhbmFyOwogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggMzYyMjM0NDQ5 MDg3Li5iNjFlYjZhYWE4OWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMzc1MSw3ICsz NzUxLDcgQEAgaW50ZWxfZGlzYWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAlyZXR1cm4gMDsKIH0KIAotYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCitib29sIHNrbF9jYW5fZW5hYmxlX3NhZ3Yoc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHN0YXRlLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7CkBAIC0zODE3LDYgKzM4MTcsOTUgQEAgYm9vbCBpbnRlbF9jYW5fZW5h YmxlX3NhZ3Yoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJuIHRydWU7 CiB9CiAKK2Jvb2wgaWNsX2Nhbl9lbmFibGVfc2FndihzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmJhc2UuZGV2Owor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YzsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNf c3RhdGU7CisJaW50IGxldmVsLCBsYXRlbmN5OworCWludCBpOworCWludCBwbGFuZV9pZDsKKwor CWlmICghaW50ZWxfaGFzX3NhZ3YoZGV2X3ByaXYpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgor CSAqIElmIHRoZXJlIGFyZSBubyBhY3RpdmUgQ1JUQ3MsIG5vIGFkZGl0aW9uYWwgY2hlY2tzIG5l ZWQgYmUgcGVyZm9ybWVkCisJICovCisJaWYgKGh3ZWlnaHQ4KHN0YXRlLT5hY3RpdmVfcGlwZXMp ID09IDApCisJCXJldHVybiB0cnVlOworCisJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3Rh dGUoc3RhdGUsIGNydGMsCisJCQkJCSAgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKKwkJdW5zaWdu ZWQgaW50IGZsYWdzID0gY3J0Yy0+YmFzZS5zdGF0ZS0+YWRqdXN0ZWRfbW9kZS5mbGFnczsKKwor CQlpZiAoZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKKwkJCXJldHVybiBmYWxzZTsK KworCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKKwkJCWNvbnRpbnVlOworCisJ CWZvcl9lYWNoX3BsYW5lX2lkX29uX2NydGMoY3J0YywgcGxhbmVfaWQpIHsKKwkJCXN0cnVjdCBz a2xfcGxhbmVfd20gKndtID0KKwkJCQkmbmV3X2NydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBs YW5lc1twbGFuZV9pZF07CisKKwkJCS8qIFNraXAgdGhpcyBwbGFuZSBpZiBpdCdzIG5vdCBlbmFi bGVkICovCisJCQlpZiAoIXdtLT53bVswXS5wbGFuZV9lbikKKwkJCQljb250aW51ZTsKKworCQkJ LyogRmluZCB0aGUgaGlnaGVzdCBlbmFibGVkIHdtIGxldmVsIGZvciB0aGlzIHBsYW5lICovCisJ CQlmb3IgKGxldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CisJCQkgICAgICF3bS0+ d21bbGV2ZWxdLnBsYW5lX2VuOyAtLWxldmVsKSB7CisJCQl9CisKKwkJCWxhdGVuY3kgPSBkZXZf cHJpdi0+d20uc2tsX2xhdGVuY3lbbGV2ZWxdOworCisJCQkvKgorCQkJICogSWYgYW55IG9mIHRo ZSBwbGFuZXMgb24gdGhpcyBwaXBlIGRvbid0IGVuYWJsZQorCQkJICogd20gbGV2ZWxzIHRoYXQg aW5jdXIgbWVtb3J5IGxhdGVuY2llcyBoaWdoZXIgdGhhbgorCQkJICogc2Fndl9ibG9ja190aW1l X3VzIHdlIGNhbid0IGVuYWJsZSBTQUdWLgorCQkJICovCisJCQlpZiAobGF0ZW5jeSA8IGRldl9w cml2LT5zYWd2X2Jsb2NrX3RpbWVfdXMpCisJCQkJcmV0dXJuIGZhbHNlOworCQl9CisJfQorCisJ cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgdGdsX2Nhbl9lbmFibGVfc2FndihzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKKwlzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CisJaW50IGk7CisKKwlpZiAoIXN0 YXRlLT5nZW4xMl9jYW5fc2FndikKKwkJcmV0dXJuIGZhbHNlOworCisJZm9yX2VhY2hfbmV3X2lu dGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsCisJCQkJCSAgICAgbmV3X2NydGNfc3RhdGUs IGkpIHsKKwkJdW5zaWduZWQgaW50IGZsYWdzID0gY3J0Yy0+YmFzZS5zdGF0ZS0+YWRqdXN0ZWRf bW9kZS5mbGFnczsKKworCQlpZiAoZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKKwkJ CXJldHVybiBmYWxzZTsKKwl9CisJcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgaW50ZWxfY2FuX2Vu YWJsZV9zYWd2KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg Pj0gMTIpCisJCXJldHVybiB0Z2xfY2FuX2VuYWJsZV9zYWd2KHN0YXRlKTsKKwllbHNlIGlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID09IDExKQorCQlyZXR1cm4gaWNsX2Nhbl9lbmFibGVfc2Fndihz dGF0ZSk7CisKKwlyZXR1cm4gc2tsX2Nhbl9lbmFibGVfc2FndihzdGF0ZSk7Cit9CisKIHN0YXRp YyB1MTYgaW50ZWxfZ2V0X2RkYl9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CQkJICAgICAgY29uc3QgdTY0IHRvdGFsX2RhdGFfcmF0ZSwKQEAgLTM5MzYsNiArNDAyNSw3IEBA IHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfd21fcGFyYW1zKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSBpbnQgY29sb3JfcGxhbmUpOwogc3RhdGljIHZvaWQg c2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCiAJCQkJIGludCBsZXZlbCwKKwkJCQkgdTMyIGxhdGVuY3ksCiAJCQkJIGNvbnN0IHN0 cnVjdCBza2xfd21fcGFyYW1zICp3cCwKIAkJCQkgY29uc3Qgc3RydWN0IHNrbF93bV9sZXZlbCAq cmVzdWx0X3ByZXYsCiAJCQkJIHN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdCAvKiBvdXQgKi8p OwpAQCAtMzk1OCw3ICs0MDQ4LDkgQEAgc2tsX2N1cnNvcl9hbGxvY2F0aW9uKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCVdBUk5fT04ocmV0KTsKIAogCWZvciAo bGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKLQkJc2tsX2NvbXB1dGVf cGxhbmVfd20oY3J0Y19zdGF0ZSwgbGV2ZWwsICZ3cCwgJndtLCAmd20pOworCQl1MzIgbGF0ZW5j eSA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeVtsZXZlbF07CisJCXNrbF9jb21wdXRlX3BsYW5l X3dtKGNydGNfc3RhdGUsIGxldmVsLCBsYXRlbmN5LCAmd3AsICZ3bSwgJndtKTsKKwogCQlpZiAo d20ubWluX2RkYl9hbGxvYyA9PSBVMTZfTUFYKQogCQkJYnJlYWs7CiAKQEAgLTQzMTAsNiArNDQw Miw2OCBAQCBpY2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlyZXR1cm4gdG90YWxfZGF0YV9yYXRlOwogfQogCitzdGF0 aWMgaW50Cit0Z2xfY2hlY2tfcGlwZV9maXRzX3NhZ3Zfd20oc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCisJCSAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAv KiBvdXQgKi8pCit7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+YmFzZS5j cnRjOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Yyk7CisJc3RydWN0IHNrbF9kZGJfZW50cnkgKmFsbG9jID0gJmNydGNfc3RhdGUtPndtLnNrbC5k ZGI7CisJdTE2IGFsbG9jX3NpemU7CisJdTE2IHRvdGFsW0k5MTVfTUFYX1BMQU5FU10gPSB7fTsK Kwl1NjQgdG90YWxfZGF0YV9yYXRlOworCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQ7CisJaW50IG51 bV9hY3RpdmU7CisJdTY0IHBsYW5lX2RhdGFfcmF0ZVtJOTE1X01BWF9QTEFORVNdID0ge307CisJ dTMyIGJsb2NrczsKKworCS8qCisJICogTm8gbmVlZCB0byBjaGVjayBnZW4gaGVyZSwgd2UgY2Fs bCB0aGlzIG9ubHkgZm9yIGdlbjEyCisJICovCisJdG90YWxfZGF0YV9yYXRlID0KKwkJaWNsX2dl dF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoY3J0Y19zdGF0ZSwKKwkJCQkJCSBwbGFuZV9kYXRh X3JhdGUpOworCisJc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhkZXZfcHJpdiwg Y3J0Y19zdGF0ZSwKKwkJCQkJICAgdG90YWxfZGF0YV9yYXRlLAorCQkJCQkgICBkZGIsIGFsbG9j LCAmbnVtX2FjdGl2ZSk7CisJYWxsb2Nfc2l6ZSA9IHNrbF9kZGJfZW50cnlfc2l6ZShhbGxvYyk7 CisJaWYgKGFsbG9jX3NpemUgPT0gMCkKKwkJcmV0dXJuIC1FTk9TUEM7CisKKwkvKiBBbGxvY2F0 ZSBmaXhlZCBudW1iZXIgb2YgYmxvY2tzIGZvciBjdXJzb3IuICovCisJdG90YWxbUExBTkVfQ1VS U09SXSA9IHNrbF9jdXJzb3JfYWxsb2NhdGlvbihjcnRjX3N0YXRlLCBudW1fYWN0aXZlKTsKKwlh bGxvY19zaXplIC09IHRvdGFsW1BMQU5FX0NVUlNPUl07CisJY3J0Y19zdGF0ZS0+d20uc2tsLnBs YW5lX2RkYl95W1BMQU5FX0NVUlNPUl0uc3RhcnQgPQorCQlhbGxvYy0+ZW5kIC0gdG90YWxbUExB TkVfQ1VSU09SXTsKKwljcnRjX3N0YXRlLT53bS5za2wucGxhbmVfZGRiX3lbUExBTkVfQ1VSU09S XS5lbmQgPSBhbGxvYy0+ZW5kOworCisJLyoKKwkgKiBEbyBjaGVjayBpZiB3ZSBjYW4gZml0IEww ICsgc2Fndl9ibG9ja190aW1lIGFuZAorCSAqIGRpc2FibGUgU0FHViBpZiB3ZSBjYW4ndC4KKwkg Ki8KKwlibG9ja3MgPSAwOworCWZvcl9lYWNoX3BsYW5lX2lkX29uX2NydGMoaW50ZWxfY3J0Yywg cGxhbmVfaWQpIHsKKwkJY29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqd20gPQorCQkJJmNydGNf c3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV9pZF07CisKKwkJaWYgKHBsYW5lX2lk ID09IFBMQU5FX0NVUlNPUikgeworCQkJaWYgKFdBUk5fT04od20tPnNhZ3Zfd21fbDAubWluX2Rk Yl9hbGxvYyA+CisJCQkJICAgIHRvdGFsW1BMQU5FX0NVUlNPUl0pKSB7CisJCQkJYmxvY2tzID0g VTMyX01BWDsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWNvbnRpbnVlOworCQl9CisKKwkJYmxvY2tz ICs9IHdtLT5zYWd2X3dtX2wwLm1pbl9kZGJfYWxsb2M7CisJCWlmIChibG9ja3MgPiBhbGxvY19z aXplKQorCQkJcmV0dXJuIC1FTk9TUEM7CisJfQorCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50 CiBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAJCSAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBvdXQgKi8pCkBA IC00NzM5LDEyICs0ODkzLDEyIEBAIHN0YXRpYyBib29sIHNrbF93bV9oYXNfbGluZXMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgbGV2ZWwpCiAKIHN0YXRpYyB2b2lkIHNr bF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAogCQkJCSBpbnQgbGV2ZWwsCisJCQkJIHUzMiBsYXRlbmN5LAogCQkJCSBjb25zdCBzdHJ1 Y3Qgc2tsX3dtX3BhcmFtcyAqd3AsCiAJCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fbGV2ZWwgKnJl c3VsdF9wcmV2LAogCQkJCSBzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHQgLyogb3V0ICovKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXUzMiBsYXRlbmN5ID0gZGV2X3ByaXYtPndtLnNrbF9sYXRl bmN5W2xldmVsXTsKIAl1aW50X2ZpeGVkXzE2XzE2X3QgbWV0aG9kMSwgbWV0aG9kMjsKIAl1aW50 X2ZpeGVkXzE2XzE2X3Qgc2VsZWN0ZWRfcmVzdWx0OwogCXUzMiByZXNfYmxvY2tzLCByZXNfbGlu ZXMsIG1pbl9kZGJfYWxsb2MgPSAwOwpAQCAtNDg2NSwxOSArNTAxOSw0NCBAQCBzdGF0aWMgdm9p ZCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIHN0YXRpYyB2b2lkCiBza2xfY29tcHV0ZV93bV9sZXZlbHMoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBza2xf d21fcGFyYW1zICp3bV9wYXJhbXMsCi0JCSAgICAgIHN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVs cykKKwkJICAgICAgc3RydWN0IHNrbF9wbGFuZV93bSAqcGxhbmVfd20sCisJCSAgICAgIGJvb2wg eXV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwogCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dt X21heF9sZXZlbChkZXZfcHJpdik7CisJLyoKKwkgKiBDaGVjayB3aGljaCBraW5kIG9mIHBsYW5l IGlzIGl0IGFuZCBiYXNlZCBvbiB0aGF0IGNhbGN1bGF0ZQorCSAqIGNvcnJlc3BvbmRlbnQgV00g bGV2ZWxzLgorCSAqLworCXN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVscyA9IHl1diA/IHBsYW5l X3dtLT51dl93bSA6IHBsYW5lX3dtLT53bTsKIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHRf cHJldiA9ICZsZXZlbHNbMF07CiAKIAlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVs OyBsZXZlbCsrKSB7CiAJCXN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdCA9ICZsZXZlbHNbbGV2 ZWxdOworCQl1MzIgbGF0ZW5jeSA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeVtsZXZlbF07CiAK LQkJc2tsX2NvbXB1dGVfcGxhbmVfd20oY3J0Y19zdGF0ZSwgbGV2ZWwsIHdtX3BhcmFtcywKLQkJ CQkgICAgIHJlc3VsdF9wcmV2LCByZXN1bHQpOworCQlza2xfY29tcHV0ZV9wbGFuZV93bShjcnRj X3N0YXRlLCBsZXZlbCwgbGF0ZW5jeSwKKwkJCQkgICAgIHdtX3BhcmFtcywgcmVzdWx0X3ByZXYs IHJlc3VsdCk7CiAKIAkJcmVzdWx0X3ByZXYgPSByZXN1bHQ7CisJCWlmIChsZXZlbCA9PSAwKSB7 CisJCQkvKgorCQkJICogRm9yIEdlbjEyIGlmIGl0IGlzIGFuIEwwIHdlIG5lZWQgdG8gYWxzbwor CQkJICogY29uc2lkZXIgc2Fndl9ibG9ja190aW1lIHdoZW4gY2FsY3VsYXRpbmcKKwkJCSAqIEww IHdhdGVybWFyayAtIHdlIHdpbGwgbmVlZCB0aGF0IHdoZW4gbWFraW5nCisJCQkgKiBhIGRlY2lz aW9uIHdoZXRoZXIgZW5hYmxlIFNBR1Ygb3Igbm90LgorCQkJICogRm9yIG9sZGVyIGdlbnMgd2Ug YWdyZWVkIHRvIGNvcHkgTDAgdmFsdWUgZm9yCisJCQkgKiBjb21wYXRpYmlsaXR5LgorCQkJICov CisJCQlpZiAoKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpKSB7CisJCQkJbGF0ZW5jeSArPSBk ZXZfcHJpdi0+c2Fndl9ibG9ja190aW1lX3VzOworCQkJCXNrbF9jb21wdXRlX3BsYW5lX3dtKGNy dGNfc3RhdGUsIGxldmVsLCBsYXRlbmN5LAorCQkJCSAgICAgd21fcGFyYW1zLCByZXN1bHRfcHJl diwKKwkJCQkgICAgJnBsYW5lX3dtLT5zYWd2X3dtX2wwKTsKKwkJCX0gZWxzZQorCQkJCW1lbWNw eSgmcGxhbmVfd20tPnNhZ3Zfd21fbDAsICZsZXZlbHNbMF0sCisJCQkJCXNpemVvZihzdHJ1Y3Qg c2tsX3dtX2xldmVsKSk7CisJCX0KIAl9CiB9CiAKQEAgLTQ5NzEsNyArNTE1MCw3IEBAIHN0YXRp YyBpbnQgc2tsX2J1aWxkX3BsYW5lX3dtX3NpbmdsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0Jc2tsX2NvbXB1dGVfd21f bGV2ZWxzKGNydGNfc3RhdGUsICZ3bV9wYXJhbXMsIHdtLT53bSk7CisJc2tsX2NvbXB1dGVfd21f bGV2ZWxzKGNydGNfc3RhdGUsICZ3bV9wYXJhbXMsIHdtLCBmYWxzZSk7CiAJc2tsX2NvbXB1dGVf dHJhbnNpdGlvbl93bShjcnRjX3N0YXRlLCAmd21fcGFyYW1zLCB3bSk7CiAKIAlyZXR1cm4gMDsK QEAgLTQ5OTMsNyArNTE3Miw3IEBAIHN0YXRpYyBpbnQgc2tsX2J1aWxkX3BsYW5lX3dtX3V2KHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWlmIChyZXQpCiAJCXJldHVybiBy ZXQ7CiAKLQlza2xfY29tcHV0ZV93bV9sZXZlbHMoY3J0Y19zdGF0ZSwgJndtX3BhcmFtcywgd20t PnV2X3dtKTsKKwlza2xfY29tcHV0ZV93bV9sZXZlbHMoY3J0Y19zdGF0ZSwgJndtX3BhcmFtcywg d20sIHRydWUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC01NTQxLDkgKzU3MjAsNjIgQEAgc3RhdGlj IGludCBza2xfd21fYWRkX2FmZmVjdGVkX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgdGdsX2NoZWNrX2FuZF9zZXRf c2FndihzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gc3RhdGUtPmJhc2UuZGV2OworCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsK KwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CisJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlOworCXN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24g KmRkYiA9ICZzdGF0ZS0+d21fcmVzdWx0cy5kZGI7CisJaW50IHJldCwgaTsKKworCS8qCisJICog TGV0cyBhc3N1bWUgd2UgY2FuIHRvbGVyYXRlIFNBR1YgZm9yIG5vdywKKwkgKiB1bnRpbCB3YXRl cm1hcmsgY2FsY3VsYXRpb25zIHByb3ZlIHRoZSBvcHBvc2l0ZQorCSAqIGlmIGFueSBvZiB0aGUg cGlwZSBwbGFuZXMgaW4gdGhlIHN0YXRlIHdpbGwKKwkgKiBmYWlsIHRoZSByZXF1aXJlbWVudHMg aXQgd2lsbCBiZSBhc3NpZ25lZCB0byBmYWxzZQorCSAqIGluIHNrbF9jb21wdXRlX2RkYi4KKwkg Ki8KKwlzdGF0ZS0+Z2VuMTJfY2FuX3NhZ3YgPSB0cnVlOworCisJZm9yX2VhY2hfb2xkbmV3X2lu dGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLAorCQkJCQkgICAg bmV3X2NydGNfc3RhdGUsIGkpIHsKKwkJcmV0ID0gdGdsX2NoZWNrX3BpcGVfZml0c19zYWd2X3dt KG5ld19jcnRjX3N0YXRlLCBkZGIpOworCQlpZiAocmV0KSB7CisJCQlzdGF0ZS0+Z2VuMTJfY2Fu X3NhZ3YgPSBmYWxzZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKHN0YXRlLT5nZW4xMl9j YW5fc2FndikgeworCQkvKgorCQkgKiBJZiB3ZSBkZXRlcm1pbmVkIHRoYXQgd2UgY2FuIGFjdHVh bGx5IGVuYWJsZSBTQUdWLCB0aGVuCisJCSAqIGFjdHVhbGx5IHVzZSB0aG9zZSBsZXZlbHMgdGds X2NoZWNrX3BpcGVfZml0c19zYWd2X3dtCisJCSAqIGhhcyBhbHJlYWR5IHRha2VuIGNhcmUgb2Yg Y2hlY2tpbmcgaWYgTDAgKyBzYWd2IGJsb2NrIHRpbWUKKwkJICogZml0cyBpbnRvIGRkYi4KKwkJ ICovCisJCWZvcl9lYWNoX29sZG5ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBv bGRfY3J0Y19zdGF0ZSwKKwkJCQkJICAgIG5ld19jcnRjX3N0YXRlLCBpKSB7CisJCQlzdHJ1Y3Qg aW50ZWxfcGxhbmUgKnBsYW5lOworCQkJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YygmZGV2 X3ByaXYtPmRybSwgY3J0YywgcGxhbmUpIHsKKwkJCQllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0g cGxhbmUtPmlkOworCQkJCXN0cnVjdCBza2xfcGxhbmVfd20gKnBsYW5lX3dtID0gXAorCQkJCSAg ICAmbmV3X2NydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV9pZF07CisJCQkJ c3RydWN0IHNrbF93bV9sZXZlbCAqc2Fndl93bTAgPSAmcGxhbmVfd20tPnNhZ3Zfd21fbDA7CisJ CQkJc3RydWN0IHNrbF93bV9sZXZlbCAqbDBfd20wID0gJnBsYW5lX3dtLT53bVswXTsKKworCQkJ CW1lbWNweShsMF93bTAsIHNhZ3Zfd20wLCBzaXplb2Yoc3RydWN0IHNrbF93bV9sZXZlbCkpOwor CQkJfQorCQl9CisJfQorfQorCiBzdGF0aWMgaW50CiBza2xfY29tcHV0ZV93bShzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3Rh dGUtPmJhc2UuZGV2OworCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9s ZF9jcnRjX3N0YXRlOwpAQCAtNTU1Myw2ICs1Nzg1LDkgQEAgc2tsX2NvbXB1dGVfd20oc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJLyogQ2xlYXIgYWxsIGRpcnR5IGZsYWdzICov CiAJcmVzdWx0cy0+ZGlydHlfcGlwZXMgPSAwOwogCisJLyogSWYgd2UgZXhpdCBiZWZvcmUgY2hl Y2sgaXMgZG9uZSAqLworCXN0YXRlLT5nZW4xMl9jYW5fc2FndiA9IGZhbHNlOworCiAJcmV0ID0g c2tsX2RkYl9hZGRfYWZmZWN0ZWRfcGlwZXMoc3RhdGUpOwogCWlmIChyZXQpCiAJCXJldHVybiBy ZXQ7CkBAIC01NTc5LDYgKzU4MTQsOSBAQCBza2xfY29tcHV0ZV93bShzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSkKIAkJCXJlc3VsdHMtPmRpcnR5X3BpcGVzIHw9IEJJVChjcnRjLT5w aXBlKTsKIAl9CiAKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKKwkJdGdsX2NoZWNr X2FuZF9zZXRfc2FndihzdGF0ZSk7CisKIAlyZXQgPSBza2xfY29tcHV0ZV9kZGIoc3RhdGUpOwog CWlmIChyZXQpCiAJCXJldHVybiByZXQ7Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==