From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Subject: [PATCH 4/6] drm/radeon: Provide page_flip_target hook Date: Thu, 4 Aug 2016 12:39:39 +0900 Message-ID: <1470281981-18172-5-git-send-email-michel@daenzer.net> References: <1470281981-18172-1-git-send-email-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1470281981-18172-1-git-send-email-michel-otUistvHUpPR7s880joybQ@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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Mario Kleiner , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogTWljaGVsIETDpG56ZXIgPG1pY2hlbC5kYWVuemVyQGFtZC5jb20+CgpOb3cgd2UgY2Fu IHByb2dyYW0gYSBmbGlwIGR1cmluZyBhIHZlcnRpY2FsIGJsYW5rIHBlcmlvZCwgaWYgaXQncyB0 aGUKb25lIHRhcmdldGVkIGJ5IHRoZSBmbGlwIChvciBhIGxhdGVyIG9uZSkuIFRoaXMgYWxsb3dz IHNpbXBsaWZ5aW5nCnJhZGVvbl9mbGlwX3dvcmtfZnVuYyBjb25zaWRlcmFibHkuCgpTaWduZWQt b2ZmLWJ5OiBNaWNoZWwgRMOkbnplciA8bWljaGVsLmRhZW56ZXJAYW1kLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oICAgICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMgfCA4OSArKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKaW5kZXggNTYzM2VlMy4uMWIwZGNhZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbi5oCkBAIC03NDIsNiArNzQyLDcgQEAgc3RydWN0IHJhZGVvbl9mbGlw X3dvcmsgewogCXN0cnVjdCB3b3JrX3N0cnVjdAkJdW5waW5fd29yazsKIAlzdHJ1Y3QgcmFkZW9u X2RldmljZQkJKnJkZXY7CiAJaW50CQkJCWNydGNfaWQ7CisJdTMyCQkJCXRhcmdldF92Ymxhbms7 CiAJdWludDY0X3QJCQliYXNlOwogCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2 ZW50OwogCXN0cnVjdCByYWRlb25fYm8JCSpvbGRfcmJvOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fZGlzcGxheS5jCmluZGV4IDVmMWNkNjkuLmJkOWQ5OTUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMKQEAgLTQwMCwxNCArNDAwLDEzIEBAIHN0YXRpYyB2b2lk IHJhZGVvbl9mbGlwX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKIAlzdHJ1 Y3QgcmFkZW9uX2ZsaXBfd29yayAqd29yayA9CiAJCWNvbnRhaW5lcl9vZihfX3dvcmssIHN0cnVj dCByYWRlb25fZmxpcF93b3JrLCBmbGlwX3dvcmspOwogCXN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2ID0gd29yay0+cmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcmRldi0+ZGRldjsK IAlzdHJ1Y3QgcmFkZW9uX2NydGMgKnJhZGVvbl9jcnRjID0gcmRldi0+bW9kZV9pbmZvLmNydGNz W3dvcmstPmNydGNfaWRdOwogCiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJnJhZGVvbl9jcnRj LT5iYXNlOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHI7Ci0JaW50IHZwb3MsIGhwb3Ms IHN0YXQsIG1pbl91ZGVsYXkgPSAwOwotCXVuc2lnbmVkIHJlcGNudCA9IDQ7Ci0Jc3RydWN0IGRy bV92YmxhbmtfY3J0YyAqdmJsYW5rID0gJmNydGMtPmRldi0+dmJsYW5rW3dvcmstPmNydGNfaWRd OworCWludCB2cG9zLCBocG9zOwogCiAJZG93bl9yZWFkKCZyZGV2LT5leGNsdXNpdmVfbG9jayk7 CiAJaWYgKHdvcmstPmZlbmNlKSB7CkBAIC00MzgsNTkgKzQzNywyNSBAQCBzdGF0aWMgdm9pZCBy YWRlb25fZmxpcF93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCiAJCXdvcmst PmZlbmNlID0gTlVMTDsKIAl9CiAKKwkvKiBXYWl0IHVudGlsIHdlJ3JlIG91dCBvZiB0aGUgdmVy dGljYWwgYmxhbmsgcGVyaW9kIGJlZm9yZSB0aGUgb25lCisJICogdGFyZ2V0ZWQgYnkgdGhlIGZs aXAKKwkgKi8KKwl3aGlsZSAocmFkZW9uX2NydGMtPmVuYWJsZWQgJiYKKwkgICAgICAgKHJhZGVv bl9nZXRfY3J0Y19zY2Fub3V0cG9zKGRldiwgd29yay0+Y3J0Y19pZCwgMCwKKwkJCQkJICAgJnZw b3MsICZocG9zLCBOVUxMLCBOVUxMLAorCQkJCQkgICAmY3J0Yy0+aHdtb2RlKQorCQkmIChEUk1f U0NBTk9VVFBPU19WQUxJRCB8IERSTV9TQ0FOT1VUUE9TX0lOX1ZCTEFOSykpID09CisJICAgICAg IChEUk1fU0NBTk9VVFBPU19WQUxJRCB8IERSTV9TQ0FOT1VUUE9TX0lOX1ZCTEFOSykgJiYKKwkg ICAgICAgKGludCkod29yay0+dGFyZ2V0X3ZibGFuayAtCisJCSAgICAgZGV2LT5kcml2ZXItPmdl dF92YmxhbmtfY291bnRlcihkZXYsIHdvcmstPmNydGNfaWQpKSA+IDApCisJCXVzbGVlcF9yYW5n ZSgxMDAwLCAyMDAwKTsKKwogCS8qIFdlIGJvcnJvdyB0aGUgZXZlbnQgc3BpbiBsb2NrIGZvciBw cm90ZWN0aW5nIGZsaXBfc3RhdHVzICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmNydGMtPmRldi0+ ZXZlbnRfbG9jaywgZmxhZ3MpOwogCiAJLyogc2V0IHRoZSBwcm9wZXIgaW50ZXJydXB0ICovCiAJ cmFkZW9uX2lycV9rbXNfcGZsaXBfaXJxX2dldChyZGV2LCByYWRlb25fY3J0Yy0+Y3J0Y19pZCk7 CiAKLQkvKiBJZiB0aGlzIGhhcHBlbnMgdG8gZXhlY3V0ZSB3aXRoaW4gdGhlICJ2aXJ0dWFsbHkg ZXh0ZW5kZWQiIHZibGFuawotCSAqIGludGVydmFsIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIHJl YWwgdmJsYW5rIGludGVydmFsIHRoZW4gaXQgbmVlZHMKLQkgKiB0byBkZWxheSBwcm9ncmFtbWlu ZyB0aGUgbW1pbyBmbGlwIHVudGlsIHRoZSByZWFsIHZibGFuayBpcyBlbnRlcmVkLgotCSAqIFRo aXMgcHJldmVudHMgY29tcGxldGluZyBhIGZsaXAgdG9vIGVhcmx5IGR1ZSB0byB0aGUgd2F5IHdl IGZ1ZGdlCi0JICogb3VyIHZibGFuayBjb3VudGVyIGFuZCB2YmxhbmsgdGltZXN0YW1wcyBpbiBv cmRlciB0byB3b3JrIGFyb3VuZCB0aGUKLQkgKiBwcm9ibGVtIHRoYXQgdGhlIGh3IGZpcmVzIHZi bGFuayBpbnRlcnJ1cHRzIGJlZm9yZSBhY3R1YWwgc3RhcnQgb2YKLQkgKiB2YmxhbmsgKHdoZW4g bGluZSBidWZmZXIgcmVmaWxsaW5nIGlzIGRvbmUgZm9yIGEgZnJhbWUpLiBJdAotCSAqIGNvbXBs ZW1lbnRzIHRoZSBmdWRnaW5nIGxvZ2ljIGluIHJhZGVvbl9nZXRfY3J0Y19zY2Fub3V0cG9zKCkg Zm9yCi0JICogdGltZXN0YW1waW5nIGFuZCByYWRlb25fZ2V0X3ZibGFua19jb3VudGVyX2ttcygp IGZvciB2YmxhbmsgY291bnRzLgotCSAqCi0JICogSW4gcHJhY3RpY2UgdGhpcyB3b24ndCBleGVj dXRlIHZlcnkgb2Z0ZW4gdW5sZXNzIG9uIHZlcnkgZmFzdAotCSAqIG1hY2hpbmVzIGJlY2F1c2Ug dGhlIHRpbWUgd2luZG93IGZvciB0aGlzIHRvIGhhcHBlbiBpcyB2ZXJ5IHNtYWxsLgotCSAqLwot CXdoaWxlIChyYWRlb25fY3J0Yy0+ZW5hYmxlZCAmJiAtLXJlcGNudCkgewotCQkvKiBHRVRfRElT VEFOQ0VfVE9fVkJMQU5LU1RBUlQgcmV0dXJucyBkaXN0YW5jZSB0byByZWFsIHZibGFuawotCQkg KiBzdGFydCBpbiBocG9zLCBhbmQgdG8gdGhlICJmdWRnZWQgZWFybGllciIgdmJsYW5rIHN0YXJ0 IGluCi0JCSAqIHZwb3MuCi0JCSAqLwotCQlzdGF0ID0gcmFkZW9uX2dldF9jcnRjX3NjYW5vdXRw b3MocmRldi0+ZGRldiwgd29yay0+Y3J0Y19pZCwKLQkJCQkJCSAgR0VUX0RJU1RBTkNFX1RPX1ZC TEFOS1NUQVJULAotCQkJCQkJICAmdnBvcywgJmhwb3MsIE5VTEwsIE5VTEwsCi0JCQkJCQkgICZj cnRjLT5od21vZGUpOwotCi0JCWlmICgoc3RhdCAmIChEUk1fU0NBTk9VVFBPU19WQUxJRCB8IERS TV9TQ0FOT1VUUE9TX0FDQ1VSQVRFKSkgIT0KLQkJICAgIChEUk1fU0NBTk9VVFBPU19WQUxJRCB8 IERSTV9TQ0FOT1VUUE9TX0FDQ1VSQVRFKSB8fAotCQkgICAgISh2cG9zID49IDAgJiYgaHBvcyA8 PSAwKSkKLQkJCWJyZWFrOwotCi0JCS8qIFNsZWVwIGF0IGxlYXN0IHVudGlsIGVzdGltYXRlZCBy ZWFsIHN0YXJ0IG9mIGh3IHZibGFuayAqLwotCQltaW5fdWRlbGF5ID0gKC1ocG9zICsgMSkgKiBt YXgodmJsYW5rLT5saW5lZHVyX25zIC8gMTAwMCwgNSk7Ci0JCWlmIChtaW5fdWRlbGF5ID4gdmJs YW5rLT5mcmFtZWR1cl9ucyAvIDIwMDApIHsKLQkJCS8qIERvbid0IHdhaXQgcmlkaWN1bG91c2x5 IGxvbmcgLSBzb21ldGhpbmcgaXMgd3JvbmcgKi8KLQkJCXJlcGNudCA9IDA7Ci0JCQlicmVhazsK LQkJfQotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2ssIGZs YWdzKTsKLQkJdXNsZWVwX3JhbmdlKG1pbl91ZGVsYXksIDIgKiBtaW5fdWRlbGF5KTsKLQkJc3Bp bl9sb2NrX2lycXNhdmUoJmNydGMtPmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwotCX07Ci0KLQlp ZiAoIXJlcGNudCkKLQkJRFJNX0RFQlVHX0RSSVZFUigiRGVsYXkgcHJvYmxlbSBvbiBjcnRjICVk OiBtaW5fdWRlbGF5ICVkLCAiCi0JCQkJICJmcmFtZWR1ciAlZCwgbGluZWR1ciAlZCwgc3RhdCAl ZCwgdnBvcyAlZCwgIgotCQkJCSAiaHBvcyAlZFxuIiwgd29yay0+Y3J0Y19pZCwgbWluX3VkZWxh eSwKLQkJCQkgdmJsYW5rLT5mcmFtZWR1cl9ucyAvIDEwMDAsCi0JCQkJIHZibGFuay0+bGluZWR1 cl9ucyAvIDEwMDAsIHN0YXQsIHZwb3MsIGhwb3MpOwotCiAJLyogZG8gdGhlIGZsaXAgKG1taW8p ICovCiAJcmFkZW9uX3BhZ2VfZmxpcChyZGV2LCByYWRlb25fY3J0Yy0+Y3J0Y19pZCwgd29yay0+ YmFzZSwgd29yay0+YXN5bmMpOwogCkBAIC00OTksMTAgKzQ2NCwxMSBAQCBzdGF0aWMgdm9pZCBy YWRlb25fZmxpcF93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCiAJdXBfcmVh ZCgmcmRldi0+ZXhjbHVzaXZlX2xvY2spOwogfQogCi1zdGF0aWMgaW50IHJhZGVvbl9jcnRjX3Bh Z2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkJIHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiLAotCQkJCSBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudCwKLQkJ CQkgdWludDMyX3QgcGFnZV9mbGlwX2ZsYWdzKQorc3RhdGljIGludCByYWRlb25fY3J0Y19wYWdl X2ZsaXBfdGFyZ2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkJc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIsCisJCQkJCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2ZW50 LAorCQkJCQl1aW50MzJfdCBwYWdlX2ZsaXBfZmxhZ3MsCisJCQkJCXVpbnQzMl90IHRhcmdldCkK IHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTU5OSwxMiArNTY1LDggQEAgc3Rh dGljIGludCByYWRlb25fY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQli YXNlICY9IH43OwogCX0KIAl3b3JrLT5iYXNlID0gYmFzZTsKLQotCXIgPSBkcm1fY3J0Y192Ymxh bmtfZ2V0KGNydGMpOwotCWlmIChyKSB7Ci0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGdldCB2Ymxh bmsgYmVmb3JlIGZsaXBcbiIpOwotCQlnb3RvIHBmbGlwX2NsZWFudXA7Ci0JfQorCXdvcmstPnRh cmdldF92YmxhbmsgPSB0YXJnZXQgLSBkcm1fY3J0Y192YmxhbmtfY291bnQoY3J0YykgKworCQlk ZXYtPmRyaXZlci0+Z2V0X3ZibGFua19jb3VudGVyKGRldiwgd29yay0+Y3J0Y19pZCk7CiAKIAkv KiBXZSBib3Jyb3cgdGhlIGV2ZW50IHNwaW4gbG9jayBmb3IgcHJvdGVjdGluZyBmbGlwX3dvcmsg Ki8KIAlzcGluX2xvY2tfaXJxc2F2ZSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7CkBA IC02MTMsNyArNTc1LDcgQEAgc3RhdGljIGludCByYWRlb25fY3J0Y19wYWdlX2ZsaXAoc3RydWN0 IGRybV9jcnRjICpjcnRjLAogCQlEUk1fREVCVUdfRFJJVkVSKCJmbGlwIHF1ZXVlOiBjcnRjIGFs cmVhZHkgYnVzeVxuIik7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNydGMtPmRldi0+ZXZl bnRfbG9jaywgZmxhZ3MpOwogCQlyID0gLUVCVVNZOwotCQlnb3RvIHZibGFua19jbGVhbnVwOwor CQlnb3RvIHBmbGlwX2NsZWFudXA7CiAJfQogCXJhZGVvbl9jcnRjLT5mbGlwX3N0YXR1cyA9IFJB REVPTl9GTElQX1BFTkRJTkc7CiAJcmFkZW9uX2NydGMtPmZsaXBfd29yayA9IHdvcms7CkBAIC02 MjYsOSArNTg4LDYgQEAgc3RhdGljIGludCByYWRlb25fY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCXF1ZXVlX3dvcmsocmFkZW9uX2NydGMtPmZsaXBfcXVldWUsICZ3b3Jr LT5mbGlwX3dvcmspOwogCXJldHVybiAwOwogCi12YmxhbmtfY2xlYW51cDoKLQlkcm1fY3J0Y192 YmxhbmtfcHV0KGNydGMpOwotCiBwZmxpcF9jbGVhbnVwOgogCWlmICh1bmxpa2VseShyYWRlb25f Ym9fcmVzZXJ2ZShuZXdfcmJvLCBmYWxzZSkgIT0gMCkpIHsKIAkJRFJNX0VSUk9SKCJmYWlsZWQg dG8gcmVzZXJ2ZSBuZXcgcmJvIGluIGVycm9yIHBhdGhcbiIpOwpAQCAtNjk3LDcgKzY1Niw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgcmFkZW9uX2NydGNfZnVuY3MgPSB7 CiAJLmdhbW1hX3NldCA9IHJhZGVvbl9jcnRjX2dhbW1hX3NldCwKIAkuc2V0X2NvbmZpZyA9IHJh ZGVvbl9jcnRjX3NldF9jb25maWcsCiAJLmRlc3Ryb3kgPSByYWRlb25fY3J0Y19kZXN0cm95LAot CS5wYWdlX2ZsaXAgPSByYWRlb25fY3J0Y19wYWdlX2ZsaXAsCisJLnBhZ2VfZmxpcF90YXJnZXQg PSByYWRlb25fY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0LAogfTsKIAogc3RhdGljIHZvaWQgcmFkZW9u X2NydGNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgaW5kZXgpCi0tIAoyLjguMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBt YWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==