From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4B44A89B57 for ; Tue, 19 Mar 2019 23:44:58 +0000 (UTC) From: Andi Shyti Date: Wed, 20 Mar 2019 01:44:38 +0200 Message-Id: <20190319234441.1449-7-andi.shyti@intel.com> In-Reply-To: <20190319234441.1449-1-andi.shyti@intel.com> References: <20190319234441.1449-1-andi.shyti@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH v13 6/9] 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 YXJyYXkgYW5kCnN0b3JlZCBvbmx5IGFmdGVyIGNoZWNraW5nIHRoZWlyIHByZXNlbmNlLgoKU2ln bmVkLW9mZi1ieTogQW5kaSBTaHl0aSA8YW5kaS5zaHl0aUBpbnRlbC5jb20+Ci0tLQogbGliL01h a2VmaWxlLnNvdXJjZXMgICAgICAgICAgIHwgICAyICsKIGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9w b2xvZ3kuYyB8IDE5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYi9pOTE1 L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaCB8ICA0MSArKysrKysrCiBsaWIvbWVzb24uYnVpbGQgICAg ICAgICAgICAgICAgfCAgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCAyMzYgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYwogY3JlYXRl IG1vZGUgMTAwNjQ0IGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaAoKZGlmZiAtLWdpdCBh L2xpYi9NYWtlZmlsZS5zb3VyY2VzIGIvbGliL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggY2YyNzIw OTgxNzA3Li43NTdiZDdhMTdlYmUgMTAwNjQ0Ci0tLSBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzCisr KyBiL2xpYi9NYWtlZmlsZS5zb3VyY2VzCkBAIC0xMyw2ICsxMyw4IEBAIGxpYl9zb3VyY2VfbGlz dCA9CSAJXAogCWk5MTUvZ2VtX3JpbmcuYwlcCiAJaTkxNS9nZW1fbW1hbi5jCVwKIAlpOTE1L2dl bV9tbWFuLmgJXAorCWk5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jCVwKKwlpOTE1L2dlbV9lbmdp bmVfdG9wb2xvZ3kuaAlcCiAJaTkxNV8zZC5oCQlcCiAJaTkxNV9yZWcuaAkJXAogCWk5MTVfcGNp aWRzLmgJCVwKZGlmZiAtLWdpdCBhL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYyBiL2xp Yi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjRkZGQ5Y2E5OGI0OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYi9pOTE1L2dl bV9lbmdpbmVfdG9wb2xvZ3kuYwpAQCAtMCwwICsxLDE5MiBAQAorLyoKKyAqIENvcHlyaWdodCDC qSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkg b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAq IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cisg KiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4g VEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlICJkcm10ZXN0LmgiCisjaW5jbHVkZSAiaW9j dGxfd3JhcHBlcnMuaCIKKworI2luY2x1ZGUgImk5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oIgor CisjZGVmaW5lIFNJWkVPRl9DVFhfUEFSQU0Jb2Zmc2V0b2Yoc3RydWN0IGk5MTVfY29udGV4dF9w YXJhbV9lbmdpbmVzLCBcCisJCQkJCWNsYXNzX2luc3RhbmNlW0k5MTVfRVhFQ19SSU5HX01BU0sg KyAxXSkKKyNkZWZpbmUgU0laRU9GX1FVRVJZCQlvZmZzZXRvZihzdHJ1Y3QgZHJtX2k5MTVfcXVl cnlfZW5naW5lX2luZm8sIFwKKwkJCQkJZW5naW5lc1tJOTE1X0VYRUNfUklOR19NQVNLICsgMV0p CisKK3N0YXRpYyBpbnQgX19nZW1fcXVlcnkoaW50IGZkLCBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkg KnEpCit7CisJaW50IGVyciA9IDA7CisKKwlpZiAoaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkx NV9RVUVSWSwgcSkpCisJCWVyciA9IC1lcnJubzsKKworCWVycm5vID0gMDsKKwlyZXR1cm4gZXJy OworfQorCitzdGF0aWMgdm9pZCBnZW1fcXVlcnkoaW50IGZkLCBzdHJ1Y3QgZHJtX2k5MTVfcXVl cnkgKnEpCit7CisJaWd0X2Fzc2VydF9lcShfX2dlbV9xdWVyeShmZCwgcSksIDApOworfQorCitz dGF0aWMgdm9pZCBxdWVyeV9lbmdpbmVzKGludCBmZCwKKwkJCSAgc3RydWN0IGRybV9pOTE1X3F1 ZXJ5X2VuZ2luZV9pbmZvICpxdWVyeV9lbmdpbmVzKQoreworCXN0cnVjdCBkcm1faTkxNV9xdWVy eV9pdGVtIGl0ZW0gPSB7IH07CisJc3RydWN0IGRybV9pOTE1X3F1ZXJ5IHF1ZXJ5ID0geyB9Owor CisJaXRlbS5xdWVyeV9pZCA9IERSTV9JOTE1X1FVRVJZX0VOR0lORV9JTkZPOworCXF1ZXJ5Lml0 ZW1zX3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmaXRlbSk7CisJcXVlcnkubnVtX2l0ZW1zID0gMTsK KwlpdGVtLmxlbmd0aCA9IFNJWkVPRl9RVUVSWTsKKworCWl0ZW0uZGF0YV9wdHIgPSB0b191c2Vy X3BvaW50ZXIocXVlcnlfZW5naW5lcyk7CisKKwlnZW1fcXVlcnkoZmQsICZxdWVyeSk7Cit9CisK K3N0YXRpYyB2b2lkIG1hcF9lbmdpbmVfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEg KmVkLAorCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSAqY3R4X3Bh cmFtKQoreworCXN0cnVjdCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcyAqY3R4X2VuZ2luZSA9 CisJCQkoc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzKikgY3R4X3BhcmFtLT52YWx1 ZTsKKwlpbnQgaSA9IDA7CisKKwlmb3IgKHR5cGVvZihjdHhfZW5naW5lLT5jbGFzc19pbnN0YW5j ZVswXSkgKnAgPQorCQkJCQkmY3R4X2VuZ2luZS0+Y2xhc3NfaW5zdGFuY2VbMF07CisJCQkJCQlp IDwgZWQtPm5lbmdpbmVzOyBpKyssIHArKykgeworCQlwLT5lbmdpbmVfY2xhc3MgPSBlZC0+ZW5n aW5lc1tpXS5jbGFzczsKKwkJcC0+ZW5naW5lX2luc3RhbmNlID0gZWQtPmVuZ2luZXNbaV0uaW5z dGFuY2U7CisJfQorCisJY3R4X3BhcmFtLT5zaXplID0gb2Zmc2V0b2YodHlwZW9mKCpjdHhfZW5n aW5lKSwgY2xhc3NfaW5zdGFuY2VbaSArIDFdKTsKKworCWdlbV9jb250ZXh0X3NldF9wYXJhbShl ZC0+ZmQsIGN0eF9wYXJhbSk7Cit9CisKK3N0YXRpYyB2b2lkIGR1cF9lbmdpbmUoc3RydWN0IGlu dGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplMiwgY29uc3QgY2hhciAqbmFtZSwKKwkJICAgICAgIHVp bnQxNl90IGNsYXNzLCB1aW50MTZfdCBpbnN0YW5jZSwgdWludDhfdCBmbGFncykKK3sKKwljb25z dCBjaGFyICpjbGFzc19uYW1lc1tdID0geyAicmNzIiwgImJjcyIsICJ2Y3MiLCAidmVjcyIgfTsK KwljaGFyICpfX25hbWU7CisKKwkvKiBpZiB3ZSBkb24ndCByZWNvZ25pc2UgdGhlIGNsYXNzLCB0 aGVuIHdlIG1hcmsgaXQgYXMgInVuayIgKi8KKwlpZiAobmFtZSkgeworCQllMi0+bmFtZSA9IG5h bWU7CisJfSBlbHNlIHsKKwkJaWYgKGNsYXNzID49IEFSUkFZX1NJWkUoY2xhc3NfbmFtZXMpKQor CQkJaWd0X2Fzc2VydChhc3ByaW50ZigmX19uYW1lLCAidW5rLSVkOiVkIiwKKwkJCQkJICAgIGNs YXNzLCBpbnN0YW5jZSkgPiAwKTsKKwkJZWxzZQorCQkJaWd0X2Fzc2VydChhc3ByaW50ZigmX19u YW1lLCAiJXMlZCIsCisJCQkJCSAgICBjbGFzc19uYW1lc1tjbGFzc10sIGluc3RhbmNlKSA+IDAp OworCisJCWUyLT5uYW1lID0gX19uYW1lOworCX0KKworCWUyLT5jbGFzcyAgICA9IGNsYXNzOwor CWUyLT5pbnN0YW5jZSA9IGluc3RhbmNlOworCWUyLT5mbGFncyAgICA9IGZsYWdzOworCit9CisK K3N0YXRpYyB2b2lkIHF1ZXJ5X2VuZ2luZV9saXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSAq ZWQpCit7CisJdWludDhfdCBxdWVyeV9idWZmZXJbU0laRU9GX1FVRVJZXSA9IHsgfTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcXVlcnlfZW5naW5lX2luZm8gKnF1ZXJ5X2VuZ2luZSA9CisJCQkoc3RydWN0 IGRybV9pOTE1X3F1ZXJ5X2VuZ2luZV9pbmZvICopIHF1ZXJ5X2J1ZmZlcjsKKwlpbnQgaTsKKwor CXF1ZXJ5X2VuZ2luZXMoZWQtPmZkLCBxdWVyeV9lbmdpbmUpOworCisJZm9yIChpID0gMDsgaSA8 IHF1ZXJ5X2VuZ2luZS0+bnVtX2VuZ2luZXM7IGkrKykKKwkJZHVwX2VuZ2luZSgmZWQtPmVuZ2lu ZXNbaV0sIE5VTEwsCisJCQkgICBxdWVyeV9lbmdpbmUtPmVuZ2luZXNbaV0uZW5naW5lX2NsYXNz LAorCQkJICAgcXVlcnlfZW5naW5lLT5lbmdpbmVzW2ldLmVuZ2luZV9pbnN0YW5jZSwgaSArIDEp OworCisJZWQtPm5lbmdpbmVzID0gcXVlcnlfZW5naW5lLT5udW1fZW5naW5lczsKK30KKworc3Ry dWN0IGludGVsX2VuZ2luZV9kYXRhIGludGVsX2luaXRfZW5naW5lX2xpc3QoaW50IGZkLCB1aW50 MzJfdCBjdHhfaWQpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIGVuZ2luZV9kYXRhID0g eworCQkuZmQgPSBmZCwKKwkJLmN0eCA9IGN0eF9pZCwKKwl9OworCXVpbnQ4X3QgYnVmZltTSVpF T0ZfQ1RYX1BBUkFNXSA9IHsgfTsKKwlzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMg KmNlbmdpbmUgPQorCQkJCShzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMgKikgYnVm ZjsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gY3BhcmFtID0geworCQkucGFy YW0gPSBJOTE1X0NPTlRFWFRfUEFSQU1fRU5HSU5FUywKKwkJLmN0eF9pZCA9IGN0eF9pZCwKKwkJ LnNpemUgPSBTSVpFT0ZfQ1RYX1BBUkFNLAorCQkudmFsdWUgPSB0b191c2VyX3BvaW50ZXIoY2Vu Z2luZSksCisJfTsKKwlpbnQgcmV0LCBpOworCisJY3BhcmFtLnZhbHVlID0gdG9fdXNlcl9wb2lu dGVyKGNlbmdpbmUpOworCisJcmV0ID0gX19nZW1fY29udGV4dF9nZXRfcGFyYW0oZmQsICZjcGFy YW0pOworCisJaWYgKHJldCkgeworCQkvKiBpZiBrZXJuZWwgZG9lcyBub3Qgc3VwcG9ydCBlbmdp bmUvY29udGV4dCBtYXBwaW5nICovCisJCWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5n aW5lMiAqZTI7CisKKwkJaWd0X2RlYnVnKCJ1c2luZyBwcmUtYWxsb2NhdGVkIGVuZ2luZSBsaXN0 XG4iKTsKKworCQlfX2Zvcl9lYWNoX2VuZ2luZV9jbGFzc19pbnN0YW5jZShlMikgeworCQkJdWlu dDY0X3QgZmxhZ3M7CisKKwkJCWlmICghZ2VtX2hhc19lbmdpbmUoZmQsIGUyLT5jbGFzcywgZTIt Pmluc3RhbmNlKSkKKwkJCQljb250aW51ZTsKKworCQkJZmxhZ3MgPSBnZW1fY2xhc3NfaW5zdGFu Y2VfdG9fZWJfZmxhZ3MoZmQsIGUyLT5jbGFzcywKKwkJCQkJCQkgICAgICAgZTItPmluc3RhbmNl KTsKKworCQkJZHVwX2VuZ2luZSgmZW5naW5lX2RhdGEuZW5naW5lc1tlbmdpbmVfZGF0YS5uZW5n aW5lc10sCisJCQkJICAgZTItPm5hbWUsIGUyLT5jbGFzcywgZTItPmluc3RhbmNlLCBmbGFncyk7 CisKKwkJCWVuZ2luZV9kYXRhLm5lbmdpbmVzKys7CisJCX0KKworCX0gZWxzZSBpZiAoY3BhcmFt LnNpemUgPT0gc2l6ZW9mKHN0cnVjdCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcykpIHsKKwkJ LyogZWxzZSBpZiBjb250ZXh0IGRvZXNuJ3QgaGF2ZSBtYXBwZWQgZW5naW5lcyAqLworCQlxdWVy eV9lbmdpbmVfbGlzdCgmZW5naW5lX2RhdGEpOworCQltYXBfZW5naW5lX2NvbnRleHQoJmVuZ2lu ZV9kYXRhLCAmY3BhcmFtKTsKKworCX0gZWxzZSB7CisJCS8qIGNvbnRleHQgaGFzIGEgbGlzdCBv ZiBtYXBwZWQgZW5naW5lcyAqLworCisJCXVpbnQ4X3QgbmVuZ2luZXMgPSAoY3BhcmFtLnNpemUg LQorCQkJCXNpemVvZihzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMpKSAvCisJCQkJ c2l6ZW9mKGNlbmdpbmUtPmNsYXNzX2luc3RhbmNlWzBdKTsKKworCQlmb3IgKGkgPSAwOyBpIDwg bmVuZ2luZXMgLSAxOyBpKyspCisJCQlkdXBfZW5naW5lKCZlbmdpbmVfZGF0YS5lbmdpbmVzW2ld LCBOVUxMLAorCQkJCSAgIGNlbmdpbmUtPmNsYXNzX2luc3RhbmNlW2ldLmVuZ2luZV9jbGFzcywK KwkJCQkgICBjZW5naW5lLT5jbGFzc19pbnN0YW5jZVtpXS5lbmdpbmVfaW5zdGFuY2UsCisJCQkJ ICAgaSArIDEpOworCisJCWVuZ2luZV9kYXRhLm5lbmdpbmVzID0gaTsKKwl9CisKKwlyZXR1cm4g ZW5naW5lX2RhdGE7Cit9CmRpZmYgLS1naXQgYS9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5 LmggYi9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi41NDQ2MjE2ODNlMTUKLS0tIC9kZXYvbnVsbAorKysgYi9saWIv aTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHly aWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAq IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5z ZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBu ZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ UkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENP Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwor ICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgR0VNX0VOR0lORV9UT1BPTE9HWV9I CisjZGVmaW5lIEdFTV9FTkdJTkVfVE9QT0xPR1lfSAorCisjaW5jbHVkZSAiaTkxNV9kcm0uaCIK KyNpbmNsdWRlICJpZ3RfZ3QuaCIKKworc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIHsKKwlpbnQg ZmQ7CisJdWludDMyX3QgY3R4OworCisJdWludDMyX3QgbmVuZ2luZXM7CisJdWludDMyX3QgbjsK KwlzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgZW5naW5lc1tJOTE1X0VYRUNfUklOR19N QVNLICsgMV07Cit9OworCitzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgaW50ZWxfaW5pdF9lbmdp bmVfbGlzdChpbnQgZmQsIHVpbnQzMl90IGN0eF9pZCk7CisKKyNlbmRpZiAvKiBHRU1fRU5HSU5F X1RPUE9MT0dZX0ggKi8KZGlmZiAtLWdpdCBhL2xpYi9tZXNvbi5idWlsZCBiL2xpYi9tZXNvbi5i dWlsZAppbmRleCAwZWI1NTg1ZDcyYjkuLjNjYzUyZjk3YzhiZiAxMDA2NDQKLS0tIGEvbGliL21l c29uLmJ1aWxkCisrKyBiL2xpYi9tZXNvbi5idWlsZApAQCAtNSw2ICs1LDcgQEAgbGliX3NvdXJj ZXMgPSBbCiAJJ2k5MTUvZ2VtX3N1Ym1pc3Npb24uYycsCiAJJ2k5MTUvZ2VtX3JpbmcuYycsCiAJ J2k5MTUvZ2VtX21tYW4uYycsCisJJ2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jJywKIAknaWd0 X2NvbG9yX2VuY29kaW5nLmMnLAogCSdpZ3RfZGVidWdmcy5jJywKIAknaWd0X2RldmljZS5jJywK LS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2