From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 06/18] drm/i915: Compute VLV/CHV FIFO sizes based on the PM2 watermarks Date: Thu, 16 Feb 2017 20:07:39 +0200 Message-ID: <20170216180751.3097-7-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 mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8E4F96EBFC for ; Thu, 16 Feb 2017 18:08:11 +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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkxl dCdzIGNvbXB1dGUgdGhlIHdhdGVybWFya3MgZmlyc3QgYW5kIHRoZSBGSUZPIHNpemUgc2Vjb25k LiBUaGlzIHdheSB3ZQpjYW4gbWFrZSBzdXJlIHRoZSBGSUZPIHNwbGl0IGlzIHRoZSBtb3N0IGFj Y29tbW9kYXRpbmcgdG8gdGhlIHdhdGVybWFya3MuClByZXZpb3VzbHkgd2UgY291bGQgaGF2ZSBw b3RlbnRpYWxseSBjb21wdXRlZCBhIEZJRk8gc3BsaXQgdGhhdCBjb3VsZG4ndAphY2NvbW1vZGF0 ZSB0aGUgUE0yIHdhdGVybWFya3Mgc2ltcGx5IGR1ZSB0byBhIGJhZCBzcGxpdCBldmVuIGlmIHRo ZQp0b3RhbCBGSUZPIHNpemUgd291bGQgaGF2ZSBiZWVuIHN1ZmZpY2llbnQuCgpJdCdsbCBhbHNv IGFsbG93IHVzIHRvIGF2b2lkIHJlY29tcHV0aW5nIHRoZSB3bXMgZm9yIGFsbCBwbGFuZXMgd2hl bmV2ZXIKdGhlIEZJRk8gc3BsaXQgd291bGQgY2hhbmdlLiBUaHVzIHdlIGRvbid0IGhhdmUgdG8g YWRkIGFueSBleHRyYSBwbGFuZXMKdG8gdGhlIHN0YXRlIHdoZW4gdGhlIEZJRk8gbmVlZHMgdG8g YmUgcmVwYXJ0aXRpb25lZC4KClRvIGhlbHAgd2l0aCB0aGlzIHdlJ2xsIGtlZXAgYXJvdW5kIGNv cGllcyBvZiB0aGUgbm9uLWludmVydGVkCndhdGVybWFya3MgaW4gdGhlIGNydGMgc3RhdGUuIEZv ciBub3cgdGhhdCBkb2Vzbid0IGhlbHAgdG9vIG11Y2gsIGJ1dApvbmNlIHdlIHN0YXJ0IHRvIGRv IHRoZSB3YXRlcm1hcmsgY29tcHV0YXRpb24gb25seSBmb3IgdGhlIHBsYW5lcwp0aGF0IGNoYW5n ZSB3ZSdsbCBuZWVkIHRoZSBub24taW52ZXJ0ZWQgdmFsdWVzIGFyb3VuZCBmb3IgdGhlIG90aGVy CnBsYW5lcy4KClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5s YW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgIHwgMTE2ICsr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA1 NyBpbnNlcnRpb25zKCspLCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CmluZGV4IDQ5M2EzN2IwODlmYi4uYWRhNWZkM2ZkZWFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaApAQCAtNTM0LDYgKzUzNCw4IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3dtX3N0YXRlIHsKIAkJ fSBza2w7CiAKIAkJc3RydWN0IHsKKwkJCS8qIG5vbi1pbnZlcnRlZCBvcHRpbWFsIHdhdGVybWFy a3MgKi8KKwkJCXN0cnVjdCB2bHZfcGlwZV93bSBub25pbnZlcnRlZFtOVU1fVkxWX1dNX0xFVkVM U107CiAJCQlzdHJ1Y3Qgdmx2X2ZpZm9fc3RhdGUgZmlmb19zdGF0ZTsKIAkJCS8qIGludmVydGVk IG9wdGltYWwgd2F0ZXJtYXJrcyAqLwogCQkJc3RydWN0IHZsdl93bV9zdGF0ZSBvcHRpbWFsOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggOTM3MWI5NjQ1YzlkLi5hZDAyZWRiMTFjYTIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMTAxOCw3MyArMTAxOCw3MCBAQCBzdGF0aWMgdWlu dDE2X3Qgdmx2X2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJcmV0dXJuIG1pbl90KGludCwgd20sIFVTSFJUX01BWCk7CiB9CiAKLXN0 YXRpYyB2b2lkIHZsdl9jb21wdXRlX2ZpZm8oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCitzdGF0aWMgaW50IHZsdl9jb21wdXRlX2ZpZm8oc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Ci0Jc3RydWN0IHZsdl93bV9zdGF0ZSAqd21fc3Rh dGUgPSAmY3J0Y19zdGF0ZS0+d20udmx2Lm9wdGltYWw7CisJY29uc3Qgc3RydWN0IHZsdl9waXBl X3dtICpub25pbnZlcnRlZCA9CisJCSZjcnRjX3N0YXRlLT53bS52bHYubm9uaW52ZXJ0ZWRbVkxW X1dNX0xFVkVMX1BNMl07CiAJc3RydWN0IHZsdl9maWZvX3N0YXRlICpmaWZvX3N0YXRlID0gJmNy dGNfc3RhdGUtPndtLnZsdi5maWZvX3N0YXRlOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5iYXNlLmRldjsKLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwotCXVuc2lnbmVkIGlu dCB0b3RhbF9yYXRlID0gMDsKLQljb25zdCBpbnQgZmlmb19zaXplID0gNTEyIC0gMTsKKwl1bnNp Z25lZCBpbnQgYWN0aXZlX3BsYW5lcyA9IGNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgJiB+QklU KFBMQU5FX0NVUlNPUik7CisJaW50IG51bV9hY3RpdmVfcGxhbmVzID0gaHdlaWdodDMyKGFjdGl2 ZV9wbGFuZXMpOworCWNvbnN0IGludCBmaWZvX3NpemUgPSA1MTE7CiAJaW50IGZpZm9fZXh0cmEs IGZpZm9fbGVmdCA9IGZpZm9fc2l6ZTsKKwl1bnNpZ25lZCBpbnQgdG90YWxfcmF0ZTsKKwllbnVt IHBsYW5lX2lkIHBsYW5lX2lkOwogCi0JZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YyhkZXYs IGNydGMsIHBsYW5lKSB7Ci0JCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUgPQotCQkJ dG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPmJhc2Uuc3RhdGUpOworCXRvdGFsX3JhdGUgPSBu b25pbnZlcnRlZC0+cGxhbmVbUExBTkVfUFJJTUFSWV0gKworCQlub25pbnZlcnRlZC0+cGxhbmVb UExBTkVfU1BSSVRFMF0gKworCQlub25pbnZlcnRlZC0+cGxhbmVbUExBTkVfU1BSSVRFMV07CiAK LQkJaWYgKHBsYW5lLT5pZCA9PSBQTEFORV9DVVJTT1IpCi0JCQljb250aW51ZTsKKwlpZiAodG90 YWxfcmF0ZSA+IGZpZm9fc2l6ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKLQkJaWYgKHN0YXRlLT5i YXNlLnZpc2libGUpIHsKLQkJCXdtX3N0YXRlLT5udW1fYWN0aXZlX3BsYW5lcysrOwotCQkJdG90 YWxfcmF0ZSArPSBzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5jcHBbMF07Ci0JCX0KLQl9CisJaWYg KHRvdGFsX3JhdGUgPT0gMCkKKwkJdG90YWxfcmF0ZSA9IDE7CiAKLQlmb3JfZWFjaF9pbnRlbF9w bGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxhbmUpIHsKLQkJc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpzdGF0ZSA9Ci0JCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+YmFzZS5zdGF0ZSk7 CisJZm9yX2VhY2hfcGxhbmVfaWRfb25fY3J0YyhjcnRjLCBwbGFuZV9pZCkgewogCQl1bnNpZ25l ZCBpbnQgcmF0ZTsKIAotCQlpZiAocGxhbmUtPmlkID09IFBMQU5FX0NVUlNPUikgewotCQkJZmlm b19zdGF0ZS0+cGxhbmVbcGxhbmUtPmlkXSA9IDYzOworCQlpZiAoKGFjdGl2ZV9wbGFuZXMgJiBC SVQocGxhbmVfaWQpKSA9PSAwKSB7CisJCQlmaWZvX3N0YXRlLT5wbGFuZVtwbGFuZV9pZF0gPSAw OwogCQkJY29udGludWU7CiAJCX0KIAotCQlpZiAoIXN0YXRlLT5iYXNlLnZpc2libGUpIHsKLQkJ CWZpZm9fc3RhdGUtPnBsYW5lW3BsYW5lLT5pZF0gPSAwOwotCQkJY29udGludWU7Ci0JCX0KLQot CQlyYXRlID0gc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Y3BwWzBdOwotCQlmaWZvX3N0YXRlLT5w bGFuZVtwbGFuZS0+aWRdID0gZmlmb19zaXplICogcmF0ZSAvIHRvdGFsX3JhdGU7Ci0JCWZpZm9f bGVmdCAtPSBmaWZvX3N0YXRlLT5wbGFuZVtwbGFuZS0+aWRdOworCQlyYXRlID0gbm9uaW52ZXJ0 ZWQtPnBsYW5lW3BsYW5lX2lkXTsKKwkJZmlmb19zdGF0ZS0+cGxhbmVbcGxhbmVfaWRdID0gZmlm b19zaXplICogcmF0ZSAvIHRvdGFsX3JhdGU7CisJCWZpZm9fbGVmdCAtPSBmaWZvX3N0YXRlLT5w bGFuZVtwbGFuZV9pZF07CiAJfQogCi0JZmlmb19leHRyYSA9IERJVl9ST1VORF9VUChmaWZvX2xl ZnQsIHdtX3N0YXRlLT5udW1fYWN0aXZlX3BsYW5lcyA/OiAxKTsKKwlmaWZvX3N0YXRlLT5wbGFu ZVtQTEFORV9DVVJTT1JdID0gNjM7CisKKwlmaWZvX2V4dHJhID0gRElWX1JPVU5EX1VQKGZpZm9f bGVmdCwgbnVtX2FjdGl2ZV9wbGFuZXMgPzogMSk7CiAKIAkvKiBzcHJlYWQgdGhlIHJlbWFpbmRl ciBldmVubHkgKi8KLQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxh bmUpIHsKKwlmb3JfZWFjaF9wbGFuZV9pZF9vbl9jcnRjKGNydGMsIHBsYW5lX2lkKSB7CiAJCWlu dCBwbGFuZV9leHRyYTsKIAogCQlpZiAoZmlmb19sZWZ0ID09IDApCiAJCQlicmVhazsKIAotCQlp ZiAocGxhbmUtPmlkID09IFBMQU5FX0NVUlNPUikKLQkJCWNvbnRpbnVlOwotCi0JCS8qIGdpdmUg aXQgYWxsIHRvIHRoZSBmaXJzdCBwbGFuZSBpZiBub25lIGFyZSBhY3RpdmUgKi8KLQkJaWYgKGZp Zm9fc3RhdGUtPnBsYW5lW3BsYW5lLT5pZF0gPT0gMCAmJgotCQkgICAgd21fc3RhdGUtPm51bV9h Y3RpdmVfcGxhbmVzKQorCQlpZiAoKGFjdGl2ZV9wbGFuZXMgJiBCSVQocGxhbmVfaWQpKSA9PSAw KQogCQkJY29udGludWU7CiAKIAkJcGxhbmVfZXh0cmEgPSBtaW4oZmlmb19leHRyYSwgZmlmb19s ZWZ0KTsKLQkJZmlmb19zdGF0ZS0+cGxhbmVbcGxhbmUtPmlkXSArPSBwbGFuZV9leHRyYTsKKwkJ Zmlmb19zdGF0ZS0+cGxhbmVbcGxhbmVfaWRdICs9IHBsYW5lX2V4dHJhOwogCQlmaWZvX2xlZnQg LT0gcGxhbmVfZXh0cmE7CiAJfQogCi0JV0FSTl9PTihmaWZvX2xlZnQgIT0gMCk7CisJV0FSTl9P TihhY3RpdmVfcGxhbmVzICE9IDAgJiYgZmlmb19sZWZ0ICE9IDApOworCisJLyogZ2l2ZSBpdCBh bGwgdG8gdGhlIGZpcnN0IHBsYW5lIGlmIG5vbmUgYXJlIGFjdGl2ZSAqLworCWlmIChhY3RpdmVf cGxhbmVzID09IDApIHsKKwkJV0FSTl9PTihmaWZvX2xlZnQgIT0gZmlmb19zaXplKTsKKwkJZmlm b19zdGF0ZS0+cGxhbmVbUExBTkVfUFJJTUFSWV0gPSBmaWZvX2xlZnQ7CisJfQorCisJcmV0dXJu IDA7CiB9CiAKIHN0YXRpYyB1MTYgdmx2X2ludmVydF93bV92YWx1ZSh1MTYgd20sIHUxNiBmaWZv X3NpemUpCkBAIC0xMTI5LDM1ICsxMTI2LDMzIEBAIHN0YXRpYyB2b2lkIHZsdl9jb21wdXRlX3dt KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0 cnVjdCB2bHZfd21fc3RhdGUgKndtX3N0YXRlID0gJmNydGNfc3RhdGUtPndtLnZsdi5vcHRpbWFs OwotCWNvbnN0IHN0cnVjdCB2bHZfZmlmb19zdGF0ZSAqZmlmb19zdGF0ZSA9Ci0JCSZjcnRjX3N0 YXRlLT53bS52bHYuZmlmb19zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwogCWlu dCBsZXZlbDsKIAogCW1lbXNldCh3bV9zdGF0ZSwgMCwgc2l6ZW9mKCp3bV9zdGF0ZSkpOworCW1l bXNldChjcnRjX3N0YXRlLT53bS52bHYubm9uaW52ZXJ0ZWQsIDAsCisJICAgICAgIHNpemVvZihj cnRjX3N0YXRlLT53bS52bHYubm9uaW52ZXJ0ZWQpKTsKIAogCXdtX3N0YXRlLT5jeHNyID0gY3J0 Yy0+cGlwZSAhPSBQSVBFX0MgJiYgY3J0Yy0+d20uY3hzcl9hbGxvd2VkOwogCXdtX3N0YXRlLT5u dW1fbGV2ZWxzID0gZGV2X3ByaXYtPndtLm1heF9sZXZlbCArIDE7CiAKIAl3bV9zdGF0ZS0+bnVt X2FjdGl2ZV9wbGFuZXMgPSAwOwogCi0Jdmx2X2NvbXB1dGVfZmlmbyhjcnRjX3N0YXRlKTsKLQog CWlmICh3bV9zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFuZXMgIT0gMSkKIAkJd21fc3RhdGUtPmN4c3Ig PSBmYWxzZTsKIAogCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoJmRldl9wcml2LT5kcm0s IGNydGMsIHBsYW5lKSB7CiAJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUgPQogCQkJ dG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPmJhc2Uuc3RhdGUpOwotCQlpbnQgbGV2ZWw7CiAK IAkJaWYgKCFzdGF0ZS0+YmFzZS52aXNpYmxlKQogCQkJY29udGludWU7CiAKLQkJLyogbm9ybWFs IHdhdGVybWFya3MgKi8KIAkJZm9yIChsZXZlbCA9IDA7IGxldmVsIDwgd21fc3RhdGUtPm51bV9s ZXZlbHM7IGxldmVsKyspIHsKKwkJCXN0cnVjdCB2bHZfcGlwZV93bSAqbm9uaW52ZXJ0ZWQgPQor CQkJCSZjcnRjX3N0YXRlLT53bS52bHYubm9uaW52ZXJ0ZWRbbGV2ZWxdOwogCQkJaW50IHdtID0g dmx2X2NvbXB1dGVfd21fbGV2ZWwoY3J0Y19zdGF0ZSwgc3RhdGUsIGxldmVsKTsKLQkJCWludCBt YXhfd20gPSBmaWZvX3N0YXRlLT5wbGFuZVtwbGFuZS0+aWRdOworCQkJaW50IG1heF93bSA9IHBs YW5lLT5pZCA9PSBQTEFORV9DVVJTT1IgPyA2MyA6IDUxMTsKIAogCQkJLyogaGFjayAqLwogCQkJ aWYgKFdBUk5fT04obGV2ZWwgPT0gMCAmJiB3bSA+IG1heF93bSkpCkBAIC0xMTY2LDI1ICsxMTYx LDI0IEBAIHN0YXRpYyB2b2lkIHZsdl9jb21wdXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogCQkJaWYgKHdtID4gbWF4X3dtKQogCQkJCWJyZWFrOwogCi0JCQl3bV9z dGF0ZS0+d21bbGV2ZWxdLnBsYW5lW3BsYW5lLT5pZF0gPSB3bTsKKwkJCW5vbmludmVydGVkLT5w bGFuZVtwbGFuZS0+aWRdID0gd207CiAJCX0KIAogCQl3bV9zdGF0ZS0+bnVtX2xldmVscyA9IGxl dmVsOworCX0KIAotCQlpZiAoIXdtX3N0YXRlLT5jeHNyKQotCQkJY29udGludWU7Ci0KLQkJLyog bWF4ZmlmbyB3YXRlcm1hcmtzICovCi0JCWlmIChwbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SKSB7 Ci0JCQlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPCB3bV9zdGF0ZS0+bnVtX2xldmVsczsgbGV2ZWwr KykKLQkJCQl3bV9zdGF0ZS0+c3JbbGV2ZWxdLmN1cnNvciA9Ci0JCQkJCXdtX3N0YXRlLT53bVts ZXZlbF0ucGxhbmVbUExBTkVfQ1VSU09SXTsKLQkJfSBlbHNlIHsKLQkJCWZvciAobGV2ZWwgPSAw OyBsZXZlbCA8IHdtX3N0YXRlLT5udW1fbGV2ZWxzOyBsZXZlbCsrKQotCQkJCXdtX3N0YXRlLT5z cltsZXZlbF0ucGxhbmUgPQotCQkJCQltYXgod21fc3RhdGUtPnNyW2xldmVsXS5wbGFuZSwKLQkJ CQkJICAgIHdtX3N0YXRlLT53bVtsZXZlbF0ucGxhbmVbcGxhbmUtPmlkXSk7Ci0JCX0KKwl2bHZf Y29tcHV0ZV9maWZvKGNydGNfc3RhdGUpOworCisJZm9yIChsZXZlbCA9IDA7IGxldmVsIDwgd21f c3RhdGUtPm51bV9sZXZlbHM7IGxldmVsKyspIHsKKwkJc3RydWN0IHZsdl9waXBlX3dtICpub25p bnZlcnRlZCA9CisJCQkmY3J0Y19zdGF0ZS0+d20udmx2Lm5vbmludmVydGVkW2xldmVsXTsKKwor CQl3bV9zdGF0ZS0+d21bbGV2ZWxdID0gKm5vbmludmVydGVkOworCisJCXdtX3N0YXRlLT5zclts ZXZlbF0ucGxhbmUgPSBtYXgzKG5vbmludmVydGVkLT5wbGFuZVtQTEFORV9QUklNQVJZXSwKKwkJ CQkJCSBub25pbnZlcnRlZC0+cGxhbmVbUExBTkVfU1BSSVRFMF0sCisJCQkJCQkgbm9uaW52ZXJ0 ZWQtPnBsYW5lW1BMQU5FX1NQUklURTFdKTsKKwkJd21fc3RhdGUtPnNyW2xldmVsXS5jdXJzb3Ig PSBub25pbnZlcnRlZC0+cGxhbmVbUExBTkVfQ1VSU09SXTsKIAl9CiAKIAkvKiBjbGVhciBhbnkg KHBhcnRpYWxseSkgZmlsbGVkIGludmFsaWQgbGV2ZWxzICovCi0tIAoyLjEwLjIKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=