From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Subject: [PATCH xf86-video-amdgpu 3/3] Add RandR leases support Date: Mon, 9 Jul 2018 09:26:52 +0200 Message-ID: <20180709072652.9727-3-michel@daenzer.net> References: <20180709072652.9727-1-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180709072652.9727-1-michel-otUistvHUpPR7s880joybQ@public.gmane.org> 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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Keith Packard RnJvbTogS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+CgpTaWduZWQtb2ZmLWJ5OiBL ZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KKFBvcnRlZCBmcm9tIHhzZXJ2ZXIgY29t bWl0IGU0ZTM0NDc2MDNiNWZkM2EzOGE5MmMzZjk3MjM5NmQxZjgxMTY4YWQpClNpZ25lZC1vZmYt Ynk6IE1pY2hlbCBEw6RuemVyIDxtaWNoZWwuZGFlbnplckBhbWQuY29tPgotLS0KIGNvbmZpZ3Vy ZS5hYyAgICAgICAgICB8ICAgMiArLQogc3JjL2FtZGdwdV9rbXMuYyAgICAgIHwgICAxICsKIHNy Yy9kcm1tb2RlX2Rpc3BsYXkuYyB8IDE1OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0KIHNyYy9kcm1tb2RlX2Rpc3BsYXkuaCB8ICAgNiArKwogNCBmaWxlcyBjaGFu Z2VkLCAxNjYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb25m aWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggYTQ3NWYzNzEzLi5mNDYzM2UzNzAgMTAwNjQ0 Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTcwLDcgKzcwLDcgQEAg WE9SR19EUklWRVJfQ0hFQ0tfRVhUKFhWLCB2aWRlb3Byb3RvKQogWE9SR19EUklWRVJfQ0hFQ0tf RVhUKERQTVNFeHRlbnNpb24sIHhleHRwcm90bykKIAogIyBDaGVja3MgZm9yIGxpYnJhcmllcy4K LVBLR19DSEVDS19NT0RVTEVTKExJQkRSTSwgW2xpYmRybSA+PSAyLjQuNzhdKQorUEtHX0NIRUNL X01PRFVMRVMoTElCRFJNLCBbbGliZHJtID49IDIuNC44OV0pCiBQS0dfQ0hFQ0tfTU9EVUxFUyhM SUJEUk1fQU1ER1BVLCBbbGliZHJtX2FtZGdwdSA+PSAyLjQuNzZdKQogUEtHX0NIRUNLX01PRFVM RVMoR0JNLCBbZ2JtXSkKIApkaWZmIC0tZ2l0IGEvc3JjL2FtZGdwdV9rbXMuYyBiL3NyYy9hbWRn cHVfa21zLmMKaW5kZXggYmVkZDAyMDM3Li5jMzU3YWI2YjcgMTAwNjQ0Ci0tLSBhL3NyYy9hbWRn cHVfa21zLmMKKysrIGIvc3JjL2FtZGdwdV9rbXMuYwpAQCAtMTcwMyw2ICsxNzAzLDcgQEAgc3Rh dGljIEJvb2wgQU1ER1BVQ2xvc2VTY3JlZW5fS01TKFNjcmVlblB0ciBwU2NyZWVuKQogCS8qIENs ZWFyIG1hc2sgb2YgYXNzaWduZWQgY3J0YydzIGluIHRoaXMgZ2VuZXJhdGlvbiAqLwogCXBBTURH UFVFbnQtPmFzc2lnbmVkX2NydGNzID0gMDsKIAorCWRybW1vZGVfdGVybWluYXRlX2xlYXNlcyhw U2Nybik7CiAJZHJtbW9kZV91ZXZlbnRfZmluaShwU2NybiwgJmluZm8tPmRybW1vZGUpOwogCWFt ZGdwdV9kcm1fcXVldWVfY2xvc2UocFNjcm4pOwogCmRpZmYgLS1naXQgYS9zcmMvZHJtbW9kZV9k aXNwbGF5LmMgYi9zcmMvZHJtbW9kZV9kaXNwbGF5LmMKaW5kZXggMDMxZDgyNmFmLi5mZWU2ZmVk ZmIgMTAwNjQ0Ci0tLSBhL3NyYy9kcm1tb2RlX2Rpc3BsYXkuYworKysgYi9zcmMvZHJtbW9kZV9k aXNwbGF5LmMKQEAgLTI5MzYsOCArMjkzNiwxNTkgQEAgZmFpbDoKIAlyZXR1cm4gRkFMU0U7CiB9 CiAKK3N0YXRpYyB2b2lkCitkcm1tb2RlX3ZhbGlkYXRlX2xlYXNlcyhTY3JuSW5mb1B0ciBzY3Ju KQoreworI2lmZGVmIFhGODZfTEVBU0VfVkVSU0lPTgorCVNjcmVlblB0ciBzY3JlZW4gPSBzY3Ju LT5wU2NyZWVuOworCXJyU2NyUHJpdlB0ciBzY3JfcHJpdiA9IHJyR2V0U2NyUHJpdihzY3JlZW4p OworCUFNREdQVUVudFB0ciBwQU1ER1BVRW50ID0gQU1ER1BVRW50UHJpdihzY3JuKTsKKwlkcm1N b2RlTGVzc2VlTGlzdFB0ciBsZXNzZWVzOworCVJSTGVhc2VQdHIgbGVhc2UsIG5leHQ7CisJaW50 IGw7CisKKwkvKiBXZSBjYW4ndCB0YWxrIHRvIHRoZSBrZXJuZWwgYWJvdXQgbGVhc2VzIHdoZW4g VlQgc3dpdGNoZWQgKi8KKwlpZiAoIXNjcm4tPnZ0U2VtYSkKKwkJcmV0dXJuOworCisJbGVzc2Vl cyA9IGRybU1vZGVMaXN0TGVzc2VlcyhwQU1ER1BVRW50LT5mZCk7CisJaWYgKCFsZXNzZWVzKQor CQlyZXR1cm47CisKKwl4b3JnX2xpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShsZWFzZSwgbmV4dCwg JnNjcl9wcml2LT5sZWFzZXMsIGxpc3QpIHsKKwkJZHJtbW9kZV9sZWFzZV9wcml2YXRlX3B0ciBs ZWFzZV9wcml2YXRlID0gbGVhc2UtPmRldlByaXZhdGU7CisKKwkJZm9yIChsID0gMDsgbCA8IGxl c3NlZXMtPmNvdW50OyBsKyspIHsKKwkJCWlmIChsZXNzZWVzLT5sZXNzZWVzW2xdID09IGxlYXNl X3ByaXZhdGUtPmxlc3NlZV9pZCkKKwkJCQlicmVhazsKKwkJfQorCisJCS8qIGNoZWNrIHRvIHNl ZSBpZiB0aGUgbGVhc2UgaGFzIGdvbmUgYXdheSAqLworCQlpZiAobCA9PSBsZXNzZWVzLT5jb3Vu dCkgeworCQkJZnJlZShsZWFzZV9wcml2YXRlKTsKKwkJCWxlYXNlLT5kZXZQcml2YXRlID0gTlVM TDsKKwkJCXhmODZDcnRjTGVhc2VUZXJtaW5hdGVkKGxlYXNlKTsKKwkJfQorCX0KKworCWZyZWUo bGVzc2Vlcyk7CisjZW5kaWYKK30KKworI2lmZGVmIFhGODZfTEVBU0VfVkVSU0lPTgorCitzdGF0 aWMgaW50Citkcm1tb2RlX2NyZWF0ZV9sZWFzZShSUkxlYXNlUHRyIGxlYXNlLCBpbnQgKmZkKQor eworCVNjcmVlblB0ciBzY3JlZW4gPSBsZWFzZS0+c2NyZWVuOworCVNjcm5JbmZvUHRyIHNjcm4g PSB4Zjg2U2NyZWVuVG9TY3JuKHNjcmVlbik7CisJQU1ER1BVRW50UHRyIHBBTURHUFVFbnQgPSBB TURHUFVFbnRQcml2KHNjcm4pOworCWRybW1vZGVfbGVhc2VfcHJpdmF0ZV9wdHIgbGVhc2VfcHJp dmF0ZTsKKwlpbnQgbm91dHB1dCA9IGxlYXNlLT5udW1PdXRwdXRzOworCWludCBuY3J0YyA9IGxl YXNlLT5udW1DcnRjczsKKwl1aW50MzJfdCAqb2JqZWN0czsKKwlzaXplX3Qgbm9iamVjdHM7CisJ aW50IGxlYXNlX2ZkOworCWludCBjLCBvOworCWludCBpOworCisJbm9iamVjdHMgPSBuY3J0YyAr IG5vdXRwdXQ7CisJaWYgKG5vYmplY3RzID09IDAgfHwgbm9iamVjdHMgPiAoU0laRV9NQVggLyA0 KSB8fAorCSAgICBuY3J0YyA+IChTSVpFX01BWCAtIG5vdXRwdXQpKQorCQlyZXR1cm4gQmFkVmFs dWU7CisKKwlsZWFzZV9wcml2YXRlID0gY2FsbG9jKDEsIHNpemVvZiAoZHJtbW9kZV9sZWFzZV9w cml2YXRlX3JlYykpOworCWlmICghbGVhc2VfcHJpdmF0ZSkKKwkJcmV0dXJuIEJhZEFsbG9jOwor CisJb2JqZWN0cyA9IG1hbGxvYyhub2JqZWN0cyAqIDQpOworCWlmICghb2JqZWN0cykgeworCQlm cmVlKGxlYXNlX3ByaXZhdGUpOworCQlyZXR1cm4gQmFkQWxsb2M7CisJfQorCisJaSA9IDA7CisK KwkvKiBBZGQgQ1JUQyBpZHMgKi8KKwlmb3IgKGMgPSAwOyBjIDwgbmNydGM7IGMrKykgeworCQl4 Zjg2Q3J0Y1B0ciBjcnRjID0gbGVhc2UtPmNydGNzW2NdLT5kZXZQcml2YXRlOworCQlkcm1tb2Rl X2NydGNfcHJpdmF0ZV9wdHIgZHJtbW9kZV9jcnRjID0gY3J0Yy0+ZHJpdmVyX3ByaXZhdGU7CisK KwkJb2JqZWN0c1tpKytdID0gZHJtbW9kZV9jcnRjLT5tb2RlX2NydGMtPmNydGNfaWQ7CisJfQor CisJLyogQWRkIGNvbm5lY3RvciBpZHMgKi8KKwlmb3IgKG8gPSAwOyBvIDwgbm91dHB1dDsgbysr KSB7CisJCXhmODZPdXRwdXRQdHIgICBvdXRwdXQgPSBsZWFzZS0+b3V0cHV0c1tvXS0+ZGV2UHJp dmF0ZTsKKwkJZHJtbW9kZV9vdXRwdXRfcHJpdmF0ZV9wdHIgZHJtbW9kZV9vdXRwdXQgPSBvdXRw dXQtPmRyaXZlcl9wcml2YXRlOworCisJCW9iamVjdHNbaSsrXSA9IGRybW1vZGVfb3V0cHV0LT5t b2RlX291dHB1dC0+Y29ubmVjdG9yX2lkOworCX0KKworCS8qIGNhbGwga2VybmVsIHRvIGNyZWF0 ZSBsZWFzZSAqLworCWFzc2VydCAoaSA9PSBub2JqZWN0cyk7CisKKwlsZWFzZV9mZCA9IGRybU1v ZGVDcmVhdGVMZWFzZShwQU1ER1BVRW50LT5mZCwgb2JqZWN0cywgbm9iamVjdHMsIDAsCisJCQkJ ICAgICAgJmxlYXNlX3ByaXZhdGUtPmxlc3NlZV9pZCk7CisKKwlmcmVlKG9iamVjdHMpOworCisJ aWYgKGxlYXNlX2ZkIDwgMCkgeworCQlmcmVlKGxlYXNlX3ByaXZhdGUpOworCQlyZXR1cm4gQmFk TWF0Y2g7CisJfQorCisJbGVhc2UtPmRldlByaXZhdGUgPSBsZWFzZV9wcml2YXRlOworCisJeGY4 NkNydGNMZWFzZVN0YXJ0ZWQobGVhc2UpOworCisJKmZkID0gbGVhc2VfZmQ7CisJcmV0dXJuIFN1 Y2Nlc3M7Cit9CisKK3N0YXRpYyB2b2lkCitkcm1tb2RlX3Rlcm1pbmF0ZV9sZWFzZShSUkxlYXNl UHRyIGxlYXNlKQoreworCWRybW1vZGVfbGVhc2VfcHJpdmF0ZV9wdHIgbGVhc2VfcHJpdmF0ZSA9 IGxlYXNlLT5kZXZQcml2YXRlOworCVNjcmVlblB0ciBzY3JlZW4gPSBsZWFzZS0+c2NyZWVuOwor CVNjcm5JbmZvUHRyIHNjcm4gPSB4Zjg2U2NyZWVuVG9TY3JuKHNjcmVlbik7CisJQU1ER1BVRW50 UHRyIHBBTURHUFVFbnQgPSBBTURHUFVFbnRQcml2KHNjcm4pOworCisJaWYgKGRybU1vZGVSZXZv a2VMZWFzZShwQU1ER1BVRW50LT5mZCwgbGVhc2VfcHJpdmF0ZS0+bGVzc2VlX2lkKSA9PSAwKSB7 CisJCWZyZWUobGVhc2VfcHJpdmF0ZSk7CisJCWxlYXNlLT5kZXZQcml2YXRlID0gTlVMTDsKKwkJ eGY4NkNydGNMZWFzZVRlcm1pbmF0ZWQobGVhc2UpOworCX0KK30KKworI2VuZGlmIC8vIFhGODZf TEVBU0VfVkVSU0lPTgorCit2b2lkCitkcm1tb2RlX3Rlcm1pbmF0ZV9sZWFzZXMoU2NybkluZm9Q dHIgcFNjcm4pCit7CisjaWZkZWYgWEY4Nl9MRUFTRV9WRVJTSU9OCisJU2NyZWVuUHRyIHNjcmVl biA9IHhmODZTY3JuVG9TY3JlZW4ocFNjcm4pOworCUFNREdQVUVudFB0ciBwQU1ER1BVRW50ID0g QU1ER1BVRW50UHJpdihwU2Nybik7CisJcnJTY3JQcml2UHRyIHNjcl9wcml2ID0gcnJHZXRTY3JQ cml2KHNjcmVlbik7CisJUlJMZWFzZVB0ciBsZWFzZSwgbmV4dDsKKworCXhvcmdfbGlzdF9mb3Jf ZWFjaF9lbnRyeV9zYWZlKGxlYXNlLCBuZXh0LCAmc2NyX3ByaXYtPmxlYXNlcywgbGlzdCkgewor CQlkcm1tb2RlX2xlYXNlX3ByaXZhdGVfcHRyIGxlYXNlX3ByaXZhdGUgPSBsZWFzZS0+ZGV2UHJp dmF0ZTsKKwkJZHJtTW9kZVJldm9rZUxlYXNlKHBBTURHUFVFbnQtPmZkLCBsZWFzZV9wcml2YXRl LT5sZXNzZWVfaWQpOworCQlmcmVlKGxlYXNlX3ByaXZhdGUpOworCQlsZWFzZS0+ZGV2UHJpdmF0 ZSA9IE5VTEw7CisJCVJSTGVhc2VUZXJtaW5hdGVkKGxlYXNlKTsKKwkJUlJMZWFzZUZyZWUobGVh c2UpOworCX0KKyNlbmRpZgorfQorCiBzdGF0aWMgY29uc3QgeGY4NkNydGNDb25maWdGdW5jc1Jl YyBkcm1tb2RlX3hmODZjcnRjX2NvbmZpZ19mdW5jcyA9IHsKLQlkcm1tb2RlX3hmODZjcnRjX3Jl c2l6ZQorCS5yZXNpemUgPSBkcm1tb2RlX3hmODZjcnRjX3Jlc2l6ZSwKKyNpZmRlZiBYRjg2X0xF QVNFX1ZFUlNJT04KKwkuY3JlYXRlX2xlYXNlID0gZHJtbW9kZV9jcmVhdGVfbGVhc2UsCisJLnRl cm1pbmF0ZV9sZWFzZSA9IGRybW1vZGVfdGVybWluYXRlX2xlYXNlCisjZW5kaWYKIH07CiAKIHN0 YXRpYyB2b2lkCkBAIC0zNDc2LDYgKzM2MjcsOSBAQCBCb29sIGRybW1vZGVfc2V0X2Rlc2lyZWRf bW9kZXMoU2NybkluZm9QdHIgcFNjcm4sIGRybW1vZGVfcHRyIGRybW1vZGUsCiAJCXJldHVybiBG QUxTRTsKIAl9CiAKKwkvKiBWYWxpZGF0ZSBsZWFzZXMgb24gVlQgcmUtZW50cnkgKi8KKwlkcm1t b2RlX3ZhbGlkYXRlX2xlYXNlcyhwU2Nybik7CisKIAlyZXR1cm4gVFJVRTsKIH0KIApAQCAtMzY0 Miw2ICszNzk2LDkgQEAgcmVzdGFydF9kZXN0cm95OgogCQkJY2hhbmdlZCA9IFRSVUU7CiAJfQog CisJLyogQ2hlY2sgdG8gc2VlIGlmIGEgbGVzc2VlIGhhcyBkaXNhcHBlYXJlZCAqLworCWRybW1v ZGVfdmFsaWRhdGVfbGVhc2VzKHNjcm4pOworCiAJaWYgKGNoYW5nZWQgJiYgZGl4UHJpdmF0ZUtl eVJlZ2lzdGVyZWQocnJQcml2S2V5KSkgewogI2lmIFhPUkdfVkVSU0lPTl9DVVJSRU5UID49IFhP UkdfVkVSU0lPTl9OVU1FUklDKDEsMTQsOTksMiwwKQogCQlSUlNldENoYW5nZWQoeGY4NlNjcm5U b1NjcmVlbihzY3JuKSk7CmRpZmYgLS1naXQgYS9zcmMvZHJtbW9kZV9kaXNwbGF5LmggYi9zcmMv ZHJtbW9kZV9kaXNwbGF5LmgKaW5kZXggMGYwMjI3YzcxLi4wNjQ2NzUyYzIgMTAwNjQ0Ci0tLSBh L3NyYy9kcm1tb2RlX2Rpc3BsYXkuaAorKysgYi9zcmMvZHJtbW9kZV9kaXNwbGF5LmgKQEAgLTE1 Nyw2ICsxNTcsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgewogCWludCB0ZWFyX2ZyZWU7CiB9IGRybW1v ZGVfb3V0cHV0X3ByaXZhdGVfcmVjLCAqZHJtbW9kZV9vdXRwdXRfcHJpdmF0ZV9wdHI7CiAKK3R5 cGVkZWYgc3RydWN0IHsKKwl1aW50MzJfdCBsZXNzZWVfaWQ7Cit9IGRybW1vZGVfbGVhc2VfcHJp dmF0ZV9yZWMsICpkcm1tb2RlX2xlYXNlX3ByaXZhdGVfcHRyOworCiAKIGVudW0gZHJtbW9kZV9m bGlwX3N5bmMgewogICAgIEZMSVBfVlNZTkMsCkBAIC0yNDEsNiArMjQ1LDggQEAgUGl4bWFwUHRy IGRybW1vZGVfY3J0Y19zY2Fub3V0X2NyZWF0ZSh4Zjg2Q3J0Y1B0ciBjcnRjLAogZXh0ZXJuIHZv aWQgZHJtbW9kZV91ZXZlbnRfaW5pdChTY3JuSW5mb1B0ciBzY3JuLCBkcm1tb2RlX3B0ciBkcm1t b2RlKTsKIGV4dGVybiB2b2lkIGRybW1vZGVfdWV2ZW50X2ZpbmkoU2NybkluZm9QdHIgc2Nybiwg ZHJtbW9kZV9wdHIgZHJtbW9kZSk7CiAKK2V4dGVybiB2b2lkIGRybW1vZGVfdGVybWluYXRlX2xl YXNlcyhTY3JuSW5mb1B0ciBzY3JuKTsKKwogQm9vbCBkcm1tb2RlX3NldF9tb2RlKHhmODZDcnRj UHRyIGNydGMsIHN0cnVjdCBkcm1tb2RlX2ZiICpmYiwKIAkJICAgICAgRGlzcGxheU1vZGVQdHIg bW9kZSwgaW50IHgsIGludCB5KTsKIAotLSAKMi4xOC4wCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2FtZC1nZngK