From mboxrd@z Thu Jan 1 00:00:00 1970 From: chix.ding@intel.com Subject: [RFC 3/5] Move fifo_size from intel_plane_wm_parameters to vlv_wm_state Date: Wed, 1 Jun 2016 08:10:19 +0100 Message-ID: <1464765021-16206-4-git-send-email-chix.ding@intel.com> References: <1464765021-16206-1-git-send-email-chix.ding@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 2CC646E8AD for ; Wed, 1 Jun 2016 07:10:40 +0000 (UTC) In-Reply-To: <1464765021-16206-1-git-send-email-chix.ding@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: yetundex.adebisi@intel.com, Chi Ding List-Id: intel-gfx@lists.freedesktop.org RnJvbTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bT4KClRoaXMgcGF0Y2ggZG9lc24ndCBjaGFuZ2UgdGhlIGNvZGUgdG8gdXNlIHR3by1sZXZlbCB3 YXRlcm1hcmsgeWV0LApXaXRoIHRoaXMgcGF0Y2ggdGhlIHdhdGVybWFya3MgYXJlIHNhdmVkIGZv ciBlYWNoIHBsYW5lIGFuZCB0aGUgd20Kc3RhdGUsIGluc3RlYWQgb2YgcHJldmlvdXNseSBvbmx5 IGZvciB0aGUgcGxhbmUKClRoZSBwYXRjaCBpcyBiYXNlZCBvbiBNYWFydGVuIExhbmtob3JzdCdz IHdvcmsgYW5kIGNyZWF0ZWQgYnkgQ2hpIERpbmcKClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFu a2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IENoaSBEaW5nIDxjaGl4LmRpbmdAaW50ZWwuY29tPgoKY2M6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CmNjOiBtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29t CmNjOiB5ZXR1bmRleC5hZGViaXNpQGludGVsLmNvbQotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIHwgIDEyICstLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMg IHwgMTE3ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBj aGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCmluZGV4IGI5NzNiODYuLjMxMTE4ZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCkBAIC02MjQsNiArNjI0LDcgQEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewogc3RydWN0 IHZsdl93bV9zdGF0ZSB7CiAJc3RydWN0IHZsdl9waXBlX3dtIHdtWzNdOwogCXN0cnVjdCB2bHZf c3Jfd20gc3JbM107CisJdWludDE2X3QgZmlmb19zaXplW0k5MTVfTUFYX1BMQU5FU107CiAJdWlu dDhfdCBudW1fYWN0aXZlX3BsYW5lczsKIAl1aW50OF90IG51bV9sZXZlbHM7CiAJdWludDhfdCBs ZXZlbDsKQEAgLTY5NiwxMCArNjk3LDYgQEAgc3RydWN0IGludGVsX2NydGMgewogCXN0cnVjdCB2 bHZfd21fc3RhdGUgd21fc3RhdGU7CiB9OwogCi1zdHJ1Y3QgaW50ZWxfcGxhbmVfd21fcGFyYW1l dGVycyB7Ci0JdWludDE2X3QgZmlmb19zaXplOwotfTsKLQogc3RydWN0IGludGVsX3BsYW5lIHsK IAlzdHJ1Y3QgZHJtX3BsYW5lIGJhc2U7CiAJaW50IHBsYW5lOwpAQCAtNzA4LDEzICs3MDUsNiBA QCBzdHJ1Y3QgaW50ZWxfcGxhbmUgewogCWludCBtYXhfZG93bnNjYWxlOwogCXVpbnQzMl90IGZy b250YnVmZmVyX2JpdDsKIAotCS8qIFNpbmNlIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSB3YXRlcm1h cmtzIGJlZm9yZS9hZnRlcgotCSAqIGVuYWJsaW5nL2Rpc2FibGluZyB0aGUgcGxhbmVzLCB3ZSBu ZWVkIHRvIHN0b3JlIHRoZSBwYXJhbWV0ZXJzIGhlcmUKLQkgKiBhcyB0aGUgb3RoZXIgcGllY2Vz IG9mIHRoZSBzdHJ1Y3QgbWF5IG5vdCByZWZsZWN0IHRoZSB2YWx1ZXMgd2Ugd2FudAotCSAqIGZv ciB0aGUgd2F0ZXJtYXJrIGNhbGN1bGF0aW9ucy4gQ3VycmVudGx5IG9ubHkgSGFzd2VsbCB1c2Vz IHRoaXMuCi0JICovCi0Jc3RydWN0IGludGVsX3BsYW5lX3dtX3BhcmFtZXRlcnMgd207Ci0KIAkv KgogCSAqIE5PVEU6IERvIG5vdCBwbGFjZSBuZXcgcGxhbmUgc3RhdGUgZmllbGRzIGhlcmUgKGUu Zy4sIHdoZW4gYWRkaW5nCiAJICogbmV3IHBsYW5lIHByb3BlcnRpZXMpLiAgTmV3IHJ1bnRpbWUg c3RhdGUgc2hvdWxkIG5vdyBiZSBwbGFjZWQgaW4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4 IGEzOTQyZGYuLjU1MTUzMjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNTUsNyArNTUs NyBAQAogI2RlZmluZSBJTlRFTF9SQzZwcF9FTkFCTEUJCQkoMTw8MikKIAogLyoKLSAqIFJldHVy biB0aGUgaW5kZXggb2YgYSBwbGFuZSBpbiB0aGUgRERCIGFuZCB3bSByZXN1bHQgYXJyYXlzLiAg UHJpbWFyeQorICogUmV0dXJuIHRoZSBpbmRleCBvZiBhIHBsYW5lIGluIHRoZSB3bSByZXN1bHQg YXJyYXlzLiAgUHJpbWFyeQogICogcGxhbmUgaXMgYWx3YXlzIGluIHNsb3QgMCwgY3Vyc29yIGlz IGFsd2F5cyBpbiBzbG90IEk5MTVfTUFYX1BMQU5FUy0xLCBhbmQKICAqIG90aGVyIHVuaXZlcnNh bCBwbGFuZXMgYXJlIGluIGluZGljZXMgMS4ubi4gIE5vdGUgdGhhdCB0aGlzIG1heSBsZWF2ZSB1 bnVzZWQKICAqIGluZGljZXMgYmV0d2VlbiB0aGUgdG9wICJzcHJpdGUiIHBsYW5lIGFuZCB0aGUg Y3Vyc29yLgpAQCAtOTgzLDE0ICs5ODMsMTcgQEAgc3RhdGljIHVpbnQxNl90IHZsdl9jb21wdXRl X3dtX2xldmVsKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJcmV0dXJuIG1pbl90KGludCwg d20sIFVTSFJUX01BWCk7CiB9CiAKLXN0YXRpYyB2b2lkIHZsdl9jb21wdXRlX2ZpZm8oc3RydWN0 IGludGVsX2NydGMgKmNydGMpCitzdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV9maWZvKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCisJCQkJc3RydWN0IHZsdl93bV9zdGF0ZSAqd21fc3Rh dGUpCiB7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0+ YmFzZS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Ci0J c3RydWN0IHZsdl93bV9zdGF0ZSAqd21fc3RhdGUgPSAmY3J0Yy0+d21fc3RhdGU7CiAJc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZTsKIAl1bnNpZ25lZCBpbnQgdG90YWxfcmF0ZSA9IDA7CiAJY29u c3QgaW50IGZpZm9fc2l6ZSA9IDUxMiAtIDE7CiAJaW50IGZpZm9fZXh0cmEsIGZpZm9fbGVmdCA9 IGZpZm9fc2l6ZTsKKwlpbnQgcmF0ZVtJOTE1X01BWF9QTEFORVNdID0ge307CisJaW50IGk7CiAK IAlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxhbmUpIHsKIAkJc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSA9CkBAIC0xMDAxLDU4ICsxMDA0LDU1IEBAIHN0 YXRpYyB2b2lkIHZsdl9jb21wdXRlX2ZpZm8oc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIAkJ aWYgKHN0YXRlLT52aXNpYmxlKSB7CiAJCQl3bV9zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFuZXMrKzsK LQkJCXRvdGFsX3JhdGUgKz0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoc3RhdGUtPmJhc2UuZmItPnBp eGVsX2Zvcm1hdCwgMCk7CisJCQlyYXRlW3dtX3BsYW5lX2lkKHBsYW5lKV0gPQorCQkJZHJtX2Zv cm1hdF9wbGFuZV9jcHAoc3RhdGUtPmJhc2UuZmItPnBpeGVsX2Zvcm1hdCwgMCk7CisJCQl0b3Rh bF9yYXRlICs9IHJhdGVbd21fcGxhbmVfaWQocGxhbmUpXTsKIAkJfQogCX0KIAotCWZvcl9lYWNo X2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBjcnRjLCBwbGFuZSkgewotCQlzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKnN0YXRlID0KLQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5iYXNl LnN0YXRlKTsKLQkJdW5zaWduZWQgaW50IHJhdGU7Ci0KLQkJaWYgKHBsYW5lLT5iYXNlLnR5cGUg PT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKSB7Ci0JCQlwbGFuZS0+d20uZmlmb19zaXplID0gNjM7 CisJZm9yIChpID0gMDsgaSA8IEk5MTVfTUFYX1BMQU5FUzsgaSsrKSB7CisJCWlmIChpID09IFBM QU5FX0NVUlNPUikgeworCQkJd21fc3RhdGUtPmZpZm9fc2l6ZVtpXSA9IDYzOwogCQkJY29udGlu dWU7CiAJCX0KIAotCQlpZiAoIXN0YXRlLT52aXNpYmxlKSB7Ci0JCQlwbGFuZS0+d20uZmlmb19z aXplID0gMDsKKwkJaWYgKCFyYXRlW2ldKSB7CisJCQl3bV9zdGF0ZS0+Zmlmb19zaXplW2ldID0g MDsKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJcmF0ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKHN0 YXRlLT5iYXNlLmZiLT5waXhlbF9mb3JtYXQsIDApOwotCQlwbGFuZS0+d20uZmlmb19zaXplID0g Zmlmb19zaXplICogcmF0ZSAvIHRvdGFsX3JhdGU7Ci0JCWZpZm9fbGVmdCAtPSBwbGFuZS0+d20u Zmlmb19zaXplOworCQl3bV9zdGF0ZS0+Zmlmb19zaXplW2ldID0gZmlmb19zaXplICogcmF0ZVtp XSAvIHRvdGFsX3JhdGU7CisJCWZpZm9fbGVmdCAtPSB3bV9zdGF0ZS0+Zmlmb19zaXplW2ldOwog CX0KIAogCWZpZm9fZXh0cmEgPSBESVZfUk9VTkRfVVAoZmlmb19sZWZ0LCB3bV9zdGF0ZS0+bnVt X2FjdGl2ZV9wbGFuZXMgPzogMSk7CiAKIAkvKiBzcHJlYWQgdGhlIHJlbWFpbmRlciBldmVubHkg Ki8KLQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxhbmUpIHsKKwlm b3IgKGkgPSAwOyBpIDwgSTkxNV9NQVhfUExBTkVTOyBpKyspIHsKIAkJaW50IHBsYW5lX2V4dHJh OwogCiAJCWlmIChmaWZvX2xlZnQgPT0gMCkKIAkJCWJyZWFrOwogCi0JCWlmIChwbGFuZS0+YmFz ZS50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikKKwkJaWYgKGkgPT0gUExBTkVfQ1VSU09S KQogCQkJY29udGludWU7CiAKIAkJLyogZ2l2ZSBpdCBhbGwgdG8gdGhlIGZpcnN0IHBsYW5lIGlm IG5vbmUgYXJlIGFjdGl2ZSAqLwotCQlpZiAocGxhbmUtPndtLmZpZm9fc2l6ZSA9PSAwICYmCisJ CWlmICghd21fc3RhdGUtPmZpZm9fc2l6ZVtpXSAmJgogCQkgICAgd21fc3RhdGUtPm51bV9hY3Rp dmVfcGxhbmVzKQogCQkJY29udGludWU7CiAKIAkJcGxhbmVfZXh0cmEgPSBtaW4oZmlmb19leHRy YSwgZmlmb19sZWZ0KTsKLQkJcGxhbmUtPndtLmZpZm9fc2l6ZSArPSBwbGFuZV9leHRyYTsKKwkJ d21fc3RhdGUtPmZpZm9fc2l6ZVtpXSArPSBwbGFuZV9leHRyYTsKIAkJZmlmb19sZWZ0IC09IHBs YW5lX2V4dHJhOwogCX0KIAogCVdBUk5fT04oZmlmb19sZWZ0ICE9IDApOwogfQogCi1zdGF0aWMg dm9pZCB2bHZfaW52ZXJ0X3dtcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3N0YXRpYyB2b2lk IHZsdl9pbnZlcnRfd21zKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJc3RydWN0IHZsdl93 bV9zdGF0ZSAqd21fc3RhdGUpCiB7Ci0Jc3RydWN0IHZsdl93bV9zdGF0ZSAqd21fc3RhdGUgPSAm Y3J0Yy0+d21fc3RhdGU7CiAJaW50IGxldmVsOwogCiAJZm9yIChsZXZlbCA9IDA7IGxldmVsIDwg d21fc3RhdGUtPm51bV9sZXZlbHM7IGxldmVsKyspIHsKQEAgLTEwNjQsMTkgKzEwNjQsMjQgQEAg c3RhdGljIHZvaWQgdmx2X2ludmVydF93bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJCXdt X3N0YXRlLT5zcltsZXZlbF0uY3Vyc29yID0gNjMgLSB3bV9zdGF0ZS0+c3JbbGV2ZWxdLmN1cnNv cjsKIAogCQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxhbmUpIHsK KwkJCWludCBpID0gd21fcGxhbmVfaWQocGxhbmUpOworCiAJCQlzd2l0Y2ggKHBsYW5lLT5iYXNl LnR5cGUpIHsKIAkJCQlpbnQgc3ByaXRlOwogCQkJY2FzZSBEUk1fUExBTkVfVFlQRV9DVVJTT1I6 Ci0JCQkJd21fc3RhdGUtPndtW2xldmVsXS5jdXJzb3IgPSBwbGFuZS0+d20uZmlmb19zaXplIC0K KwkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLmN1cnNvciA9CisJCQkJCXdtX3N0YXRlLT5maWZvX3Np emVbaV0gLQogCQkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLmN1cnNvcjsKIAkJCQlicmVhazsKIAkJ CWNhc2UgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWToKLQkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLnBy aW1hcnkgPSBwbGFuZS0+d20uZmlmb19zaXplIC0KKwkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLnBy aW1hcnkgPQorCQkJCQl3bV9zdGF0ZS0+Zmlmb19zaXplW2ldIC0KIAkJCQkJd21fc3RhdGUtPndt W2xldmVsXS5wcmltYXJ5OwogCQkJCWJyZWFrOwogCQkJY2FzZSBEUk1fUExBTkVfVFlQRV9PVkVS TEFZOgogCQkJCXNwcml0ZSA9IHBsYW5lLT5wbGFuZTsKLQkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxd LnNwcml0ZVtzcHJpdGVdID0gcGxhbmUtPndtLmZpZm9fc2l6ZSAtCisJCQkJd21fc3RhdGUtPndt W2xldmVsXS5zcHJpdGVbc3ByaXRlXSA9CisJCQkJCXdtX3N0YXRlLT5maWZvX3NpemVbaV0gLQog CQkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLnNwcml0ZVtzcHJpdGVdOwogCQkJCWJyZWFrOwogCQkJ fQpAQCAtMTA4NCw4ICsxMDg5LDkgQEAgc3RhdGljIHZvaWQgdmx2X2ludmVydF93bXMoc3RydWN0 IGludGVsX2NydGMgKmNydGMpCiAJfQogfQogCi1zdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV93bShz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3N0YXRpYyBpbnQgdmx2X2NvbXB1dGVfd20oc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKIHsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3Qgdmx2X3dtX3N0YXRlICp3bV9zdGF0ZSA9ICZj cnRjLT53bV9zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwpAQCAtMTA5OSw3ICsx MTA1LDcgQEAgc3RhdGljIHZvaWQgdmx2X2NvbXB1dGVfd20oc3RydWN0IGludGVsX2NydGMgKmNy dGMpCiAKIAl3bV9zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFuZXMgPSAwOwogCi0Jdmx2X2NvbXB1dGVf ZmlmbyhjcnRjKTsKKwl2bHZfY29tcHV0ZV9maWZvKGNzdGF0ZSwgd21fc3RhdGUpOwogCiAJaWYg KHdtX3N0YXRlLT5udW1fYWN0aXZlX3BsYW5lcyAhPSAxKQogCQl3bV9zdGF0ZS0+Y3hzciA9IGZh bHNlOwpAQCAtMTEyMywxMSArMTEyOSwxNiBAQCBzdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV93bShz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAkJCWludCB3bSA9IHZsdl9jb21wdXRlX3dtX2xldmVs KHBsYW5lLCBjcnRjLCBzdGF0ZSwgbGV2ZWwpOwogCQkJaW50IG1heF93bSA9IHBsYW5lLT5iYXNl LnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SID8gNjMgOiA1MTE7CiAKLQkJCS8qIGhhY2sg Ki8KLQkJCWlmIChXQVJOX09OKGxldmVsID09IDAgJiYgd20gPiBtYXhfd20pKQotCQkJCXdtID0g bWF4X3dtOworCQkJaWYgKGxldmVsID09IDAgJiYgd20gPiBtYXhfd20pIHsKKwkJCQlEUk1fREVC VUdfS01TKCJSZXF1ZXN0ZWQgZGlzcGxheSBjb25maWd1cmF0aW9uICIKKwkJCQkiZXhjZWVkcyBz eXN0ZW0gd2F0ZXJtYXJrIGxpbWl0YXRpb25zXG4iKTsKKwkJCQlEUk1fREVCVUdfS01TKCJQbGFu ZSAlZC4lZDogYmxvY2tzIHJlcXVpcmVkID0gJXUvJXVcbiIsCisJCQkJICAgICAgdG9faW50ZWxf Y3J0Yyhjc3RhdGUtPmJhc2UuY3J0YyktPnBpcGUsCisJCQkJICAgICAgZHJtX3BsYW5lX2luZGV4 KCZwbGFuZS0+YmFzZSksIHdtLCBtYXhfd20pOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQog Ci0JCQlpZiAod20gPiBwbGFuZS0+d20uZmlmb19zaXplKQorCQkJaWYgKHdtID4gd21fc3RhdGUt PmZpZm9fc2l6ZVt3bV9wbGFuZV9pZChwbGFuZSldKQogCQkJCWJyZWFrOwogCiAJCQlzd2l0Y2gg KHBsYW5lLT5iYXNlLnR5cGUpIHsKQEAgLTExODAsNyArMTE5MSw5IEBAIHN0YXRpYyB2b2lkIHZs dl9jb21wdXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCQltZW1zZXQoJndtX3N0YXRl LT5zcltsZXZlbF0sIDAsIHNpemVvZih3bV9zdGF0ZS0+c3JbbGV2ZWxdKSk7CiAJfQogCi0Jdmx2 X2ludmVydF93bXMoY3J0Yyk7CisJdmx2X2ludmVydF93bXMoY3J0Yywgd21fc3RhdGUpOworCisJ cmV0dXJuIDA7CiB9CiAKICNkZWZpbmUgVkxWX0ZJRk8ocGxhbmUsIHZhbHVlKSBcCkBAIC0xMTkw LDI0ICsxMjAzLDE4IEBAIHN0YXRpYyB2b2lkIHZsdl9waXBlX3NldF9maWZvX3NpemUoc3RydWN0 IGludGVsX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJh c2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwogCWludCBzcHJpdGUwX3N0YXJ0ID0gMCwg c3ByaXRlMV9zdGFydCA9IDAsIGZpZm9fc2l6ZSA9IDA7CisJY29uc3Qgc3RydWN0IHZsdl93bV9z dGF0ZSAqd21fc3RhdGUgPSAmY3J0Yy0+d21fc3RhdGU7CiAKLQlmb3JfZWFjaF9pbnRlbF9wbGFu ZV9vbl9jcnRjKGRldiwgY3J0YywgcGxhbmUpIHsKLQkJaWYgKHBsYW5lLT5iYXNlLnR5cGUgPT0g RFJNX1BMQU5FX1RZUEVfQ1VSU09SKSB7Ci0JCQlXQVJOX09OKHBsYW5lLT53bS5maWZvX3NpemUg IT0gNjMpOwotCQkJY29udGludWU7Ci0JCX0KIAotCQlpZiAocGxhbmUtPmJhc2UudHlwZSA9PSBE Uk1fUExBTkVfVFlQRV9QUklNQVJZKQotCQkJc3ByaXRlMF9zdGFydCA9IHBsYW5lLT53bS5maWZv X3NpemU7Ci0JCWVsc2UgaWYgKHBsYW5lLT5wbGFuZSA9PSAwKQotCQkJc3ByaXRlMV9zdGFydCA9 IHNwcml0ZTBfc3RhcnQgKyBwbGFuZS0+d20uZmlmb19zaXplOwotCQllbHNlCi0JCQlmaWZvX3Np emUgPSBzcHJpdGUxX3N0YXJ0ICsgcGxhbmUtPndtLmZpZm9fc2l6ZTsKLQl9CisJV0FSTl9PTih3 bV9zdGF0ZS0+Zmlmb19zaXplW1BMQU5FX0NVUlNPUl0gIT0gNjMpOworCXNwcml0ZTBfc3RhcnQg PSB3bV9zdGF0ZS0+Zmlmb19zaXplWzBdOworCXNwcml0ZTFfc3RhcnQgPSBzcHJpdGUwX3N0YXJ0 ICsgd21fc3RhdGUtPmZpZm9fc2l6ZVsxXTsKKwlmaWZvX3NpemUgPSBzcHJpdGUxX3N0YXJ0ICsg d21fc3RhdGUtPmZpZm9fc2l6ZVsyXTsKIAotCVdBUk5fT04oZmlmb19zaXplICE9IDUxMiAtIDEp OworCVdBUk4oZmlmb19zaXplICE9IDUxMiAtIDEsICJQaXBlICVjIEZJRk8gc3BsaXQgJWQgLyAl ZCAvICVkXG4iLAorCQkgICAgICBwaXBlX25hbWUoY3J0Yy0+cGlwZSksIHNwcml0ZTBfc3RhcnQs CisJCSAgICAgIHNwcml0ZTFfc3RhcnQsIGZpZm9fc2l6ZSk7CiAKIAlEUk1fREVCVUdfS01TKCJQ aXBlICVjIEZJRk8gc3BsaXQgJWQgLyAlZCAvICVkXG4iLAogCQkgICAgICBwaXBlX25hbWUoY3J0 Yy0+cGlwZSksIHNwcml0ZTBfc3RhcnQsCkBAIC0xMzI3LDcgKzEzMzQsNyBAQCBzdGF0aWMgdm9p ZCB2bHZfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAllbnVtIHBpcGUgcGlwZSA9 IGludGVsX2NydGMtPnBpcGU7CiAJc3RydWN0IHZsdl93bV92YWx1ZXMgd20gPSB7fTsKIAotCXZs dl9jb21wdXRlX3dtKGludGVsX2NydGMpOworCXZsdl9jb21wdXRlX3dtKGludGVsX2NydGMtPmNv bmZpZyk7CiAJdmx2X21lcmdlX3dtKGRldiwgJndtKTsKIAogCWlmIChtZW1jbXAoJmRldl9wcml2 LT53bS52bHYsICZ3bSwgc2l6ZW9mKHdtKSkgPT0gMCkgewpAQCAtNDIxNiw2ICs0MjIzLDcgQEAg dm9pZCB2bHZfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCB2 bHZfd21fdmFsdWVzICp3bSA9ICZkZXZfcHJpdi0+d20udmx2OworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7CiAJZW51bSBwaXBlIHBpcGU7CiAJ dTMyIHZhbDsKQEAgLTQyMjMsMTcgKzQyMzEsMjAgQEAgdm9pZCB2bHZfd21fZ2V0X2h3X3N0YXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJdmx2X3JlYWRfd21fdmFsdWVzKGRldl9wcml2LCB3 bSk7CiAKIAlmb3JfZWFjaF9pbnRlbF9wbGFuZShkZXYsIHBsYW5lKSB7CisJCXN0cnVjdCB2bHZf d21fc3RhdGUgKndtX3N0YXRlOworCQlpbnQgaSA9IHdtX3BsYW5lX2lkKHBsYW5lKTsKKworCQlj cnRjID0gdG9faW50ZWxfY3J0YyhpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXYsIHBsYW5lLT5w aXBlKSk7CisJCXdtX3N0YXRlID0gJmNydGMtPndtX3N0YXRlOworCiAJCXN3aXRjaCAocGxhbmUt PmJhc2UudHlwZSkgewotCQkJaW50IHNwcml0ZTsKIAkJY2FzZSBEUk1fUExBTkVfVFlQRV9DVVJT T1I6Ci0JCQlwbGFuZS0+d20uZmlmb19zaXplID0gNjM7CisJCQl3bV9zdGF0ZS0+Zmlmb19zaXpl W2ldID0gNjM7CiAJCQlicmVhazsKIAkJY2FzZSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOgotCQkJ cGxhbmUtPndtLmZpZm9fc2l6ZSA9IHZsdl9nZXRfZmlmb19zaXplKGRldiwgcGxhbmUtPnBpcGUs IDApOwotCQkJYnJlYWs7CiAJCWNhc2UgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWToKLQkJCXNwcml0 ZSA9IHBsYW5lLT5wbGFuZTsKLQkJCXBsYW5lLT53bS5maWZvX3NpemUgPSB2bHZfZ2V0X2ZpZm9f c2l6ZShkZXYsIHBsYW5lLT5waXBlLCBzcHJpdGUgKyAxKTsKKwkJCXdtX3N0YXRlLT5maWZvX3Np emVbaV0gPQorCQkJCXZsdl9nZXRfZmlmb19zaXplKGRldiwgcGxhbmUtPnBpcGUsIGkpOwogCQkJ YnJlYWs7CiAJCX0KIAl9Ci0tIAoxLjguMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK