From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v2 02/18] drm/i915: Track plane fifo sizes under intel_crtc Date: Thu, 16 Feb 2017 20:07:35 +0200 Message-ID: <20170216180751.3097-3-ville.syrjala@linux.intel.com> References: <20170216180751.3097-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 56B8C6EBF4 for ; Thu, 16 Feb 2017 18:08:00 +0000 (UTC) In-Reply-To: <20170216180751.3097-1-ville.syrjala@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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClRy YWNrIHRoZSBwbGFuZSBmaWZvIHNpemVzIHVuZGVyIGludGVsX2NydGMgaW5zdGVhZCBvZiB1bmRl ciBlYWNoCmludGVsX3BsYW5lLiBBdm9pZHMgbG9vcGluZyBvdmVyIHRoZSBwbGFuZXMgaW4gYSBi dW5jaCBvZiBwbGFjZXMsCmFuZCBsYXRlciB3ZSdsbCBtb3ZlIHRoaXMgdHJhY2tpbmcgaW50byB0 aGUgY3J0YyBzdGF0ZSBwcm9wZXJseS4KCnYyOiBOdWtlIGludGVsX3BsYW5lX3dtX3BhcmFtZXRl cnMgKE1hYXJ0ZW4pCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0 ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCB8ICAzMiArKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyAgfCAxMTUgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZp bGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDkzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKaW5kZXggZTFmMjhkZDYxODIxLi5hNmVlMDViMDQwNGEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCkBAIC03MDUsNiArNzA1LDEwIEBAIHN0cnVjdCB2bHZfd21fc3Rh dGUgewogCWJvb2wgY3hzcjsKIH07CiAKK3N0cnVjdCB2bHZfZmlmb19zdGF0ZSB7CisJdWludDE2 X3QgcGxhbmVbSTkxNV9NQVhfUExBTkVTXTsKK307CisKIHN0cnVjdCBpbnRlbF9jcnRjIHsKIAlz dHJ1Y3QgZHJtX2NydGMgYmFzZTsKIAllbnVtIHBpcGUgcGlwZTsKQEAgLTc1NCw2ICs3NTgsOCBA QCBzdHJ1Y3QgaW50ZWxfY3J0YyB7CiAKIAkJLyogYWxsb3cgQ3hTUiBvbiB0aGlzIHBpcGUgKi8K IAkJYm9vbCBjeHNyX2FsbG93ZWQ7CisKKwkJc3RydWN0IHZsdl9maWZvX3N0YXRlIGZpZm9fc3Rh dGU7CiAJfSB3bTsKIAogCWludCBzY2FubGluZV9vZmZzZXQ7CkBAIC03NzEsMjUgKzc3Nyw2IEBA IHN0cnVjdCBpbnRlbF9jcnRjIHsKIAlzdHJ1Y3Qgdmx2X3dtX3N0YXRlIHdtX3N0YXRlOwogfTsK IAotc3RydWN0IGludGVsX3BsYW5lX3dtX3BhcmFtZXRlcnMgewotCXVpbnQzMl90IGhvcml6X3Bp eGVsczsKLQl1aW50MzJfdCB2ZXJ0X3BpeGVsczsKLQkvKgotCSAqICAgRm9yIHBhY2tlZCBwaXhl bCBmb3JtYXRzOgotCSAqICAgICBieXRlc19wZXJfcGl4ZWwgLSBob2xkcyBieXRlcyBwZXIgcGl4 ZWwKLQkgKiAgIEZvciBwbGFuYXIgcGl4ZWwgZm9ybWF0czoKLQkgKiAgICAgYnl0ZXNfcGVyX3Bp eGVsIC0gaG9sZHMgYnl0ZXMgcGVyIHBpeGVsIGZvciB1di1wbGFuZQotCSAqICAgICB5X2J5dGVz X3Blcl9waXhlbCAtIGhvbGRzIGJ5dGVzIHBlciBwaXhlbCBmb3IgeS1wbGFuZQotCSAqLwotCXVp bnQ4X3QgYnl0ZXNfcGVyX3BpeGVsOwotCXVpbnQ4X3QgeV9ieXRlc19wZXJfcGl4ZWw7Ci0JYm9v bCBlbmFibGVkOwotCWJvb2wgc2NhbGVkOwotCXU2NCB0aWxpbmc7Ci0JdW5zaWduZWQgaW50IHJv dGF0aW9uOwotCXVpbnQxNl90IGZpZm9fc2l6ZTsKLX07Ci0KIHN0cnVjdCBpbnRlbF9wbGFuZSB7 CiAJc3RydWN0IGRybV9wbGFuZSBiYXNlOwogCXU4IHBsYW5lOwpAQCAtNzk5LDEzICs3ODYsNiBA QCBzdHJ1Y3QgaW50ZWxfcGxhbmUgewogCWludCBtYXhfZG93bnNjYWxlOwogCXVpbnQzMl90IGZy b250YnVmZmVyX2JpdDsKIAotCS8qIFNpbmNlIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSB3YXRlcm1h cmtzIGJlZm9yZS9hZnRlcgotCSAqIGVuYWJsaW5nL2Rpc2FibGluZyB0aGUgcGxhbmVzLCB3ZSBu ZWVkIHRvIHN0b3JlIHRoZSBwYXJhbWV0ZXJzIGhlcmUKLQkgKiBhcyB0aGUgb3RoZXIgcGllY2Vz IG9mIHRoZSBzdHJ1Y3QgbWF5IG5vdCByZWZsZWN0IHRoZSB2YWx1ZXMgd2Ugd2FudAotCSAqIGZv ciB0aGUgd2F0ZXJtYXJrIGNhbGN1bGF0aW9ucy4gQ3VycmVudGx5IG9ubHkgSGFzd2VsbCB1c2Vz IHRoaXMuCi0JICovCi0Jc3RydWN0IGludGVsX3BsYW5lX3dtX3BhcmFtZXRlcnMgd207Ci0KIAkv KgogCSAqIE5PVEU6IERvIG5vdCBwbGFjZSBuZXcgcGxhbmUgc3RhdGUgZmllbGRzIGhlcmUgKGUu Zy4sIHdoZW4gYWRkaW5nCiAJICogbmV3IHBsYW5lIHByb3BlcnRpZXMpLiAgTmV3IHJ1bnRpbWUg c3RhdGUgc2hvdWxkIG5vdyBiZSBwbGFjZWQgaW4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4 IGZlMjQzYzY1ZGUxYS4uMDY4MjY5NDU1NzZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAg LTQwNSwxNSArNDA1LDE0IEBAIHN0YXRpYyBjb25zdCBpbnQgcGVzc2ltYWxfbGF0ZW5jeV9ucyA9 IDUwMDA7CiAjZGVmaW5lIFZMVl9GSUZPX1NUQVJUKGRzcGFyYiwgZHNwYXJiMiwgbG9fc2hpZnQs IGhpX3NoaWZ0KSBcCiAJKCgoKGRzcGFyYikgPj4gKGxvX3NoaWZ0KSkgJiAweGZmKSB8ICgoKChk c3BhcmIyKSA+PiAoaGlfc2hpZnQpKSAmIDB4MSkgPDwgOCkpCiAKLXN0YXRpYyBpbnQgdmx2X2dl dF9maWZvX3NpemUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKK3N0YXRpYyB2b2lkIHZsdl9n ZXRfZmlmb19zaXplKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogewotCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKLQlpbnQgc3By aXRlMF9zdGFydCwgc3ByaXRlMV9zdGFydCwgc2l6ZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKKwlzdHJ1Y3Qgdmx2X2ZpZm9f c3RhdGUgKmZpZm9fc3RhdGUgPSAmY3J0Yy0+d20uZmlmb19zdGF0ZTsKKwllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7CisJaW50IHNwcml0ZTBfc3RhcnQsIHNwcml0ZTFfc3RhcnQ7CiAKLQlp ZiAocGxhbmUtPmlkID09IFBMQU5FX0NVUlNPUikKLQkJcmV0dXJuIDYzOwotCi0Jc3dpdGNoIChw bGFuZS0+cGlwZSkgeworCXN3aXRjaCAocGlwZSkgewogCQl1aW50MzJfdCBkc3BhcmIsIGRzcGFy YjIsIGRzcGFyYjM7CiAJY2FzZSBQSVBFX0E6CiAJCWRzcGFyYiA9IEk5MTVfUkVBRChEU1BBUkIp OwpAQCAtNDM0LDI2ICs0MzMsMjEgQEAgc3RhdGljIGludCB2bHZfZ2V0X2ZpZm9fc2l6ZShzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQogCQlzcHJpdGUxX3N0YXJ0ID0gVkxWX0ZJRk9fU1RBUlQo ZHNwYXJiMywgZHNwYXJiMiwgOCwgMjApOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlyZXR1cm4g MDsKKwkJTUlTU0lOR19DQVNFKHBpcGUpOworCQlyZXR1cm47CiAJfQogCi0Jc3dpdGNoIChwbGFu ZS0+aWQpIHsKLQljYXNlIFBMQU5FX1BSSU1BUlk6Ci0JCXNpemUgPSBzcHJpdGUwX3N0YXJ0Owot CQlicmVhazsKLQljYXNlIFBMQU5FX1NQUklURTA6Ci0JCXNpemUgPSBzcHJpdGUxX3N0YXJ0IC0g c3ByaXRlMF9zdGFydDsKLQkJYnJlYWs7Ci0JY2FzZSBQTEFORV9TUFJJVEUxOgotCQlzaXplID0g NTEyIC0gMSAtIHNwcml0ZTFfc3RhcnQ7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCXJldHVybiAw OwotCX0KLQotCURSTV9ERUJVR19LTVMoIiVzIEZJRk8gc2l6ZTogJWRcbiIsIHBsYW5lLT5iYXNl Lm5hbWUsIHNpemUpOworCWZpZm9fc3RhdGUtPnBsYW5lW1BMQU5FX1BSSU1BUlldID0gc3ByaXRl MF9zdGFydDsKKwlmaWZvX3N0YXRlLT5wbGFuZVtQTEFORV9TUFJJVEUwXSA9IHNwcml0ZTFfc3Rh cnQgLSBzcHJpdGUwX3N0YXJ0OworCWZpZm9fc3RhdGUtPnBsYW5lW1BMQU5FX1NQUklURTFdID0g NTExIC0gc3ByaXRlMV9zdGFydDsKKwlmaWZvX3N0YXRlLT5wbGFuZVtQTEFORV9DVVJTT1JdID0g NjM7CiAKLQlyZXR1cm4gc2l6ZTsKKwlEUk1fREVCVUdfS01TKCJQaXBlICVjIEZJRk8gc2l6ZTog JWQvJWQvJWQvJWRcbiIsCisJCSAgICAgIHBpcGVfbmFtZShwaXBlKSwKKwkJICAgICAgZmlmb19z dGF0ZS0+cGxhbmVbUExBTkVfUFJJTUFSWV0sCisJCSAgICAgIGZpZm9fc3RhdGUtPnBsYW5lW1BM QU5FX1NQUklURTBdLAorCQkgICAgICBmaWZvX3N0YXRlLT5wbGFuZVtQTEFORV9TUFJJVEUxXSwK KwkJICAgICAgZmlmb19zdGF0ZS0+cGxhbmVbUExBTkVfQ1VSU09SXSk7CiB9CiAKIHN0YXRpYyBp bnQgaTl4eF9nZXRfZmlmb19zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg aW50IHBsYW5lKQpAQCAtMTAzMSw4ICsxMDI1LDkgQEAgc3RhdGljIHVpbnQxNl90IHZsdl9jb21w dXRlX3dtX2xldmVsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CiBzdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV9maWZvKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQog ewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3Qgdmx2 X3dtX3N0YXRlICp3bV9zdGF0ZSA9ICZjcnRjLT53bV9zdGF0ZTsKKwlzdHJ1Y3Qgdmx2X2ZpZm9f c3RhdGUgKmZpZm9fc3RhdGUgPSAmY3J0Yy0+d20uZmlmb19zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsK IAl1bnNpZ25lZCBpbnQgdG90YWxfcmF0ZSA9IDA7CiAJY29uc3QgaW50IGZpZm9fc2l6ZSA9IDUx MiAtIDE7CkBAIC0xMDQyLDcgKzEwMzcsNyBAQCBzdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV9maWZv KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0 YXRlID0KIAkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRlKTsKIAotCQlp ZiAocGxhbmUtPmJhc2UudHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpCisJCWlmIChwbGFu ZS0+aWQgPT0gUExBTkVfQ1VSU09SKQogCQkJY29udGludWU7CiAKIAkJaWYgKHN0YXRlLT5iYXNl LnZpc2libGUpIHsKQEAgLTEwNTYsMTkgKzEwNTEsMTkgQEAgc3RhdGljIHZvaWQgdmx2X2NvbXB1 dGVfZmlmbyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAkJCXRvX2ludGVsX3BsYW5lX3N0YXRl KHBsYW5lLT5iYXNlLnN0YXRlKTsKIAkJdW5zaWduZWQgaW50IHJhdGU7CiAKLQkJaWYgKHBsYW5l LT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKSB7Ci0JCQlwbGFuZS0+d20uZmlm b19zaXplID0gNjM7CisJCWlmIChwbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SKSB7CisJCQlmaWZv X3N0YXRlLT5wbGFuZVtwbGFuZS0+aWRdID0gNjM7CiAJCQljb250aW51ZTsKIAkJfQogCiAJCWlm ICghc3RhdGUtPmJhc2UudmlzaWJsZSkgewotCQkJcGxhbmUtPndtLmZpZm9fc2l6ZSA9IDA7CisJ CQlmaWZvX3N0YXRlLT5wbGFuZVtwbGFuZS0+aWRdID0gMDsKIAkJCWNvbnRpbnVlOwogCQl9CiAK IAkJcmF0ZSA9IHN0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKLQkJcGxhbmUtPndtLmZp Zm9fc2l6ZSA9IGZpZm9fc2l6ZSAqIHJhdGUgLyB0b3RhbF9yYXRlOwotCQlmaWZvX2xlZnQgLT0g cGxhbmUtPndtLmZpZm9fc2l6ZTsKKwkJZmlmb19zdGF0ZS0+cGxhbmVbcGxhbmUtPmlkXSA9IGZp Zm9fc2l6ZSAqIHJhdGUgLyB0b3RhbF9yYXRlOworCQlmaWZvX2xlZnQgLT0gZmlmb19zdGF0ZS0+ cGxhbmVbcGxhbmUtPmlkXTsKIAl9CiAKIAlmaWZvX2V4dHJhID0gRElWX1JPVU5EX1VQKGZpZm9f bGVmdCwgd21fc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzID86IDEpOwpAQCAtMTA4MCwxNiArMTA3 NSwxNiBAQCBzdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV9maWZvKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQogCQlpZiAoZmlmb19sZWZ0ID09IDApCiAJCQlicmVhazsKIAotCQlpZiAocGxhbmUtPmJh c2UudHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpCisJCWlmIChwbGFuZS0+aWQgPT0gUExB TkVfQ1VSU09SKQogCQkJY29udGludWU7CiAKIAkJLyogZ2l2ZSBpdCBhbGwgdG8gdGhlIGZpcnN0 IHBsYW5lIGlmIG5vbmUgYXJlIGFjdGl2ZSAqLwotCQlpZiAocGxhbmUtPndtLmZpZm9fc2l6ZSA9 PSAwICYmCisJCWlmIChmaWZvX3N0YXRlLT5wbGFuZVtwbGFuZS0+aWRdID09IDAgJiYKIAkJICAg IHdtX3N0YXRlLT5udW1fYWN0aXZlX3BsYW5lcykKIAkJCWNvbnRpbnVlOwogCiAJCXBsYW5lX2V4 dHJhID0gbWluKGZpZm9fZXh0cmEsIGZpZm9fbGVmdCk7Ci0JCXBsYW5lLT53bS5maWZvX3NpemUg Kz0gcGxhbmVfZXh0cmE7CisJCWZpZm9fc3RhdGUtPnBsYW5lW3BsYW5lLT5pZF0gKz0gcGxhbmVf ZXh0cmE7CiAJCWZpZm9fbGVmdCAtPSBwbGFuZV9leHRyYTsKIAl9CiAKQEAgLTExMTEsOSArMTEw NiwxMCBAQCBzdGF0aWMgdm9pZCB2bHZfaW52ZXJ0X3dtcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YykKIAogCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8IHdtX3N0YXRlLT5udW1fbGV2ZWxzOyBsZXZl bCsrKSB7CiAJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOworCQljb25zdCBzdHJ1Y3Qgdmx2X2ZpZm9fc3RhdGUgKmZpZm9fc3RhdGUg PSAmY3J0Yy0+d20uZmlmb19zdGF0ZTsKIAkJY29uc3QgaW50IHNyX2ZpZm9fc2l6ZSA9CiAJCQlJ TlRFTF9JTkZPKGRldl9wcml2KS0+bnVtX3BpcGVzICogNTEyIC0gMTsKLQkJc3RydWN0IGludGVs X3BsYW5lICpwbGFuZTsKKwkJZW51bSBwbGFuZV9pZCBwbGFuZV9pZDsKIAogCQl3bV9zdGF0ZS0+ c3JbbGV2ZWxdLnBsYW5lID0KIAkJCXZsdl9pbnZlcnRfd21fdmFsdWUod21fc3RhdGUtPnNyW2xl dmVsXS5wbGFuZSwKQEAgLTExMjIsMTAgKzExMTgsMTAgQEAgc3RhdGljIHZvaWQgdmx2X2ludmVy dF93bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJCQl2bHZfaW52ZXJ0X3dtX3ZhbHVlKHdt X3N0YXRlLT5zcltsZXZlbF0uY3Vyc29yLAogCQkJCQkgICAgNjMpOwogCi0JCWZvcl9lYWNoX2lu dGVsX3BsYW5lX29uX2NydGMoJmRldl9wcml2LT5kcm0sIGNydGMsIHBsYW5lKSB7Ci0JCQl3bV9z dGF0ZS0+d21bbGV2ZWxdLnBsYW5lW3BsYW5lLT5pZF0gPQotCQkJCXZsdl9pbnZlcnRfd21fdmFs dWUod21fc3RhdGUtPndtW2xldmVsXS5wbGFuZVtwbGFuZS0+aWRdLAotCQkJCQkJICAgIHBsYW5l LT53bS5maWZvX3NpemUpOworCQlmb3JfZWFjaF9wbGFuZV9pZF9vbl9jcnRjKGNydGMsIHBsYW5l X2lkKSB7CisJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLnBsYW5lW3BsYW5lX2lkXSA9CisJCQkJdmx2 X2ludmVydF93bV92YWx1ZSh3bV9zdGF0ZS0+d21bbGV2ZWxdLnBsYW5lW3BsYW5lX2lkXSwKKwkJ CQkJCSAgICBmaWZvX3N0YXRlLT5wbGFuZVtwbGFuZV9pZF0pOwogCQl9CiAJfQogfQpAQCAtMTEz NCw2ICsxMTMwLDcgQEAgc3RhdGljIHZvaWQgdmx2X2NvbXB1dGVfd20oc3RydWN0IGludGVsX2Ny dGMgKmNydGMpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IHZsdl93bV9zdGF0ZSAqd21fc3RhdGUgPSAmY3J0 Yy0+d21fc3RhdGU7CisJY29uc3Qgc3RydWN0IHZsdl9maWZvX3N0YXRlICpmaWZvX3N0YXRlID0g JmNydGMtPndtLmZpZm9fc3RhdGU7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKIAlpbnQg bGV2ZWw7CiAKQEAgLTExNjAsNyArMTE1Nyw3IEBAIHN0YXRpYyB2b2lkIHZsdl9jb21wdXRlX3dt KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCQkvKiBub3JtYWwgd2F0ZXJtYXJrcyAqLwogCQlm b3IgKGxldmVsID0gMDsgbGV2ZWwgPCB3bV9zdGF0ZS0+bnVtX2xldmVsczsgbGV2ZWwrKykgewog CQkJaW50IHdtID0gdmx2X2NvbXB1dGVfd21fbGV2ZWwoY3J0Yy0+Y29uZmlnLCBzdGF0ZSwgbGV2 ZWwpOwotCQkJaW50IG1heF93bSA9IHBsYW5lLT53bS5maWZvX3NpemU7CisJCQlpbnQgbWF4X3dt ID0gZmlmb19zdGF0ZS0+cGxhbmVbcGxhbmUtPmlkXTsKIAogCQkJLyogaGFjayAqLwogCQkJaWYg KFdBUk5fT04obGV2ZWwgPT0gMCAmJiB3bSA+IG1heF93bSkpCkBAIC0xMjA0LDMyICsxMjAxLDE2 IEBAIHN0YXRpYyB2b2lkIHZsdl9jb21wdXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQog CiBzdGF0aWMgdm9pZCB2bHZfcGlwZV9zZXRfZmlmb19zaXplKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGlu dGVsX3BsYW5lICpwbGFuZTsKLQlpbnQgc3ByaXRlMF9zdGFydCA9IDAsIHNwcml0ZTFfc3RhcnQg PSAwLCBmaWZvX3NpemUgPSAwOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOworCWNvbnN0IHN0cnVjdCB2bHZfZmlmb19zdGF0ZSAq Zmlmb19zdGF0ZSA9ICZjcnRjLT53bS5maWZvX3N0YXRlOworCWludCBzcHJpdGUwX3N0YXJ0LCBz cHJpdGUxX3N0YXJ0LCBmaWZvX3NpemU7CiAKLQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRj KGRldiwgY3J0YywgcGxhbmUpIHsKLQkJc3dpdGNoIChwbGFuZS0+aWQpIHsKLQkJY2FzZSBQTEFO RV9QUklNQVJZOgotCQkJc3ByaXRlMF9zdGFydCA9IHBsYW5lLT53bS5maWZvX3NpemU7Ci0JCQli cmVhazsKLQkJY2FzZSBQTEFORV9TUFJJVEUwOgotCQkJc3ByaXRlMV9zdGFydCA9IHNwcml0ZTBf c3RhcnQgKyBwbGFuZS0+d20uZmlmb19zaXplOwotCQkJYnJlYWs7Ci0JCWNhc2UgUExBTkVfU1BS SVRFMToKLQkJCWZpZm9fc2l6ZSA9IHNwcml0ZTFfc3RhcnQgKyBwbGFuZS0+d20uZmlmb19zaXpl OwotCQkJYnJlYWs7Ci0JCWNhc2UgUExBTkVfQ1VSU09SOgotCQkJV0FSTl9PTihwbGFuZS0+d20u Zmlmb19zaXplICE9IDYzKTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJTUlTU0lOR19DQVNF KHBsYW5lLT5pZCk7Ci0JCQlicmVhazsKLQkJfQotCX0KKwlzcHJpdGUwX3N0YXJ0ID0gZmlmb19z dGF0ZS0+cGxhbmVbUExBTkVfUFJJTUFSWV07CisJc3ByaXRlMV9zdGFydCA9IGZpZm9fc3RhdGUt PnBsYW5lW1BMQU5FX1NQUklURTBdICsgc3ByaXRlMF9zdGFydDsKKwlmaWZvX3NpemUgPSBmaWZv X3N0YXRlLT5wbGFuZVtQTEFORV9TUFJJVEUxXSArIHNwcml0ZTFfc3RhcnQ7CiAKLQlXQVJOX09O KGZpZm9fc2l6ZSAhPSA1MTIgLSAxKTsKKwlXQVJOX09OKGZpZm9fc3RhdGUtPnBsYW5lW1BMQU5F X0NVUlNPUl0gIT0gNjMpOworCVdBUk5fT04oZmlmb19zaXplICE9IDUxMSk7CiAKIAlEUk1fREVC VUdfS01TKCJQaXBlICVjIEZJRk8gc3BsaXQgJWQgLyAlZCAvICVkXG4iLAogCQkgICAgICBwaXBl X25hbWUoY3J0Yy0+cGlwZSksIHNwcml0ZTBfc3RhcnQsCkBAIC00NTE3LDE0ICs0NDk4LDE0IEBA IHZvaWQgdmx2X3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qg dmx2X3dtX3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYtPndtLnZsdjsKLQlzdHJ1Y3QgaW50ZWxfcGxh bmUgKnBsYW5lOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCWVudW0gcGlwZSBwaXBlOwog CXUzMiB2YWw7CiAKIAl2bHZfcmVhZF93bV92YWx1ZXMoZGV2X3ByaXYsIHdtKTsKIAotCWZvcl9l YWNoX2ludGVsX3BsYW5lKGRldiwgcGxhbmUpCi0JCXBsYW5lLT53bS5maWZvX3NpemUgPSB2bHZf Z2V0X2ZpZm9fc2l6ZShwbGFuZSk7CisJZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpCisJ CXZsdl9nZXRfZmlmb19zaXplKGNydGMpOwogCiAJd20tPmN4c3IgPSBJOTE1X1JFQUQoRldfQkxD X1NFTEZfVkxWKSAmIEZXX0NTUFdSRFdORU47CiAJd20tPmxldmVsID0gVkxWX1dNX0xFVkVMX1BN MjsKLS0gCjIuMTAuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==