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: Fri, 22 Mar 2019 21:04:28 +0100 Message-ID: <20190322200428.4008-5-mario.kleiner.de@gmail.com> References: <20190322200428.4008-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: <20190322200428.4008-1-mario.kleiner.de-Re5JQEeQqe8AvxtiuMwx3w@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: mario.kleiner.de-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.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 LmRlQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IE5pY2hvbGFzIEthemxhdXNrYXMgPE5pY2hvbGFz LkthemxhdXNrYXNAYW1kLmNvbT4KLS0tCiAuLi4vZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVf ZG0vYW1kZ3B1X2RtLmMgfCA2OCArKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwg NTUgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMKaW5kZXggZmUyMDc5ODhkMGIyLi5j MjBlOWY2OTVmMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRn cHVfZG0vYW1kZ3B1X2RtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdw dV9kbS9hbWRncHVfZG0uYwpAQCAtMjYzLDYgKzI2MywxMCBAQCBzdGF0aWMgdm9pZCBkbV9wZmxp cF9oaWdoX2lycSh2b2lkICppbnRlcnJ1cHRfcGFyYW1zKQogCXN0cnVjdCBjb21tb25faXJxX3Bh cmFtcyAqaXJxX3BhcmFtcyA9IGludGVycnVwdF9wYXJhbXM7CiAJc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYgPSBpcnFfcGFyYW1zLT5hZGV2OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3Ry dWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZTsKKwlzdHJ1Y3QgZG1fY3J0Y19zdGF0ZSAq YWNydGNfc3RhdGU7CisJdWludDMyX3QgdnBvcywgaHBvcywgdl9ibGFua19zdGFydCwgdl9ibGFu a19lbmQ7CisJYm9vbCB2cnJfYWN0aXZlOwogCiAJYW1kZ3B1X2NydGMgPSBnZXRfY3J0Y19ieV9v dGdfaW5zdChhZGV2LCBpcnFfcGFyYW1zLT5pcnFfc3JjIC0gSVJRX1RZUEVfUEZMSVApOwogCkBA IC0yODUsMTggKzI4OSw1NyBAQCBzdGF0aWMgdm9pZCBkbV9wZmxpcF9oaWdoX2lycSh2b2lkICpp bnRlcnJ1cHRfcGFyYW1zKQogCQlyZXR1cm47CiAJfQogCi0JLyogVXBkYXRlIHRvIGNvcnJlY3Qg Y291bnQocykgaWYgcmFjaW5nIHdpdGggdmJsYW5rIGlycSAqLwotCWRybV9jcnRjX2FjY3VyYXRl X3ZibGFua19jb3VudCgmYW1kZ3B1X2NydGMtPmJhc2UpOworCS8qIHBhZ2UgZmxpcCBjb21wbGV0 ZWQuICovCisJZSA9IGFtZGdwdV9jcnRjLT5ldmVudDsKKwlhbWRncHVfY3J0Yy0+ZXZlbnQgPSBO VUxMOwogCi0JLyogd2FrZSB1cCB1c2Vyc3BhY2UgKi8KLQlpZiAoYW1kZ3B1X2NydGMtPmV2ZW50 KSB7Ci0JCWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KCZhbWRncHVfY3J0Yy0+YmFzZSwgYW1k Z3B1X2NydGMtPmV2ZW50KTsKKwlpZiAoIWUpCisJCVdBUk5fT04oMSk7CiAKLQkJLyogcGFnZSBm bGlwIGNvbXBsZXRlZC4gY2xlYW4gdXAgKi8KLQkJYW1kZ3B1X2NydGMtPmV2ZW50ID0gTlVMTDsK KwlhY3J0Y19zdGF0ZSA9IHRvX2RtX2NydGNfc3RhdGUoYW1kZ3B1X2NydGMtPmJhc2Uuc3RhdGUp OworCXZycl9hY3RpdmUgPSBhbWRncHVfZG1fdnJyX2FjdGl2ZShhY3J0Y19zdGF0ZSk7CisKKwkv KiBGaXhlZCByZWZyZXNoIHJhdGUsIG9yIFZSUiBzY2Fub3V0IHBvc2l0aW9uIG91dHNpZGUgZnJv bnQtcG9yY2g/ICovCisJaWYgKCF2cnJfYWN0aXZlIHx8CisJICAgICFkY19zdHJlYW1fZ2V0X3Nj YW5vdXRwb3MoYWNydGNfc3RhdGUtPnN0cmVhbSwgJnZfYmxhbmtfc3RhcnQsCisJCQkJICAgICAg JnZfYmxhbmtfZW5kLCAmaHBvcywgJnZwb3MpIHx8CisJICAgICh2cG9zIDwgdl9ibGFua19zdGFy dCkpIHsKKwkJLyogVXBkYXRlIHRvIGNvcnJlY3QgY291bnQgYW5kIHZibGFuayB0aW1lc3RhbXAg aWYgcmFjaW5nIHdpdGgKKwkJICogdmJsYW5rIGlycS4gVGhpcyBhbHNvIHVwZGF0ZXMgdG8gdGhl IGNvcnJlY3QgdmJsYW5rIHRpbWVzdGFtcAorCQkgKiBldmVuIGluIFZSUiBtb2RlLCBhcyBzY2Fu b3V0IGlzIHBhc3QgdGhlIGZyb250LXBvcmNoIGF0bS4KKwkJICovCisJCWRybV9jcnRjX2FjY3Vy YXRlX3ZibGFua19jb3VudCgmYW1kZ3B1X2NydGMtPmJhc2UpOwogCi0JfSBlbHNlCi0JCVdBUk5f T04oMSk7CisJCS8qIFdha2UgdXAgdXNlcnNwYWNlIGJ5IHNlbmRpbmcgdGhlIHBhZ2VmbGlwIGV2 ZW50IHdpdGggcHJvcGVyCisJCSAqIGNvdW50IGFuZCB0aW1lc3RhbXAgb2YgdmJsYW5rIG9mIGZs aXAgY29tcGxldGlvbi4KKwkJICovCisJCWlmIChlKSB7CisJCQlkcm1fY3J0Y19zZW5kX3ZibGFu a19ldmVudCgmYW1kZ3B1X2NydGMtPmJhc2UsIGUpOworCisJCQkvKiBFdmVudCBzZW50LCBzbyBk b25lIHdpdGggdmJsYW5rIGZvciB0aGlzIGZsaXAgKi8KKwkJCWRybV9jcnRjX3ZibGFua19wdXQo JmFtZGdwdV9jcnRjLT5iYXNlKTsKKwkJfQorCX0gZWxzZSBpZiAoZSkgeworCQkvKiBWUlIgYWN0 aXZlIGFuZCBpbnNpZGUgZnJvbnQtcG9yY2g6IHZibGFuayBjb3VudCBhbmQKKwkJICogdGltZXN0 YW1wIGZvciBwYWdlZmxpcCBldmVudCB3aWxsIG9ubHkgYmUgdXAgdG8gZGF0ZSBhZnRlcgorCQkg KiBkcm1fY3J0Y19oYW5kbGVfdmJsYW5rKCkgaGFzIGJlZW4gZXhlY3V0ZWQgZnJvbSBsYXRlIHZi bGFuaworCQkgKiBpcnEgaGFuZGxlciBhZnRlciBzdGFydCBvZiBiYWNrLXBvcmNoICh2bGluZSAw KS4gV2UgcXVldWUgdGhlCisJCSAqIHBhZ2VmbGlwIGV2ZW50IGZvciBzZW5kLW91dCBieSBkcm1f Y3J0Y19oYW5kbGVfdmJsYW5rKCkgd2l0aAorCQkgKiB1cGRhdGVkIHRpbWVzdGFtcCBhbmQgY291 bnQsIG9uY2UgaXQgcnVucyBhZnRlciB1cy4KKwkJICoKKwkJICogV2UgbmVlZCB0byBvcGVuLWNv ZGUgdGhpcyBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBoZWxwZXIKKwkJICogZHJtX2NydGNfYXJtX3Zi bGFua19ldmVudCgpLCBhcyB0aGF0IGhlbHBlciB3b3VsZAorCQkgKiBjYWxsIGRybV9jcnRjX2Fj Y3VyYXRlX3ZibGFua19jb3VudCgpLCB3aGljaCB3ZSBtdXN0CisJCSAqIG5vdCBjYWxsIGluIFZS UiBtb2RlIHdoaWxlIHdlIGFyZSBpbiBmcm9udC1wb3JjaCEKKwkJICovCisKKwkJLyogc2VxdWVu Y2Ugd2lsbCBiZSByZXBsYWNlZCBieSByZWFsIGNvdW50IGR1cmluZyBzZW5kLW91dC4gKi8KKwkJ ZS0+c2VxdWVuY2UgPSBkcm1fY3J0Y192YmxhbmtfY291bnQoJmFtZGdwdV9jcnRjLT5iYXNlKTsK KwkJZS0+cGlwZSA9IGFtZGdwdV9jcnRjLT5jcnRjX2lkOworCisJCWxpc3RfYWRkX3RhaWwoJmUt PmJhc2UubGluaywgJmFkZXYtPmRkZXYtPnZibGFua19ldmVudF9saXN0KTsKKwkJZSA9IE5VTEw7 CisJfQogCiAJLyogS2VlcCB0cmFjayBvZiB2Ymxhbmsgb2YgdGhpcyBmbGlwIGZvciBmbGlwIHRo cm90dGxpbmcuIFdlIHVzZSB0aGUKIAkgKiBjb29rZWQgaHcgY291bnRlciwgYXMgdGhhdCBvbmUg aW5jcmVtZW50ZWQgYXQgc3RhcnQgb2YgdGhpcyB2YmxhbmsKQEAgLTMwOSwxMCArMzUyLDkgQEAg c3RhdGljIHZvaWQgZG1fcGZsaXBfaGlnaF9pcnEodm9pZCAqaW50ZXJydXB0X3BhcmFtcykKIAlh bWRncHVfY3J0Yy0+cGZsaXBfc3RhdHVzID0gQU1ER1BVX0ZMSVBfTk9ORTsKIAlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZhZGV2LT5kZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7CiAKLQlEUk1fREVC VUdfRFJJVkVSKCIlcyAtIGNydGMgOiVkWyVwXSwgcGZsaXBfc3RhdDpBTURHUFVfRkxJUF9OT05F XG4iLAotCQkJCQlfX2Z1bmNfXywgYW1kZ3B1X2NydGMtPmNydGNfaWQsIGFtZGdwdV9jcnRjKTsK LQotCWRybV9jcnRjX3ZibGFua19wdXQoJmFtZGdwdV9jcnRjLT5iYXNlKTsKKwlEUk1fREVCVUdf RFJJVkVSKCJjcnRjOiVkWyVwXSwgcGZsaXBfc3RhdDpBTURHUFVfRkxJUF9OT05FLCB2cnJbJWRd LWZwICVkXG4iLAorCQkJIGFtZGdwdV9jcnRjLT5jcnRjX2lkLCBhbWRncHVfY3J0YywKKwkJCSB2 cnJfYWN0aXZlLCAoaW50KSAhZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRtX3Z1cGRhdGVfaGlnaF9p cnEodm9pZCAqaW50ZXJydXB0X3BhcmFtcykKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9hbWQtZ2Z4