From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH 2/5] drm/syncobj: add sync obj wait interface. Date: Wed, 26 Apr 2017 13:28:30 +1000 Message-ID: <20170426032833.1455-3-airlied@gmail.com> References: <20170426032833.1455-1-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170426032833.1455-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 J3ZlIHBvcnRlZCB0aGUgY29kZSBmcm9tIGFtZGdwdS4KClNpZ25lZC1vZmYtYnk6IERhdmUgQWly bGllIDxhaXJsaWVkQHJlZGhhdC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5h bC5oIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyAgICB8ICAgMiArCiBkcml2 ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYyAgfCAxNjIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0KIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICAgICB8ICAxMSAr KysKIDQgZmlsZXMgY2hhbmdlZCwgMTc2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2ludGVybmFsLmgKaW5kZXggNDRlZjkwMy4uYTUwOGFkOSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50 ZXJuYWwuaApAQCAtMTU2LDMgKzE1Niw1IEBAIGludCBkcm1fc3luY29ial9oYW5kbGVfdG9fZmRf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCQkgICBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7CiBpbnQgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkJICAgc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaXZhdGUpOworaW50IGRybV9zeW5jb2JqX3dhaXRfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmls ZV9wcml2YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwppbmRleCA2ZGE3YWRjLi5iMTQyNDY2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9pb2N0bC5jCkBAIC02NTMsNiArNjUzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9j dGxfZGVzYyBkcm1faW9jdGxzW10gPSB7CiAJCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVS X0FMTE9XKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX0ZEX1RPX0hBTkRMRSwg ZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsLAogCQkgICAgICBEUk1fVU5MT0NLRUR8RFJN X1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9XQUlULCBk cm1fc3luY29ial93YWl0X2lvY3RsLAorCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9B TExPVyksCiB9OwogCiAjZGVmaW5lIERSTV9DT1JFX0lPQ1RMX0NPVU5UCUFSUkFZX1NJWkUoIGRy bV9pb2N0bHMgKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYwppbmRleCBlNmE5OWQ0Li5jMjRmZWEwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX3N5bmNvYmouYwpAQCAtMSw1ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgMjAxNyBS ZWQgSGF0CisgKiBQYXJ0cyBwb3J0ZWQgZnJvbSBhbWRncHUgKGZlbmNlIHdhaXQgY29kZSkuCisg KiBDb3B5cmlnaHQgMjAxNiBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCiAgKgogICogUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g b2J0YWluaW5nIGEKICAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1 bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCkBAIC0zMSwxMCArMzMsMTMgQEAKICAq IHRoYXQgY29udGFpbiBhbiBvcHRpb25hbCBmZW5jZS4gVGhlIGZlbmNlIGNhbiBiZSB1cGRhdGVk IHdpdGggYSBuZXcKICAqIGZlbmNlLCBvciBiZSBOVUxMLgogICoKKyAqIHN5bmNvYmoncyBjYW4g YmUgd2FpdGVkIHVwb24sIHdoZXJlIGl0IHdpbGwgd2FpdCBmb3IgdGhlIHVuZGVybHlpbmcKKyAq IGZlbmNlLgorICoKICAqIHN5bmNvYmoncyBjYW4gYmUgZXhwb3J0IHRvIGZkJ3MgYW5kIGJhY2ss IHRoZXNlIGZkJ3MgYXJlIG9wYXF1ZSBhbmQKICAqIGhhdmUgbm8gb3RoZXIgdXNlIGNhc2UsIGV4 Y2VwdCBwYXNzaW5nIHRoZSBzeW5jb2JqIGJldHdlZW4gcHJvY2Vzc2VzLgogICoKLSAqIFRPRE86 IHN5bmNfZmlsZSBpbnRlcmFjdGlvbnMsIHdhaXRpbmcKKyAqIFRPRE86IHN5bmNfZmlsZSBpbnRl cmFjdGlvbnMuCiAgKgogICogVGhlaXIgcHJpbWFyeSB1c2UtY2FzZSBpcyB0byBpbXBsZW1lbnQg VnVsa2FuIGZlbmNlcyBhbmQgc2VtYXBob3Jlcy4KICAqCkBAIC0zNzIsMyArMzc3LDE1OCBAQCBk cm1fc3luY29ial9mZF90b19oYW5kbGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKIAlyZXR1cm4gZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlKGZpbGVfcHJpdmF0ZSwg YXJncy0+ZmQsCiAJCQkJCSZhcmdzLT5oYW5kbGUpOwogfQorCisvKioKKyAqIGNhbGNfdGltZW91 dCAtIGNhbGN1bGF0ZSBqaWZmaWVzIHRpbWVvdXQgZnJvbSBhYnNvbHV0ZSB2YWx1ZQorICoKKyAq IEB0aW1lb3V0X25zOiB0aW1lb3V0IGluIG5zCisgKgorICogQ2FsY3VsYXRlIHRoZSB0aW1lb3V0 IGluIGppZmZpZXMgZnJvbSBhbiBhYnNvbHV0ZSB0aW1lb3V0IGluIG5zLgorICovCit1bnNpZ25l ZCBsb25nIGNhbGNfd2FpdF90aW1lb3V0KHVpbnQ2NF90IHRpbWVvdXRfbnMpCit7CisgICAgICAg IHVuc2lnbmVkIGxvbmcgdGltZW91dF9qaWZmaWVzOworICAgICAgICBrdGltZV90IHRpbWVvdXQ7 CisKKyAgICAgICAgLyogY2xhbXAgdGltZW91dCBpZiBpdCdzIHRvIGxhcmdlICovCisgICAgICAg IGlmICgoKGludDY0X3QpdGltZW91dF9ucykgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiBN QVhfU0NIRURVTEVfVElNRU9VVDsKKworICAgICAgICB0aW1lb3V0ID0ga3RpbWVfc3ViKG5zX3Rv X2t0aW1lKHRpbWVvdXRfbnMpLCBrdGltZV9nZXQoKSk7CisgICAgICAgIGlmIChrdGltZV90b19u cyh0aW1lb3V0KSA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgdGlt ZW91dF9qaWZmaWVzID0gbnNlY3NfdG9famlmZmllcyhrdGltZV90b19ucyh0aW1lb3V0KSk7Cisg ICAgICAgIC8qICBjbGFtcCB0aW1lb3V0IHRvIGF2b2lkIHVuc2lnbmVkLT4gc2lnbmVkIG92ZXJm bG93ICovCisgICAgICAgIGlmICh0aW1lb3V0X2ppZmZpZXMgPiBNQVhfU0NIRURVTEVfVElNRU9V VCApCisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF9TQ0hFRFVMRV9USU1FT1VUIC0gMTsKKwor ICAgICAgICByZXR1cm4gdGltZW91dF9qaWZmaWVzOworfQorCitzdGF0aWMgaW50IGRybV9zeW5j b2JqX3dhaXRfYWxsX2ZlbmNlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgICAgICBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSwKKwkJCQkgICAgICAgc3RydWN0IGRybV9zeW5j b2JqX3dhaXQgKndhaXQsCisJCQkJICAgICAgIHVpbnQzMl90ICpoYW5kbGVzKQoreworCXVpbnQz Ml90IGk7CisJaW50IHJldDsKKworCWZvciAoaSA9IDA7IGkgPCB3YWl0LT5jb3VudF9oYW5kbGVz OyBpKyspIHsKKwkJdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gY2FsY193YWl0X3RpbWVvdXQod2Fp dC0+dGltZW91dF9ucyk7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOworCisJCXJldCA9IGRy bV9zeW5jb2JqX2ZlbmNlX2dldChmaWxlX3ByaXZhdGUsIGhhbmRsZXNbaV0sCisJCQkJCSAgICAm ZmVuY2UpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKworCQlpZiAoIWZlbmNlKQorCQkJ Y29udGludWU7CisKKwkJcmV0ID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwgdHJ1ZSwg dGltZW91dCk7CisKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CisJCWlmIChyZXQgPCAwKQorCQkJ cmV0dXJuIHJldDsKKwkJaWYgKHJldCA9PSAwKQorCQkJYnJlYWs7CisJfQorCisJd2FpdC0+b3V0 X3N0YXR1cyA9IChyZXQgPiAwKTsKKwl3YWl0LT5maXJzdF9zaWduYWxlZCA9IDA7CisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQgZHJtX3N5bmNvYmpfd2FpdF9hbnlfZmVuY2Uoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKKwkJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSwK KwkJCQkgICAgICBzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCAqd2FpdCwKKwkJCQkgICAgICB1aW50 MzJfdCAqaGFuZGxlcykKK3sKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBjYWxjX3dhaXRfdGlt ZW91dCh3YWl0LT50aW1lb3V0X25zKTsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICoqYXJyYXk7CisJdWlu dDMyX3QgaTsKKwlpbnQgcmV0OworCXVpbnQzMl90IGZpcnN0ID0gfjA7CisKKwkvKiBQcmVwYXJl IHRoZSBmZW5jZSBhcnJheSAqLworCWFycmF5ID0ga2NhbGxvYyh3YWl0LT5jb3VudF9oYW5kbGVz LAorCQkJc2l6ZW9mKHN0cnVjdCBkbWFfZmVuY2UgKiksIEdGUF9LRVJORUwpOworCisJaWYgKGFy cmF5ID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJZm9yIChpID0gMDsgaSA8IHdhaXQt PmNvdW50X2hhbmRsZXM7IGkrKykgeworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKKworCQly ZXQgPSBkcm1fc3luY29ial9mZW5jZV9nZXQoZmlsZV9wcml2YXRlLCBoYW5kbGVzW2ldLAorCQkJ CQkgICAgJmZlbmNlKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyX2ZyZWVfZmVuY2VfYXJyYXk7 CisJCWVsc2UgaWYgKGZlbmNlKQorCQkJYXJyYXlbaV0gPSBmZW5jZTsKKwkJZWxzZSB7IC8qIE5V TEwsIHRoZSBmZW5jZSBoYXMgYmVlbiBhbHJlYWR5IHNpZ25hbGVkICovCisJCQlyZXQgPSAxOwor CQkJZ290byBvdXQ7CisJCX0KKwl9CisKKwlyZXQgPSBkbWFfZmVuY2Vfd2FpdF9hbnlfdGltZW91 dChhcnJheSwgd2FpdC0+Y291bnRfaGFuZGxlcywgdHJ1ZSwgdGltZW91dCwKKwkJCQkJICZmaXJz dCk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gZXJyX2ZyZWVfZmVuY2VfYXJyYXk7CitvdXQ6CisJ d2FpdC0+b3V0X3N0YXR1cyA9IChyZXQgPiAwKTsKKwl3YWl0LT5maXJzdF9zaWduYWxlZCA9IGZp cnN0OworCS8qIHNldCByZXR1cm4gdmFsdWUgMCB0byBpbmRpY2F0ZSBzdWNjZXNzICovCisJcmV0 ID0gMDsKKworZXJyX2ZyZWVfZmVuY2VfYXJyYXk6CisJZm9yIChpID0gMDsgaSA8IHdhaXQtPmNv dW50X2hhbmRsZXM7IGkrKykKKwkJZG1hX2ZlbmNlX3B1dChhcnJheVtpXSk7CisJa2ZyZWUoYXJy YXkpOworCisJcmV0dXJuIHJldDsKK30KKworaW50Citkcm1fc3luY29ial93YWl0X2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdmF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCAqYXJncyA9IGRh dGE7CisJdWludDMyX3QgKmhhbmRsZXM7CisJaW50IHJldCA9IDA7CisKKwlpZiAoIWRybV9jb3Jl X2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikpCisJCXJldHVybiAtRU5PREVWOwor CisJaWYgKGFyZ3MtPmZsYWdzICE9IDAgJiYgYXJncy0+ZmxhZ3MgIT0gRFJNX1NZTkNPQkpfV0FJ VF9GTEFHU19XQUlUX0FMTCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoYXJncy0+Y291bnRf aGFuZGxlcyA9PSAwKQorCQlyZXR1cm4gMDsKKworCS8qIEdldCB0aGUgaGFuZGxlcyBmcm9tIHVz ZXJzcGFjZSAqLworCWhhbmRsZXMgPSBrbWFsbG9jX2FycmF5KGFyZ3MtPmNvdW50X2hhbmRsZXMs IHNpemVvZih1aW50MzJfdCksCisJCQkJR0ZQX0tFUk5FTCk7CisJaWYgKGhhbmRsZXMgPT0gTlVM TCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpZiAoY29weV9mcm9tX3VzZXIoaGFuZGxlcywKKwkJ CSAgICh2b2lkIF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKShhcmdzLT5oYW5kbGVzKSwKKwkJCSAg IHNpemVvZih1aW50MzJfdCkgKiBhcmdzLT5jb3VudF9oYW5kbGVzKSkgeworCQlyZXQgPSAtRUZB VUxUOworCQlnb3RvIGVycl9mcmVlX2hhbmRsZXM7CisJfQorCisJaWYgKGFyZ3MtPmZsYWdzICYg RFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCkKKwkJcmV0ID0gZHJtX3N5bmNvYmpfd2Fp dF9hbGxfZmVuY2VzKGRldiwgZmlsZV9wcml2YXRlLAorCQkJCQkJICBhcmdzLCBoYW5kbGVzKTsK KwllbHNlCisJCXJldCA9IGRybV9zeW5jb2JqX3dhaXRfYW55X2ZlbmNlKGRldiwgZmlsZV9wcml2 YXRlLAorCQkJCQkJIGFyZ3MsIGhhbmRsZXMpOworZXJyX2ZyZWVfaGFuZGxlczoKKwlrZnJlZSho YW5kbGVzKTsKKworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJt L2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaAppbmRleCBkZDBiOTljLi43YzUwOGQwIDEw MDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0v ZHJtLmgKQEAgLTcxNiw2ICs3MTYsMTYgQEAgc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSB7CiAJ X191MzIgcGFkOwogfTsKIAorI2RlZmluZSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQUxM ICgxIDw8IDApCitzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCB7CisJX191NjQgaGFuZGxlczsKKwlf X3U2NCB0aW1lb3V0X25zOworCV9fdTMyIGNvdW50X2hhbmRsZXM7CisJX191MzIgZmxhZ3M7CisJ X191MzIgb3V0X3N0YXR1czsKKwlfX3UzMiBmaXJzdF9zaWduYWxlZDsgLyogb24gdmFsaWQgd2hl biBub3Qgd2FpdGluZyBhbGwgKi8KK307CisKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfQog I2VuZGlmCkBAIC04MzgsNiArODQ4LDcgQEAgZXh0ZXJuICJDIiB7CiAjZGVmaW5lIERSTV9JT0NU TF9TWU5DT0JKX0RFU1RST1kJRFJNX0lPV1IoMHhDMCwgc3RydWN0IGRybV9zeW5jb2JqX2Rlc3Ry b3kpCiAjZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JKX0hBTkRMRV9UT19GRAlEUk1fSU9XUigweEMx LCBzdHJ1Y3QgZHJtX3N5bmNvYmpfaGFuZGxlKQogI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9G RF9UT19IQU5ETEUJRFJNX0lPV1IoMHhDMiwgc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSkKKyNk ZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpfV0FJVAkJRFJNX0lPV1IoMHhDMywgc3RydWN0IGRybV9z eW5jb2JqX3dhaXQpCiAKIC8qKgogICogRGV2aWNlIHNwZWNpZmljIGlvY3RscyBzaG91bGQgb25s eSBiZSBpbiB0aGVpciByZXNwZWN0aXZlIGhlYWRlcnMKLS0gCjIuOS4zCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAph bWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK