From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id A301689711 for ; Mon, 18 Mar 2019 23:28:27 +0000 (UTC) From: Andi Shyti Date: Tue, 19 Mar 2019 01:28:10 +0200 Message-Id: <20190318232812.1307-6-andi.shyti@intel.com> In-Reply-To: <20190318232812.1307-1-andi.shyti@intel.com> References: <20190318232812.1307-1-andi.shyti@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH v12 5/7] lib/i915: add gem_engine_topology library List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: IGT dev Cc: Andi Shyti List-ID: VGhlIGdlbV9lbmdpbmVfdG9wb2xvZ3kgbGlicmFyeSBpcyBhIHNldCBvZiBmdW5jdGlvbnMgdGhh dAppbnRlcmZhY2Ugd2l0aCB0aGUgcXVlcnkgYW5kIGdldHBhcmFtL3NldHBhcmFtIGlvY3Rscy4K ClRoZSBsaWJyYXJ5J3MgYWNjZXNzIHBvaW50IGlzIHRoZSAnaW50ZWxfaW5pdF9lbmdpbmVfbGlz dCgpJwpmdW5jdGlvbiB0aGF0LCBldmVyeXRpbWUgaXMgY2FsbGVkLCBnZW5lcmF0ZXMgdGhlIGxp c3Qgb2YgYWN0aXZlCmVuZ2luZXMgYW5kIHJldHVybnMgdGhlbSBpbiBhICdzdHJ1Y3QgaW50ZWxf ZW5naW5lX2RhdGEnLiBUaGUKc3RydWN0dXJlIGNvbnRhaW5zIG9ubHkgdGhlIGVuZ2luZXMgdGhh dCBhcmUgYWN0aXZlbHkgcHJlc2VudCBpbgp0aGUgR1BVLgoKVGhlIGZ1bmN0aW9uIGNhbiB3b3Jr IGluIGJvdGggdGhlIGNhc2VzIHRoYXQgdGhlIHF1ZXJ5IGFuZApnZXRwYXJhbSBpb2N0bHMgYXJl IGltcGxlbWVudGVkIG9yIG5vdCBieSB0aGUgcnVubmluZyBrZXJuZWwuIEluCmNhc2UgdGhleSBh cmUgaW1wbGVtZW50ZWQsIGEgcXVlcnkgaXMgbWFkZSB0byB0aGUgZHJpdmVyIHRvIGZldGNoCnRo ZSBsaXN0IG9mIGFjdGl2ZSBlbmdpbmVzLiBJbiBjYXNlIHRoZXkgYXJlIG5vdCBpbXBsZW1lbnRl ZCwgdGhlCmxpc3QgaXMgdGFrZW4gZnJvbSB0aGUgJ2ludGVsX2V4ZWN1dGlvbl9lbmdpbmVzMicg YXJyYXkgYW5kCnN0b3JlZCBvbmx5IGFmdGVyIGNoZWNraW5nIHRoZWlyIHByZXNlbmNlLgoKVGhl IGxpYnJhcnkgcHJvdmlkZXMgdGhyZWUgaGVscGVyIGZ1bmN0aW9uczoKCjEuIGdlbV90b3BvbG9n eV9oYXNfZW5naW5lKCk6IGNoZWNrcyBpZiB0aGUgZW5naW5lIGlzIHByZXNlbnQgYnkKICAgcXVl cnlpbmcgdGhlIGRyaXZlciBpbiBhIHdheSB0aGF0IHRoZSBjYWxsZXIgZnVuY3Rpb24gd291bGRu J3QKICAga25vdyBpZiB0aGUgYWJvdmUgaW9jdGxzIGFyZSBpbXBsZW1lbnRlZC4KCjIuIGdlbV9z ZXRfZWJfZmxhZ3MoKTogc2V0cyB0aGUgZXhlY3V0aW9uIGJ1ZmZlciBmbGFnIGRlcGVuZGluZwog ICB3aGV0aGVyIGl0IHJlZmVycyB0byBjb250ZXh0LWVuZ2luZSBtYXBwaW5nIG9yIG5vdC4KCjMu IGdlbV9jb250ZXh0X2V4ZWNidWYoKTogaXMgYSB3cmFwcGVyIHRoYXQgZXhlY3V0ZXMgdGhlIGJ1 ZmZlcgogICBpbiBhIHdheSB0aGF0IHRoZSBjYWxsaW5nIGZ1bmN0aW9uIGRvZXNuJ3Qga25vdyBh Ym91dCB0aGUKICAgaW9jdGxzIGluIHRoZSBkcml2ZXIuCgpTaWduZWQtb2ZmLWJ5OiBBbmRpIFNo eXRpIDxhbmRpLnNoeXRpQGludGVsLmNvbT4KLS0tCiBsaWIvTWFrZWZpbGUuc291cmNlcyAgICAg ICAgICAgfCAgIDIgKwogbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jIHwgMjEwICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9n eS5oIHwgIDUyICsrKysrKysrCiBsaWIvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEg KwogNCBmaWxlcyBjaGFuZ2VkLCAyNjUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9p OTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaAoKZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZS5zb3Vy Y2VzIGIvbGliL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggY2YyNzIwOTgxNzA3Li43NTdiZDdhMTdl YmUgMTAwNjQ0Ci0tLSBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL2xpYi9NYWtlZmlsZS5z b3VyY2VzCkBAIC0xMyw2ICsxMyw4IEBAIGxpYl9zb3VyY2VfbGlzdCA9CSAJXAogCWk5MTUvZ2Vt X3JpbmcuYwlcCiAJaTkxNS9nZW1fbW1hbi5jCVwKIAlpOTE1L2dlbV9tbWFuLmgJXAorCWk5MTUv Z2VtX2VuZ2luZV90b3BvbG9neS5jCVwKKwlpOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaAlcCiAJ aTkxNV8zZC5oCQlcCiAJaTkxNV9yZWcuaAkJXAogCWk5MTVfcGNpaWRzLmgJCVwKZGlmZiAtLWdp dCBhL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYyBiL2xpYi9pOTE1L2dlbV9lbmdpbmVf dG9wb2xvZ3kuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU4MzZi Mzc0NWUwNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3ku YwpAQCAtMCwwICsxLDIxMCBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBv cmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0 byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGll cyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICog U29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw ZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxs IGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl CisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5D TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ VFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VN RU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE RVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwg QVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB UkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICov CisKKyNpbmNsdWRlICJkcm10ZXN0LmgiCisjaW5jbHVkZSAiaW9jdGxfd3JhcHBlcnMuaCIKKwor I2luY2x1ZGUgImk5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oIgorCisjZGVmaW5lIFNJWkVPRl9D VFhfUEFSQU0Jb2Zmc2V0b2Yoc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzLCBcCisJ CQkJCWNsYXNzX2luc3RhbmNlW0k5MTVfRVhFQ19SSU5HX01BU0sgKyAxXSkKKyNkZWZpbmUgU0la RU9GX1FVRVJZCQlvZmZzZXRvZihzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5naW5lX2luZm8sIFwK KwkJCQkJZW5naW5lc1tJOTE1X0VYRUNfUklOR19NQVNLICsgMV0pCisKK3N0YXRpYyBpbnQgX19n ZW1fcXVlcnkoaW50IGZkLCBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkgKnEpCit7CisJaW50IGVyciA9 IDA7CisKKwlpZiAoaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9RVUVSWSwgcSkpCisJCWVy ciA9IC1lcnJubzsKKworCWVycm5vID0gMDsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgdm9p ZCBnZW1fcXVlcnkoaW50IGZkLCBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkgKnEpCit7CisJaWd0X2Fz c2VydF9lcShfX2dlbV9xdWVyeShmZCwgcSksIDApOworfQorCitzdGF0aWMgdm9pZCBxdWVyeV9l bmdpbmVzKGludCBmZCwKKwkJCSAgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2VuZ2luZV9pbmZvICpx dWVyeV9lbmdpbmVzKQoreworCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtIGl0ZW0gPSB7IH07 CisJc3RydWN0IGRybV9pOTE1X3F1ZXJ5IHF1ZXJ5ID0geyB9OworCisJaXRlbS5xdWVyeV9pZCA9 IERSTV9JOTE1X1FVRVJZX0VOR0lORV9JTkZPOworCXF1ZXJ5Lml0ZW1zX3B0ciA9IHRvX3VzZXJf cG9pbnRlcigmaXRlbSk7CisJcXVlcnkubnVtX2l0ZW1zID0gMTsKKwlpdGVtLmxlbmd0aCA9IFNJ WkVPRl9RVUVSWTsKKworCWl0ZW0uZGF0YV9wdHIgPSB0b191c2VyX3BvaW50ZXIocXVlcnlfZW5n aW5lcyk7CisKKwlnZW1fcXVlcnkoZmQsICZxdWVyeSk7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9j dHhfcGFyYW1fZW5naW5lcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgKmVkKQoreworCXN0cnVj dCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcyAqY3R4X2VuZ2luZTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX2NvbnRleHRfcGFyYW0gY3R4X3BhcmFtOworCXVpbnQ4X3QgYnVmZltTSVpFT0ZfQ1RY X1BBUkFNXSA9IHsgfTsKKwlpbnQgaTsKKworCWN0eF9lbmdpbmUgPSAoc3RydWN0IGk5MTVfY29u dGV4dF9wYXJhbV9lbmdpbmVzICopIGJ1ZmY7CisKKwljdHhfZW5naW5lLT5leHRlbnNpb25zID0g MDsKKwlmb3IgKGkgPSAwOyBpIDwgZWQtPm5lbmdpbmVzOyBpKyspIHsKKwkJY3R4X2VuZ2luZS0+ Y2xhc3NfaW5zdGFuY2VbaV0uZW5naW5lX2NsYXNzID0KKwkJCQkJCQllZC0+ZW5naW5lc1tpXS5j bGFzczsKKwkJY3R4X2VuZ2luZS0+Y2xhc3NfaW5zdGFuY2VbaV0uZW5naW5lX2luc3RhbmNlID0K KwkJCQkJCQllZC0+ZW5naW5lc1tpXS5pbnN0YW5jZTsKKwl9CisKKwljdHhfcGFyYW0uc2l6ZSAg ID0gb2Zmc2V0b2YodHlwZW9mKCpjdHhfZW5naW5lKSwgY2xhc3NfaW5zdGFuY2VbaSArIDFdKTsK KwljdHhfcGFyYW0udmFsdWUgID0gdG9fdXNlcl9wb2ludGVyKGN0eF9lbmdpbmUpOworCWN0eF9w YXJhbS5jdHhfaWQgPSBlZC0+Y3R4OworCWN0eF9wYXJhbS5wYXJhbSAgPSBJOTE1X0NPTlRFWFRf UEFSQU1fRU5HSU5FUzsKKworCWdlbV9jb250ZXh0X3NldF9wYXJhbShlZC0+ZmQsICZjdHhfcGFy YW0pOworfQorCitzdGF0aWMgdm9pZCBpbml0X2VuZ2luZV9saXN0KHN0cnVjdCBpbnRlbF9lbmdp bmVfZGF0YSAqZWQpCit7CisJY29uc3QgY2hhciAqY2xhc3NfbmFtZXNbXSA9IHsgInJjcyIsICJi Y3MiLCAidmNzIiwgInZlY3MiIH07CisJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2VuZ2luZV9pbmZv ICpxdWVyeV9lbmdpbmU7CisJdW5zaWduZWQgY2hhciBxdWVyeV9idWZmZXJbU0laRU9GX1FVRVJZ XSA9IHsgfTsKKwlpbnQgaTsKKworCXF1ZXJ5X2VuZ2luZSA9IChzdHJ1Y3QgZHJtX2k5MTVfcXVl cnlfZW5naW5lX2luZm8gKikgcXVlcnlfYnVmZmVyOworCXF1ZXJ5X2VuZ2luZXMoZWQtPmZkLCBx dWVyeV9lbmdpbmUpOworCisJZm9yIChpID0gMDsgaSA8IHF1ZXJ5X2VuZ2luZS0+bnVtX2VuZ2lu ZXM7IGkrKykgeworCQljaGFyICpuYW1lOworCQlfX3UxNiBjbGFzcyA9IHF1ZXJ5X2VuZ2luZS0+ ZW5naW5lc1tpXS5lbmdpbmVfY2xhc3M7CisJCV9fdTE2IGluc3RhbmNlID0gcXVlcnlfZW5naW5l LT5lbmdpbmVzW2ldLmVuZ2luZV9pbnN0YW5jZTsKKworCQllZC0+ZW5naW5lc1tpXS5jbGFzcyA9 IGNsYXNzOworCQllZC0+ZW5naW5lc1tpXS5pbnN0YW5jZSA9IGluc3RhbmNlOworCisJCS8qIGlm IHdlIGRvbid0IHJlY29nbmlzZSB0aGUgY2xhc3MsIHRoZW4gd2UgbWFyayBpdCBhcyAidW5rIiAq LworCQlpZiAoY2xhc3MgPj0gQVJSQVlfU0laRShjbGFzc19uYW1lcykpCisJCQlpZ3RfYXNzZXJ0 KGFzcHJpbnRmKCZuYW1lLCAidW5rLSVkOiVkIiwKKwkJCQkJICAgIGNsYXNzLCBpbnN0YW5jZSkg PiAwKTsKKwkJZWxzZQorCQkJaWd0X2Fzc2VydChhc3ByaW50ZigmbmFtZSwgIiVzJWQiLAorCQkJ CQkgICAgY2xhc3NfbmFtZXNbY2xhc3NdLCBpbnN0YW5jZSkgPiAwKTsKKworCQllZC0+ZW5naW5l c1tpXS5uYW1lID0gbmFtZTsKKwl9CisKKwllZC0+bmVuZ2luZXMgPSBxdWVyeV9lbmdpbmUtPm51 bV9lbmdpbmVzOworfQorCitzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgaW50ZWxfaW5pdF9lbmdp bmVfbGlzdChpbnQgZmQsIHVpbnQzMl90IGN0eF9pZCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X2NvbnRleHRfcGFyYW0gY3R4X3BhcmFtID0geworCQkucGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFS QU1fRU5HSU5FUywKKwkJLmN0eF9pZCA9IGN0eF9pZCwKKwl9OworCXN0cnVjdCBpbnRlbF9lbmdp bmVfZGF0YSBlbmdpbmVfZGF0YSA9IHsKKwkJLm4gPSAwLAorCQkuZmQgPSBmZCwKKwkJLmN0eCA9 IGN0eF9pZCwKKwl9OworCisJaWYgKF9fZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGZkLCAmY3R4X3Bh cmFtKSkgeworCQljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUyOworCisJ CWlndF9kZWJ1ZygidXNpbmcgcHJlLWFsbG9jYXRlZCBlbmdpbmUgbGlzdFxuIik7CisKKwkJX19m b3JfZWFjaF9lbmdpbmVfY2xhc3NfaW5zdGFuY2UoZTIpIHsKKwkJCWlmICghZ2VtX2hhc19lbmdp bmUoZmQsIGUyLT5jbGFzcywgZTItPmluc3RhbmNlKSkKKwkJCQljb250aW51ZTsKKworCQkJZW5n aW5lX2RhdGEuZW5naW5lc1tlbmdpbmVfZGF0YS5uZW5naW5lc10ubmFtZSA9CisJCQkJCQkJCWUy LT5uYW1lOworCQkJZW5naW5lX2RhdGEuZW5naW5lc1tlbmdpbmVfZGF0YS5uZW5naW5lc10uaW5z dGFuY2UgPQorCQkJCQkJCQllMi0+aW5zdGFuY2U7CisJCQllbmdpbmVfZGF0YS5lbmdpbmVzW2Vu Z2luZV9kYXRhLm5lbmdpbmVzXS5jbGFzcyA9CisJCQkJCQkJCWUyLT5jbGFzczsKKwkJCWVuZ2lu ZV9kYXRhLm5lbmdpbmVzKys7CisJCX0KKworCQlyZXR1cm4gZW5naW5lX2RhdGE7CisJfQorCisJ aW5pdF9lbmdpbmVfbGlzdCgmZW5naW5lX2RhdGEpOworCisJaWYgKGN0eF9wYXJhbS5zaXplID09 IHNpemVvZihzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMpKQorCQlzZXRfY3R4X3Bh cmFtX2VuZ2luZXMoJmVuZ2luZV9kYXRhKTsKKworCXJldHVybiBlbmdpbmVfZGF0YTsKK30KKwor Ym9vbCBnZW1fdG9wb2xvZ3lfaGFzX2VuZ2luZShpbnQgZmQsIHN0cnVjdCBpbnRlbF9leGVjdXRp b25fZW5naW5lMiAqZSwKKwkJCSAgICAgdWludDhfdCBpLCB1aW50MzJfdCBjdHgpCit7CisJc3Ry dWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIGN0eF9wYXJhbSA9IHsKKwkJLnBhcmFtID0g STkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMsCisJfTsKKworCWlmICghZSkKKwkJcmV0dXJuIGZh bHNlOworCisJaWYgKF9fZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGZkLCAmY3R4X3BhcmFtKSkKKwkJ cmV0dXJuIGdlbV9oYXNfZW5naW5lKGZkLCBlLT5jbGFzcywgZS0+aW5zdGFuY2UpOworCisJcmV0 dXJuIGdlbV9jb250ZXh0X2hhc19lbmdpbmUoZmQsIGksIGN0eCk7Cit9CisKK3ZvaWQgZ2VtX3Nl dF9lYl9mbGFncyhpbnQgZmQsIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmViLAor CQkgICAgICBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgZTIsCisJCSAgICAgIHVpbnQ4 X3QgZW5naW5lLCB1aW50MzJfdCBjdHgpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0 X3BhcmFtIGN0eF9wYXJhbSA9IHsKKwkJLnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX0VOR0lO RVMsCisJfTsKKworCWlmIChfX2dlbV9jb250ZXh0X2dldF9wYXJhbShmZCwgJmN0eF9wYXJhbSkp IHsKKwkJZWItPmZsYWdzIHw9IChJOTE1X0VYRUNfUklOR19NQVNLICYgZW5naW5lKTsKKwkJZWIt PnJzdmQxID0gY3R4OworCX0gZWxzZSB7CisJCWViLT5mbGFncyB8PSBnZW1fY2xhc3NfaW5zdGFu Y2VfdG9fZWJfZmxhZ3MoZmQsIGUyLmNsYXNzLAorCQkJCQkJCSAgICBlMi5pbnN0YW5jZSk7CisJ fQorfQorCitpbnQgX19nZW1fY29udGV4dF9leGVjYnVmKGludCBmZCwgc3RydWN0IGRybV9pOTE1 X2dlbV9leGVjYnVmZmVyMiAqZWIsCisJCQkgIHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5l MiBlMiwKKwkJCSAgdWludDhfdCBlbmdpbmUsIHVpbnQzMl90IGN0eCkKK3sKKwlnZW1fc2V0X2Vi X2ZsYWdzKGZkLCBlYiwgZTIsIGVuZ2luZSwgY3R4KTsKKwlyZXR1cm4gX19nZW1fZXhlY2J1Zihm ZCwgZWIpOworfQorCit2b2lkIGdlbV9jb250ZXh0X2V4ZWNidWYoaW50IGZkLCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2V4ZWNidWZmZXIyICplYiwKKwkJCSBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2Vu Z2luZTIgZTIsCisJCQkgdWludDhfdCBpbmRleF9tYXAsIHVpbnQzMl90IGN0eCkKK3sKKwlpZ3Rf YXNzZXJ0X2VxKF9fZ2VtX2NvbnRleHRfZXhlY2J1ZihmZCwgZWIsIGUyLCBpbmRleF9tYXAsIGN0 eCksIDApOworfQpkaWZmIC0tZ2l0IGEvbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oIGIv bGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uNjU3YjkzOTdhMTgxCi0tLSAvZGV2L251bGwKKysrIGIvbGliL2k5MTUv Z2VtX2VuZ2luZV90b3BvbG9neS5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQg wqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5 IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl ICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmlj dGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2Us IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisg KiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAor ICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50 aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElT IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg T1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9S UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElO IFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaWZuZGVmIEdFTV9FTkdJTkVfVE9QT0xPR1lfSAorI2Rl ZmluZSBHRU1fRU5HSU5FX1RPUE9MT0dZX0gKKworI2luY2x1ZGUgImlndF9ndC5oIgorCitzdHJ1 Y3QgaW50ZWxfZW5naW5lX2RhdGEgeworCWludCBmZDsKKwl1aW50MzJfdCBjdHg7CisKKwl1aW50 MzJfdCBuZW5naW5lczsKKwl1aW50MzJfdCBuOworCXN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5n aW5lMiBlbmdpbmVzW0k5MTVfRVhFQ19SSU5HX01BU0sgKyAxXTsKK307CisKK3N0cnVjdCBpbnRl bF9lbmdpbmVfZGF0YSBpbnRlbF9pbml0X2VuZ2luZV9saXN0KGludCBmZCwgdWludDMyX3QgY3R4 X2lkKTsKK2Jvb2wgZ2VtX3RvcG9sb2d5X2hhc19lbmdpbmUoaW50IGZkLCBzdHJ1Y3QgaW50ZWxf ZXhlY3V0aW9uX2VuZ2luZTIgKmUsCisJCQkgICAgIHVpbnQ4X3QgaSwgdWludDMyX3QgY3R4KTsK Kwordm9pZCBnZW1fc2V0X2ViX2ZsYWdzKGludCBmZCwgc3RydWN0IGRybV9pOTE1X2dlbV9leGVj YnVmZmVyMiAqZWIsCisJCSAgICAgIHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiBlMiwK KwkJICAgICAgdWludDhfdCBlbmdpbmUsIHVpbnQzMl90IGN0eCk7CitpbnQgX19nZW1fY29udGV4 dF9leGVjYnVmKGludCBmZCwgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqZWIsCisJ CQkgIHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiBlMiwKKwkJCSAgdWludDhfdCBlbmdp bmUsIHVpbnQzMl90IGN0eCk7Cit2b2lkIGdlbV9jb250ZXh0X2V4ZWNidWYoaW50IGZkLCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICplYiwKKwkJCSBzdHJ1Y3QgaW50ZWxfZXhlY3V0 aW9uX2VuZ2luZTIgZTIsCisJCQkgdWludDhfdCBpbmRleF9tYXAsIHVpbnQzMl90IGN0eCk7CisK KyNlbmRpZiAvKiBHRU1fRU5HSU5FX1RPUE9MT0dZX0ggKi8KZGlmZiAtLWdpdCBhL2xpYi9tZXNv bi5idWlsZCBiL2xpYi9tZXNvbi5idWlsZAppbmRleCAwZWI1NTg1ZDcyYjkuLjNjYzUyZjk3Yzhi ZiAxMDA2NDQKLS0tIGEvbGliL21lc29uLmJ1aWxkCisrKyBiL2xpYi9tZXNvbi5idWlsZApAQCAt NSw2ICs1LDcgQEAgbGliX3NvdXJjZXMgPSBbCiAJJ2k5MTUvZ2VtX3N1Ym1pc3Npb24uYycsCiAJ J2k5MTUvZ2VtX3JpbmcuYycsCiAJJ2k5MTUvZ2VtX21tYW4uYycsCisJJ2k5MTUvZ2VtX2VuZ2lu ZV90b3BvbG9neS5jJywKIAknaWd0X2NvbG9yX2VuY29kaW5nLmMnLAogCSdpZ3RfZGVidWdmcy5j JywKIAknaWd0X2RldmljZS5jJywKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2