From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 1/7] drm/atomic: Add new iterators over all state, v3. Date: Mon, 16 Jan 2017 10:37:38 +0100 Message-ID: <1484559464-27107-2-git-send-email-maarten.lankhorst@linux.intel.com> References: <1484559464-27107-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: In-Reply-To: <1484559464-27107-1-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QWRkIGZvcl9lYWNoXyhvbGQpKG5ldylfKHBsYW5lLGNvbm5lY3RvcixjcnRjKV9pbl9zdGF0ZSBp dGVyYXRvcnMgdG8KcmVwbGFjZSB0aGUgb2xkIGZvcl9lYWNoX3h4eF9pbl9zdGF0ZSBvbmVzLiBU aGlzIGlzIHVzZWZ1bCBmb3IgPjEgZmxpcApkZXB0aCBhbmQgZ2V0dGluZyByaWQgb2YgYWxsIHh4 eC0+c3RhdGUgZGVyZWZlcmVuY2VzLgoKVGhpcyByZXF1aXJlcyBleHRyYSBmaXh1cHMgZG9uZSB3 aGVuIGNvbW1pdHRpbmcgYSBzdGF0ZSBhZnRlcgpkdXBsaWNhdGluZywgd2hpY2ggaW4gZ2VuZXJh bCBpc24ndCB2YWxpZCBidXQgaXMgdXNlZCBieSBzdXNwZW5kL3Jlc3VtZS4KVG8gaGFuZGxlIHRo ZXNlLCBpbnRyb2R1Y2UgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2R1cGxpY2F0ZWRfc3RhdGUK d2hpY2ggcGVyZm9ybXMgdGhvc2UgZml4dXBzIGJlZm9yZSBjaGVja2luZyAmIGNvbW1pdHRpbmcg dGhlIHN0YXRlLgoKQ2hhbmdlcyBzaW5jZSB2MToKLSBSZW1vdmUgbm9uYmxvY2sgcGFyYW1ldGVy IGZvciBjb21taXRfZHVwbGljYXRlZF9zdGF0ZS4KQ2hhbmdlcyBzaW5jZSB2MjoKLSBVc2UgY29t bWl0X2R1cGxpY2F0ZWRfc3RhdGUgZm9yIGk5MTUgbG9hZCBkZXRlY3Rpb24uCi0gQWRkIFdBUk5f T04ob2xkX3N0YXRlICE9IG9iai0+c3RhdGUpIGJlZm9yZSBzd2FwcGluZy4KClNpZ25lZC1vZmYt Ynk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgIHwgIDYgKysrCiBkcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyAgfCA2NSArKysrKysrKysrKysrKysrKysr KysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTMgKysr LS0tCiBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmggICAgICAgICAgICAgfCA4MSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0KIGluY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVy LmggICAgICB8ICAyICsKIDUgZmlsZXMgY2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKyksIDE4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCmluZGV4IDY0MTRiY2Y3ZjQxYi4uMWMxY2JmNDM2 NzE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKQEAgLTI3NSw2ICsyNzUsOCBAQCBkcm1fYXRvbWljX2dl dF9jcnRjX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJcmV0dXJuIEVS Ul9QVFIoLUVOT01FTSk7CiAKIAlzdGF0ZS0+Y3J0Y3NbaW5kZXhdLnN0YXRlID0gY3J0Y19zdGF0 ZTsKKwlzdGF0ZS0+Y3J0Y3NbaW5kZXhdLm9sZF9zdGF0ZSA9IGNydGMtPnN0YXRlOworCXN0YXRl LT5jcnRjc1tpbmRleF0ubmV3X3N0YXRlID0gY3J0Y19zdGF0ZTsKIAlzdGF0ZS0+Y3J0Y3NbaW5k ZXhdLnB0ciA9IGNydGM7CiAJY3J0Y19zdGF0ZS0+c3RhdGUgPSBzdGF0ZTsKIApAQCAtNjkxLDYg KzY5Myw4IEBAIGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSwKIAogCXN0YXRlLT5wbGFuZXNbaW5kZXhdLnN0YXRlID0gcGxhbmVfc3RhdGU7 CiAJc3RhdGUtPnBsYW5lc1tpbmRleF0ucHRyID0gcGxhbmU7CisJc3RhdGUtPnBsYW5lc1tpbmRl eF0ub2xkX3N0YXRlID0gcGxhbmUtPnN0YXRlOworCXN0YXRlLT5wbGFuZXNbaW5kZXhdLm5ld19z dGF0ZSA9IHBsYW5lX3N0YXRlOwogCXBsYW5lX3N0YXRlLT5zdGF0ZSA9IHN0YXRlOwogCiAJRFJN X0RFQlVHX0FUT01JQygiQWRkZWQgW1BMQU5FOiVkOiVzXSAlcCBzdGF0ZSB0byAlcFxuIiwKQEAg LTEwMzEsNiArMTAzNSw4IEBAIGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAKIAlkcm1fY29ubmVjdG9yX3JlZmVyZW5jZShjb25u ZWN0b3IpOwogCXN0YXRlLT5jb25uZWN0b3JzW2luZGV4XS5zdGF0ZSA9IGNvbm5lY3Rvcl9zdGF0 ZTsKKwlzdGF0ZS0+Y29ubmVjdG9yc1tpbmRleF0ub2xkX3N0YXRlID0gY29ubmVjdG9yLT5zdGF0 ZTsKKwlzdGF0ZS0+Y29ubmVjdG9yc1tpbmRleF0ubmV3X3N0YXRlID0gY29ubmVjdG9yX3N0YXRl OwogCXN0YXRlLT5jb25uZWN0b3JzW2luZGV4XS5wdHIgPSBjb25uZWN0b3I7CiAJY29ubmVjdG9y X3N0YXRlLT5zdGF0ZSA9IHN0YXRlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmlu ZGV4IGIyNmUzNDE5MDI3ZS4uZDE1M2U4YTcyOTIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuYwpAQCAtMTk3MSwxMSArMTk3MSwxMSBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX3N3 YXBfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWludCBpOwogCWxvbmcg cmV0OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Ci0Jc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5fc3RhdGUsICpvbGRfY29ubl9zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwgKm9sZF9jcnRjX3N0YXRlOwogCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwot CXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOworCXN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKnBsYW5lX3N0YXRlLCAqb2xkX3BsYW5lX3N0YXRlOwogCXN0cnVjdCBkcm1fY3J0Y19j b21taXQgKmNvbW1pdDsKIAogCWlmIChzdGFsbCkgewpAQCAtMTk5OSwxMyArMTk5OSwxNyBAQCB2 b2lkIGRybV9hdG9taWNfaGVscGVyX3N3YXBfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlLAogCQl9CiAJfQogCi0JZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBj b25uZWN0b3IsIGNvbm5fc3RhdGUsIGkpIHsKKwlmb3JfZWFjaF9vbGRuZXdfY29ubmVjdG9yX2lu X3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIG9sZF9jb25uX3N0YXRlLCBjb25uX3N0YXRlLCBpKSB7 CisJCVdBUk5fT04oY29ubmVjdG9yLT5zdGF0ZSAhPSBvbGRfY29ubl9zdGF0ZSk7CisKIAkJY29u bmVjdG9yLT5zdGF0ZS0+c3RhdGUgPSBzdGF0ZTsKIAkJc3dhcChzdGF0ZS0+Y29ubmVjdG9yc1tp XS5zdGF0ZSwgY29ubmVjdG9yLT5zdGF0ZSk7CiAJCWNvbm5lY3Rvci0+c3RhdGUtPnN0YXRlID0g TlVMTDsKIAl9CiAKLQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0 YXRlLCBpKSB7CisJZm9yX2VhY2hfb2xkbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9s ZF9jcnRjX3N0YXRlLCBjcnRjX3N0YXRlLCBpKSB7CisJCVdBUk5fT04oY3J0Yy0+c3RhdGUgIT0g b2xkX2NydGNfc3RhdGUpOworCiAJCWNydGMtPnN0YXRlLT5zdGF0ZSA9IHN0YXRlOwogCQlzd2Fw KHN0YXRlLT5jcnRjc1tpXS5zdGF0ZSwgY3J0Yy0+c3RhdGUpOwogCQljcnRjLT5zdGF0ZS0+c3Rh dGUgPSBOVUxMOwpAQCAtMjAyMCw3ICsyMDI0LDkgQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9z d2FwX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJfQogCX0KIAotCWZv cl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpIHsKKwlm b3JfZWFjaF9vbGRuZXdfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxhbmVfc3Rh dGUsIHBsYW5lX3N0YXRlLCBpKSB7CisJCVdBUk5fT04ocGxhbmUtPnN0YXRlICE9IG9sZF9wbGFu ZV9zdGF0ZSk7CisKIAkJcGxhbmUtPnN0YXRlLT5zdGF0ZSA9IHN0YXRlOwogCQlzd2FwKHN0YXRl LT5wbGFuZXNbaV0uc3RhdGUsIHBsYW5lLT5zdGF0ZSk7CiAJCXBsYW5lLT5zdGF0ZS0+c3RhdGUg PSBOVUxMOwpAQCAtMjQ3MSw3ICsyNDc3LDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hl bHBlcl9kaXNhYmxlX2FsbCk7CiAgKgogICogU2VlIGFsc286CiAgKiBkcm1fYXRvbWljX2hlbHBl cl9kdXBsaWNhdGVfc3RhdGUoKSwgZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9hbGwoKSwKLSAq IGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZSgpCisgKiBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUo KSwgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2R1cGxpY2F0ZWRfc3RhdGUoKQogICovCiBzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX2F0b21pY19oZWxwZXJfc3VzcGVuZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogewpAQCAtMjUxMiw2ICsyNTE4LDQ3IEBAIHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQpOwogCiAvKioKKyAqIGRy bV9hdG9taWNfaGVscGVyX2NvbW1pdF9kdXBsaWNhdGVkX3N0YXRlIC0gY29tbWl0IGR1cGxpY2F0 ZWQgc3RhdGUKKyAqIEBzdGF0ZTogZHVwbGljYXRlZCBhdG9taWMgc3RhdGUgdG8gY29tbWl0Cisg KiBAY3R4OiBwb2ludGVyIHRvIGFjcXVpcmVfY3R4IHRvIHVzZSBmb3IgY29tbWl0LgorICoKKyAq IFRoZSBzdGF0ZSByZXR1cm5lZCBieSBkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUo KSBhbmQKKyAqIGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoKSBpcyBwYXJ0aWFsbHkgaW52YWxp ZCwgYW5kIG5lZWRzIHRvCisgKiBiZSBmaXhlZCB1cCBiZWZvcmUgY29tbWl0LgorICoKKyAqIFJl dHVybnM6CisgKiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1 cmUuCisgKgorICogU2VlIGFsc286CisgKiBkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKCkKKyAq LworaW50IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9kdXBsaWNhdGVkX3N0YXRlKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkJICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2Fj cXVpcmVfY3R4ICpjdHgpCit7CisJaW50IGk7CisJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CisJ c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CisJc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsK KwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlOworCisJc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4OworCisJZm9yX2VhY2hfbmV3X3BsYW5l X2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpCisJCXN0YXRlLT5wbGFuZXNb aV0ub2xkX3N0YXRlID0gcGxhbmUtPnN0YXRlOworCisJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3Rh dGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpCisJCXN0YXRlLT5jcnRjc1tpXS5vbGRfc3Rh dGUgPSBjcnRjLT5zdGF0ZTsKKworCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3Rh dGUsIGNvbm5lY3RvciwgY29ubl9zdGF0ZSwgaSkKKwkJc3RhdGUtPmNvbm5lY3RvcnNbaV0ub2xk X3N0YXRlID0gY29ubmVjdG9yLT5zdGF0ZTsKKworCXJldHVybiBkcm1fYXRvbWljX2NvbW1pdChz dGF0ZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9kdXBsaWNh dGVkX3N0YXRlKTsKKworLyoqCiAgKiBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUgLSBzdWJzeXN0 ZW0tbGV2ZWwgcmVzdW1lIGhlbHBlcgogICogQGRldjogRFJNIGRldmljZQogICogQHN0YXRlOiBh dG9taWMgc3RhdGUgdG8gcmVzdW1lIHRvCkBAIC0yNTM0LDkgKzI1ODEsOSBAQCBpbnQgZHJtX2F0 b21pY19oZWxwZXJfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaW50IGVycjsKIAog CWRybV9tb2RlX2NvbmZpZ19yZXNldChkZXYpOworCiAJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2 KTsKLQlzdGF0ZS0+YWNxdWlyZV9jdHggPSBjb25maWctPmFjcXVpcmVfY3R4OwotCWVyciA9IGRy bV9hdG9taWNfY29tbWl0KHN0YXRlKTsKKwllcnIgPSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRf ZHVwbGljYXRlZF9zdGF0ZShzdGF0ZSwgY29uZmlnLT5hY3F1aXJlX2N0eCk7CiAJZHJtX21vZGVz ZXRfdW5sb2NrX2FsbChkZXYpOwogCiAJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwppbmRleCBmNTIzMjU2ZWY3N2MuLjc0ZGExYzM4MGIzMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMzQ4OCw3ICszNDg4LDggQEAgc3RhdGljIHZvaWQg aW50ZWxfdXBkYXRlX3ByaW1hcnlfcGxhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIHN0 YXRpYyBpbnQKIF9faW50ZWxfZGlzcGxheV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK LQkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKKwkJICAgICAgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJICAgICAgIHN0cnVjdCBkcm1fbW9kZXNldF9h Y3F1aXJlX2N0eCAqY3R4KQogewogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsK IAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CkBAIC0zNTEyLDcgKzM1MTMsNyBAQCBfX2ludGVsX2Rp c3BsYXlfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJLyogaWdub3JlIGFueSByZXNl dCB2YWx1ZXMvQklPUyBsZWZ0b3ZlcnMgaW4gdGhlIFdNIHJlZ2lzdGVycyAqLwogCXRvX2ludGVs X2F0b21pY19zdGF0ZShzdGF0ZSktPnNraXBfaW50ZXJtZWRpYXRlX3dtID0gdHJ1ZTsKIAotCXJl dCA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9j b21taXRfZHVwbGljYXRlZF9zdGF0ZShzdGF0ZSwgY3R4KTsKIAogCVdBUk5fT04ocmV0ID09IC1F REVBRExLKTsKIAlyZXR1cm4gcmV0OwpAQCAtMzYwNiw3ICszNjA3LDcgQEAgdm9pZCBpbnRlbF9m aW5pc2hfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkJICovCiAJ CQlpbnRlbF91cGRhdGVfcHJpbWFyeV9wbGFuZXMoZGV2KTsKIAkJfSBlbHNlIHsKLQkJCXJldCA9 IF9faW50ZWxfZGlzcGxheV9yZXN1bWUoZGV2LCBzdGF0ZSk7CisJCQlyZXQgPSBfX2ludGVsX2Rp c3BsYXlfcmVzdW1lKGRldiwgc3RhdGUsIGN0eCk7CiAJCQlpZiAocmV0KQogCQkJCURSTV9FUlJP UigiUmVzdG9yaW5nIG9sZCBzdGF0ZSBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKIAkJfQpAQCAt MzYyNiw3ICszNjI3LDcgQEAgdm9pZCBpbnRlbF9maW5pc2hfcmVzZXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogCQkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cChk ZXZfcHJpdik7CiAJCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKIAotCQly ZXQgPSBfX2ludGVsX2Rpc3BsYXlfcmVzdW1lKGRldiwgc3RhdGUpOworCQlyZXQgPSBfX2ludGVs X2Rpc3BsYXlfcmVzdW1lKGRldiwgc3RhdGUsIGN0eCk7CiAJCWlmIChyZXQpCiAJCQlEUk1fRVJS T1IoIlJlc3RvcmluZyBvbGQgc3RhdGUgZmFpbGVkIHdpdGggJWlcbiIsIHJldCk7CiAKQEAgLTEx MzI3LDcgKzExMzI4LDcgQEAgdm9pZCBpbnRlbF9yZWxlYXNlX2xvYWRfZGV0ZWN0X3BpcGUoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAlpZiAoIXN0YXRlKQogCQlyZXR1cm47CiAK LQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CisJcmV0ID0gZHJtX2F0b21pY19oZWxw ZXJfY29tbWl0X2R1cGxpY2F0ZWRfc3RhdGUoc3RhdGUsIGN0eCk7CiAJaWYgKHJldCkKIAkJRFJN X0RFQlVHX0tNUygiQ291bGRuJ3QgcmVsZWFzZSBsb2FkIGRldGVjdCBwaXBlOiAlaVxuIiwgcmV0 KTsKIAlkcm1fYXRvbWljX3N0YXRlX3B1dChzdGF0ZSk7CkBAIC0xNzIxMCw3ICsxNzIxMSw3IEBA IHZvaWQgaW50ZWxfZGlzcGxheV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiAK IAlpZiAoIXJldCkKLQkJcmV0ID0gX19pbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYsIHN0YXRlKTsK KwkJcmV0ID0gX19pbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYsIHN0YXRlLCAmY3R4KTsKIAogCWRy bV9tb2Rlc2V0X2Ryb3BfbG9ja3MoJmN0eCk7CiAJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZj dHgpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oIGIvaW5jbHVkZS9kcm0v ZHJtX2F0b21pYy5oCmluZGV4IGY5NjIyMGVkNDAwNC4uNjA2MmU3ZjI3MzI1IDEwMDY0NAotLS0g YS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5o CkBAIC0xMzcsMTIgKzEzNywxMiBAQCBzdHJ1Y3QgZHJtX2NydGNfY29tbWl0IHsKIAogc3RydWN0 IF9fZHJtX3BsYW5lc19zdGF0ZSB7CiAJc3RydWN0IGRybV9wbGFuZSAqcHRyOwotCXN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnN0YXRlOworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlLCAq b2xkX3N0YXRlLCAqbmV3X3N0YXRlOwogfTsKIAogc3RydWN0IF9fZHJtX2NydGNzX3N0YXRlIHsK IAlzdHJ1Y3QgZHJtX2NydGMgKnB0cjsKLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlOwor CXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUsICpvbGRfc3RhdGUsICpuZXdfc3RhdGU7CiAJ c3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0OwogCXM2NCBfX3VzZXIgKm91dF9mZW5jZV9w dHI7CiAJdW5zaWduZWQgbGFzdF92YmxhbmtfY291bnQ7CkBAIC0xNTAsNyArMTUwLDcgQEAgc3Ry dWN0IF9fZHJtX2NydGNzX3N0YXRlIHsKIAogc3RydWN0IF9fZHJtX2Nvbm5uZWN0b3JzX3N0YXRl IHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqcHRyOwotCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpzdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUsICpvbGRfc3Rh dGUsICpuZXdfc3RhdGU7CiB9OwogCiAvKioKQEAgLTM5Nyw2ICszOTcsMzEgQEAgdm9pZCBkcm1f c3RhdGVfZHVtcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAp OwogCSAgICAgKF9faSkrKykJCQkJCQkJXAogCQlmb3JfZWFjaF9pZiAoY29ubmVjdG9yKQogCisj ZGVmaW5lIGZvcl9lYWNoX29sZG5ld19jb25uZWN0b3JfaW5fc3RhdGUoX19zdGF0ZSwgY29ubmVj dG9yLCBvbGRfY29ubmVjdG9yX3N0YXRlLCBuZXdfY29ubmVjdG9yX3N0YXRlLCBfX2kpIFwKKwlm b3IgKChfX2kpID0gMDsJCQkJCQkJCVwKKwkgICAgIChfX2kpIDwgKF9fc3RhdGUpLT5udW1fY29u bmVjdG9yICYmCQkJCVwKKwkgICAgICgoY29ubmVjdG9yKSA9IChfX3N0YXRlKS0+Y29ubmVjdG9y c1tfX2ldLnB0ciwJCQlcCisJICAgICAob2xkX2Nvbm5lY3Rvcl9zdGF0ZSkgPSAoX19zdGF0ZSkt PmNvbm5lY3RvcnNbX19pXS5vbGRfc3RhdGUsCVwKKwkgICAgIChuZXdfY29ubmVjdG9yX3N0YXRl KSA9IChfX3N0YXRlKS0+Y29ubmVjdG9yc1tfX2ldLm5ld19zdGF0ZSwgMSk7IAlcCisJICAgICAo X19pKSsrKQkJCQkJCQlcCisJCWZvcl9lYWNoX2lmIChjb25uZWN0b3IpCisKKyNkZWZpbmUgZm9y X2VhY2hfb2xkX2Nvbm5lY3Rvcl9pbl9zdGF0ZShfX3N0YXRlLCBjb25uZWN0b3IsIG9sZF9jb25u ZWN0b3Jfc3RhdGUsIF9faSkgXAorCWZvciAoKF9faSkgPSAwOwkJCQkJCQkJXAorCSAgICAgKF9f aSkgPCAoX19zdGF0ZSktPm51bV9jb25uZWN0b3IgJiYJCQkJXAorCSAgICAgKChjb25uZWN0b3Ip ID0gKF9fc3RhdGUpLT5jb25uZWN0b3JzW19faV0ucHRyLAkJCVwKKwkgICAgIChvbGRfY29ubmVj dG9yX3N0YXRlKSA9IChfX3N0YXRlKS0+Y29ubmVjdG9yc1tfX2ldLm9sZF9zdGF0ZSwgMSk7IAlc CisJICAgICAoX19pKSsrKQkJCQkJCQlcCisJCWZvcl9lYWNoX2lmIChjb25uZWN0b3IpCisKKyNk ZWZpbmUgZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShfX3N0YXRlLCBjb25uZWN0b3Is IG5ld19jb25uZWN0b3Jfc3RhdGUsIF9faSkgXAorCWZvciAoKF9faSkgPSAwOwkJCQkJCQkJXAor CSAgICAgKF9faSkgPCAoX19zdGF0ZSktPm51bV9jb25uZWN0b3IgJiYJCQkJXAorCSAgICAgKChj b25uZWN0b3IpID0gKF9fc3RhdGUpLT5jb25uZWN0b3JzW19faV0ucHRyLAkJCVwKKwkgICAgIChu ZXdfY29ubmVjdG9yX3N0YXRlKSA9IChfX3N0YXRlKS0+Y29ubmVjdG9yc1tfX2ldLm5ld19zdGF0 ZSwgMSk7IAlcCisJICAgICAoX19pKSsrKQkJCQkJCQlcCisJCWZvcl9lYWNoX2lmIChjb25uZWN0 b3IpCisKICNkZWZpbmUgZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShfX3N0YXRlLCBjcnRjLCBjcnRj X3N0YXRlLCBfX2kpCVwKIAlmb3IgKChfX2kpID0gMDsJCQkJCQlcCiAJICAgICAoX19pKSA8IChf X3N0YXRlKS0+ZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YyAmJglcCkBAIC00MDUsNiArNDMwLDMx IEBAIHZvaWQgZHJtX3N0YXRlX2R1bXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRy bV9wcmludGVyICpwKTsKIAkgICAgIChfX2kpKyspCQkJCQkJXAogCQlmb3JfZWFjaF9pZiAoY3J0 Y19zdGF0ZSkKIAorI2RlZmluZSBmb3JfZWFjaF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShfX3N0YXRl LCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUsIF9faSkgXAorCWZvciAoKF9f aSkgPSAwOwkJCQkJCQlcCisJICAgICAoX19pKSA8IChfX3N0YXRlKS0+ZGV2LT5tb2RlX2NvbmZp Zy5udW1fY3J0YyAmJgkJXAorCSAgICAgKChjcnRjKSA9IChfX3N0YXRlKS0+Y3J0Y3NbX19pXS5w dHIsCQkJXAorCSAgICAgKG9sZF9jcnRjX3N0YXRlKSA9IChfX3N0YXRlKS0+Y3J0Y3NbX19pXS5v bGRfc3RhdGUsCVwKKwkgICAgIChuZXdfY3J0Y19zdGF0ZSkgPSAoX19zdGF0ZSktPmNydGNzW19f aV0ubmV3X3N0YXRlLCAxKTsJXAorCSAgICAgKF9faSkrKykJCQkJCQkJXAorCQlmb3JfZWFjaF9p ZiAoY3J0YykKKworI2RlZmluZSBmb3JfZWFjaF9vbGRfY3J0Y19pbl9zdGF0ZShfX3N0YXRlLCBj cnRjLCBvbGRfY3J0Y19zdGF0ZSwgX19pKQlcCisJZm9yICgoX19pKSA9IDA7CQkJCQkJCVwKKwkg ICAgIChfX2kpIDwgKF9fc3RhdGUpLT5kZXYtPm1vZGVfY29uZmlnLm51bV9jcnRjICYmCQlcCisJ ICAgICAoKGNydGMpID0gKF9fc3RhdGUpLT5jcnRjc1tfX2ldLnB0ciwJCQlcCisJICAgICAob2xk X2NydGNfc3RhdGUpID0gKF9fc3RhdGUpLT5jcnRjc1tfX2ldLm9sZF9zdGF0ZSwgMSk7CVwKKwkg ICAgIChfX2kpKyspCQkJCQkJCVwKKwkJZm9yX2VhY2hfaWYgKGNydGMpCisKKyNkZWZpbmUgZm9y X2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoX19zdGF0ZSwgY3J0YywgbmV3X2NydGNfc3RhdGUsIF9f aSkJXAorCWZvciAoKF9faSkgPSAwOwkJCQkJCQlcCisJICAgICAoX19pKSA8IChfX3N0YXRlKS0+ ZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YyAmJgkJXAorCSAgICAgKChjcnRjKSA9IChfX3N0YXRl KS0+Y3J0Y3NbX19pXS5wdHIsCQkJXAorCSAgICAgKG5ld19jcnRjX3N0YXRlKSA9IChfX3N0YXRl KS0+Y3J0Y3NbX19pXS5uZXdfc3RhdGUsIDEpOwlcCisJICAgICAoX19pKSsrKQkJCQkJCQlcCisJ CWZvcl9lYWNoX2lmIChjcnRjKQorCiAjZGVmaW5lIGZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKF9f c3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgX19pKQkJXAogCWZvciAoKF9faSkgPSAwOwkJCQkJ CQlcCiAJICAgICAoX19pKSA8IChfX3N0YXRlKS0+ZGV2LT5tb2RlX2NvbmZpZy5udW1fdG90YWxf cGxhbmUgJiYJXApAQCAtNDEzLDYgKzQ2MywzMSBAQCB2b2lkIGRybV9zdGF0ZV9kdW1wKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fcHJpbnRlciAqcCk7CiAJICAgICAoX19pKSsr KQkJCQkJCQlcCiAJCWZvcl9lYWNoX2lmIChwbGFuZV9zdGF0ZSkKIAorI2RlZmluZSBmb3JfZWFj aF9vbGRuZXdfcGxhbmVfaW5fc3RhdGUoX19zdGF0ZSwgcGxhbmUsIG9sZF9wbGFuZV9zdGF0ZSwg bmV3X3BsYW5lX3N0YXRlLCBfX2kpIFwKKwlmb3IgKChfX2kpID0gMDsJCQkJCQkJXAorCSAgICAg KF9faSkgPCAoX19zdGF0ZSktPmRldi0+bW9kZV9jb25maWcubnVtX3RvdGFsX3BsYW5lICYmCVwK KwkgICAgICgocGxhbmUpID0gKF9fc3RhdGUpLT5wbGFuZXNbX19pXS5wdHIsCQkJXAorCSAgICAg KG9sZF9wbGFuZV9zdGF0ZSkgPSAoX19zdGF0ZSktPnBsYW5lc1tfX2ldLm9sZF9zdGF0ZSwJXAor CSAgICAgKG5ld19wbGFuZV9zdGF0ZSkgPSAoX19zdGF0ZSktPnBsYW5lc1tfX2ldLm5ld19zdGF0 ZSwgMSk7CVwKKwkgICAgIChfX2kpKyspCQkJCQkJCVwKKwkJZm9yX2VhY2hfaWYgKHBsYW5lKQor CisjZGVmaW5lIGZvcl9lYWNoX29sZF9wbGFuZV9pbl9zdGF0ZShfX3N0YXRlLCBwbGFuZSwgb2xk X3BsYW5lX3N0YXRlLCBfX2kpIFwKKwlmb3IgKChfX2kpID0gMDsJCQkJCQkJXAorCSAgICAgKF9f aSkgPCAoX19zdGF0ZSktPmRldi0+bW9kZV9jb25maWcubnVtX3RvdGFsX3BsYW5lICYmCVwKKwkg ICAgICgocGxhbmUpID0gKF9fc3RhdGUpLT5wbGFuZXNbX19pXS5wdHIsCQkJXAorCSAgICAgKG9s ZF9wbGFuZV9zdGF0ZSkgPSAoX19zdGF0ZSktPnBsYW5lc1tfX2ldLm9sZF9zdGF0ZSwgMSk7CVwK KwkgICAgIChfX2kpKyspCQkJCQkJCVwKKwkJZm9yX2VhY2hfaWYgKHBsYW5lKQorCisjZGVmaW5l IGZvcl9lYWNoX25ld19wbGFuZV9pbl9zdGF0ZShfX3N0YXRlLCBwbGFuZSwgbmV3X3BsYW5lX3N0 YXRlLCBfX2kpIFwKKwlmb3IgKChfX2kpID0gMDsJCQkJCQkJXAorCSAgICAgKF9faSkgPCAoX19z dGF0ZSktPmRldi0+bW9kZV9jb25maWcubnVtX3RvdGFsX3BsYW5lICYmCVwKKwkgICAgICgocGxh bmUpID0gKF9fc3RhdGUpLT5wbGFuZXNbX19pXS5wdHIsCQkJXAorCSAgICAgKG5ld19wbGFuZV9z dGF0ZSkgPSAoX19zdGF0ZSktPnBsYW5lc1tfX2ldLm5ld19zdGF0ZSwgMSk7CVwKKwkgICAgIChf X2kpKyspCQkJCQkJCVwKKwkJZm9yX2VhY2hfaWYgKHBsYW5lKQorCiAvKioKICAqIGRybV9hdG9t aWNfY3J0Y19uZWVkc19tb2Rlc2V0IC0gY29tcHV0ZSBjb21iaW5lZCBtb2Rlc2V0IG5lZWQKICAq IEBzdGF0ZTogJmRybV9jcnRjX3N0YXRlIGZvciB0aGUgQ1JUQwpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVy LmgKaW5kZXggOWFmY2QzODEwNzg1Li4yYzQ1NDllOThjMTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuaApAQCAtMTA1LDYgKzEwNSw4IEBAIGludCBfX2RybV9hdG9taWNfaGVscGVyX3NldF9jb25m aWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0LAogaW50IGRybV9hdG9taWNfaGVscGVyX2Rpc2Fi bGVfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICBzdHJ1Y3QgZHJtX21vZGVzZXRf YWNxdWlyZV9jdHggKmN0eCk7CiBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX2F0b21pY19o ZWxwZXJfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2ludCBkcm1fYXRvbWljX2hl bHBlcl9jb21taXRfZHVwbGljYXRlZF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUsCisJCQkJCSAgICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKIGlu dCBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAg ICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIAotLSAKMi43LjQKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=