From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mario Kleiner Subject: [PATCH 4/4] drm/amd/display: Make pageflip event delivery compatible with VRR. Date: Mon, 18 Mar 2019 18:19:52 +0100 Message-ID: <20190318171952.24302-5-mario.kleiner.de@gmail.com> References: <20190318171952.24302-1-mario.kleiner.de@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190318171952.24302-1-mario.kleiner.de-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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: mario.kleiner.de-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org V2Ugd2FudCB2YmxhbmsgY291bnRzIGFuZCB0aW1lc3RhbXBzIG9mIGZsaXAgY29tcGxldGlvbiBh cyBzZW50CmluIHBhZ2VmbGlwIGNvbXBsZXRpb24gZXZlbnRzIHRvIGJlIGNvbnNpc3RlbnQgd2l0 aCB0aGUgdmJsYW5rCmNvdW50IGFuZCB0aW1lc3RhbXAgb2YgdGhlIHZibGFuayBvZiBmbGlwIGNv bXBsZXRpb24sIGxpa2UgaW4gbm9uClZSUiBtb2RlLgoKSW4gVlJSIG1vZGUsIGRybV91cGRhdGVf dmJsYW5rX2NvdW50KCkgLSBhbmQgdGhlcmVieSB2YmxhbmsKY291bnQgYW5kIHRpbWVzdGFtcCB1 cGRhdGVzIC0gbXVzdCBiZSBkZWxheWVkIHVudGlsIGFmdGVyIHRoZQplbmQgb2YgZnJvbnQtcG9y Y2ggb2YgZWFjaCB2YmxhbmssIGFzIGl0IGlzIG9ubHkgc2FmZSB0bwpjYWxjdWxhdGUgdmJsYW5r IHRpbWVzdGFtcHMgb3V0c2lkZSBvZiB0aGUgZnJvbnQtcG9yY2gsIHdoZW4Kd2UgYWN0dWFsbHkg a25vdyB3aGVuIHRoZSB2Ymxhbmsgd2lsbCBlbmQgb3IgaGFzIGVuZGVkLgoKVGhlIGZ1bmN0aW9u IGRybV91cGRhdGVfdmJsYW5rX2NvdW50KCkgd2hpY2ggdXBkYXRlcyB0aW1lc3RhbXBzCmFuZCBj b3VudHMgZ2V0cyBjYWxsZWQgYnkgZHJtX2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50KCkgb3Ig YnkKZHJtX2NydGNfaGFuZGxlX3ZibGFuaygpLgoKVGhlcmVmb3JlIHdlIG11c3QgbWFrZSBzdXJl IHRoYXQgcGFnZWZsaXAgZXZlbnRzIGZvciBhIGNvbXBsZXRlZApmbGlwIGFyZSBvbmx5IHNlbnQg b3V0IGFmdGVyIGRybV9jcnRjX2FjY3VyYXRlX3ZibGFua19jb3VudCgpIG9yCmRybV9jcnRjX2hh bmRsZV92YmxhbmsoKSBpcyBleGVjdXRlZCwgYWZ0ZXIgZW5kIG9mIGZyb250LXBvcmNoCmZvciB0 aGUgdmJsYW5rIG9mIGZsaXAgY29tcGxldGlvbi4KClR3byBjYXNlczoKCmEpIFBhZ2VmbGlwIGly cSBoYW5kbGVyIGV4ZWN1dGVzIGluc2lkZSBmcm9udC1wb3JjaDoKICAgSW4gdGhpcyBjYXNlIHdl IG11c3QgZGVmZXIgc2VuZGluZyBwYWdlZmxpcCBldmVudHMgdW50aWwKICAgZHJtX2NydGNfaGFu ZGxlX3ZibGFuaygpIGV4ZWN1dGVzIGFmdGVyIGVuZCBvZiBmcm9udC1wb3JjaCwKICAgYW5kIHRo ZXJlYnkgY2FsY3VsYXRlcyBwcm9wZXIgdmJsYW5rIGNvdW50IGFuZCB0aW1lc3RhbXAuCiAgIElv dy4gdGhlIHBmbGlwIGlycSBoYW5kbGVyIG11c3QganVzdCBhcm0gYSBwYWdlZmxpcCBldmVudAog ICB0byBiZSBzZW50IG91dCBieSBkcm1fY3J0Y19oYW5kbGVfdmJsYW5rKCkgbGF0ZXIgb24uCgpi KSBQYWdlZmxpcCBpcnEgaGFuZGxlciBleGVjdXRlcyBhZnRlciBlbmQgb2YgZnJvbnQtcG9yY2gs IGUuZy4sCiAgIGFmdGVyIGZsaXAgY29tcGxldGlvbiBpbiBiYWNrLXBvcmNoIG9yIGR1ZSB0byBh IG1hc3NpdmVseQogICBkZWxheWVkIGhhbmRsZXIgaW52b2NhdGlvbiBpbnRvIHRoZSBhY3RpdmUg c2Nhbm91dCBvZiB0aGUgbmV3CiAgIGZyYW1lLiBJbiB0aGlzIGNhc2Ugd2UgY2FuIGNhbGwgZHJt X2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50KCkKICAgdG8gc2FmZWx5IGZvcmNlIGNhbGN1bGF0 aW9uIG9mIGEgcHJvcGVyIHZibGFuayBjb3VudCBhbmQKICAgdGltZXN0YW1wLCBhbmQgbXVzdCBz ZW5kIHRoZSBwYWdlZmxpcCBjb21wbGV0aW9uIGV2ZW50CiAgIG91cnNlbHZlcyBmcm9tIHRoZSBw YWdlZmxpcCBpcnEgaGFuZGxlci4KCiAgIFRoaXMgaXMgdGhlIHNhbWUgYmVoYXZpb3VyIGFzIG5l ZWRlZCBmb3Igc3RhbmRhcmQgZml4ZWQgcmVmcmVzaAogICByYXRlIG1vZGUuCgpUbyBkZWNpZGUg ZnJvbSB3aXRoaW4gcGFnZWZsaXAgaGFuZGxlciBpZiB3ZSBhcmUgaW4gY2FzZSBhKSBvciBiKSwK d2UgY2hlY2sgdGhlIGN1cnJlbnQgc2Nhbm91dCBwb3NpdGlvbiBhZ2FpbnN0IHRoZSBib3VuZGFy eSBvZgpmcm9udC1wb3JjaC4gSW4gbm9uLVZSUiBtb2RlIHdlIGp1c3QgZG8gd2hhdCB3ZSBkaWQg aW4gdGhlIHBhc3QuCgpTaWduZWQtb2ZmLWJ5OiBNYXJpbyBLbGVpbmVyIDxtYXJpby5rbGVpbmVy LmRlQGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2Rt L2FtZGdwdV9kbS5jIHwgNjggKysrKysrKysrKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA1NSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwppbmRleCA1NTVkOWU5Zi4uNDk5 Mjg0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9h bWRncHVfZG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2Ft ZGdwdV9kbS5jCkBAIC0yNjMsNiArMjYzLDEwIEBAIHN0YXRpYyB2b2lkIGRtX3BmbGlwX2hpZ2hf aXJxKHZvaWQgKmludGVycnVwdF9wYXJhbXMpCiAJc3RydWN0IGNvbW1vbl9pcnFfcGFyYW1zICpp cnFfcGFyYW1zID0gaW50ZXJydXB0X3BhcmFtczsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IGlycV9wYXJhbXMtPmFkZXY7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgZHJt X3BlbmRpbmdfdmJsYW5rX2V2ZW50ICplOworCXN0cnVjdCBkbV9jcnRjX3N0YXRlICphY3J0Y19z dGF0ZTsKKwl1aW50MzJfdCB2cG9zLCBocG9zLCB2X2JsYW5rX3N0YXJ0LCB2X2JsYW5rX2VuZDsK Kwlib29sIHZycl9hY3RpdmU7CiAKIAlhbWRncHVfY3J0YyA9IGdldF9jcnRjX2J5X290Z19pbnN0 KGFkZXYsIGlycV9wYXJhbXMtPmlycV9zcmMgLSBJUlFfVFlQRV9QRkxJUCk7CiAKQEAgLTI4NSwx OCArMjg5LDU3IEBAIHN0YXRpYyB2b2lkIGRtX3BmbGlwX2hpZ2hfaXJxKHZvaWQgKmludGVycnVw dF9wYXJhbXMpCiAJCXJldHVybjsKIAl9CiAKLQkvKiBVcGRhdGUgdG8gY29ycmVjdCBjb3VudChz KSBpZiByYWNpbmcgd2l0aCB2YmxhbmsgaXJxICovCi0JZHJtX2NydGNfYWNjdXJhdGVfdmJsYW5r X2NvdW50KCZhbWRncHVfY3J0Yy0+YmFzZSk7CisJLyogcGFnZSBmbGlwIGNvbXBsZXRlZC4gKi8K KwllID0gYW1kZ3B1X2NydGMtPmV2ZW50OworCWFtZGdwdV9jcnRjLT5ldmVudCA9IE5VTEw7CiAK LQkvKiB3YWtlIHVwIHVzZXJzcGFjZSAqLwotCWlmIChhbWRncHVfY3J0Yy0+ZXZlbnQpIHsKLQkJ ZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQoJmFtZGdwdV9jcnRjLT5iYXNlLCBhbWRncHVfY3J0 Yy0+ZXZlbnQpOworCWlmICghZSkKKwkJV0FSTl9PTigxKTsKIAotCQkvKiBwYWdlIGZsaXAgY29t cGxldGVkLiBjbGVhbiB1cCAqLwotCQlhbWRncHVfY3J0Yy0+ZXZlbnQgPSBOVUxMOworCWFjcnRj X3N0YXRlID0gdG9fZG1fY3J0Y19zdGF0ZShhbWRncHVfY3J0Yy0+YmFzZS5zdGF0ZSk7CisJdnJy X2FjdGl2ZSA9IGFtZGdwdV9kbV92cnJfYWN0aXZlKGFjcnRjX3N0YXRlKTsKKworCS8qIEZpeGVk IHJlZnJlc2ggcmF0ZSwgb3IgVlJSIHNjYW5vdXQgcG9zaXRpb24gb3V0c2lkZSBmcm9udC1wb3Jj aD8gKi8KKwlpZiAoIXZycl9hY3RpdmUgfHwKKwkgICAgIWRjX3N0cmVhbV9nZXRfc2Nhbm91dHBv cyhhY3J0Y19zdGF0ZS0+c3RyZWFtLCAmdl9ibGFua19zdGFydCwKKwkJCQkgICAgICAmdl9ibGFu a19lbmQsICZocG9zLCAmdnBvcykgfHwKKwkgICAgKHZwb3MgPCB2X2JsYW5rX3N0YXJ0KSkgewor CQkvKiBVcGRhdGUgdG8gY29ycmVjdCBjb3VudCBhbmQgdmJsYW5rIHRpbWVzdGFtcCBpZiByYWNp bmcgd2l0aAorCQkgKiB2YmxhbmsgaXJxLiBUaGlzIGFsc28gdXBkYXRlcyB0byB0aGUgY29ycmVj dCB2YmxhbmsgdGltZXN0YW1wCisJCSAqIGV2ZW4gaW4gVlJSIG1vZGUsIGFzIHNjYW5vdXQgaXMg cGFzdCB0aGUgZnJvbnQtcG9yY2ggYXRtLgorCQkgKi8KKwkJZHJtX2NydGNfYWNjdXJhdGVfdmJs YW5rX2NvdW50KCZhbWRncHVfY3J0Yy0+YmFzZSk7CiAKLQl9IGVsc2UKLQkJV0FSTl9PTigxKTsK KwkJLyogV2FrZSB1cCB1c2Vyc3BhY2UgYnkgc2VuZGluZyB0aGUgcGFnZWZsaXAgZXZlbnQgd2l0 aCBwcm9wZXIKKwkJICogY291bnQgYW5kIHRpbWVzdGFtcCBvZiB2Ymxhbmsgb2YgZmxpcCBjb21w bGV0aW9uLgorCQkgKi8KKwkJaWYgKGUpIHsKKwkJCWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50 KCZhbWRncHVfY3J0Yy0+YmFzZSwgZSk7CisKKwkJCS8qIEV2ZW50IHNlbnQsIHNvIGRvbmUgd2l0 aCB2YmxhbmsgZm9yIHRoaXMgZmxpcCAqLworCQkJZHJtX2NydGNfdmJsYW5rX3B1dCgmYW1kZ3B1 X2NydGMtPmJhc2UpOworCQl9CisJfSBlbHNlIGlmIChlKSB7CisJCS8qIFZSUiBhY3RpdmUgYW5k IGluc2lkZSBmcm9udC1wb3JjaDogdmJsYW5rIGNvdW50IGFuZAorCQkgKiB0aW1lc3RhbXAgZm9y IHBhZ2VmbGlwIGV2ZW50IHdpbGwgb25seSBiZSB1cCB0byBkYXRlIGFmdGVyCisJCSAqIGRybV9j cnRjX2hhbmRsZV92YmxhbmsoKSBoYXMgYmVlbiBleGVjdXRlZCBmcm9tIGxhdGUgdmJsYW5rCisJ CSAqIGlycSBoYW5kbGVyIGFmdGVyIHN0YXJ0IG9mIGJhY2stcG9yY2ggKHZsaW5lIDApLiBXZSBx dWV1ZSB0aGUKKwkJICogcGFnZWZsaXAgZXZlbnQgZm9yIHNlbmQtb3V0IGJ5IGRybV9jcnRjX2hh bmRsZV92YmxhbmsoKSB3aXRoCisJCSAqIHVwZGF0ZWQgdGltZXN0YW1wIGFuZCBjb3VudCwgb25j ZSBpdCBydW5zIGFmdGVyIHVzLgorCQkgKgorCQkgKiBXZSBuZWVkIHRvIG9wZW4tY29kZSB0aGlz IGluc3RlYWQgb2YgdXNpbmcgdGhlIGhlbHBlcgorCQkgKiBkcm1fY3J0Y19hcm1fdmJsYW5rX2V2 ZW50KCksIGFzIHRoYXQgaGVscGVyIHdvdWxkCisJCSAqIGNhbGwgZHJtX2NydGNfYWNjdXJhdGVf dmJsYW5rX2NvdW50KCksIHdoaWNoIHdlIG11c3QKKwkJICogbm90IGNhbGwgaW4gVlJSIG1vZGUg d2hpbGUgd2UgYXJlIGluIGZyb250LXBvcmNoIQorCQkgKi8KKworCQkvKiBzZXF1ZW5jZSB3aWxs IGJlIHJlcGxhY2VkIGJ5IHJlYWwgY291bnQgZHVyaW5nIHNlbmQtb3V0LiAqLworCQllLT5zZXF1 ZW5jZSA9IGRybV9jcnRjX3ZibGFua19jb3VudCgmYW1kZ3B1X2NydGMtPmJhc2UpOworCQllLT5w aXBlID0gYW1kZ3B1X2NydGMtPmNydGNfaWQ7CisKKwkJbGlzdF9hZGRfdGFpbCgmZS0+YmFzZS5s aW5rLCAmYWRldi0+ZGRldi0+dmJsYW5rX2V2ZW50X2xpc3QpOworCQllID0gTlVMTDsKKwl9CiAK IAkvKiBLZWVwIHRyYWNrIG9mIHZibGFuayBvZiB0aGlzIGZsaXAgZm9yIGZsaXAgdGhyb3R0bGlu Zy4gV2UgdXNlIHRoZQogCSAqIGNvb2tlZCBodyBjb3VudGVyLCBhcyB0aGF0IG9uZSBpbmNyZW1l bnRlZCBhdCBzdGFydCBvZiB0aGlzIHZibGFuawpAQCAtMzA5LDEwICszNTIsOSBAQCBzdGF0aWMg dm9pZCBkbV9wZmxpcF9oaWdoX2lycSh2b2lkICppbnRlcnJ1cHRfcGFyYW1zKQogCWFtZGdwdV9j cnRjLT5wZmxpcF9zdGF0dXMgPSBBTURHUFVfRkxJUF9OT05FOwogCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmFkZXYtPmRkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKIAotCURSTV9ERUJVR19EUklW RVIoIiVzIC0gY3J0YyA6JWRbJXBdLCBwZmxpcF9zdGF0OkFNREdQVV9GTElQX05PTkVcbiIsCi0J CQkJCV9fZnVuY19fLCBhbWRncHVfY3J0Yy0+Y3J0Y19pZCwgYW1kZ3B1X2NydGMpOwotCi0JZHJt X2NydGNfdmJsYW5rX3B1dCgmYW1kZ3B1X2NydGMtPmJhc2UpOworCURSTV9ERUJVR19EUklWRVIo ImNydGM6JWRbJXBdLCBwZmxpcF9zdGF0OkFNREdQVV9GTElQX05PTkUsIHZyclslZF0tZnAgJWRc biIsCisJCQkgYW1kZ3B1X2NydGMtPmNydGNfaWQsIGFtZGdwdV9jcnRjLAorCQkJIHZycl9hY3Rp dmUsIChpbnQpICFlKTsKIH0KIAogc3RhdGljIHZvaWQgZG1fdnVwZGF0ZV9oaWdoX2lycSh2b2lk ICppbnRlcnJ1cHRfcGFyYW1zKQotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vYW1kLWdmeA==