From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH 2/5] drm/syncobj: add sync obj wait interface. (v4) Date: Mon, 29 May 2017 17:30:30 +1000 Message-ID: <20170529073033.10903-3-airlied@gmail.com> References: <20170529073033.10903-1-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170529073033.10903-1-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KClRoaXMgaW50ZXJmYWNlIHdp bGwgYWxsb3cgc3luYyBvYmplY3QgdG8gYmUgdXNlZCB0byBiYWNrClZ1bGthbiBmZW5jZXMuIFRo aXMgQVBJIGlzIHByZXR0eSBtdWNoIHRoZSB2dWxrYW4gZmVuY2Ugd2FpdGluZwpBUEksIGFuZCBJ J3ZlIHBvcnRlZCB0aGUgY29kZSBmcm9tIGFtZGdwdS4KCnYyOiBhY2NlcHQgcmVsYXRpdmUgdGlt ZW91dCwgcGFzcyByZW1haW5pbmcgdGltZSBiYWNrCnRvIHVzZXJzcGFjZS4KdjM6IHJldHVybiB0 byBhYnNvbHV0ZSB0aW1lb3V0cy4KdjQ6IGFic29sdXRlIHplcm8gPSBwb2xsLAogICAgcmV3cml0 ZSBhbnkvYWxsIGNvZGUgdG8gaGF2ZSBzYW1lIG9wZXJhdGlvbiBmb3IgYXJyYXlzCiAgICByZXR1 cm4gLUVJTlZBTCBmb3IgMCBmZW5jZXMuCgpTaWduZWQtb2ZmLWJ5OiBEYXZlIEFpcmxpZSA8YWly bGllZEByZWRoYXQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCB8ICAg MiArCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMgICAgfCAgIDIgKwogZHJpdmVycy9ncHUv ZHJtL2RybV9zeW5jb2JqLmMgIHwgMTI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiBpbmNsdWRlL3VhcGkvZHJtL2RybS5oICAgICAgICAgfCAgMTQgKysrKysKIDQg ZmlsZXMgY2hhbmdlZCwgMTQ3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKaW5k ZXggM2ZkZWYyYy4uNTNlM2Y2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRl cm5hbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaApAQCAtMTU2LDMgKzE1 Niw1IEBAIGludCBkcm1fc3luY29ial9oYW5kbGVfdG9fZmRfaW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0 ZSk7CiBpbnQgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUp OworaW50IGRybV9zeW5jb2JqX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKKwkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9j dGwuYwppbmRleCBmMWU1NjgxLi4zODVjZTc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2lvY3RsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCkBAIC02NTcsNiAr NjU3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBkcm1faW9jdGxzW10g PSB7CiAJCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExf REVGKERSTV9JT0NUTF9TWU5DT0JKX0ZEX1RPX0hBTkRMRSwgZHJtX3N5bmNvYmpfZmRfdG9faGFu ZGxlX2lvY3RsLAogCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJRFJN X0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9XQUlULCBkcm1fc3luY29ial93YWl0X2lvY3Rs LAorCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiB9OwogCiAjZGVmaW5l IERSTV9DT1JFX0lPQ1RMX0NPVU5UCUFSUkFZX1NJWkUoIGRybV9pb2N0bHMgKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5 bmNvYmouYwppbmRleCBiNjExNDgwLi41MTc3YjM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX3N5bmNvYmouYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYwpAQCAt MSw1ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgMjAxNyBSZWQgSGF0CisgKiBQYXJ0cyBwb3J0 ZWQgZnJvbSBhbWRncHUgKGZlbmNlIHdhaXQgY29kZSkuCisgKiBDb3B5cmlnaHQgMjAxNiBBZHZh bmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCiAgKgogICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKICAqIGNvcHkg b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksCkBAIC0zMSw2ICszMyw5IEBACiAgKiB0aGF0IGNvbnRhaW4gYW4gb3B0aW9u YWwgZmVuY2UuIFRoZSBmZW5jZSBjYW4gYmUgdXBkYXRlZCB3aXRoIGEgbmV3CiAgKiBmZW5jZSwg b3IgYmUgTlVMTC4KICAqCisgKiBzeW5jb2JqJ3MgY2FuIGJlIHdhaXRlZCB1cG9uLCB3aGVyZSBp dCB3aWxsIHdhaXQgZm9yIHRoZSB1bmRlcmx5aW5nCisgKiBmZW5jZS4KKyAqCiAgKiBzeW5jb2Jq J3MgY2FuIGJlIGV4cG9ydCB0byBmZCdzIGFuZCBiYWNrLCB0aGVzZSBmZCdzIGFyZSBvcGFxdWUg YW5kCiAgKiBoYXZlIG5vIG90aGVyIHVzZSBjYXNlLCBleGNlcHQgcGFzc2luZyB0aGUgc3luY29i aiBiZXR3ZWVuIHByb2Nlc3Nlcy4KICAqCkBAIC0zNzUsMyArMzgwLDEyNyBAQCBkcm1fc3luY29i al9mZF90b19oYW5kbGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK IAlyZXR1cm4gZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlKGZpbGVfcHJpdmF0ZSwgYXJncy0+ZmQs CiAJCQkJCSZhcmdzLT5oYW5kbGUpOwogfQorCisKKy8qKgorICogZHJtX3RpbWVvdXRfYWJzX3Rv X2ppZmZpZXMgLSBjYWxjdWxhdGUgamlmZmllcyB0aW1lb3V0IGZyb20gYWJzb2x1dGUgdmFsdWUK KyAqCisgKiBAdGltZW91dF9uczogdGltZW91dCBpbiBucywgMCBmb3IgcG9sbAorICoKKyAqIENh bGN1bGF0ZSB0aGUgdGltZW91dCBpbiBqaWZmaWVzIGZyb20gYW4gYWJzb2x1dGUgdGltZW91dCBp biBucy4KKyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZp ZXModWludDY0X3QgdGltZW91dF9ucykKK3sKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXRfamlmZmll czsKKwlrdGltZV90IHRpbWVvdXQ7CisKKwkvKiBtYWtlIDAgdGltZW91dCBtZWFucyBwb2xsIC0g YWJzb2x1dGUgMCBkb2Vzbid0IHNlZW0gdmFsaWQgKi8KKwlpZiAodGltZW91dF9ucyA9PSAwKQor CQlyZXR1cm4gMDsKKworCS8qIGNsYW1wIHRpbWVvdXQgaWYgaXQncyB0byBsYXJnZSAqLworCWlm ICgoKGludDY0X3QpdGltZW91dF9ucykgPCAwKQorCQlyZXR1cm4gTUFYX1NDSEVEVUxFX1RJTUVP VVQ7CisKKwl0aW1lb3V0ID0ga3RpbWVfc3ViKG5zX3RvX2t0aW1lKHRpbWVvdXRfbnMpLCBrdGlt ZV9nZXQoKSk7CisJaWYgKGt0aW1lX3RvX25zKHRpbWVvdXQpIDwgMCkKKwkJcmV0dXJuIDA7CisK Kwl0aW1lb3V0X2ppZmZpZXMgPSBuc2Vjc190b19qaWZmaWVzKGt0aW1lX3RvX25zKHRpbWVvdXQp KTsKKwkvKiAgY2xhbXAgdGltZW91dCB0byBhdm9pZCBpbmZpbml0ZSB0aW1lb3V0ICovCisJaWYg KHRpbWVvdXRfamlmZmllcyA+PSBNQVhfU0NIRURVTEVfVElNRU9VVCkKKwkJcmV0dXJuIE1BWF9T Q0hFRFVMRV9USU1FT1VUIC0gMTsKKworCXJldHVybiB0aW1lb3V0X2ppZmZpZXMgKyAxOworfQor CitzdGF0aWMgaW50IGRybV9zeW5jb2JqX3dhaXRfZmVuY2VzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCisJCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUsCisJCQkJICAgc3RydWN0 IGRybV9zeW5jb2JqX3dhaXQgKndhaXQsCisJCQkJICAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNl cykKK3sKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBkcm1fdGltZW91dF9hYnNfdG9famlmZmll cyh3YWl0LT50aW1lb3V0X25zKTsKKwlpbnQgcmV0ID0gMDsKKwl1aW50MzJfdCBmaXJzdCA9IH4w OworCisJaWYgKHdhaXQtPmZsYWdzICYgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCkg eworCQlpbnQgaTsKKwkJZm9yIChpID0gMDsgaSA8IHdhaXQtPmNvdW50X2hhbmRsZXM7IGkrKykg eworCQkJcmV0ID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmZW5jZXNbaV0sIHRydWUsIHRpbWVv dXQpOworCisJCQlpZiAocmV0IDwgMCkKKwkJCQlyZXR1cm4gcmV0OworCQkJaWYgKHJldCA9PSAw KQorCQkJCWJyZWFrOworCQkJdGltZW91dCA9IHJldDsKKwkJfQorCQlmaXJzdCA9IDA7CisJfSBl bHNlCisJCXJldCA9IGRtYV9mZW5jZV93YWl0X2FueV90aW1lb3V0KGZlbmNlcywKKwkJCQkJCSB3 YWl0LT5jb3VudF9oYW5kbGVzLAorCQkJCQkJIHRydWUsIHRpbWVvdXQsCisJCQkJCQkgJmZpcnN0 KTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXdhaXQtPm91dF90aW1lb3V0X25z ID0gamlmZmllc190b19uc2VjcyhyZXQpOworCXdhaXQtPm91dF9zdGF0dXMgPSAocmV0ID4gMCk7 CisJd2FpdC0+Zmlyc3Rfc2lnbmFsZWQgPSBmaXJzdDsKKwkvKiBzZXQgcmV0dXJuIHZhbHVlIDAg dG8gaW5kaWNhdGUgc3VjY2VzcyAqLworCXJldHVybiAwOworfQorCitpbnQKK2RybV9zeW5jb2Jq X3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAg IHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKQoreworCXN0cnVjdCBkcm1fc3luY29ial93 YWl0ICphcmdzID0gZGF0YTsKKwl1aW50MzJfdCAqaGFuZGxlczsKKwlzdHJ1Y3QgZG1hX2ZlbmNl ICoqZmVuY2VzOworCWludCByZXQgPSAwOworCWludCBpOworCisJaWYgKCFkcm1fY29yZV9jaGVj a19mZWF0dXJlKGRldiwgRFJJVkVSX1NZTkNPQkopKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlm IChhcmdzLT5mbGFncyAhPSAwICYmIGFyZ3MtPmZsYWdzICE9IERSTV9TWU5DT0JKX1dBSVRfRkxB R1NfV0FJVF9BTEwpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKGFyZ3MtPmNvdW50X2hhbmRs ZXMgPT0gMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBHZXQgdGhlIGhhbmRsZXMgZnJvbSB1 c2Vyc3BhY2UgKi8KKwloYW5kbGVzID0ga21hbGxvY19hcnJheShhcmdzLT5jb3VudF9oYW5kbGVz LCBzaXplb2YodWludDMyX3QpLAorCQkJCUdGUF9LRVJORUwpOworCWlmIChoYW5kbGVzID09IE5V TEwpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKGNvcHlfZnJvbV91c2VyKGhhbmRsZXMsCisJ CQkgICAodm9pZCBfX3VzZXIgKikodW5zaWduZWQgbG9uZykoYXJncy0+aGFuZGxlcyksCisJCQkg ICBzaXplb2YodWludDMyX3QpICogYXJncy0+Y291bnRfaGFuZGxlcykpIHsKKwkJcmV0ID0gLUVG QVVMVDsKKwkJZ290byBlcnJfZnJlZV9oYW5kbGVzOworCX0KKworCWZlbmNlcyA9IGtjYWxsb2Mo YXJncy0+Y291bnRfaGFuZGxlcywKKwkJCSBzaXplb2Yoc3RydWN0IGRtYV9mZW5jZSAqKSwgR0ZQ X0tFUk5FTCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYXJncy0+Y291bnRfaGFuZGxlczsgaSsrKSB7 CisJCXJldCA9IGRybV9zeW5jb2JqX2ZlbmNlX2dldChmaWxlX3ByaXZhdGUsIGhhbmRsZXNbaV0s CisJCQkJCSAgICAmZmVuY2VzW2ldKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyX2ZyZWVfZmVu Y2VfYXJyYXk7CisJfQorCisJcmV0ID0gZHJtX3N5bmNvYmpfd2FpdF9mZW5jZXMoZGV2LCBmaWxl X3ByaXZhdGUsCisJCQkJICAgICAgYXJncywgZmVuY2VzKTsKKworZXJyX2ZyZWVfZmVuY2VfYXJy YXk6CisJZm9yIChpID0gMDsgaSA8IGFyZ3MtPmNvdW50X2hhbmRsZXM7IGkrKykKKwkJZG1hX2Zl bmNlX3B1dChmZW5jZXNbaV0pOworCWtmcmVlKGZlbmNlcyk7CitlcnJfZnJlZV9oYW5kbGVzOgor CWtmcmVlKGhhbmRsZXMpOworCisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2luY2x1ZGUv dWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCmluZGV4IDk2YzVjNzguLmQ2 ZTJmNjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKKysrIGIvaW5jbHVkZS91 YXBpL2RybS9kcm0uaApAQCAtNzE2LDYgKzcxNiwxOSBAQCBzdHJ1Y3QgZHJtX3N5bmNvYmpfaGFu ZGxlIHsKIAlfX3UzMiBwYWQ7CiB9OwogCisjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1Nf V0FJVF9BTEwgKDEgPDwgMCkKK3N0cnVjdCBkcm1fc3luY29ial93YWl0IHsKKwlfX3U2NCBoYW5k bGVzOworCS8qIGFic29sdXRlIHRpbWVvdXQgKi8KKwlfX3U2NCB0aW1lb3V0X25zOworCS8qIHJl bWFpbmluZyB0aW1lb3V0ICovCisJX191NjQgb3V0X3RpbWVvdXRfbnM7CisJX191MzIgY291bnRf aGFuZGxlczsKKwlfX3UzMiBmbGFnczsKKwlfX3UzMiBvdXRfc3RhdHVzOworCV9fdTMyIGZpcnN0 X3NpZ25hbGVkOyAvKiBvbiB2YWxpZCB3aGVuIG5vdCB3YWl0aW5nIGFsbCAqLworfTsKKwogI2lm IGRlZmluZWQoX19jcGx1c3BsdXMpCiB9CiAjZW5kaWYKQEAgLTgzOCw2ICs4NTEsNyBAQCBleHRl cm4gIkMiIHsKICNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpfREVTVFJPWQlEUk1fSU9XUigweEMw LCBzdHJ1Y3QgZHJtX3N5bmNvYmpfZGVzdHJveSkKICNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpf SEFORExFX1RPX0ZECURSTV9JT1dSKDB4QzEsIHN0cnVjdCBkcm1fc3luY29ial9oYW5kbGUpCiAj ZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JKX0ZEX1RPX0hBTkRMRQlEUk1fSU9XUigweEMyLCBzdHJ1 Y3QgZHJtX3N5bmNvYmpfaGFuZGxlKQorI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9XQUlUCQlE Uk1fSU9XUigweEMzLCBzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCkKIAogLyoqCiAgKiBEZXZpY2Ug c3BlY2lmaWMgaW9jdGxzIHNob3VsZCBvbmx5IGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgaGVhZGVy cwotLSAKMi45LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=