From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Subject: [PATCH xf86-video-ati 21/21] Add RandR leases support Date: Wed, 11 Jul 2018 19:28:06 +0200 Message-ID: <20180711172806.22849-22-michel@daenzer.net> References: <20180711172806.22849-1-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180711172806.22849-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 RnJvbTogS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+CgpTaWduZWQtb2ZmLWJ5OiBL ZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KKFBvcnRlZCBmcm9tIHhzZXJ2ZXIgY29t bWl0IGU0ZTM0NDc2MDNiNWZkM2EzOGE5MmMzZjk3MjM5NmQxZjgxMTY4YWQpClNpZ25lZC1vZmYt Ynk6IE1pY2hlbCBEw6RuemVyIDxtaWNoZWwuZGFlbnplckBhbWQuY29tPgooUG9ydGVkIGZyb20g YW1kZ3B1IGNvbW1pdCA2MTA0MGJkZmEzNjA5NzU2MTRmYjQ3YWE3ZWExYjNhMWFiYWMzNDI3KQot LS0KIGNvbmZpZ3VyZS5hYyAgICAgICAgICB8ICAgMiArLQogc3JjL2RybW1vZGVfZGlzcGxheS5j IHwgMTU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2Ry bW1vZGVfZGlzcGxheS5oIHwgICA2ICsrCiBzcmMvcmFkZW9uX2ttcy5jICAgICAgfCAgIDEgKwog NCBmaWxlcyBjaGFuZ2VkLCAxNjYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggNjUyMDZlN2ZjLi4xNWM3 YjIxMjggMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTcw LDcgKzcwLDcgQEAgWE9SR19EUklWRVJfQ0hFQ0tfRVhUKFhWLCB2aWRlb3Byb3RvKQogWE9SR19E UklWRVJfQ0hFQ0tfRVhUKERQTVNFeHRlbnNpb24sIHhleHRwcm90bykKIAogIyBDaGVja3MgZm9y IGxpYnJhcmllcy4KLVBLR19DSEVDS19NT0RVTEVTKExJQkRSTSwgW2xpYmRybSA+PSAyLjQuNzhd KQorUEtHX0NIRUNLX01PRFVMRVMoTElCRFJNLCBbbGliZHJtID49IDIuNC44OV0pCiBQS0dfQ0hF Q0tfTU9EVUxFUyhMSUJEUk1fUkFERU9OLCBbbGliZHJtX3JhZGVvbl0pCiAKICMgT2J0YWluIGNv bXBpbGVyL2xpbmtlciBvcHRpb25zIGZvciB0aGUgZHJpdmVyIGRlcGVuZGVuY2llcwpkaWZmIC0t Z2l0IGEvc3JjL2RybW1vZGVfZGlzcGxheS5jIGIvc3JjL2RybW1vZGVfZGlzcGxheS5jCmluZGV4 IGQ0YmQ3NmUxMi4uMmFmNjRlM2YzIDEwMDY0NAotLS0gYS9zcmMvZHJtbW9kZV9kaXNwbGF5LmMK KysrIGIvc3JjL2RybW1vZGVfZGlzcGxheS5jCkBAIC0yNDAwLDggKzI0MDAsMTU5IEBAIGRybW1v ZGVfeGY4NmNydGNfcmVzaXplIChTY3JuSW5mb1B0ciBzY3JuLCBpbnQgd2lkdGgsIGludCBoZWln aHQpCiAJcmV0dXJuIEZBTFNFOwogfQogCitzdGF0aWMgdm9pZAorZHJtbW9kZV92YWxpZGF0ZV9s ZWFzZXMoU2NybkluZm9QdHIgc2NybikKK3sKKyNpZmRlZiBYRjg2X0xFQVNFX1ZFUlNJT04KKwlT Y3JlZW5QdHIgc2NyZWVuID0gc2Nybi0+cFNjcmVlbjsKKwlyclNjclByaXZQdHIgc2NyX3ByaXYg PSByckdldFNjclByaXYoc2NyZWVuKTsKKwlSQURFT05FbnRQdHIgcFJBREVPTkVudCA9IFJBREVP TkVudFByaXYoc2Nybik7CisJZHJtTW9kZUxlc3NlZUxpc3RQdHIgbGVzc2VlczsKKwlSUkxlYXNl UHRyIGxlYXNlLCBuZXh0OworCWludCBsOworCisJLyogV2UgY2FuJ3QgdGFsayB0byB0aGUga2Vy bmVsIGFib3V0IGxlYXNlcyB3aGVuIFZUIHN3aXRjaGVkICovCisJaWYgKCFzY3JuLT52dFNlbWEp CisJCXJldHVybjsKKworCWxlc3NlZXMgPSBkcm1Nb2RlTGlzdExlc3NlZXMocFJBREVPTkVudC0+ ZmQpOworCWlmICghbGVzc2VlcykKKwkJcmV0dXJuOworCisJeG9yZ19saXN0X2Zvcl9lYWNoX2Vu dHJ5X3NhZmUobGVhc2UsIG5leHQsICZzY3JfcHJpdi0+bGVhc2VzLCBsaXN0KSB7CisJCWRybW1v ZGVfbGVhc2VfcHJpdmF0ZV9wdHIgbGVhc2VfcHJpdmF0ZSA9IGxlYXNlLT5kZXZQcml2YXRlOwor CisJCWZvciAobCA9IDA7IGwgPCBsZXNzZWVzLT5jb3VudDsgbCsrKSB7CisJCQlpZiAobGVzc2Vl cy0+bGVzc2Vlc1tsXSA9PSBsZWFzZV9wcml2YXRlLT5sZXNzZWVfaWQpCisJCQkJYnJlYWs7CisJ CX0KKworCQkvKiBjaGVjayB0byBzZWUgaWYgdGhlIGxlYXNlIGhhcyBnb25lIGF3YXkgKi8KKwkJ aWYgKGwgPT0gbGVzc2Vlcy0+Y291bnQpIHsKKwkJCWZyZWUobGVhc2VfcHJpdmF0ZSk7CisJCQls ZWFzZS0+ZGV2UHJpdmF0ZSA9IE5VTEw7CisJCQl4Zjg2Q3J0Y0xlYXNlVGVybWluYXRlZChsZWFz ZSk7CisJCX0KKwl9CisKKwlmcmVlKGxlc3NlZXMpOworI2VuZGlmCit9CisKKyNpZmRlZiBYRjg2 X0xFQVNFX1ZFUlNJT04KKworc3RhdGljIGludAorZHJtbW9kZV9jcmVhdGVfbGVhc2UoUlJMZWFz ZVB0ciBsZWFzZSwgaW50ICpmZCkKK3sKKwlTY3JlZW5QdHIgc2NyZWVuID0gbGVhc2UtPnNjcmVl bjsKKwlTY3JuSW5mb1B0ciBzY3JuID0geGY4NlNjcmVlblRvU2NybihzY3JlZW4pOworCVJBREVP TkVudFB0ciBwUkFERU9ORW50ID0gUkFERU9ORW50UHJpdihzY3JuKTsKKwlkcm1tb2RlX2xlYXNl X3ByaXZhdGVfcHRyIGxlYXNlX3ByaXZhdGU7CisJaW50IG5vdXRwdXQgPSBsZWFzZS0+bnVtT3V0 cHV0czsKKwlpbnQgbmNydGMgPSBsZWFzZS0+bnVtQ3J0Y3M7CisJdWludDMyX3QgKm9iamVjdHM7 CisJc2l6ZV90IG5vYmplY3RzOworCWludCBsZWFzZV9mZDsKKwlpbnQgYywgbzsKKwlpbnQgaTsK KworCW5vYmplY3RzID0gbmNydGMgKyBub3V0cHV0OworCWlmIChub2JqZWN0cyA9PSAwIHx8IG5v YmplY3RzID4gKFNJWkVfTUFYIC8gNCkgfHwKKwkgICAgbmNydGMgPiAoU0laRV9NQVggLSBub3V0 cHV0KSkKKwkJcmV0dXJuIEJhZFZhbHVlOworCisJbGVhc2VfcHJpdmF0ZSA9IGNhbGxvYygxLCBz aXplb2YgKGRybW1vZGVfbGVhc2VfcHJpdmF0ZV9yZWMpKTsKKwlpZiAoIWxlYXNlX3ByaXZhdGUp CisJCXJldHVybiBCYWRBbGxvYzsKKworCW9iamVjdHMgPSBtYWxsb2Mobm9iamVjdHMgKiA0KTsK KwlpZiAoIW9iamVjdHMpIHsKKwkJZnJlZShsZWFzZV9wcml2YXRlKTsKKwkJcmV0dXJuIEJhZEFs bG9jOworCX0KKworCWkgPSAwOworCisJLyogQWRkIENSVEMgaWRzICovCisJZm9yIChjID0gMDsg YyA8IG5jcnRjOyBjKyspIHsKKwkJeGY4NkNydGNQdHIgY3J0YyA9IGxlYXNlLT5jcnRjc1tjXS0+ ZGV2UHJpdmF0ZTsKKwkJZHJtbW9kZV9jcnRjX3ByaXZhdGVfcHRyIGRybW1vZGVfY3J0YyA9IGNy dGMtPmRyaXZlcl9wcml2YXRlOworCisJCW9iamVjdHNbaSsrXSA9IGRybW1vZGVfY3J0Yy0+bW9k ZV9jcnRjLT5jcnRjX2lkOworCX0KKworCS8qIEFkZCBjb25uZWN0b3IgaWRzICovCisJZm9yIChv ID0gMDsgbyA8IG5vdXRwdXQ7IG8rKykgeworCQl4Zjg2T3V0cHV0UHRyICAgb3V0cHV0ID0gbGVh c2UtPm91dHB1dHNbb10tPmRldlByaXZhdGU7CisJCWRybW1vZGVfb3V0cHV0X3ByaXZhdGVfcHRy IGRybW1vZGVfb3V0cHV0ID0gb3V0cHV0LT5kcml2ZXJfcHJpdmF0ZTsKKworCQlvYmplY3RzW2kr K10gPSBkcm1tb2RlX291dHB1dC0+bW9kZV9vdXRwdXQtPmNvbm5lY3Rvcl9pZDsKKwl9CisKKwkv KiBjYWxsIGtlcm5lbCB0byBjcmVhdGUgbGVhc2UgKi8KKwlhc3NlcnQgKGkgPT0gbm9iamVjdHMp OworCisJbGVhc2VfZmQgPSBkcm1Nb2RlQ3JlYXRlTGVhc2UocFJBREVPTkVudC0+ZmQsIG9iamVj dHMsIG5vYmplY3RzLCAwLAorCQkJCSAgICAgICZsZWFzZV9wcml2YXRlLT5sZXNzZWVfaWQpOwor CisJZnJlZShvYmplY3RzKTsKKworCWlmIChsZWFzZV9mZCA8IDApIHsKKwkJZnJlZShsZWFzZV9w cml2YXRlKTsKKwkJcmV0dXJuIEJhZE1hdGNoOworCX0KKworCWxlYXNlLT5kZXZQcml2YXRlID0g bGVhc2VfcHJpdmF0ZTsKKworCXhmODZDcnRjTGVhc2VTdGFydGVkKGxlYXNlKTsKKworCSpmZCA9 IGxlYXNlX2ZkOworCXJldHVybiBTdWNjZXNzOworfQorCitzdGF0aWMgdm9pZAorZHJtbW9kZV90 ZXJtaW5hdGVfbGVhc2UoUlJMZWFzZVB0ciBsZWFzZSkKK3sKKwlkcm1tb2RlX2xlYXNlX3ByaXZh dGVfcHRyIGxlYXNlX3ByaXZhdGUgPSBsZWFzZS0+ZGV2UHJpdmF0ZTsKKwlTY3JlZW5QdHIgc2Ny ZWVuID0gbGVhc2UtPnNjcmVlbjsKKwlTY3JuSW5mb1B0ciBzY3JuID0geGY4NlNjcmVlblRvU2Ny bihzY3JlZW4pOworCVJBREVPTkVudFB0ciBwUkFERU9ORW50ID0gUkFERU9ORW50UHJpdihzY3Ju KTsKKworCWlmIChkcm1Nb2RlUmV2b2tlTGVhc2UocFJBREVPTkVudC0+ZmQsIGxlYXNlX3ByaXZh dGUtPmxlc3NlZV9pZCkgPT0gMCkgeworCQlmcmVlKGxlYXNlX3ByaXZhdGUpOworCQlsZWFzZS0+ ZGV2UHJpdmF0ZSA9IE5VTEw7CisJCXhmODZDcnRjTGVhc2VUZXJtaW5hdGVkKGxlYXNlKTsKKwl9 Cit9CisKKyNlbmRpZiAvLyBYRjg2X0xFQVNFX1ZFUlNJT04KKwordm9pZAorZHJtbW9kZV90ZXJt aW5hdGVfbGVhc2VzKFNjcm5JbmZvUHRyIHBTY3JuKQoreworI2lmZGVmIFhGODZfTEVBU0VfVkVS U0lPTgorCVNjcmVlblB0ciBzY3JlZW4gPSB4Zjg2U2NyblRvU2NyZWVuKHBTY3JuKTsKKwlSQURF T05FbnRQdHIgcFJBREVPTkVudCA9IFJBREVPTkVudFByaXYocFNjcm4pOworCXJyU2NyUHJpdlB0 ciBzY3JfcHJpdiA9IHJyR2V0U2NyUHJpdihzY3JlZW4pOworCVJSTGVhc2VQdHIgbGVhc2UsIG5l eHQ7CisKKwl4b3JnX2xpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShsZWFzZSwgbmV4dCwgJnNjcl9w cml2LT5sZWFzZXMsIGxpc3QpIHsKKwkJZHJtbW9kZV9sZWFzZV9wcml2YXRlX3B0ciBsZWFzZV9w cml2YXRlID0gbGVhc2UtPmRldlByaXZhdGU7CisJCWRybU1vZGVSZXZva2VMZWFzZShwUkFERU9O RW50LT5mZCwgbGVhc2VfcHJpdmF0ZS0+bGVzc2VlX2lkKTsKKwkJZnJlZShsZWFzZV9wcml2YXRl KTsKKwkJbGVhc2UtPmRldlByaXZhdGUgPSBOVUxMOworCQlSUkxlYXNlVGVybWluYXRlZChsZWFz ZSk7CisJCVJSTGVhc2VGcmVlKGxlYXNlKTsKKwl9CisjZW5kaWYKK30KKwogc3RhdGljIGNvbnN0 IHhmODZDcnRjQ29uZmlnRnVuY3NSZWMgZHJtbW9kZV94Zjg2Y3J0Y19jb25maWdfZnVuY3MgPSB7 Ci0JZHJtbW9kZV94Zjg2Y3J0Y19yZXNpemUKKwkucmVzaXplID0gZHJtbW9kZV94Zjg2Y3J0Y19y ZXNpemUsCisjaWZkZWYgWEY4Nl9MRUFTRV9WRVJTSU9OCisJLmNyZWF0ZV9sZWFzZSA9IGRybW1v ZGVfY3JlYXRlX2xlYXNlLAorCS50ZXJtaW5hdGVfbGVhc2UgPSBkcm1tb2RlX3Rlcm1pbmF0ZV9s ZWFzZQorI2VuZGlmCiB9OwogCiBzdGF0aWMgdm9pZApAQCAtMjg4OCw2ICszMDM5LDkgQEAgQm9v bCBkcm1tb2RlX3NldF9kZXNpcmVkX21vZGVzKFNjcm5JbmZvUHRyIHBTY3JuLCBkcm1tb2RlX3B0 ciBkcm1tb2RlLAogCQlyZXR1cm4gRkFMU0U7CiAJfQogCisJLyogVmFsaWRhdGUgbGVhc2VzIG9u IFZUIHJlLWVudHJ5ICovCisJZHJtbW9kZV92YWxpZGF0ZV9sZWFzZXMocFNjcm4pOworCiAJcmV0 dXJuIFRSVUU7CiB9CiAKQEAgLTMwNTUsNiArMzIwOSw5IEBAIHJlc3RhcnRfZGVzdHJveToKIAkJ CWNoYW5nZWQgPSBUUlVFOwogCX0KIAorCS8qIENoZWNrIHRvIHNlZSBpZiBhIGxlc3NlZSBoYXMg ZGlzYXBwZWFyZWQgKi8KKwlkcm1tb2RlX3ZhbGlkYXRlX2xlYXNlcyhzY3JuKTsKKwogCWlmIChj aGFuZ2VkICYmIGRpeFByaXZhdGVLZXlSZWdpc3RlcmVkKHJyUHJpdktleSkpIHsKICNpZiBYT1JH X1ZFUlNJT05fQ1VSUkVOVCA+PSBYT1JHX1ZFUlNJT05fTlVNRVJJQygxLDE0LDk5LDIsMCkKIAkJ UlJTZXRDaGFuZ2VkKHhmODZTY3JuVG9TY3JlZW4oc2NybikpOwpkaWZmIC0tZ2l0IGEvc3JjL2Ry bW1vZGVfZGlzcGxheS5oIGIvc3JjL2RybW1vZGVfZGlzcGxheS5oCmluZGV4IDI3YzIzYzFhNC4u NDU1MWUwYzc3IDEwMDY0NAotLS0gYS9zcmMvZHJtbW9kZV9kaXNwbGF5LmgKKysrIGIvc3JjL2Ry bW1vZGVfZGlzcGxheS5oCkBAIC0xMzksNiArMTM5LDEwIEBAIHR5cGVkZWYgc3RydWN0IHsKICAg ICBpbnQgdGVhcl9mcmVlOwogfSBkcm1tb2RlX291dHB1dF9wcml2YXRlX3JlYywgKmRybW1vZGVf b3V0cHV0X3ByaXZhdGVfcHRyOwogCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdWludDMyX3QgbGVz c2VlX2lkOworfSBkcm1tb2RlX2xlYXNlX3ByaXZhdGVfcmVjLCAqZHJtbW9kZV9sZWFzZV9wcml2 YXRlX3B0cjsKKwogCiBlbnVtIGRybW1vZGVfZmxpcF9zeW5jIHsKICAgICBGTElQX1ZTWU5DLApA QCAtMjIzLDYgKzIyNyw4IEBAIFBpeG1hcFB0ciBkcm1tb2RlX2NydGNfc2Nhbm91dF9jcmVhdGUo eGY4NkNydGNQdHIgY3J0YywKIGV4dGVybiB2b2lkIGRybW1vZGVfdWV2ZW50X2luaXQoU2Nybklu Zm9QdHIgc2NybiwgZHJtbW9kZV9wdHIgZHJtbW9kZSk7CiBleHRlcm4gdm9pZCBkcm1tb2RlX3Vl dmVudF9maW5pKFNjcm5JbmZvUHRyIHNjcm4sIGRybW1vZGVfcHRyIGRybW1vZGUpOwogCitleHRl cm4gdm9pZCBkcm1tb2RlX3Rlcm1pbmF0ZV9sZWFzZXMoU2NybkluZm9QdHIgc2Nybik7CisKIEJv b2wgZHJtbW9kZV9zZXRfbW9kZSh4Zjg2Q3J0Y1B0ciBjcnRjLCBzdHJ1Y3QgZHJtbW9kZV9mYiAq ZmIsCiAJCSAgICAgIERpc3BsYXlNb2RlUHRyIG1vZGUsIGludCB4LCBpbnQgeSk7CiAKZGlmZiAt LWdpdCBhL3NyYy9yYWRlb25fa21zLmMgYi9zcmMvcmFkZW9uX2ttcy5jCmluZGV4IDM2ODQwYWQz Ni4uYzhhNTcyNmFkIDEwMDY0NAotLS0gYS9zcmMvcmFkZW9uX2ttcy5jCisrKyBiL3NyYy9yYWRl b25fa21zLmMKQEAgLTIxNTQsNiArMjE1NCw3IEBAIHN0YXRpYyBCb29sIFJBREVPTkNsb3NlU2Ny ZWVuX0tNUyhTY3JlZW5QdHIgcFNjcmVlbikKICAgICAvKiBDbGVhciBtYXNrIG9mIGFzc2lnbmVk IGNydGMncyBpbiB0aGlzIGdlbmVyYXRpb24gKi8KICAgICBwUkFERU9ORW50LT5hc3NpZ25lZF9j cnRjcyA9IDA7CiAKKyAgICBkcm1tb2RlX3Rlcm1pbmF0ZV9sZWFzZXMocFNjcm4pOwogICAgIGRy bW1vZGVfdWV2ZW50X2ZpbmkocFNjcm4sICZpbmZvLT5kcm1tb2RlKTsKICAgICByYWRlb25fZHJt X3F1ZXVlX2Nsb3NlKHBTY3JuKTsKICAgICByYWRlb25fY3NfZmx1c2hfaW5kaXJlY3QocFNjcm4p OwotLSAKMi4xOC4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK