From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH] drm/syncobj: add sync obj wait interface. (v6) Date: Thu, 6 Jul 2017 11:04:09 +1000 Message-ID: <20170706010409.9373-1-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Id: Discussion list for AMD gfx 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 RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KClRoaXMgaW50ZXJmYWNlIHdp bGwgYWxsb3cgc3luYyBvYmplY3QgdG8gYmUgdXNlZCB0byBiYWNrClZ1bGthbiBmZW5jZXMuIFRo aXMgQVBJIGlzIHByZXR0eSBtdWNoIHRoZSB2dWxrYW4gZmVuY2Ugd2FpdGluZwpBUEksIGFuZCBJ J3ZlIHBvcnRlZCB0aGUgY29kZSBmcm9tIGFtZGdwdS4KCnYyOiBhY2NlcHQgcmVsYXRpdmUgdGlt ZW91dCwgcGFzcyByZW1haW5pbmcgdGltZSBiYWNrCnRvIHVzZXJzcGFjZS4KdjM6IHJldHVybiB0 byBhYnNvbHV0ZSB0aW1lb3V0cy4KdjQ6IGFic29sdXRlIHplcm8gPSBwb2xsLAogICAgcmV3cml0 ZSBhbnkvYWxsIGNvZGUgdG8gaGF2ZSBzYW1lIG9wZXJhdGlvbiBmb3IgYXJyYXlzCiAgICByZXR1 cm4gLUVJTlZBTCBmb3IgMCBmZW5jZXMuCnY0LjE6IGZpeHVwIGZlbmNlcyBhbGxvY2F0aW9uIGNo ZWNrLCB1c2UgdTY0X3RvX3VzZXJfcHRyCnY1OiBtb3ZlIHRvIHNlYy9uc2VjLCBhbmQgdXNlIHRp bWVzcGVjNjQgZm9yIGNhbGNzLgp2NjogdXNlIC1FVElNRSBhbmQgZHJvcCB0aGUgb3V0IHN0YXR1 cyBmbGFnLiAoLUVUSU1FCmlzIHN1Z2dlc3RlZCBieSBpY2tsZSwgSSBjYW4gZmVlbCBhIHNoZWQg cGFpbnRpbmcpCgpTaWduZWQtb2ZmLWJ5OiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCB8ICAgMiArCiBkcml2ZXJzL2dw dS9kcm0vZHJtX2lvY3RsLmMgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2Jq LmMgIHwgMTQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNs dWRlL3VhcGkvZHJtL2RybS5oICAgICAgICAgfCAgMTMgKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAx NTkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJu YWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAppbmRleCA1Y2VjYzk3Li5kNzFi NTBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCkBAIC0xNTcsMyArMTU3LDUgQEAgaW50IGRybV9z eW5jb2JqX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAogCQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKIGludCBkcm1fc3lu Y29ial9mZF90b19oYW5kbGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKIAkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7CitpbnQgZHJtX3N5bmNv Ympfd2FpdF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAg c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9pb2N0bC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCmluZGV4IGYxZTU2 ODEuLjM4NWNlNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKQEAgLTY1Nyw2ICs2NTcsOCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKIAkJICAgICAgRFJN X1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZ TkNPQkpfRkRfVE9fSEFORExFLCBkcm1fc3luY29ial9mZF90b19oYW5kbGVfaW9jdGwsCiAJCSAg ICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGKERSTV9J T0NUTF9TWU5DT0JKX1dBSVQsIGRybV9zeW5jb2JqX3dhaXRfaW9jdGwsCisJCSAgICAgIERSTV9V TkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIH07CiAKICNkZWZpbmUgRFJNX0NPUkVfSU9DVExf Q09VTlQJQVJSQVlfU0laRSggZHJtX2lvY3RscyApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX3N5bmNvYmouYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jCmluZGV4IDg5 NDQxYmMuLjJkNWE3YTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jCkBAIC0xLDUgKzEsNyBAQAogLyoK ICAqIENvcHlyaWdodCAyMDE3IFJlZCBIYXQKKyAqIFBhcnRzIHBvcnRlZCBmcm9tIGFtZGdwdSAo ZmVuY2Ugd2FpdCBjb2RlKS4KKyAqIENvcHlyaWdodCAyMDE2IEFkdmFuY2VkIE1pY3JvIERldmlj ZXMsIEluYy4KICAqCiAgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQogICogY29weSBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKQEAg LTMxLDYgKzMzLDkgQEAKICAqIHRoYXQgY29udGFpbiBhbiBvcHRpb25hbCBmZW5jZS4gVGhlIGZl bmNlIGNhbiBiZSB1cGRhdGVkIHdpdGggYSBuZXcKICAqIGZlbmNlLCBvciBiZSBOVUxMLgogICoK KyAqIHN5bmNvYmoncyBjYW4gYmUgd2FpdGVkIHVwb24sIHdoZXJlIGl0IHdpbGwgd2FpdCBmb3Ig dGhlIHVuZGVybHlpbmcKKyAqIGZlbmNlLgorICoKICAqIHN5bmNvYmoncyBjYW4gYmUgZXhwb3J0 IHRvIGZkJ3MgYW5kIGJhY2ssIHRoZXNlIGZkJ3MgYXJlIG9wYXF1ZSBhbmQKICAqIGhhdmUgbm8g b3RoZXIgdXNlIGNhc2UsIGV4Y2VwdCBwYXNzaW5nIHRoZSBzeW5jb2JqIGJldHdlZW4gcHJvY2Vz c2VzLgogICoKQEAgLTQ1MSwzICs0NTYsMTQwIEBAIGRybV9zeW5jb2JqX2ZkX3RvX2hhbmRsZV9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXJldHVybiBkcm1fc3lu Y29ial9mZF90b19oYW5kbGUoZmlsZV9wcml2YXRlLCBhcmdzLT5mZCwKIAkJCQkJJmFyZ3MtPmhh bmRsZSk7CiB9CisKKy8qKgorICogZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXMgLSBjYWxjdWxh dGUgamlmZmllcyB0aW1lb3V0IGZyb20gYWJzb2x1dGUgdmFsdWUKKyAqCisgKiBAdGltZW91dF9z ZWM6IHRpbWVvdXQgc2VjIGNvbXBvbmVudCwgMCBmb3IgcG9sbAorICogQHRpbWVvdXRfbnNlYzog dGltZW91dCBuc2VjIGNvbXBvbmVudCBpbiBucywgMCBmb3IgcG9sbAorICogYm90aCBtdXN0IGJl IDAgZm9yIHBvbGwuCisgKgorICogQ2FsY3VsYXRlIHRoZSB0aW1lb3V0IGluIGppZmZpZXMgZnJv bSBhbiBhYnNvbHV0ZSB0aW1lIGluIHNlYy9uc2VjLgorICovCitzdGF0aWMgdW5zaWduZWQgbG9u ZyBkcm1fdGltZW91dF9hYnNfdG9famlmZmllcyhpbnQ2NF90IHRpbWVvdXRfc2VjLCB1aW50NjRf dCB0aW1lb3V0X25zZWMpCit7CisJc3RydWN0IHRpbWVzcGVjNjQgYWJzX3RpbWVvdXQsIHRpbWVv dXQsIG1heF9qaWZmeV90aW1lc3BlYzsKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXRfamlmZmllczsK KworCS8qIG1ha2UgMCB0aW1lb3V0IG1lYW5zIHBvbGwgLSBhYnNvbHV0ZSAwIGRvZXNuJ3Qgc2Vl bSB2YWxpZCAqLworCWlmICh0aW1lb3V0X3NlYyA9PSAwICYmIHRpbWVvdXRfbnNlYyA9PSAwKQor CQlyZXR1cm4gMDsKKworCWFic190aW1lb3V0LnR2X3NlYyA9IHRpbWVvdXRfc2VjOworCWFic190 aW1lb3V0LnR2X25zZWMgPSB0aW1lb3V0X25zZWM7CisKKwkvKiBjbGFtcCB0aW1lb3V0IGlmIGl0 J3MgdG8gbGFyZ2UgKi8KKwlpZiAoIXRpbWVzcGVjNjRfdmFsaWRfc3RyaWN0KCZhYnNfdGltZW91 dCkpCisJCXJldHVybiBNQVhfU0NIRURVTEVfVElNRU9VVCAtIDE7CisKKwl0aW1lb3V0ID0gdGlt ZXNwZWM2NF9zdWIoYWJzX3RpbWVvdXQsIGt0aW1lX3RvX3RpbWVzcGVjNjQoa3RpbWVfZ2V0KCkp KTsKKwlpZiAoIXRpbWVzcGVjNjRfdmFsaWQoJnRpbWVvdXQpKQorCQlyZXR1cm4gMDsKKworCWpp ZmZpZXNfdG9fdGltZXNwZWM2NChNQVhfSklGRllfT0ZGU0VULCAmbWF4X2ppZmZ5X3RpbWVzcGVj KTsKKwlpZiAodGltZXNwZWM2NF9jb21wYXJlKCZ0aW1lb3V0LCAmbWF4X2ppZmZ5X3RpbWVzcGVj KSA+PSAwKQorCQlyZXR1cm4gTUFYX1NDSEVEVUxFX1RJTUVPVVQgLSAxOworCisJdGltZW91dF9q aWZmaWVzID0gdGltZXNwZWM2NF90b19qaWZmaWVzKCZ0aW1lb3V0KTsKKwkvKiAgY2xhbXAgdGlt ZW91dCB0byBhdm9pZCBpbmZpbml0ZSB0aW1lb3V0ICovCisJaWYgKHRpbWVvdXRfamlmZmllcyA+ PSBNQVhfU0NIRURVTEVfVElNRU9VVCkKKwkJcmV0dXJuIE1BWF9TQ0hFRFVMRV9USU1FT1VUIC0g MTsKKworCXJldHVybiB0aW1lb3V0X2ppZmZpZXMgKyAxOworfQorCitzdGF0aWMgaW50IGRybV9z eW5jb2JqX3dhaXRfZmVuY2VzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJICAgc3RydWN0 IGRybV9maWxlICpmaWxlX3ByaXZhdGUsCisJCQkJICAgc3RydWN0IGRybV9zeW5jb2JqX3dhaXQg KndhaXQsCisJCQkJICAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlcykKK3sKKwl1bnNpZ25lZCBs b25nIHRpbWVvdXQgPSBkcm1fdGltZW91dF9hYnNfdG9famlmZmllcyh3YWl0LT50aW1lb3V0X3Nl Yywgd2FpdC0+dGltZW91dF9uc2VjKTsKKwlpbnQgcmV0ID0gMDsKKwl1aW50MzJfdCBmaXJzdCA9 IH4wOworCisJaWYgKHdhaXQtPmZsYWdzICYgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FM TCkgeworCQlpbnQgaTsKKwkJZm9yIChpID0gMDsgaSA8IHdhaXQtPmNvdW50X2hhbmRsZXM7IGkr KykgeworCQkJcmV0ID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmZW5jZXNbaV0sIHRydWUsIHRp bWVvdXQpOworCisJCQlpZiAocmV0IDwgMCkKKwkJCQlyZXR1cm4gcmV0OworCQkJaWYgKHJldCA9 PSAwKQorCQkJCWJyZWFrOworCQkJdGltZW91dCA9IHJldDsKKwkJfQorCQlmaXJzdCA9IDA7CisJ fSBlbHNlIHsKKwkJcmV0ID0gZG1hX2ZlbmNlX3dhaXRfYW55X3RpbWVvdXQoZmVuY2VzLAorCQkJ CQkJIHdhaXQtPmNvdW50X2hhbmRsZXMsCisJCQkJCQkgdHJ1ZSwgdGltZW91dCwKKwkJCQkJCSAm Zmlyc3QpOworCX0KKworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJd2FpdC0+Zmly c3Rfc2lnbmFsZWQgPSBmaXJzdDsKKwlpZiAocmV0ID09IDApCisJCXJldHVybiAtRVRJTUU7CisJ cmV0dXJuIDA7Cit9CisKK2ludAorZHJtX3N5bmNvYmpfd2FpdF9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXZhdGUpCit7CisJc3RydWN0IGRybV9zeW5jb2JqX3dhaXQgKmFyZ3MgPSBkYXRhOworCXVpbnQz Ml90ICpoYW5kbGVzOworCXN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXM7CisJaW50IHJldCA9IDA7 CisJaW50IGk7CisKKwlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lO Q09CSikpCisJCXJldHVybiAtRU5PREVWOworCisJaWYgKGFyZ3MtPmZsYWdzICE9IDAgJiYgYXJn cy0+ZmxhZ3MgIT0gRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCkKKwkJcmV0dXJuIC1F SU5WQUw7CisKKwlpZiAoYXJncy0+Y291bnRfaGFuZGxlcyA9PSAwKQorCQlyZXR1cm4gLUVJTlZB TDsKKworCS8qIEdldCB0aGUgaGFuZGxlcyBmcm9tIHVzZXJzcGFjZSAqLworCWhhbmRsZXMgPSBr bWFsbG9jX2FycmF5KGFyZ3MtPmNvdW50X2hhbmRsZXMsIHNpemVvZih1aW50MzJfdCksCisJCQkJ R0ZQX0tFUk5FTCk7CisJaWYgKGhhbmRsZXMgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisK KwlpZiAoY29weV9mcm9tX3VzZXIoaGFuZGxlcywKKwkJCSAgIHU2NF90b191c2VyX3B0cihhcmdz LT5oYW5kbGVzKSwKKwkJCSAgIHNpemVvZih1aW50MzJfdCkgKiBhcmdzLT5jb3VudF9oYW5kbGVz KSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIGVycl9mcmVlX2hhbmRsZXM7CisJfQorCisJ ZmVuY2VzID0ga2NhbGxvYyhhcmdzLT5jb3VudF9oYW5kbGVzLAorCQkJIHNpemVvZihzdHJ1Y3Qg ZG1hX2ZlbmNlICopLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWZlbmNlcykgeworCQlyZXQgPSAtRU5P TUVNOworCQlnb3RvIGVycl9mcmVlX2hhbmRsZXM7CisJfQorCisJZm9yIChpID0gMDsgaSA8IGFy Z3MtPmNvdW50X2hhbmRsZXM7IGkrKykgeworCQlyZXQgPSBkcm1fc3luY29ial9mZW5jZV9nZXQo ZmlsZV9wcml2YXRlLCBoYW5kbGVzW2ldLAorCQkJCQkgICAgJmZlbmNlc1tpXSk7CisJCWlmIChy ZXQpCisJCQlnb3RvIGVycl9mcmVlX2ZlbmNlX2FycmF5OworCX0KKworCXJldCA9IGRybV9zeW5j b2JqX3dhaXRfZmVuY2VzKGRldiwgZmlsZV9wcml2YXRlLAorCQkJCSAgICAgIGFyZ3MsIGZlbmNl cyk7CisKK2Vycl9mcmVlX2ZlbmNlX2FycmF5OgorCWZvciAoaSA9IDA7IGkgPCBhcmdzLT5jb3Vu dF9oYW5kbGVzOyBpKyspCisJCWRtYV9mZW5jZV9wdXQoZmVuY2VzW2ldKTsKKwlrZnJlZShmZW5j ZXMpOworZXJyX2ZyZWVfaGFuZGxlczoKKwlrZnJlZShoYW5kbGVzKTsKKworCXJldHVybiByZXQ7 Cit9CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIGIvaW5jbHVkZS91YXBpL2Ry bS9kcm0uaAppbmRleCAxMDE1OTNhLi45MTc0NmE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkv ZHJtL2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKQEAgLTcxOCw2ICs3MTgsMTgg QEAgc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSB7CiAJX191MzIgcGFkOwogfTsKIAorI2RlZmlu ZSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQUxMICgxIDw8IDApCitzdHJ1Y3QgZHJtX3N5 bmNvYmpfd2FpdCB7CisJX191NjQgaGFuZGxlczsKKwkvKiBhYnNvbHV0ZSB0aW1lb3V0ICovCisJ X19zNjQgdGltZW91dF9zZWM7CisJX19zNjQgdGltZW91dF9uc2VjOworCV9fdTMyIGNvdW50X2hh bmRsZXM7CisJX191MzIgZmxhZ3M7CisJX191MzIgZmlyc3Rfc2lnbmFsZWQ7IC8qIG9ubHkgdmFs aWQgd2hlbiBub3Qgd2FpdGluZyBhbGwgKi8KKwlfX3UzMiBwYWQ7Cit9OworCiAjaWYgZGVmaW5l ZChfX2NwbHVzcGx1cykKIH0KICNlbmRpZgpAQCAtODQwLDYgKzg1Miw3IEBAIGV4dGVybiAiQyIg ewogI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9ERVNUUk9ZCURSTV9JT1dSKDB4QzAsIHN0cnVj dCBkcm1fc3luY29ial9kZXN0cm95KQogI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9IQU5ETEVf VE9fRkQJRFJNX0lPV1IoMHhDMSwgc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSkKICNkZWZpbmUg RFJNX0lPQ1RMX1NZTkNPQkpfRkRfVE9fSEFORExFCURSTV9JT1dSKDB4QzIsIHN0cnVjdCBkcm1f c3luY29ial9oYW5kbGUpCisjZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JKX1dBSVQJCURSTV9JT1dS KDB4QzMsIHN0cnVjdCBkcm1fc3luY29ial93YWl0KQogCiAvKioKICAqIERldmljZSBzcGVjaWZp YyBpb2N0bHMgc2hvdWxkIG9ubHkgYmUgaW4gdGhlaXIgcmVzcGVjdGl2ZSBoZWFkZXJzCi0tIAoy LjkuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1k LWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==