From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: [PATCH v10 6/6] drm/i915: expose rcs topology through query uAPI Date: Fri, 19 Jan 2018 13:22:21 +0000 Message-ID: <20180119132221.1496-7-lionel.g.landwerlin@intel.com> References: <20180119132221.1496-1-lionel.g.landwerlin@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 659726E003 for ; Fri, 19 Jan 2018 13:22:32 +0000 (UTC) In-Reply-To: <20180119132221.1496-1-lionel.g.landwerlin@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 V2l0aCB0aGUgaW50cm9kdWN0aW9uIG9mIGFzeW1tZXRyaWMgc2xpY2VzIGluIENOTCwgd2UgY2Fu bm90IHJlbHkgb24KdGhlIHByZXZpb3VzIFNVQlNMSUNFX01BU0sgZ2V0cGFyYW0gdG8gdGVsbCB1 c2Vyc3BhY2Ugd2hhdCBzdWJzbGljZXMKYXJlIGF2YWlsYWJsZS4gSGVyZSB3ZSBpbnRyb2R1Y2Ug YSBtb3JlIGRldGFpbGVkIHdheSBvZiBxdWVyeWluZyB0aGUKR2VuJ3MgR1BVIHRvcG9sb2d5IHRo YXQgZG9lc24ndCBhZ2dyZWdhdGUgbnVtYmVycy4KClRoaXMgaXMgZXNzZW50aWFsIGZvciBtb25p dG9yaW5nIHBhcnRzIG9mIHRoZSBHUFUgd2l0aCB0aGUgT0EgdW5pdCwKYmVjYXVzZSBjb3VudGVy cyBuZWVkIHRvIGJlIG5vcm1hbGl6ZWQgdG8gdGhlIG51bWJlciBvZgpFVXMvc3Vic2xpY2VzL3Ns aWNlcy4gVGhlIGN1cnJlbnQgYWdncmVnYXRlZCBudW1iZXJzIGxpa2UgRVVfVE9UQUwgZG8Kbm90 IGdpdmVzIHVzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24uCgpBcyBhIGJvbnVzIHdlIGNhbiBkcmF3 IHJlcHJlc2VudGF0aW9ucyBvZiB0aGUgR1BVIDoKCiAgICAgICAgaHR0cHM6Ly9pbWd1ci5jb20v YS92dXFwYQoKdjI6IFJlbmFtZSB1YXBpIHN0cnVjdCBzL19tYXNrL19pbmZvLyAoVHZydGtvKQog ICAgUmVwb3J0IG1heF9zbGljZS9zdWJzbGljZS9ldXNfcGVyX3N1YnNsaWNlIHJhdGhlciB0aGFu IHN0cmlkZXMgKFR2cnRrbykKICAgIEFkZCB1YXBpIG1hY3JvcyB0byByZWFkIGRhdGEgZnJvbSAq X2luZm8gc3RydWN0cyAoVHZydGtvKQoKdjM6IFVzZSAhISh2ICYgRFJNX0k5MTVfQklUKCkpIGZv ciB1YXBpIG1hY3JvcyBpbnN0ZWFkIG9mIGN1c3RvbSBzaGlmdHMgKFR2cnRrbykKCnY0OiBmYWN0 b3JpemUgcXVlcnkgaXRlbSB3cml0dGluZyAoVHZydGtvKQogICAgdHdlYWsgdWFwaSBzdHJ1Y3Qv ZGVmaW5lIG5hbWVzIChUdnJ0a28pCgp2NTogUmVwbGFjZSBBTElHTigpIG1hY3JvIChDaHJpcykK CnY2OiBVcGRhdGVkIHVhcGkgY29tbWVudHMgKFR2cnRrbykKICAgIE1vdmVkIGZsYWdzICE9IDAg Y2hlY2tzIGludG8gdmZ1bmNzIChUdnJ0a28pCgp2NzogVXNlIGFjY2Vzc19vaygpIGJlZm9yZSBj b3B5aW5nIGFueXRoaW5nLCB0byBhdm9pZCBvdmVyZmxvd3MgKENocmlzKQogICAgU3dpdGNoIEJV R19PTigpIHRvIEdFTV9XQVJOX09OKCkgKFR2cnRrbykKCnY4OiBUd2VhayB1YXBpIGNvbW1lbnRz IHN0eWxlIHRvIG1hdGNoIHRoZSBjb2Rpbmcgc3R5bGUgKExpb25lbCkKClNpZ25lZC1vZmYtYnk6 IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KQ2M6IEpv b25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgfCAxMTAgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICB8ICA3 MSArKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTgxIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKaW5kZXggNWFhODg2MzEzY2Y5Li5mZjg3 ZWM4YTMyMWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKQEAgLTI1LDggKzI1LDExOCBA QAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSA8dWFwaS9kcm0vaTkxNV9kcm0uaD4K CitzdGF0aWMgaW50IGNvcHlfcXVlcnlfZGF0YShzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSAq cXVlcnlfaXRlbSwKKwkJCSAgIGNvbnN0IHZvaWQgKml0ZW1fcHRyLCB1MzIgaXRlbV9sZW5ndGgs CisJCQkgICBjb25zdCB2b2lkICpkYXRhX3B0ciwgdTMyIGRhdGFfbGVuZ3RoKQoreworCXUzMiB0 b3RhbF9sZW5ndGggPSBpdGVtX2xlbmd0aCArIGRhdGFfbGVuZ3RoOworCisJaWYgKEdFTV9XQVJO X09OKGFkZF9vdmVyZmxvd3MoaXRlbV9sZW5ndGgsIGRhdGFfbGVuZ3RoKSkpCisJCXJldHVybiAt RUlOVkFMOworCisJaWYgKHF1ZXJ5X2l0ZW0tPmxlbmd0aCA9PSAwKQorCQlyZXR1cm4gdG90YWxf bGVuZ3RoOworCisJaWYgKHF1ZXJ5X2l0ZW0tPmxlbmd0aCA8IHRvdGFsX2xlbmd0aCkKKwkJcmV0 dXJuIC1FSU5WQUw7CisKKwlpZiAoIWFjY2Vzc19vayhWRVJJRllfV1JJVEUsIHU2NF90b191c2Vy X3B0cihxdWVyeV9pdGVtLT5kYXRhX3B0ciksCisJCSAgICAgICB0b3RhbF9sZW5ndGgpKQorCQly ZXR1cm4gLUVGQVVMVDsKKworCWlmIChfX2NvcHlfdG9fdXNlcih1NjRfdG9fdXNlcl9wdHIocXVl cnlfaXRlbS0+ZGF0YV9wdHIpLAorCQkJICAgaXRlbV9wdHIsIGl0ZW1fbGVuZ3RoKSkKKwkJcmV0 dXJuIC1FRkFVTFQ7CisKKwlpZiAoX19jb3B5X3RvX3VzZXIodTY0X3RvX3VzZXJfcHRyKHF1ZXJ5 X2l0ZW0tPmRhdGFfcHRyICsgaXRlbV9sZW5ndGgpLAorCQkJICAgZGF0YV9wdHIsIGRhdGFfbGVu Z3RoKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlyZXR1cm4gdG90YWxfbGVuZ3RoOworfQorCitz dGF0aWMgaW50IHF1ZXJ5X3NsaWNlX2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAorCQkJICAgIHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICpxdWVyeV9pdGVtKQorewor CWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJklOVEVMX0lORk8oZGV2X3ByaXYp LT5zc2V1OworCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9zbGljZV9pbmZvIHNsaWNlX2luZm87CisK KwlpZiAocXVlcnlfaXRlbS0+ZmxhZ3MgIT0gMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAo c3NldS0+bWF4X3NsaWNlcyA9PSAwKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCS8qCisJICogSWYg d2UgZXZlciBjaGFuZ2UgdGhlIGludGVybmFsIHNsaWNlIG1hc2sgZGF0YSB0eXBlLCB3ZSdsbCBu ZWVkIHRvCisJICogdXBkYXRlIHRoaXMgZnVuY3Rpb24uCisJICovCisJQlVJTERfQlVHX09OKHNp emVvZih1OCkgIT0gc2l6ZW9mKHNzZXUtPnNsaWNlX21hc2spKTsKKworCW1lbXNldCgmc2xpY2Vf aW5mbywgMCwgc2l6ZW9mKHNsaWNlX2luZm8pKTsKKwlzbGljZV9pbmZvLm1heF9zbGljZXMgPSBz c2V1LT5tYXhfc2xpY2VzOworCisJcmV0dXJuIGNvcHlfcXVlcnlfZGF0YShxdWVyeV9pdGVtLCAm c2xpY2VfaW5mbywgc2l6ZW9mKHNsaWNlX2luZm8pLAorCQkJICAgICAgICZzc2V1LT5zbGljZV9t YXNrLCBzaXplb2Yoc3NldS0+c2xpY2VfbWFzaykpOworfQorCitzdGF0aWMgaW50IHF1ZXJ5X3N1 YnNsaWNlX2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICAg IHN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICpxdWVyeV9pdGVtKQoreworCWNvbnN0IHN0cnVj dCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJklOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1OworCXN0 cnVjdCBkcm1faTkxNV9xdWVyeV9zdWJzbGljZV9pbmZvIHN1YnNsaWNlX2luZm87CisJdTMyIGRh dGFfbGVuZ3RoOworCisJaWYgKHF1ZXJ5X2l0ZW0tPmZsYWdzICE9IDApCisJCXJldHVybiAtRUlO VkFMOworCisJaWYgKHNzZXUtPm1heF9zbGljZXMgPT0gMCkKKwkJcmV0dXJuIC1FTk9ERVY7CisK KwltZW1zZXQoJnN1YnNsaWNlX2luZm8sIDAsIHNpemVvZihzdWJzbGljZV9pbmZvKSk7CisJc3Vi c2xpY2VfaW5mby5tYXhfc2xpY2VzID0gc3NldS0+bWF4X3NsaWNlczsKKwlzdWJzbGljZV9pbmZv Lm1heF9zdWJzbGljZXMgPSBzc2V1LT5tYXhfc3Vic2xpY2VzOworCisJZGF0YV9sZW5ndGggPSBz dWJzbGljZV9pbmZvLm1heF9zbGljZXMgKgorCQlESVZfUk9VTkRfVVAoc3Vic2xpY2VfaW5mby5t YXhfc3Vic2xpY2VzLAorCQkJICAgICBzaXplb2Yoc3NldS0+c3Vic2xpY2VfbWFza1swXSkgKiBC SVRTX1BFUl9CWVRFKTsKKworCXJldHVybiBjb3B5X3F1ZXJ5X2RhdGEocXVlcnlfaXRlbSwKKwkJ CSAgICAgICAmc3Vic2xpY2VfaW5mbywgc2l6ZW9mKHN1YnNsaWNlX2luZm8pLAorCQkJICAgICAg IHNzZXUtPnN1YnNsaWNlX21hc2ssIGRhdGFfbGVuZ3RoKTsKK30KKworc3RhdGljIGludCBxdWVy eV9ldV9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSBzdHJ1Y3Qg ZHJtX2k5MTVfcXVlcnlfaXRlbSAqcXVlcnlfaXRlbSkKK3sKKwljb25zdCBzdHJ1Y3Qgc3NldV9k ZXZfaW5mbyAqc3NldSA9ICZJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldTsKKwlzdHJ1Y3QgZHJt X2k5MTVfcXVlcnlfZXVfaW5mbyBldV9pbmZvOworCXUzMiBkYXRhX2xlbmd0aDsKKworCWlmIChx dWVyeV9pdGVtLT5mbGFncyAhPSAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChzc2V1LT5t YXhfc2xpY2VzID09IDApCisJCXJldHVybiAtRU5PREVWOworCisJbWVtc2V0KCZldV9pbmZvLCAw LCBzaXplb2YoZXVfaW5mbykpOworCWV1X2luZm8ubWF4X3NsaWNlcyA9IHNzZXUtPm1heF9zbGlj ZXM7CisJZXVfaW5mby5tYXhfc3Vic2xpY2VzID0gc3NldS0+bWF4X3N1YnNsaWNlczsKKwlldV9p bmZvLm1heF9ldXNfcGVyX3N1YnNsaWNlID0gc3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2U7CisK KwlkYXRhX2xlbmd0aCA9IGV1X2luZm8ubWF4X3NsaWNlcyAqIGV1X2luZm8ubWF4X3N1YnNsaWNl cyAqCisJCURJVl9ST1VORF9VUChldV9pbmZvLm1heF9ldXNfcGVyX3N1YnNsaWNlLCBCSVRTX1BF Ul9CWVRFKTsKKworCXJldHVybiBjb3B5X3F1ZXJ5X2RhdGEocXVlcnlfaXRlbSwKKwkJCSAgICAg ICAmZXVfaW5mbywgc2l6ZW9mKGV1X2luZm8pLAorCQkJICAgICAgIHNzZXUtPmV1X21hc2ssIGRh dGFfbGVuZ3RoKTsKK30KKwogc3RhdGljIGludCAoKiBjb25zdCBpOTE1X3F1ZXJ5X2Z1bmNzW10p KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJc3RydWN0IGRybV9pOTE1 X3F1ZXJ5X2l0ZW0gKnF1ZXJ5X2l0ZW0pID0geworCXF1ZXJ5X3NsaWNlX2luZm8sCisJcXVlcnlf c3Vic2xpY2VfaW5mbywKKwlxdWVyeV9ldV9pbmZvLAogfTsKCiBpbnQgaTkxNV9xdWVyeV9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGUpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3Vh cGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggMDNmMDMxNjUyZDg2Li4wYTRmNGNkZDdlOTIgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJt L2k5MTVfZHJtLmgKQEAgLTE2MTgsNiArMTYxOCw5IEBAIHN0cnVjdCBkcm1faTkxNV9wZXJmX29h X2NvbmZpZyB7Cgogc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gewogCV9fdTY0IHF1ZXJ5X2lk OworI2RlZmluZSBEUk1fSTkxNV9RVUVSWV9TTElDRV9JTkZPCTB4MDEKKyNkZWZpbmUgRFJNX0k5 MTVfUVVFUllfU1VCU0xJQ0VfSU5GTwkweDAyCisjZGVmaW5lIERSTV9JOTE1X1FVRVJZX0VVX0lO Rk8JCTB4MDMKCiAJLyoKIAkgKiBXaGVuIHNldCB0byB6ZXJvIGJ5IHVzZXJzcGFjZSwgdGhpcyBp cyBmaWxsZWQgd2l0aCB0aGUgc2l6ZSBvZiB0aGUKQEAgLTE2NTQsNiArMTY1Nyw3NCBAQCBzdHJ1 Y3QgZHJtX2k5MTVfcXVlcnkgewogCV9fdTY0IGl0ZW1zX3B0cjsKIH07CgorI2RlZmluZSBEUk1f STkxNV9CSVQoYml0KSAoKF9fdTMyKTEgPDwgKGJpdCkpCisjZGVmaW5lIERSTV9JOTE1X0RJVl9S T1VORF9VUCh2YWwsIGRpdikgKCgodmFsKSArIChkaXYpIC0gMSkgLyAoZGl2KSkKKworLyoKKyAq IERhdGEgd3JpdHRlbiBieSB0aGUga2VybmVsIHdpdGggcXVlcnkgRFJNX0k5MTVfUVVFUllfU0xJ Q0VfSU5GTyA6CisgKgorICogZGF0YTogZWFjaCBiaXQgaW5kaWNhdGVzIHdoZXRoZXIgYSBzbGlj ZSBpcyBhdmFpbGFibGUgKDEpIG9yIGZ1c2VkIG9mZiAoMCkuCisgKiAgICAgICBGb3JtdWxhIHRv IHRlbGwgaWYgc2xpY2UgWCBpcyBhdmFpbGFibGUgOgorICoKKyAqICAgICAgICAgICAgKGRhdGFb WCAvIDhdID4+IChYICUgOCkpICYgMQorICoKKyAqICAgICAgIEFsdGVybmF0aXZlbHksIHVzZSBE Uk1fSTkxNV9RVUVSWV9TTElDRV9BVkFJTEFCTEUoKSB0byBxdWVyeSBhCisgKiAgICAgICBnaXZl biBzdWJzbGljZSdzIGF2YWlsYWJpbGl0eS4KKyAqLworc3RydWN0IGRybV9pOTE1X3F1ZXJ5X3Ns aWNlX2luZm8geworCV9fdTMyIG1heF9zbGljZXM7CisKKyNkZWZpbmUgRFJNX0k5MTVfUVVFUllf U0xJQ0VfQVZBSUxBQkxFKGluZm8sIHNsaWNlKSBcCisJISEoKGluZm8pLT5kYXRhWyhzbGljZSkg LyA4XSAmIERSTV9JOTE1X0JJVCgoc2xpY2UpICUgOCkpCisJX191OCBkYXRhW107Cit9OworCisv KgorICogRGF0YSB3cml0dGVuIGJ5IHRoZSBrZXJuZWwgd2l0aCBxdWVyeSBEUk1fSTkxNV9RVUVS WV9TVUJTTElDRV9JTkZPIDoKKyAqCisgKiBkYXRhOiBlYWNoIGJpdCBpbmRpY2F0ZXMgd2hldGhl ciBhIHN1YnNsaWNlIGlzIGF2YWlsYWJsZSAoMSkgb3IgZnVzZWQgb2ZmCisgKiAgICAgICAoMCku IEZvcm11bGEgdG8gdGVsbCBpZiBzbGljZSBYIHN1YnNsaWNlIFkgaXMgYXZhaWxhYmxlIDoKKyAq CisgKiAgICAgICAgICAgIChkYXRhWyhYICogbWF4X3N1YnNsaWNlcykgKyBZIC8gOF0gPj4gKFkg JSA4KSkgJiAxCisgKgorICogICAgICAgQWx0ZXJuYXRpdmVseSwgdXNlIERSTV9JOTE1X1FVRVJZ X1NVQlNMSUNFX0FWQUlMQUJMRSgpIHRvIHF1ZXJ5IGEKKyAqICAgICAgIGdpdmVuIHN1YnNsaWNl J3MgYXZhaWxhYmlsaXR5LgorICovCitzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfc3Vic2xpY2VfaW5m byB7CisJX191MzIgbWF4X3NsaWNlczsKKwlfX3UzMiBtYXhfc3Vic2xpY2VzOworCisjZGVmaW5l IERSTV9JOTE1X1FVRVJZX1NVQlNMSUNFX0FWQUlMQUJMRShpbmZvLCBzbGljZSwgc3Vic2xpY2Up IFwKKwkhISgoaW5mbyktPmRhdGFbKHNsaWNlKSAqIERSTV9JOTE1X0RJVl9ST1VORF9VUCgoaW5m byktPm1heF9zdWJzbGljZXMsIDgpICsgXAorCQkJKHN1YnNsaWNlKSAvIDhdICYgRFJNX0k5MTVf QklUKChzdWJzbGljZSkgJSA4KSkKKwlfX3U4IGRhdGFbXTsKK307CisKKy8qCisgKiBEYXRhIHdy aXR0ZW4gYnkgdGhlIGtlcm5lbCB3aXRoIHF1ZXJ5IERSTV9JOTE1X1FVRVJZX0VVX0lORk8gOgor ICoKKyAqIGRhdGE6IEVhY2ggYml0IGluZGljYXRlcyB3aGV0aGVyIGFuIEVVIGlzIGF2YWlsYWJs ZSAoMSkgb3IgZnVzZWQgb2ZmICgwKS4KKyAqICAgICAgIEZvcm11bGEgdG8gdGVsbCBpZiBzbGlj ZSBYIHN1YnNsaWNlIFkgZXUgWiBpcyBhdmFpbGFibGUgOgorICoKKyAqICAgICAgICAgICAoZGF0 YVtYICogbWF4X3N1YnNsaWNlcyAqIEFMSUdOKG1heF9ldXNfcGVyX3N1YnNsaWNlLCA4KSAvIDgg KworICogICAgICAgICAgICAgICAgIFkgKiBBTElHTihtYXhfZXVzX3Blcl9zdWJzbGljZSwgOCkg LyA4ICsKKyAqICAgICAgICAgICAgICAgICBaIC8gOF0gPj4gKFogJSA4KSkgJiAxCisgKgorICog ICAgICAgQWx0ZXJuYXRpdmVseSwgdXNlIERSTV9JOTE1X1FVRVJZX0VVX0FWQUlMQUJMRSgpIHRv IHF1ZXJ5IGEgZ2l2ZW4KKyAqICAgICAgIEVVJ3MgYXZhaWxhYmlsaXR5LgorICovCitzdHJ1Y3Qg ZHJtX2k5MTVfcXVlcnlfZXVfaW5mbyB7CisJX191MzIgbWF4X3NsaWNlczsKKwlfX3UzMiBtYXhf c3Vic2xpY2VzOworCV9fdTMyIG1heF9ldXNfcGVyX3N1YnNsaWNlOworCisjZGVmaW5lIERSTV9J OTE1X1FVRVJZX0VVX0FWQUlMQUJMRShpbmZvLCBzbGljZSwgc3Vic2xpY2UsIGV1KSBcCisJISEo KGluZm8pLT5kYXRhWyhzbGljZSkgKiBEUk1fSTkxNV9ESVZfUk9VTkRfVVAoKGluZm8pLT5tYXhf ZXVzX3Blcl9zdWJzbGljZSwgOCkgKiAoaW5mbyktPm1heF9zdWJzbGljZXMgKyBcCisJCQkoc3Vi c2xpY2UpICogRFJNX0k5MTVfRElWX1JPVU5EX1VQKChpbmZvKS0+bWF4X2V1c19wZXJfc3Vic2xp Y2UsIDgpICsgXAorCQkJKGV1KSAvIDhdICYgRFJNX0k5MTVfQklUKChldSkgJSA4KSkKKwlfX3U4 IGRhdGFbXTsKK307CisKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfQogI2VuZGlmCi0tCjIu MTUuMQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK