From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Siqueira Subject: [PATCH V3 4/4] drm/vkms: Add vblank events simulated by hrtimers Date: Wed, 11 Jul 2018 23:02:26 -0300 Message-ID: <7709bba40782ec06332d57fff337797b272581fc.1531359228.git.rodrigosiqueiramelo@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt0-x241.google.com (mail-qt0-x241.google.com [IPv6:2607:f8b0:400d:c0d::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 49E996EDC4 for ; Thu, 12 Jul 2018 02:02:30 +0000 (UTC) Received: by mail-qt0-x241.google.com with SMTP id z8-v6so14362337qto.9 for ; Wed, 11 Jul 2018 19:02:30 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , Gustavo Padovan , Sean Paul , Haneen Mohammed Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhpcyBjb21taXQgYWRkcyByZWd1bGFyIHZibGFuayBldmVudHMgc2ltdWxhdGVkIHRocm91Z2gg aHJ0aW1lcnMsIHdoaWNoCmlzIGEgZmVhdHVyZSByZXF1aXJlZCBieSBWS01TIHRvIG1pbWljIHJl YWwgaGFyZHdhcmUuIEFkZGl0aW9uYWxseSwgYWxsCnRoZSB2YmxhbmsgZXZlbnQgc2VuZCBhZnRl ciBwYWdlZmxpcCBpcyBrZXB0IGluIHRoZSBhdG9taWNfZmx1c2gKZnVuY3Rpb24uCgpDaGFuZ2Vz IHNpbmNlIFYxOgogLSBDb21wdXRlIHRoZSB2YmxhbmsgdGltZXIgaW50ZXJ2YWwgcGVyIGludGVy cnVwdGlvbgogVmlsbGUgU3lyasOkbMOkIGFuZCBEYW5pZWwgVmV0dGVyOgogLSBSZW1vdmVzIGhh cmRjb2RlZCB2YmxhbmsgaW50ZXJ2YWwgdG8gZ2V0IGl0IGZyb20gdXNlciBzcGFjZQoKQ2hhbmdl cyBzaW5jZSBWMjoKIENocmlzIFdpbHNvbgogLSBSZW1vdmVzIHVubmVjZXNzYXJ5IGFsZ29yaXRo bSB0byBjb21wdXRlIHRoZSBuZXh0IHBlcmlvZAogRGFuaWVsIFZldHRlcjoKIC0gVXNlcyBkcm1f Y2FsY190aW1lc3RhbXBpbmdfY29uc3RhbnRzIHRvIGdldCB0aGUgdmJsYW5rIGludGVydmFsCiAg IGluc3RlYWQgb2YgY2FsY3VsYXRpbmcgaXQgbWFudWFsbHkKIC0gQWRkcyBkaXNhYmxlX3ZibGFu ayBoZWxwZXIgdGhhdCB0dXJucyBvZiBjcnRjCiAtIFNpbXBsaWZpZXMgaW1wbGVtZW50YXRpb24g YnkgdXNpbmcgZHJtX2NydGNfYXJtX3ZibGFua19ldmVudAogLSBSZXBsYWNlcyB0aGUgY29kZSBp biBhdG9taWNfYmVnaW4gdG8gYXRvbWljX2ZsdXNoCiAtIFJlbW92ZXMgdW5uZWNlc3NhcnkgZmll bGQgaW4gdmttc19vdXRwdXQKCkNoYW5nZXMgc2luY2UgVjM6CiBEYW5pZWwgVmV0dGVyOgogLSBT cXVhc2ggImRybS92a21zOiBBZGQgYXRvbWljIGhlbHBlcnMgZnVuY3Rpb25zIiBpbnRvIHRoZSBj b21taXQgdGhhdAogICBoYW5kbGluZyB2YmxhbmsgZXZlbnRzIHNpbXVsYXRlZCBieSBocnRpbWVy cwoKU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBTaXF1ZWlyYSA8cm9kcmlnb3NpcXVlaXJhbWVsb0Bn bWFpbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMgfCA5NSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19k cnYuYyAgfCAgOSArKysKIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmggIHwgMTUgKysr KysKIDMgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNf Y3J0Yy5jCmluZGV4IGJmNzZjZDM5ZWNlNy4uODc1ZmNhNjYyYWMwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92 a21zX2NydGMuYwpAQCAtMTAsNiArMTAsNjAgQEAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19o ZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+CiAKK3N0YXRpYyBlbnVt IGhydGltZXJfcmVzdGFydCB2a21zX3ZibGFua19zaW11bGF0ZShzdHJ1Y3QgaHJ0aW1lciAqdGlt ZXIpCit7CisJc3RydWN0IHZrbXNfb3V0cHV0ICpvdXRwdXQgPSBjb250YWluZXJfb2YodGltZXIs IHN0cnVjdCB2a21zX291dHB1dCwKKwkJCQkJCSAgdmJsYW5rX2hydGltZXIpOworCXN0cnVjdCBk cm1fY3J0YyAqY3J0YyA9ICZvdXRwdXQtPmNydGM7CisJaW50IHJldF9vdmVycnVuOworCWJvb2wg cmV0OworCisJcmV0ID0gZHJtX2NydGNfaGFuZGxlX3ZibGFuayhjcnRjKTsKKwlpZiAoIXJldCkK KwkJRFJNX0VSUk9SKCJ2a21zIGZhaWx1cmUgb24gaGFuZGxpbmcgdmJsYW5rIik7CisKKwlyZXRf b3ZlcnJ1biA9IGhydGltZXJfZm9yd2FyZF9ub3coJm91dHB1dC0+dmJsYW5rX2hydGltZXIsCisJ CQkJCSAgb3V0cHV0LT5wZXJpb2RfbnMpOworCisJcmV0dXJuIEhSVElNRVJfUkVTVEFSVDsKK30K Kworc3RhdGljIGludCB2a21zX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQor eworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CisJdW5zaWduZWQgaW50IHBp cGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTsKKwlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2Ymxh bmsgPSAmZGV2LT52YmxhbmtbcGlwZV07CisJc3RydWN0IHZrbXNfb3V0cHV0ICpvdXQgPSBkcm1f Y3J0Y190b192a21zX291dHB1dChjcnRjKTsKKworCWRybV9jYWxjX3RpbWVzdGFtcGluZ19jb25z dGFudHMoY3J0YywgJmNydGMtPm1vZGUpOworCisJaHJ0aW1lcl9pbml0KCZvdXQtPnZibGFua19o cnRpbWVyLCBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9SRUwpOworCW91dC0+dmJsYW5r X2hydGltZXIuZnVuY3Rpb24gPSAmdmttc192Ymxhbmtfc2ltdWxhdGU7CisJb3V0LT5wZXJpb2Rf bnMgPSBrdGltZV9zZXQoMCwgdmJsYW5rLT5mcmFtZWR1cl9ucyk7CisJaHJ0aW1lcl9zdGFydCgm b3V0LT52YmxhbmtfaHJ0aW1lciwgb3V0LT5wZXJpb2RfbnMsIEhSVElNRVJfTU9ERV9SRUwpOwor CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHZrbXNfZGlzYWJsZV92Ymxhbmsoc3RydWN0 IGRybV9jcnRjICpjcnRjKQoreworCXN0cnVjdCB2a21zX291dHB1dCAqb3V0ID0gZHJtX2NydGNf dG9fdmttc19vdXRwdXQoY3J0Yyk7CisKKwlocnRpbWVyX2NhbmNlbCgmb3V0LT52YmxhbmtfaHJ0 aW1lcik7Cit9CisKK2Jvb2wgdmttc19nZXRfdmJsYW5rX3RpbWVzdGFtcChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKKwkJCSAgICAgICBpbnQgKm1heF9lcnJvciwg a3RpbWVfdCAqdmJsYW5rX3RpbWUsCisJCQkgICAgICAgYm9vbCBpbl92YmxhbmtfaXJxKQorewor CXN0cnVjdCB2a21zX2RldmljZSAqdmttc2RldiA9IGRybV9kZXZpY2VfdG9fdmttc19kZXZpY2Uo ZGV2KTsKKwlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dHB1dCA9ICZ2a21zZGV2LT5vdXRwdXQ7CisK KwkqdmJsYW5rX3RpbWUgPSBvdXRwdXQtPnZibGFua19ocnRpbWVyLm5vZGUuZXhwaXJlczsKKwor CXJldHVybiB0cnVlOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHZr bXNfY3J0Y19mdW5jcyA9IHsKIAkuc2V0X2NvbmZpZyAgICAgICAgICAgICA9IGRybV9hdG9taWNf aGVscGVyX3NldF9jb25maWcsCiAJLmRlc3Ryb3kgICAgICAgICAgICAgICAgPSBkcm1fY3J0Y19j bGVhbnVwLApAQCAtMTcsNiArNzEsNDUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19m dW5jcyB2a21zX2NydGNfZnVuY3MgPSB7CiAJLnJlc2V0ICAgICAgICAgICAgICAgICAgPSBkcm1f YXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0LAogCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJt X2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUsCiAJLmF0b21pY19kZXN0cm95X3N0 YXRlICAgPSBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUsCisJLmVuYWJsZV92 YmxhbmsJCT0gdmttc19lbmFibGVfdmJsYW5rLAorCS5kaXNhYmxlX3ZibGFuawkJPSB2a21zX2Rp c2FibGVfdmJsYW5rLAorfTsKKworc3RhdGljIHZvaWQgdmttc19jcnRjX2F0b21pY19lbmFibGUo c3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9s ZF9zdGF0ZSkKK3sKKwlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7Cit9CisKK3N0YXRpYyB2b2lk IHZrbXNfY3J0Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJICAg ICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSkKK3sKKwlkcm1fY3J0Y192Ymxhbmtf b2ZmKGNydGMpOworfQorCitzdGF0aWMgdm9pZCB2a21zX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRj X3N0YXRlKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlpZiAoY3J0Yy0+c3RhdGUtPmV2 ZW50KSB7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2ssIGZsYWdz KTsKKworCQlpZiAoZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKSAhPSAwKQorCQkJZHJtX2NydGNf c2VuZF92YmxhbmtfZXZlbnQoY3J0YywgY3J0Yy0+c3RhdGUtPmV2ZW50KTsKKwkJZWxzZQorCQkJ ZHJtX2NydGNfYXJtX3ZibGFua19ldmVudChjcnRjLCBjcnRjLT5zdGF0ZS0+ZXZlbnQpOworCisJ CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNydGMtPmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwor CisJCWNydGMtPnN0YXRlLT5ldmVudCA9IE5VTEw7CisJfQorfQorCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyB2a21zX2NydGNfaGVscGVyX2Z1bmNzID0geworCS5h dG9taWNfZmx1c2gJPSB2a21zX2NydGNfYXRvbWljX2ZsdXNoLAorCS5hdG9taWNfZW5hYmxlCT0g dmttc19jcnRjX2F0b21pY19lbmFibGUsCisJLmF0b21pY19kaXNhYmxlCT0gdmttc19jcnRjX2F0 b21pY19kaXNhYmxlLAogfTsKIAogaW50IHZrbXNfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKQEAgLTMxLDUgKzEyNCw3IEBAIGludCB2a21z X2NydGNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CiAJCXJldHVybiByZXQ7CiAJfQogCisJZHJtX2NydGNfaGVscGVyX2FkZChjcnRjLCAmdmttc19j cnRjX2hlbHBlcl9mdW5jcyk7CisKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2 LmMKaW5kZXggMDU1N2QxZDhhYTViLi4zN2FhMmVmMzNiMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19k cnYuYwpAQCAtNTYsNiArNTYsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgdmttc19kcml2 ZXIgPSB7CiAJLmR1bWJfbWFwX29mZnNldAk9IHZrbXNfZHVtYl9tYXAsCiAJLmdlbV92bV9vcHMJ CT0gJnZrbXNfZ2VtX3ZtX29wcywKIAkuZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkID0gdmttc19n ZW1fZnJlZV9vYmplY3QsCisJLmdldF92YmxhbmtfdGltZXN0YW1wCT0gdmttc19nZXRfdmJsYW5r X3RpbWVzdGFtcCwKIAogCS5uYW1lCQkJPSBEUklWRVJfTkFNRSwKIAkuZGVzYwkJCT0gRFJJVkVS X0RFU0MsCkBAIC0xMDMsNiArMTA0LDE0IEBAIHN0YXRpYyBpbnQgX19pbml0IHZrbXNfaW5pdCh2 b2lkKQogCQlnb3RvIG91dF9maW5pOwogCX0KIAorCXZrbXNfZGV2aWNlLT5kcm0uaXJxX2VuYWJs ZWQgPSB0cnVlOworCisJcmV0ID0gZHJtX3ZibGFua19pbml0KCZ2a21zX2RldmljZS0+ZHJtLCAx KTsKKwlpZiAocmV0KSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIHZibGFua1xuIik7CisJCWdv dG8gb3V0X2Zpbmk7CisJfQorCiAJcmV0ID0gdmttc19tb2Rlc2V0X2luaXQodmttc19kZXZpY2Up OwogCWlmIChyZXQpCiAJCWdvdG8gb3V0X3VucmVnaXN0ZXI7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdmttcy92a21zX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYu aAppbmRleCA1N2Q3MzY3ZmQ4MTQuLjA3YmUyOWYyZGM0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Ry di5oCkBAIC01LDYgKzUsNyBAQAogI2luY2x1ZGUgPGRybS9kcm0uaD4KICNpbmNsdWRlIDxkcm0v ZHJtX2dlbS5oPgogI2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgorI2luY2x1ZGUgPGxpbnV4 L2hydGltZXIuaD4KIAogI2RlZmluZSBYUkVTX01JTiAgICAzMgogI2RlZmluZSBZUkVTX01JTiAg ICAzMgpAQCAtMjMsNiArMjQsOSBAQCBzdHJ1Y3Qgdmttc19vdXRwdXQgewogCXN0cnVjdCBkcm1f Y3J0YyBjcnRjOwogCXN0cnVjdCBkcm1fZW5jb2RlciBlbmNvZGVyOwogCXN0cnVjdCBkcm1fY29u bmVjdG9yIGNvbm5lY3RvcjsKKwlzdHJ1Y3QgaHJ0aW1lciB2YmxhbmtfaHJ0aW1lcjsKKwlrdGlt ZV90IHBlcmlvZF9uczsKKwlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsK IH07CiAKIHN0cnVjdCB2a21zX2RldmljZSB7CkBAIC0zNyw5ICs0MSwyMCBAQCBzdHJ1Y3Qgdmtt c19nZW1fb2JqZWN0IHsKIAlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOwogfTsKIAorI2RlZmluZSBkcm1f Y3J0Y190b192a21zX291dHB1dCh0YXJnZXQpIFwKKwljb250YWluZXJfb2YodGFyZ2V0LCBzdHJ1 Y3Qgdmttc19vdXRwdXQsIGNydGMpCisKKyNkZWZpbmUgZHJtX2RldmljZV90b192a21zX2Rldmlj ZSh0YXJnZXQpIFwKKwljb250YWluZXJfb2YodGFyZ2V0LCBzdHJ1Y3Qgdmttc19kZXZpY2UsIGRy bSkKKworLyogQ1JUQyAqLwogaW50IHZrbXNfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJICAgc3RydWN0IGRybV9wbGFuZSAqcHJpbWFy eSwgc3RydWN0IGRybV9wbGFuZSAqY3Vyc29yKTsKIAorYm9vbCB2a21zX2dldF92YmxhbmtfdGlt ZXN0YW1wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAorCQkJICAg ICAgIGludCAqbWF4X2Vycm9yLCBrdGltZV90ICp2YmxhbmtfdGltZSwKKwkJCSAgICAgICBib29s IGluX3ZibGFua19pcnEpOworCiBpbnQgdmttc19vdXRwdXRfaW5pdChzdHJ1Y3Qgdmttc19kZXZp Y2UgKnZrbXNkZXYpOwogCiBzdHJ1Y3QgZHJtX3BsYW5lICp2a21zX3BsYW5lX2luaXQoc3RydWN0 IHZrbXNfZGV2aWNlICp2a21zZGV2KTsKLS0gCjIuMTguMAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==