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 000696E28A for ; Mon, 11 Feb 2019 23:08:36 +0000 (UTC) Date: Tue, 12 Feb 2019 01:08:08 +0200 Message-Id: <20190211230811.24955-3-andi.shyti@intel.com> In-Reply-To: <20190211230811.24955-1-andi.shyti@intel.com> References: <20190211230811.24955-1-andi.shyti@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [RFC PATCH v7 2/5] lib: implement new engine discovery interface List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Andi Shyti via igt-dev Reply-To: Andi Shyti 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: Petri Latvala , Andi Shyti List-ID: S2VybmVsIGNvbW1pdHM6CgpbMV0gYWU4ZjQ1NDRkZDhmICgiZHJtL2k5MTU6IEVuZ2luZSBkaXNj b3ZlcnkgcXVlcnkiKQpbMl0gMzFlN2QzNTY2N2EwICgiZHJtL2k5MTU6IEFsbG93IGEgY29udGV4 dCB0byBkZWZpbmUgaXRzIHNldCBvZiBlbmdpbmVzIikKCmltcGxlbWVudCBhIG5ldyB1YXBpIGZv ciBlbmdpbmUgZGlzY292ZXJ5IHRoYXQgY29uc2lzdCBpbiBmaXJzdApxdWVyeWluZyB0aGUgZHJp dmVyIGFib3V0IHRoZSBlbmdpbmVzIGluIHRoZSBncHUgWzFdIGFuZCB0aGVuCmJpbmRpbmcgYSBj b250ZXh0IHRvIHRoZSBzZXQgb2YgZW5naW5lcyB0aGF0IGl0IGNhbiBhY2Nlc3MgWzJdLgoKSW4g aWd0IHRoZSBjbGFzc2ljIHdheSBmb3IgZGlzY292ZXJpbmcgZW5naW5lcyBpcyBkb25lIHRocm91 Z2gKdGhlIGZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZSgpIG1hY3JvLCB0aGF0IHdvdWxkIGJlIHJl cGxhY2VkIGJ5CnRoZSBuZXcgZm9yX2VhY2hfZW5naW5lX2N0eCgpLgoKQSBuZXcgZnVuY3Rpb24g Z2VtX2luaXRfZW5naW5lX2xpc3QoKSBpcyBhZGRlZCBpbiB0aGUgbGlicmFyeQp0aGF0IGluaXRp YWxpemVzIHRoZSBhY3RpdmUgZW5naW5lIGxpc3QgYnkgaW50ZXJyb2dhdGluZyB0aGUKZHJpdmVy LiBUaGUgbGlzdCBpcyBzdG9yZWQgaW4gaW50ZWxfYWN0aXZlX2VuZ2luZXMyLgoKSW4gY2FzZSBv ZiBtaXNzaW5nIEdFVC9TRVRQQVJBTSBpb2N0bCBjb21tYW5kCmludGVsX2FjdGl2ZV9lbmdpbmVz MiB3aWxsIHBvaW50IHRvIHRoZSBleGlzdGluZwppbnRlbF9leGVjdXRpb25fZW5naW5lczIgdGhh dCBoYXMgYSBzdGF0aWMgbGlzdCBvZiBlbmdpbmVzLgoKZ2VtX2luaXRfZW5naW5lX2xpc3QoKSBy ZXR1cm5zCgogKiAnMCcgb24gc3VjY2VzcwogKiAtRUlOVkFMIGlmIEdFVC9TRVRQQVJBTSBhcmUg bm90IHByZXNlbnQgaW4gdGhlIHJ1bm5pbmcga2VybmVsCiAqIGVycm5vIGluIGNhc2Ugb2Ygb3Ro ZXIgZmFpbHVyZSBjYXNlcwoKU2lnbmVkLW9mZi1ieTogQW5kaSBTaHl0aSA8YW5kaS5zaHl0aUBp bnRlbC5jb20+Ci0tLQogbGliL2lndF9ndC5jIHwgMTQ0ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQogbGliL2lndF9ndC5oIHwgIDIyICsrKysrKyst CiAyIGZpbGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2xpYi9pZ3RfZ3QuYyBiL2xpYi9pZ3RfZ3QuYwppbmRleCA2NDY2OTY3MjdlZTQu LjZjMmM0NjU2Mjc2MCAxMDA2NDQKLS0tIGEvbGliL2lndF9ndC5jCisrKyBiL2xpYi9pZ3RfZ3Qu YwpAQCAtNTc3LDcgKzU3Nyw3IEBAIGJvb2wgZ2VtX2Nhbl9zdG9yZV9kd29yZChpbnQgZmQsIHVu c2lnbmVkIGludCBlbmdpbmUpCiAJcmV0dXJuIHRydWU7CiB9CiAKLWNvbnN0IHN0cnVjdCBpbnRl bF9leGVjdXRpb25fZW5naW5lMiBpbnRlbF9leGVjdXRpb25fZW5naW5lczJbXSA9IHsKK3N0cnVj dCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiBpbnRlbF9leGVjdXRpb25fZW5naW5lczJbXSA9IHsK IAl7ICJyY3MwIiwgSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSLCAwIH0sCiAJeyAiYmNzMCIsIEk5 MTVfRU5HSU5FX0NMQVNTX0NPUFksIDAgfSwKIAl7ICJ2Y3MwIiwgSTkxNV9FTkdJTkVfQ0xBU1Nf VklERU8sIDAgfSwKQEAgLTU4Niw2ICs1ODYsOCBAQCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0 aW9uX2VuZ2luZTIgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZXMyW10gPSB7CiAJeyB9CiB9OwogCitz dHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmludGVsX2FjdGl2ZV9lbmdpbmVzMjsKKwog dW5zaWduZWQgaW50CiBnZW1fY2xhc3NfaW5zdGFuY2VfdG9fZWJfZmxhZ3MoaW50IGdlbV9mZCwK IAkJCSAgICAgICBlbnVtIGRybV9pOTE1X2dlbV9lbmdpbmVfY2xhc3MgY2xhc3MsCkBAIC02NTAs MyArNjUyLDE0MyBAQCBib29sIGdlbV9yaW5nX2hhc19waHlzaWNhbF9lbmdpbmUoaW50IGZkLCB1 bnNpZ25lZCByaW5nKQogCiAJcmV0dXJuIGdlbV9oYXNfcmluZyhmZCwgcmluZyk7CiB9CisKK3N0 YXRpYyBpbnQgX19nZW1fcXVlcnkoaW50IGZkLCBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkgKnEpCit7 CisJcmV0dXJuIGlndF9pb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfUVVFUlksIHEpID8gLWVycm5v IDogMDsKK30KKwordm9pZCBnZW1fcXVlcnkoaW50IGZkLCBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkg KnEpCit7CisJaWd0X2Fzc2VydCghX19nZW1fcXVlcnkoZmQsIHEpKTsKK30KKworc3RhdGljIGlu dCBfX2dlbV9nZXRfc2V0X3BhcmFtKGludCBmZCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0LAorCQkJ ICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSAqcCkKK3sKKwlyZXR1cm4g aWd0X2lvY3RsKGZkLCByZXF1ZXN0LCBwKSA/ICAtZXJybm8gOiAwOworfQorCit2b2lkIGdlbV9n ZXRfc2V0X3BhcmFtKGludCBmZCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0LAorCQkgICAgICAgc3Ry dWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtICpwKQoreworCWlndF9hc3NlcnQoIV9fZ2Vt X2dldF9zZXRfcGFyYW0oZmQsIHJlcXVlc3QsIHApKTsKK30KKworYm9vbCBnZW1faXNfZ2V0X3Nl dF9wYXJhbSh2b2lkKQoreworCXJldHVybiBpbnRlbF9hY3RpdmVfZW5naW5lczIgIT0gaW50ZWxf ZXhlY3V0aW9uX2VuZ2luZXMyOworfQorCitzdGF0aWMgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2Vu Z2luZV9pbmZvICpxdWVyeV9lbmdpbmVzKGludCBmZCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcXVl cnkgcXVlcnkgPSB7IH07CisJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gaXRlbSA9IHsgfTsK KwlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5naW5lX2luZm8gKnF1ZXJ5X2VuZ2luZXM7CisKKwlp dGVtLnF1ZXJ5X2lkID0gRFJNX0k5MTVfUVVFUllfRU5HSU5FX0lORk87CisJcXVlcnkuaXRlbXNf cHRyID0gdG9fdXNlcl9wb2ludGVyKCZpdGVtKTsKKwlxdWVyeS5udW1faXRlbXMgPSAxOworCWl0 ZW0ubGVuZ3RoID0gc2l6ZW9mKCpxdWVyeV9lbmdpbmVzKSArCisJCSAgICAgIDY0ICogc2l6ZW9m KHN0cnVjdCBkcm1faTkxNV9lbmdpbmVfaW5mbyk7CisKKwlpZ3RfYXNzZXJ0KChxdWVyeV9lbmdp bmVzID0gY2FsbG9jKDEsIGl0ZW0ubGVuZ3RoKSkpOworCWl0ZW0uZGF0YV9wdHIgPSB0b191c2Vy X3BvaW50ZXIocXVlcnlfZW5naW5lcyk7CisKKwlnZW1fcXVlcnkoZmQsICZxdWVyeSk7CisKKwly ZXR1cm4gcXVlcnlfZW5naW5lczsKK30KKwordm9pZCBfX3NldF9jdHhfZW5naW5lX21hcChpbnQg ZmQsIHVpbnQzMl90IGN0eF9pZCkKK3sKKwlpbnQgaTsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZXhl Y3V0aW9uX2VuZ2luZTIgKmUyOworCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBj dHhfcGFyYW07CisJc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzICpjdHhfZW5naW5l OworCisJaWYgKCFnZW1faXNfZ2V0X3NldF9wYXJhbSgpKQorCQlyZXR1cm47CisKKwljdHhfcGFy YW0uY3R4X2lkID0gY3R4X2lkOworCWN0eF9wYXJhbS5wYXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJB TV9FTkdJTkVTOworCWN0eF9wYXJhbS5zaXplID0gc2l6ZW9mKCpjdHhfZW5naW5lKSArCisJCQkg KEk5MTVfRVhFQ19SSU5HX01BU0sgLSAxKSAqCisJCQkgc2l6ZW9mKCpjdHhfZW5naW5lLT5jbGFz c19pbnN0YW5jZSk7CisKKwlpZ3RfYXNzZXJ0KChjdHhfZW5naW5lID0gY2FsbG9jKDEsIGN0eF9w YXJhbS5zaXplKSkpOworCisJY3R4X2VuZ2luZS0+ZXh0ZW5zaW9ucyA9IDA7CisJZm9yIChpID0g MCwgZTIgPSBpbnRlbF9hY3RpdmVfZW5naW5lczI7IGUyLT5uYW1lOyBpKyssIGUyKyspIHsKKwkJ Y3R4X2VuZ2luZS0+Y2xhc3NfaW5zdGFuY2VbaV0uZW5naW5lX2NsYXNzID0gZTItPmNsYXNzOwor CQljdHhfZW5naW5lLT5jbGFzc19pbnN0YW5jZVtpXS5lbmdpbmVfaW5zdGFuY2UgPSBlMi0+aW5z dGFuY2U7CisJfQorCisJY3R4X3BhcmFtLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKGN0eF9lbmdp bmUpOworCisJZ2VtX3NldHBhcmFtKGZkLCAmY3R4X3BhcmFtKTsKKworCWZyZWUoY3R4X2VuZ2lu ZSk7Cit9CisKKy8qCisgKiBJbml0aWFsaXplcyB0aGUgbGlzdCBvZiBlbmdpbmVzLgorICoKKyAq IFJldHVybnM6CisgKgorICogIC0gMCBpbiBjYXNlIG9mIHN1Y2Nlc3MgYW5kIHRoZSBnZXQvc2V0 cGFyYW0gaW9jdGxzIGFyZSBpbXBsZW1lbnRlZAorICogIC0gLUVJTlZBTCBpbiBjYXNlIG9mIHN1 Y2Nlc3MgYnV0IGdldC9zZXRwYXJhbSBpb2N0bHMgYXJlIG5vdCBpbXBsZW1lbnRlZAorICogIC0g ZXJybm8gaW4gY2FzZSBvZiBmYWlsdXJlCisgKi8KK2ludCBnZW1faW5pdF9lbmdpbmVfbGlzdChp bnQgZmQpCit7CisJaW50IGksIHJldDsKKwlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5naW5lX2lu Zm8gKnF1ZXJ5X2VuZ2luZSA9IHF1ZXJ5X2VuZ2luZXMoZmQpOworCWNvbnN0IGNoYXIgKmVuZ2lu ZV9uYW1lc1tdID0geyAicmNzIiwgImJjcyIsICJ2Y3MiLCAidmVjcyIgfTsKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gY3R4X3BhcmFtID0geworCQkucGFyYW0gPSBJOTE1X0NP TlRFWFRfUEFSQU1fRU5HSU5FUywKKwl9OworCisJLyogdGhlIGxpc3QgaXMgYWxyZWFkeSBpbml0 aWFsaXplZCAqLworCWlmIChpbnRlbF9hY3RpdmVfZW5naW5lczIpCisJCXJldHVybiBnZW1faXNf Z2V0X3NldF9wYXJhbSgpID8gMCA6IC1FSU5WQUw7CisKKwkvKgorCSAqIHdlIGNoZWNrIGZpcnN0 IHdoZXRoZXIgdGhlIG5ldyBlbmdpbmUgZGlzY292ZXJ5IHVhcGkKKwkgKiBpcyBpbiB0aGUgY3Vy cmVudCBrZXJuZWwsIGlmIG5vdCwgdGhlCisJICogRFJNX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRf R0VUUEFSQU0gd2lsbCBmYWlsIHdpdGgKKwkgKiBlcnJubyA9IEVJTlZBTC4gSW4gdGhpcyBjYXNl LCB3ZSBmYWxsIGJhY2sgdG8gdXNpbmcKKwkgKiB0aGUgcHJldmlvdXMgZW5naW5lIGRpc2NvdmVy eSB3YXkKKwkgKi8KKwlyZXQgPSBfX2dlbV9nZXRfc2V0X3BhcmFtKGZkLCBEUk1fSU9DVExfSTkx NV9HRU1fQ09OVEVYVF9HRVRQQVJBTSwKKwkJCQkgICZjdHhfcGFyYW0pOworCWlmIChyZXQpIHsK KwkJaWYgKHJldCA9PSAtRUlOVkFMKQorCQkJaW50ZWxfYWN0aXZlX2VuZ2luZXMyID0gaW50ZWxf ZXhlY3V0aW9uX2VuZ2luZXMyOworCQlyZXR1cm4gcmV0OworCX0KKworCWlndF9hc3NlcnQoKGlu dGVsX2FjdGl2ZV9lbmdpbmVzMiA9CisJCSAgICBjYWxsb2MocXVlcnlfZW5naW5lLT5udW1fZW5n aW5lcyArIDEsCisJCQkgICBzaXplb2YoKmludGVsX2FjdGl2ZV9lbmdpbmVzMikpKSk7CisKKwlm b3IgKGkgPSAwOyBpIDwgcXVlcnlfZW5naW5lLT5udW1fZW5naW5lczsgaSsrKSB7CisJCWNoYXIg Km5hbWU7CisJCWludCBjbGFzcyA9IHF1ZXJ5X2VuZ2luZS0+ZW5naW5lc1tpXS5jbGFzczsKKwkJ aW50IGluc3RhbmNlID0gcXVlcnlfZW5naW5lLT5lbmdpbmVzW2ldLmluc3RhbmNlOworCisJCWln dF9hc3NlcnQoY2xhc3MgPCBBUlJBWV9TSVpFKGVuZ2luZV9uYW1lcykgJiYgY2xhc3MgPj0gMCk7 CisJCWlndF9hc3NlcnQoZW5naW5lX25hbWVzW2NsYXNzXSk7CisKKwkJaW50ZWxfYWN0aXZlX2Vu Z2luZXMyW2ldLmNsYXNzID0gY2xhc3M7CisJCWludGVsX2FjdGl2ZV9lbmdpbmVzMltpXS5pbnN0 YW5jZSA9IGluc3RhbmNlOworCisJCWlndF9hc3NlcnQoYXNwcmludGYoJm5hbWUsICIlcyVkIiwK KwkJCQkgICAgZW5naW5lX25hbWVzW2NsYXNzXSwgaW5zdGFuY2UpID4gMCk7CisJCWludGVsX2Fj dGl2ZV9lbmdpbmVzMltpXS5uYW1lID0gbmFtZTsKKwl9CisKKwlmcmVlKHF1ZXJ5X2VuZ2luZSk7 CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZ3QuaCBiL2xpYi9pZ3RfZ3Qu aAppbmRleCA1NGU5NWRhOTgwODQuLjI4MzUwMjUyZDgwYyAxMDA2NDQKLS0tIGEvbGliL2lndF9n dC5oCisrKyBiL2xpYi9pZ3RfZ3QuaApAQCAtODYsMTYgKzg2LDM0IEBAIGV4dGVybiBjb25zdCBz dHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZSB7CiAJICAgICBlX18rKykgXAogCQlmb3JfaWYg KGdlbV9yaW5nX2hhc19waHlzaWNhbF9lbmdpbmUoZmRfXywgZmxhZ3NfXyA9IGVfXy0+ZXhlY19p ZCB8IGVfXy0+ZmxhZ3MpKQogCisjZGVmaW5lIGZvcl9lYWNoX2VuZ2luZV9jdHgoZmQsIGN0eCwg ZSkgXAorCQlmb3IgKF9fc2V0X2N0eF9lbmdpbmVfbWFwKGZkLCBjdHhfaWQpLCBcCisJCSAgICAg ZSA9IGludGVsX2FjdGl2ZV9lbmdpbmVzMjsgZS0+bmFtZTsgZSsrKSBcCisJCQlmb3JfaWYgKGdl bV9pc19nZXRfc2V0X3BhcmFtKCkgfHwgXAorCQkJCWdlbV9oYXNfZW5naW5lKGZkLCBlLT5jbGFz cywgZS0+aW5zdGFuY2UpKQorCiBib29sIGdlbV9yaW5nX2lzX3BoeXNpY2FsX2VuZ2luZShpbnQg ZmQsIHVuc2lnbmVkIGludCByaW5nKTsKIGJvb2wgZ2VtX3JpbmdfaGFzX3BoeXNpY2FsX2VuZ2lu ZShpbnQgZmQsIHVuc2lnbmVkIGludCByaW5nKTsKIAogYm9vbCBnZW1fY2FuX3N0b3JlX2R3b3Jk KGludCBmZCwgdW5zaWduZWQgaW50IGVuZ2luZSk7CiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgaW50 ZWxfZXhlY3V0aW9uX2VuZ2luZTIgeworc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyIHsK IAljb25zdCBjaGFyICpuYW1lOwogCWludCBjbGFzczsKIAlpbnQgaW5zdGFuY2U7Ci19IGludGVs X2V4ZWN1dGlvbl9lbmdpbmVzMltdOworfTsKKworZXh0ZXJuIHN0cnVjdCBpbnRlbF9leGVjdXRp b25fZW5naW5lMiAqaW50ZWxfYWN0aXZlX2VuZ2luZXMyOworZXh0ZXJuIHN0cnVjdCBpbnRlbF9l eGVjdXRpb25fZW5naW5lMiBpbnRlbF9leGVjdXRpb25fZW5naW5lczJbXTsKKworYm9vbCBnZW1f aXNfZ2V0X3NldF9wYXJhbSh2b2lkKTsKK3ZvaWQgZ2VtX3F1ZXJ5KGludCBmZCwgc3RydWN0IGRy bV9pOTE1X3F1ZXJ5ICpxKTsKK2ludCBnZW1faW5pdF9lbmdpbmVfbGlzdChpbnQgZmQpOwordm9p ZCBfX3NldF9jdHhfZW5naW5lX21hcChpbnQgZmQsIHVpbnQzMl90IGN0eF9pZCk7Cit2b2lkIGdl bV9nZXRfc2V0X3BhcmFtKGludCBmZCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0LCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gKnApOworCisjZGVmaW5lIGdlbV9zZXRwYXJhbShmLCBw KSBnZW1fZ2V0X3NldF9wYXJhbShmLCBEUk1fSU9DVExfSTkxNV9HRU1fQ09OVEVYVF9TRVRQQVJB TSwgcCkKKyNkZWZpbmUgZ2VtX2dldHBhcmFtKGYsIHApIGdlbV9nZXRfc2V0X3BhcmFtKGYsIERS TV9JT0NUTF9JOTE1X0dFTV9DT05URVhUX0dFVFBBUkFNLCBwKQogCiB1bnNpZ25lZCBpbnQKIGdl bV9jbGFzc19pbnN0YW5jZV90b19lYl9mbGFncyhpbnQgZ2VtX2ZkLAotLSAKMi4yMC4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxp bmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=