From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: [PATCH] drm/msm/mdp5: high precision vblank timestamp support Date: Mon, 26 Oct 2015 15:24:09 +0530 Message-ID: <1445853249-7245-1-git-send-email-architt@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: robdclark@gmail.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org TURQNSBoYXMgbGluZSBjb3VudCBhbmQgZnJhbWUgY291bnQgcmVnaXN0ZXJzIGZvciBlYWNoIGlu dGVyZmFjZS4gRW5hYmxlCnRoZXNlIGNvdW50ZXJzIGFuZCB1c2UgdGhlbSB0byBpbXBsZW1lbnQg dGhlIGdldF92YmxhbmtfdGltZXN0YW1wIGRybQpkcml2ZXIgb3AuCgpUaGUgbGluZSBjb3VudGVy IHN0YXJ0cyB3aXRoIHRoZSB2YWx1ZSAxIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIFZTWU5DCnB1 bHNlIGFuZCBlbmRzIHdpdGggdmFsdWUgVlRPVEFMIGF0IHRoZSBlbmQgb2YgVkZQLiBUaGlzIHZh bHVlIGlzIHVzZWQKdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UncmUgaW4gYmxhbmtpbmcgcGVyaW9k IG9yIG5vdCwgYW5kIGFuIGFkanVzdGVkCnZhbHVlIG9mIHRoaXMgY291bnRlciBpcyB1c2VkIHRv IGdldCB2cG9zIGFzIGV4cGVjdGVkIGJ5CmdldF9zY2Fub3V0X3Bvc2l0aW9uLiBTaW5jZSB0aGVy ZSBpcyBubyB3YXkgdG8gY2FsY3VsYXRlIGhwb3MsIHdlIGFsd2F5cwpzZXQgaXQgdG8gMC4KClNp Z25lZC1vZmYtYnk6IEFyY2hpdCBUYW5lamEgPGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2VuY29kZXIuYyB8ICAxOCArKysrCiBk cml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmMgICAgIHwgMTI5ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9r bXMuaCAgICAgfCAgIDIgKwogMyBmaWxlcyBjaGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9lbmNvZGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfZW5jb2Rlci5jCmluZGV4IGM5ZTMyYjAu LmEwMTk2NTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9l bmNvZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2VuY29kZXIu YwpAQCAtMjkzLDYgKzI5MywyNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2hl bHBlcl9mdW5jcyBtZHA1X2VuY29kZXJfaGVscGVyX2Z1bmNzID0gewogCS5lbmFibGUgPSBtZHA1 X2VuY29kZXJfZW5hYmxlLAogfTsKIAoraW50IG1kcDVfZW5jb2Rlcl9nZXRfbGluZWNvdW50KHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgbWRwNV9lbmNvZGVyICptZHA1 X2VuY29kZXIgPSB0b19tZHA1X2VuY29kZXIoZW5jb2Rlcik7CisJc3RydWN0IG1kcDVfa21zICpt ZHA1X2ttcyA9IGdldF9rbXMoZW5jb2Rlcik7CisJaW50IGludGYgPSBtZHA1X2VuY29kZXItPmlu dGYubnVtOworCisJcmV0dXJuIG1kcDVfcmVhZChtZHA1X2ttcywgUkVHX01EUDVfSU5URl9MSU5F X0NPVU5UKGludGYpKTsKK30KKwordTMyIG1kcDVfZW5jb2Rlcl9nZXRfZnJhbWVjb3VudChzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCit7CisJc3RydWN0IG1kcDVfZW5jb2RlciAqbWRwNV9l bmNvZGVyID0gdG9fbWRwNV9lbmNvZGVyKGVuY29kZXIpOworCXN0cnVjdCBtZHA1X2ttcyAqbWRw NV9rbXMgPSBnZXRfa21zKGVuY29kZXIpOworCWludCBpbnRmID0gbWRwNV9lbmNvZGVyLT5pbnRm Lm51bTsKKworCXJldHVybiBtZHA1X3JlYWQobWRwNV9rbXMsIFJFR19NRFA1X0lOVEZfRlJBTUVf Q09VTlQoaW50ZikpOworfQorCiBpbnQgbWRwNV9lbmNvZGVyX3NldF9zcGxpdF9kaXNwbGF5KHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJCQkJc3RydWN0IGRybV9lbmNvZGVyICpzbGF2 ZV9lbmNvZGVyKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9t ZHA1X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5jCmluZGV4 IGI1MzJmYWEuLmUxMTUzMTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21k cDUvbWRwNV9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21z LmMKQEAgLTQ2OCw2ICs0NjgsMTI3IEBAIHN0YXRpYyBpbnQgZ2V0X2NsayhzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2LCBzdHJ1Y3QgY2xrICoqY2xrcCwKIAlyZXR1cm4gMDsKIH0KIAorc3Rh dGljIHN0cnVjdCBkcm1fZW5jb2RlciAqZ2V0X2VuY29kZXJfZnJvbV9jcnRjKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OworCXN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKKworCWRybV9mb3JfZWFjaF9lbmNvZGVyKGVuY29k ZXIsIGRldikKKwkJaWYgKGVuY29kZXItPmNydGMgPT0gY3J0YykKKwkJCXJldHVybiBlbmNvZGVy OworCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBpbnQgbWRwNV9nZXRfc2Nhbm91dHBvcyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKKwkJCSAgICAgICB1bnNp Z25lZCBpbnQgZmxhZ3MsIGludCAqdnBvcywgaW50ICpocG9zLAorCQkJICAgICAgIGt0aW1lX3Qg KnN0aW1lLCBrdGltZV90ICpldGltZSwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSkKK3sKKwlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyOworCWludCBsaW5lLCB2c3csIHZicCwgdmFjdGl2ZV9zdGFydCwgdmFjdGl2ZV9l bmQsIHZmcF9lbmQ7CisJaW50IHJldCA9IDA7CisKKwljcnRjID0gcHJpdi0+Y3J0Y3NbcGlwZV07 CisJaWYgKCFjcnRjKSB7CisJCURSTV9FUlJPUigiSW52YWxpZCBjcnRjICVkXG4iLCBwaXBlKTsK KwkJcmV0dXJuIDA7CisJfQorCisJZW5jb2RlciA9IGdldF9lbmNvZGVyX2Zyb21fY3J0YyhjcnRj KTsKKwlpZiAoIWVuY29kZXIpIHsKKwkJRFJNX0VSUk9SKCJubyBlbmNvZGVyIGZvdW5kIGZvciBj cnRjICVkXG4iLCBwaXBlKTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmV0IHw9IERSTV9TQ0FOT1VU UE9TX1ZBTElEIHwgRFJNX1NDQU5PVVRQT1NfQUNDVVJBVEU7CisKKwl2c3cgPSBtb2RlLT5jcnRj X3ZzeW5jX2VuZCAtIG1vZGUtPmNydGNfdnN5bmNfc3RhcnQ7CisJdmJwID0gbW9kZS0+Y3J0Y192 dG90YWwgLSBtb2RlLT5jcnRjX3ZzeW5jX2VuZDsKKworCS8qCisJICogdGhlIGxpbmUgY291bnRl ciBpcyAxIGF0IHRoZSBzdGFydCBvZiB0aGUgVlNZTkMgcHVsc2UgYW5kIFZUT1RBTCBhdAorCSAq IHRoZSBlbmQgb2YgVkZQLiBUcmFuc2xhdGUgdGhlIHBvcmNoIHZhbHVlcyByZWxhdGl2ZSB0byB0 aGUgbGluZQorCSAqIGNvdW50ZXIgcG9zaXRpb25zLgorCSAqLworCisJdmFjdGl2ZV9zdGFydCA9 IHZzdyArIHZicCArIDE7CisKKwl2YWN0aXZlX2VuZCA9IHZhY3RpdmVfc3RhcnQgKyBtb2RlLT5j cnRjX3ZkaXNwbGF5OworCisJLyogbGFzdCBzY2FuIGxpbmUgYmVmb3JlIFZTWU5DICovCisJdmZw X2VuZCA9IG1vZGUtPmNydGNfdnRvdGFsOworCisJaWYgKHN0aW1lKQorCQkqc3RpbWUgPSBrdGlt ZV9nZXQoKTsKKworCWxpbmUgPSBtZHA1X2VuY29kZXJfZ2V0X2xpbmVjb3VudChlbmNvZGVyKTsK KworCWlmIChsaW5lIDwgdmFjdGl2ZV9zdGFydCkgeworCQlsaW5lIC09IHZhY3RpdmVfc3RhcnQ7 CisJCXJldCB8PSBEUk1fU0NBTk9VVFBPU19JTl9WQkxBTks7CisJfSBlbHNlIGlmIChsaW5lID4g dmFjdGl2ZV9lbmQpIHsKKwkJbGluZSA9IGxpbmUgLSB2ZnBfZW5kIC0gdmFjdGl2ZV9zdGFydDsK KwkJcmV0IHw9IERSTV9TQ0FOT1VUUE9TX0lOX1ZCTEFOSzsKKwl9IGVsc2UgeworCQlsaW5lIC09 IHZhY3RpdmVfc3RhcnQ7CisJfQorCisJKnZwb3MgPSBsaW5lOworCSpocG9zID0gMDsKKworCWlm IChldGltZSkKKwkJKmV0aW1lID0ga3RpbWVfZ2V0KCk7CisKKwlyZXR1cm4gcmV0OworfQorCitz dGF0aWMgaW50IG1kcDVfZ2V0X3ZibGFua190aW1lc3RhbXAoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdW5zaWduZWQgaW50IHBpcGUsCisJCQkJICAgICBpbnQgKm1heF9lcnJvciwKKwkJCQkgICAg IHN0cnVjdCB0aW1ldmFsICp2YmxhbmtfdGltZSwKKwkJCQkgICAgIHVuc2lnbmVkIGZsYWdzKQor eworCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YzsKKworCWlmIChwaXBlIDwgMCB8fCBwaXBlID49IHByaXYtPm51 bV9jcnRjcykgeworCQlEUk1fRVJST1IoIkludmFsaWQgY3J0YyAlZFxuIiwgcGlwZSk7CisJCXJl dHVybiAtRUlOVkFMOworCX0KKworCWNydGMgPSBwcml2LT5jcnRjc1twaXBlXTsKKwlpZiAoIWNy dGMpIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGNydGMgJWRcbiIsIHBpcGUpOworCQlyZXR1cm4g LUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gZHJtX2NhbGNfdmJsdGltZXN0YW1wX2Zyb21fc2Nhbm91 dHBvcyhkZXYsIHBpcGUsIG1heF9lcnJvciwKKwkJCQkJCSAgICAgdmJsYW5rX3RpbWUsIGZsYWdz LAorCQkJCQkJICAgICAmY3J0Yy0+bW9kZSk7Cit9CisKK3N0YXRpYyB1MzIgbWRwNV9nZXRfdmJs YW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCit7 CisJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3Ry dWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKKworCWlm IChwaXBlIDwgMCB8fCBwaXBlID49IHByaXYtPm51bV9jcnRjcykKKwkJcmV0dXJuIDA7CisKKwlj cnRjID0gcHJpdi0+Y3J0Y3NbcGlwZV07CisJaWYgKCFjcnRjKQorCQlyZXR1cm4gMDsKKworCWVu Y29kZXIgPSBnZXRfZW5jb2Rlcl9mcm9tX2NydGMoY3J0Yyk7CisJaWYgKCFlbmNvZGVyKQorCQly ZXR1cm4gMDsKKworCXJldHVybiBtZHA1X2VuY29kZXJfZ2V0X2ZyYW1lY291bnQoZW5jb2Rlcik7 Cit9CisKIHN0cnVjdCBtc21fa21zICptZHA1X2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiB7CiAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IGRldi0+cGxhdGZvcm1kZXY7 CkBAIC01OTAsNiArNzExLDggQEAgc3RydWN0IG1zbV9rbXMgKm1kcDVfa21zX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkJCQkhY29uZmlnLT5ody0+aW50Zi5iYXNlW2ldKQogCQkJY29u dGludWU7CiAJCW1kcDVfd3JpdGUobWRwNV9rbXMsIFJFR19NRFA1X0lOVEZfVElNSU5HX0VOR0lO RV9FTihpKSwgMCk7CisKKwkJbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfSU5URl9GUkFN RV9MSU5FX0NPVU5UX0VOKGkpLCAweDMpOwogCX0KIAltZHA1X2Rpc2FibGUobWRwNV9rbXMpOwog CW1kZWxheSgxNik7CkBAIC02MzUsNiArNzU4LDEyIEBAIHN0cnVjdCBtc21fa21zICptZHA1X2tt c19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZGV2LT5tb2RlX2NvbmZpZy5tYXhfd2lk dGggPSBjb25maWctPmh3LT5sbS5tYXhfd2lkdGg7CiAJZGV2LT5tb2RlX2NvbmZpZy5tYXhfaGVp Z2h0ID0gY29uZmlnLT5ody0+bG0ubWF4X2hlaWdodDsKIAorCWRldi0+ZHJpdmVyLT5nZXRfdmJs YW5rX3RpbWVzdGFtcCA9IG1kcDVfZ2V0X3ZibGFua190aW1lc3RhbXA7CisJZGV2LT5kcml2ZXIt PmdldF9zY2Fub3V0X3Bvc2l0aW9uID0gbWRwNV9nZXRfc2Nhbm91dHBvczsKKwlkZXYtPmRyaXZl ci0+Z2V0X3ZibGFua19jb3VudGVyID0gbWRwNV9nZXRfdmJsYW5rX2NvdW50ZXI7CisJZGV2LT5t YXhfdmJsYW5rX2NvdW50ID0gMHhmZmZmZmZmZjsKKwlkZXYtPnZibGFua19kaXNhYmxlX2ltbWVk aWF0ZSA9IHRydWU7CisKIAlyZXR1cm4ga21zOwogCiBmYWlsOgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9t ZHAvbWRwNS9tZHA1X2ttcy5oCmluZGV4IDg0ZjY1ZDQuLjAwNzMwYmEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmgKQEAgLTIyMiw2ICsyMjIsOCBAQCBzdHJ1Y3QgZHJt X2VuY29kZXIgKm1kcDVfZW5jb2Rlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXN0 cnVjdCBtZHA1X2ludGVyZmFjZSAqaW50Ziwgc3RydWN0IG1kcDVfY3RsICpjdGwpOwogaW50IG1k cDVfZW5jb2Rlcl9zZXRfc3BsaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIs CiAJCQkJCXN0cnVjdCBkcm1fZW5jb2RlciAqc2xhdmVfZW5jb2Rlcik7CitpbnQgbWRwNV9lbmNv ZGVyX2dldF9saW5lY291bnQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKK3UzMiBtZHA1 X2VuY29kZXJfZ2V0X2ZyYW1lY291bnQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKIAog I2lmZGVmIENPTkZJR19EUk1fTVNNX0RTSQogc3RydWN0IGRybV9lbmNvZGVyICptZHA1X2NtZF9l bmNvZGVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLS0gClRoZSBRdWFsY29tbSBJbm5v dmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0s Cmhvc3RlZCBieSBUaGUgTGludXggRm91bmRhdGlvbgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK