From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH 2/5] drm/syncobj: add sync obj wait interface. (v3) Date: Wed, 24 May 2017 17:06:12 +1000 Message-ID: <20170524070615.1634-3-airlied@gmail.com> References: <20170524070615.1634-1-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170524070615.1634-1-airlied@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KClRoaXMgaW50ZXJmYWNlIHdp bGwgYWxsb3cgc3luYyBvYmplY3QgdG8gYmUgdXNlZCB0byBiYWNrClZ1bGthbiBmZW5jZXMuIFRo aXMgQVBJIGlzIHByZXR0eSBtdWNoIHRoZSB2dWxrYW4gZmVuY2Ugd2FpdGluZwpBUEksIGFuZCBJ J3ZlIHBvcnRlZCB0aGUgY29kZSBmcm9tIGFtZGdwdS4KCnYyOiBhY2NlcHQgcmVsYXRpdmUgdGlt ZW91dCwgcGFzcyByZW1haW5pbmcgdGltZSBiYWNrCnRvIHVzZXJzcGFjZS4KdjM6IHJldHVybiB0 byBhYnNvbHV0ZSB0aW1lb3V0cy4KClNpZ25lZC1vZmYtYnk6IERhdmUgQWlybGllIDxhaXJsaWVk QHJlZGhhdC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIHwgICAyICsK IGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0v ZHJtX3N5bmNvYmouYyAgfCAxNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICAgICB8ICAxNCArKysrCiA0IGZpbGVz IGNoYW5nZWQsIDE4MiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCmluZGV4IDNm ZGVmMmMuLjUzZTNmNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKQEAgLTE1NiwzICsxNTYsNSBA QCBpbnQgZHJtX3N5bmNvYmpfaGFuZGxlX3RvX2ZkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiAJCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOwog aW50IGRybV9zeW5jb2JqX2ZkX3RvX2hhbmRsZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKK2lu dCBkcm1fc3luY29ial93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCisJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMK aW5kZXggZjFlNTY4MS4uMzg1Y2U3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9p b2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpAQCAtNjU3LDYgKzY1Nyw4 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rsc1tdID0gewog CQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihE Uk1fSU9DVExfU1lOQ09CSl9GRF9UT19IQU5ETEUsIGRybV9zeW5jb2JqX2ZkX3RvX2hhbmRsZV9p b2N0bCwKIAkJICAgICAgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NU TF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfV0FJVCwgZHJtX3N5bmNvYmpfd2FpdF9pb2N0bCwKKwkJ ICAgICAgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAogfTsKIAogI2RlZmluZSBEUk1f Q09SRV9JT0NUTF9DT1VOVAlBUlJBWV9TSVpFKCBkcm1faW9jdGxzICkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2Jq LmMKaW5kZXggYjYxMTQ4MC4uOGI4NzU5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9zeW5jb2JqLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKQEAgLTEsNSAr MSw3IEBACiAvKgogICogQ29weXJpZ2h0IDIwMTcgUmVkIEhhdAorICogUGFydHMgcG9ydGVkIGZy b20gYW1kZ3B1IChmZW5jZSB3YWl0IGNvZGUpLgorICogQ29weXJpZ2h0IDIwMTYgQWR2YW5jZWQg TWljcm8gRGV2aWNlcywgSW5jLgogICoKICAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCiAgKiBjb3B5IG9mIHRo aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0 d2FyZSIpLApAQCAtMzEsNiArMzMsOSBAQAogICogdGhhdCBjb250YWluIGFuIG9wdGlvbmFsIGZl bmNlLiBUaGUgZmVuY2UgY2FuIGJlIHVwZGF0ZWQgd2l0aCBhIG5ldwogICogZmVuY2UsIG9yIGJl IE5VTEwuCiAgKgorICogc3luY29iaidzIGNhbiBiZSB3YWl0ZWQgdXBvbiwgd2hlcmUgaXQgd2ls bCB3YWl0IGZvciB0aGUgdW5kZXJseWluZworICogZmVuY2UuCisgKgogICogc3luY29iaidzIGNh biBiZSBleHBvcnQgdG8gZmQncyBhbmQgYmFjaywgdGhlc2UgZmQncyBhcmUgb3BhcXVlIGFuZAog ICogaGF2ZSBubyBvdGhlciB1c2UgY2FzZSwgZXhjZXB0IHBhc3NpbmcgdGhlIHN5bmNvYmogYmV0 d2VlbiBwcm9jZXNzZXMuCiAgKgpAQCAtMzc1LDMgKzM4MCwxNjIgQEAgZHJtX3N5bmNvYmpfZmRf dG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJcmV0 dXJuIGRybV9zeW5jb2JqX2ZkX3RvX2hhbmRsZShmaWxlX3ByaXZhdGUsIGFyZ3MtPmZkLAogCQkJ CQkmYXJncy0+aGFuZGxlKTsKIH0KKworCisvKioKKyAqIGRybV90aW1lb3V0X2Fic190b19qaWZm aWVzIC0gY2FsY3VsYXRlIGppZmZpZXMgdGltZW91dCBmcm9tIGFic29sdXRlIHZhbHVlCisgKgor ICogQHRpbWVvdXRfbnM6IHRpbWVvdXQgaW4gbnMKKyAqCisgKiBDYWxjdWxhdGUgdGhlIHRpbWVv dXQgaW4gamlmZmllcyBmcm9tIGFuIGFic29sdXRlIHRpbWVvdXQgaW4gbnMuCisgKi8KK3Vuc2ln bmVkIGxvbmcgZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXModWludDY0X3QgdGltZW91dF9ucykK K3sKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXRfamlmZmllczsKKwlrdGltZV90IHRpbWVvdXQ7CisK KwkvKiBjbGFtcCB0aW1lb3V0IGlmIGl0J3MgdG8gbGFyZ2UgKi8KKwlpZiAoKChpbnQ2NF90KXRp bWVvdXRfbnMpIDwgMCkKKwkJcmV0dXJuIE1BWF9TQ0hFRFVMRV9USU1FT1VUOworCisJdGltZW91 dCA9IGt0aW1lX3N1Yihuc190b19rdGltZSh0aW1lb3V0X25zKSwga3RpbWVfZ2V0KCkpOworCWlm IChrdGltZV90b19ucyh0aW1lb3V0KSA8IDApCisJCXJldHVybiAwOworCisJdGltZW91dF9qaWZm aWVzID0gbnNlY3NfdG9famlmZmllcyhrdGltZV90b19ucyh0aW1lb3V0KSk7CisJLyogIGNsYW1w IHRpbWVvdXQgdG8gYXZvaWQgdW5zaWduZWQtPiBzaWduZWQgb3ZlcmZsb3cgKi8KKwlpZiAodGlt ZW91dF9qaWZmaWVzID4gTUFYX1NDSEVEVUxFX1RJTUVPVVQgKQorCQlyZXR1cm4gTUFYX1NDSEVE VUxFX1RJTUVPVVQgLSAxOworCisJcmV0dXJuIHRpbWVvdXRfamlmZmllczsKK30KKworc3RhdGlj IGludCBkcm1fc3luY29ial93YWl0X2FsbF9mZW5jZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK KwkJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUsCisJCQkJICAgICAgIHN0 cnVjdCBkcm1fc3luY29ial93YWl0ICp3YWl0LAorCQkJCSAgICAgICB1aW50MzJfdCAqaGFuZGxl cykKK3sKKwl1aW50MzJfdCBpOworCWludCByZXQ7CisJdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0g ZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXMod2FpdC0+dGltZW91dF9ucyk7CisKKwlmb3IgKGkg PSAwOyBpIDwgd2FpdC0+Y291bnRfaGFuZGxlczsgaSsrKSB7CisJCXN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlOworCisJCXJldCA9IGRybV9zeW5jb2JqX2ZlbmNlX2dldChmaWxlX3ByaXZhdGUsIGhh bmRsZXNbaV0sCisJCQkJCSAgICAmZmVuY2UpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsK KworCQlpZiAoIWZlbmNlKQorCQkJY29udGludWU7CisKKwkJcmV0ID0gZG1hX2ZlbmNlX3dhaXRf dGltZW91dChmZW5jZSwgdHJ1ZSwgdGltZW91dCk7CisKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7 CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKwkJaWYgKHJldCA9PSAwKQorCQkJYnJl YWs7CisJCXRpbWVvdXQgPSByZXQ7CisJfQorCisJd2FpdC0+b3V0X3RpbWVvdXRfbnMgPSBqaWZm aWVzX3RvX25zZWNzKHJldCk7CisJd2FpdC0+b3V0X3N0YXR1cyA9IChyZXQgPiAwKTsKKwl3YWl0 LT5maXJzdF9zaWduYWxlZCA9IDA7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZHJtX3N5 bmNvYmpfd2FpdF9hbnlfZmVuY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgICAgICBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSwKKwkJCQkgICAgICBzdHJ1Y3QgZHJtX3N5bmNv Ympfd2FpdCAqd2FpdCwKKwkJCQkgICAgICB1aW50MzJfdCAqaGFuZGxlcykKK3sKKwl1bnNpZ25l ZCBsb25nIHRpbWVvdXQgPSBkcm1fdGltZW91dF9hYnNfdG9famlmZmllcyh3YWl0LT50aW1lb3V0 X25zKTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICoqYXJyYXk7CisJdWludDMyX3QgaTsKKwlpbnQgcmV0 OworCXVpbnQzMl90IGZpcnN0ID0gfjA7CisKKwkvKiBQcmVwYXJlIHRoZSBmZW5jZSBhcnJheSAq LworCWFycmF5ID0ga2NhbGxvYyh3YWl0LT5jb3VudF9oYW5kbGVzLAorCQkJc2l6ZW9mKHN0cnVj dCBkbWFfZmVuY2UgKiksIEdGUF9LRVJORUwpOworCisJaWYgKGFycmF5ID09IE5VTEwpCisJCXJl dHVybiAtRU5PTUVNOworCisJZm9yIChpID0gMDsgaSA8IHdhaXQtPmNvdW50X2hhbmRsZXM7IGkr KykgeworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKKworCQlyZXQgPSBkcm1fc3luY29ial9m ZW5jZV9nZXQoZmlsZV9wcml2YXRlLCBoYW5kbGVzW2ldLAorCQkJCQkgICAgJmZlbmNlKTsKKwkJ aWYgKHJldCkKKwkJCWdvdG8gZXJyX2ZyZWVfZmVuY2VfYXJyYXk7CisJCWVsc2UgaWYgKGZlbmNl KQorCQkJYXJyYXlbaV0gPSBmZW5jZTsKKwkJZWxzZSB7IC8qIE5VTEwsIHRoZSBmZW5jZSBoYXMg YmVlbiBhbHJlYWR5IHNpZ25hbGVkICovCisJCQlyZXQgPSAxOworCQkJZ290byBvdXQ7CisJCX0K Kwl9CisKKwlyZXQgPSBkbWFfZmVuY2Vfd2FpdF9hbnlfdGltZW91dChhcnJheSwgd2FpdC0+Y291 bnRfaGFuZGxlcywgdHJ1ZSwgdGltZW91dCwKKwkJCQkJICZmaXJzdCk7CisJaWYgKHJldCA8IDAp CisJCWdvdG8gZXJyX2ZyZWVfZmVuY2VfYXJyYXk7CitvdXQ6CisJd2FpdC0+b3V0X3RpbWVvdXRf bnMgPSBqaWZmaWVzX3RvX25zZWNzKHJldCk7CisJd2FpdC0+b3V0X3N0YXR1cyA9IChyZXQgPiAw KTsKKwl3YWl0LT5maXJzdF9zaWduYWxlZCA9IGZpcnN0OworCS8qIHNldCByZXR1cm4gdmFsdWUg MCB0byBpbmRpY2F0ZSBzdWNjZXNzICovCisJcmV0ID0gMDsKKworZXJyX2ZyZWVfZmVuY2VfYXJy YXk6CisJZm9yIChpID0gMDsgaSA8IHdhaXQtPmNvdW50X2hhbmRsZXM7IGkrKykKKwkJZG1hX2Zl bmNlX3B1dChhcnJheVtpXSk7CisJa2ZyZWUoYXJyYXkpOworCisJcmV0dXJuIHJldDsKK30KKwor aW50Citkcm1fc3luY29ial93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkKK3sKKwlzdHJ1 Y3QgZHJtX3N5bmNvYmpfd2FpdCAqYXJncyA9IGRhdGE7CisJdWludDMyX3QgKmhhbmRsZXM7CisJ aW50IHJldCA9IDA7CisKKwlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJf U1lOQ09CSikpCisJCXJldHVybiAtRU5PREVWOworCisJaWYgKGFyZ3MtPmZsYWdzICE9IDAgJiYg YXJncy0+ZmxhZ3MgIT0gRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCkKKwkJcmV0dXJu IC1FSU5WQUw7CisKKwlpZiAoYXJncy0+Y291bnRfaGFuZGxlcyA9PSAwKQorCQlyZXR1cm4gMDsK KworCS8qIEdldCB0aGUgaGFuZGxlcyBmcm9tIHVzZXJzcGFjZSAqLworCWhhbmRsZXMgPSBrbWFs bG9jX2FycmF5KGFyZ3MtPmNvdW50X2hhbmRsZXMsIHNpemVvZih1aW50MzJfdCksCisJCQkJR0ZQ X0tFUk5FTCk7CisJaWYgKGhhbmRsZXMgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlp ZiAoY29weV9mcm9tX3VzZXIoaGFuZGxlcywKKwkJCSAgICh2b2lkIF9fdXNlciAqKSh1bnNpZ25l ZCBsb25nKShhcmdzLT5oYW5kbGVzKSwKKwkJCSAgIHNpemVvZih1aW50MzJfdCkgKiBhcmdzLT5j b3VudF9oYW5kbGVzKSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIGVycl9mcmVlX2hhbmRs ZXM7CisJfQorCisJaWYgKGFyZ3MtPmZsYWdzICYgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlU X0FMTCkKKwkJcmV0ID0gZHJtX3N5bmNvYmpfd2FpdF9hbGxfZmVuY2VzKGRldiwgZmlsZV9wcml2 YXRlLAorCQkJCQkJICBhcmdzLCBoYW5kbGVzKTsKKwllbHNlCisJCXJldCA9IGRybV9zeW5jb2Jq X3dhaXRfYW55X2ZlbmNlKGRldiwgZmlsZV9wcml2YXRlLAorCQkJCQkJIGFyZ3MsIGhhbmRsZXMp OworZXJyX2ZyZWVfaGFuZGxlczoKKwlrZnJlZShoYW5kbGVzKTsKKworCXJldHVybiByZXQ7Cit9 CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9k cm0uaAppbmRleCA5NmM1Yzc4Li5kNmUyZjYyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJt L2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKQEAgLTcxNiw2ICs3MTYsMTkgQEAg c3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSB7CiAJX191MzIgcGFkOwogfTsKIAorI2RlZmluZSBE Uk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQUxMICgxIDw8IDApCitzdHJ1Y3QgZHJtX3N5bmNv Ympfd2FpdCB7CisJX191NjQgaGFuZGxlczsKKwkvKiBhYnNvbHV0ZSB0aW1lb3V0ICovCisJX191 NjQgdGltZW91dF9uczsKKwkvKiByZW1haW5pbmcgdGltZW91dCAqLworCV9fdTY0IG91dF90aW1l b3V0X25zOworCV9fdTMyIGNvdW50X2hhbmRsZXM7CisJX191MzIgZmxhZ3M7CisJX191MzIgb3V0 X3N0YXR1czsKKwlfX3UzMiBmaXJzdF9zaWduYWxlZDsgLyogb24gdmFsaWQgd2hlbiBub3Qgd2Fp dGluZyBhbGwgKi8KK307CisKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfQogI2VuZGlmCkBA IC04MzgsNiArODUxLDcgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JK X0RFU1RST1kJRFJNX0lPV1IoMHhDMCwgc3RydWN0IGRybV9zeW5jb2JqX2Rlc3Ryb3kpCiAjZGVm aW5lIERSTV9JT0NUTF9TWU5DT0JKX0hBTkRMRV9UT19GRAlEUk1fSU9XUigweEMxLCBzdHJ1Y3Qg ZHJtX3N5bmNvYmpfaGFuZGxlKQogI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9GRF9UT19IQU5E TEUJRFJNX0lPV1IoMHhDMiwgc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSkKKyNkZWZpbmUgRFJN X0lPQ1RMX1NZTkNPQkpfV0FJVAkJRFJNX0lPV1IoMHhDMywgc3RydWN0IGRybV9zeW5jb2JqX3dh aXQpCiAKIC8qKgogICogRGV2aWNlIHNwZWNpZmljIGlvY3RscyBzaG91bGQgb25seSBiZSBpbiB0 aGVpciByZXNwZWN0aXZlIGhlYWRlcnMKLS0gCjIuOS40CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK