From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mario Kleiner Subject: [PATCH 4/4] drm/intel: Push get_scanout_position() timestamping into kms driver. Date: Wed, 30 Oct 2013 05:13:08 +0100 Message-ID: <1383106388-32481-5-git-send-email-mario.kleiner.de@gmail.com> References: <1383106388-32481-1-git-send-email-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: <1383106388-32481-1-git-send-email-mario.kleiner.de@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org To: airlied@gmail.com Cc: intel-gfx@lists.freedesktop.org, mario.kleiner@tuebingen.mpg.de, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org TW92ZSB0aGUga3RpbWVfZ2V0KCkgY2xvY2sgcmVhZG91dHMgYW5kIHBvdGVudGlhbCBwcmVlbXB0 X2Rpc2FibGUoKQpjYWxscyBmcm9tIGRybSBjb3JlIGludG8ga21zIGRyaXZlciB0byBtYWtlIGl0 IGNvbXBhdGlibGUgd2l0aCB0aGUKYXBpIGNoYW5nZXMgaW4gdGhlIGRybSBjb3JlLgoKVGhlIGlu dGVsLWttcyBkcml2ZXIgbmVlZHMgdG8gdGFrZSB0aGUgdW5jb3JlLmxvY2sgaW5zaWRlCmk5MTVf Z2V0X2NydGNfc2Nhbm91dHBvcygpIGFuZCBpbnRlbF9waXBlX2luX3ZibGFuaygpLgpUaGlzIGlz IGluY29tcGF0aWJsZSB3aXRoIHRoZSBwcmVlbXB0X2Rpc2FibGUoKSBvbiBhClBSRUVNUFRfUlQg cGF0Y2hlZCBrZXJuZWwsIGFzIHJlZ3VsYXIgc3BpbiBsb2NrcyBtdXN0IG5vdApiZSB0YWtlbiB3 aXRoaW4gYSBwcmVlbXB0X2Rpc2FibGUnZCBzZWN0aW9uLiBMb2NrIGNvbnRlbnRpb24Kb24gdGhl IHVuY29yZS5sb2NrIGFsc28gaW50cm9kdWNlZCB0b28gbXVjaCB1bmNlcnRhaW50eSBpbiB2Ymxh bmsKdGltZXN0YW1wcy4KClB1c2ggdGhlIGt0aW1lX2dldCgpIHRpbWVzdGFtcGluZyBmb3Igc2Nh bm91dHBvcyBxdWVyaWVzIGFuZApwb3RlbnRpYWwgcHJlZW1wdF9kaXNhYmxlX3J0KCkgaW50byBp OTE1X2dldF9jcnRjX3NjYW5vdXRwb3MoKSwKc28gdGhlc2UgcHJvYmxlbXMgY2FuIGJlIGF2b2lk ZWQ6CgoxLiBGaXJzdCBsb2NrIHRoZSB1bmNvcmUubG9jayAobWlnaHQgc2xlZXAgb24gYSBQUkVF TVBUX1JUIGtlcm5lbCkuCjIuIHByZWVtcHRfZGlzYWJsZV9ydCgpICh3aWxsIGJlIGFkZGVkIGJ5 IHRoZSBydC1saW51eCBmb2xrcykuCjMuIGt0aW1lX2dldCgpIGEgdGltZXN0YW1wIGJlZm9yZSBz Y2Fub3V0IHBvcyBxdWVyeS4KNC4gRG8gYWxsIG1taW8gcmVhZHMgYXMgZmFzdCBhcyBwb3NzaWJs ZSB3aXRob3V0IGdyYWJiaW5nIGFueSBuZXcgbG9ja3MhCjUuIGt0aW1lX2dldCgpIGEgcG9zdC1x dWVyeSB0aW1lc3RhbXAuCjYuIHByZWVtcHRfZW5hYmxlX3J0KCkKNy4gVW5sb2NrIHRoZSB1bmNv cmUubG9jay4KClRoaXMgcmVkdWNlcyB0aW1lc3RhbXAgdW5jZXJ0YWludHkgb24gYSBsb3ctZW5k IEhQIEF0b20gTWluaSBuZXRib29rCndpdGggSW50ZWwgR01BLTk1MCBuaWNlbHk6CgpCZWZvcmU6 IDMtOCB1c2VjcyB3aXRoIHNwaWtlcyA+IDIwIHVzZWNzLCB0cmlnZ2VyaW5nIHF1ZXJ5IHJldHJp ZXMuCkFmdGVyIDogVHlwaWNhbGx5IDEgdXNlYyAoOTglIG9mIGFsbCBzYW1wbGVzKSwgb2NjYXNz aW9uYWxseSAyIHVzZWNzCiAgICAgICAgKDIlIG9mIGFsbCBzYW1wbGVzKSwgd2l0aCBtYXhpbXVt IG9mIDMgdXNlY3MgKGEgaGFuZGZ1bCkuCgp2MjogRml4IGZvcm1hdHRpbmcgb2YgbmV3IG11bHRp LWxpbmUgY29kZSBjb21tZW50cy4KClNpZ25lZC1vZmYtYnk6IE1hcmlvIEtsZWluZXIgPG1hcmlv LmtsZWluZXIuZGVAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEFsZXggRGV1Y2hlciA8YWxl eGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jIHwgICA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYwppbmRleCAxNTZhMWE0Li43Y2FmZTY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKQEAgLTU5OSwzNSArNTk5LDQwIEBAIHN0YXRpYyB1MzIgZ200NV9nZXRfdmJsYW5rX2NvdW50 ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCiAJcmV0dXJuIEk5MTVfUkVBRChy ZWcpOwogfQogCi1zdGF0aWMgYm9vbCBpbnRlbF9waXBlX2luX3ZibGFuayhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKKy8qIHJhdyByZWFkcywgb25seSBmb3IgZmFzdCBy ZWFkcyBvZiBkaXNwbGF5IGJsb2NrLCBubyBuZWVkIGZvciBmb3JjZXdha2UgZXRjLiAqLworI2Rl ZmluZSBfX3Jhd19pOTE1X3JlYWQzMihkZXZfcHJpdl9fLCByZWdfXykgcmVhZGwoKGRldl9wcml2 X18pLT5yZWdzICsgKHJlZ19fKSkKKyNkZWZpbmUgX19yYXdfaTkxNV9yZWFkMTYoZGV2X3ByaXZf XywgcmVnX18pIHJlYWR3KChkZXZfcHJpdl9fKS0+cmVncyArIChyZWdfXykpCisKK3N0YXRpYyBi b29sIGludGVsX3BpcGVfaW5fdmJsYW5rX2xvY2tlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBl bnVtIHBpcGUgcGlwZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwogCXVpbnQzMl90IHN0YXR1czsKKwlpbnQgcmVnOwogCiAJaWYgKElT X1ZBTExFWVZJRVcoZGV2KSkgewogCQlzdGF0dXMgPSBwaXBlID09IFBJUEVfQSA/CiAJCQlJOTE1 X0RJU1BMQVlfUElQRV9BX1ZCTEFOS19JTlRFUlJVUFQgOgogCQkJSTkxNV9ESVNQTEFZX1BJUEVf Ql9WQkxBTktfSU5URVJSVVBUOwogCi0JCXJldHVybiBJOTE1X1JFQUQoVkxWX0lTUikgJiBzdGF0 dXM7CisJCXJlZyA9IFZMVl9JU1I7CiAJfSBlbHNlIGlmIChJU19HRU4yKGRldikpIHsKIAkJc3Rh dHVzID0gcGlwZSA9PSBQSVBFX0EgPwogCQkJSTkxNV9ESVNQTEFZX1BJUEVfQV9WQkxBTktfSU5U RVJSVVBUIDoKIAkJCUk5MTVfRElTUExBWV9QSVBFX0JfVkJMQU5LX0lOVEVSUlVQVDsKIAotCQly ZXR1cm4gSTkxNV9SRUFEMTYoSVNSKSAmIHN0YXR1czsKKwkJcmVnID0gSVNSOwogCX0gZWxzZSBp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA1KSB7CiAJCXN0YXR1cyA9IHBpcGUgPT0gUElQRV9B ID8KIAkJCUk5MTVfRElTUExBWV9QSVBFX0FfVkJMQU5LX0lOVEVSUlVQVCA6CiAJCQlJOTE1X0RJ U1BMQVlfUElQRV9CX1ZCTEFOS19JTlRFUlJVUFQ7CiAKLQkJcmV0dXJuIEk5MTVfUkVBRChJU1Ip ICYgc3RhdHVzOworCQlyZWcgPSBJU1I7CiAJfSBlbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdl biA8IDcpIHsKIAkJc3RhdHVzID0gcGlwZSA9PSBQSVBFX0EgPwogCQkJREVfUElQRUFfVkJMQU5L IDoKIAkJCURFX1BJUEVCX1ZCTEFOSzsKIAotCQlyZXR1cm4gSTkxNV9SRUFEKERFSVNSKSAmIHN0 YXR1czsKKwkJcmVnID0gREVJU1I7CiAJfSBlbHNlIHsKIAkJc3dpdGNoIChwaXBlKSB7CiAJCWRl ZmF1bHQ6CkBAIC02NDIsMTIgKzY0NywxNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9waXBlX2luX3Zi bGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKIAkJCWJyZWFrOwog CQl9CiAKLQkJcmV0dXJuIEk5MTVfUkVBRChERUlTUikgJiBzdGF0dXM7CisJCXJlZyA9IERFSVNS OwogCX0KKworCWlmIChJU19HRU4yKGRldikpCisJCXJldHVybiBfX3Jhd19pOTE1X3JlYWQxNihk ZXZfcHJpdiwgcmVnKSAmIHN0YXR1czsKKwllbHNlCisJCXJldHVybiBfX3Jhd19pOTE1X3JlYWQz MihkZXZfcHJpdiwgcmVnKSAmIHN0YXR1czsKIH0KIAogc3RhdGljIGludCBpOTE1X2dldF9jcnRj X3NjYW5vdXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUsCi0JCQkgICAgIGlu dCAqdnBvcywgaW50ICpocG9zKQorCQkJICAgICBpbnQgKnZwb3MsIGludCAqaHBvcywga3RpbWVf dCAqc3RpbWUsIGt0aW1lX3QgKmV0aW1lKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gZGV2 X3ByaXYtPnBpcGVfdG9fY3J0Y19tYXBwaW5nW3BpcGVdOwpAQCAtNjU3LDYgKzY2Nyw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBwaXBlLAogCWludCB2Ymxfc3RhcnQsIHZibF9lbmQsIGh0b3RhbCwgdnRvdGFsOwogCWJv b2wgaW5fdmJsID0gdHJ1ZTsKIAlpbnQgcmV0ID0gMDsKKwl1bnNpZ25lZCBsb25nIGlycWZsYWdz OwogCiAJaWYgKCFpbnRlbF9jcnRjLT5hY3RpdmUpIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigidHJ5 aW5nIHRvIGdldCBzY2Fub3V0cG9zIGZvciBkaXNhYmxlZCAiCkBAIC02NzEsMTQgKzY4MiwyNyBA QCBzdGF0aWMgaW50IGk5MTVfZ2V0X2NydGNfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgcGlwZSwKIAogCXJldCB8PSBEUk1fU0NBTk9VVFBPU19WQUxJRCB8IERSTV9TQ0FO T1VUUE9TX0FDQ1VSQVRFOwogCisJLyoKKwkgKiBMb2NrIHVuY29yZS5sb2NrLCBhcyB3ZSB3aWxs IGRvIG11bHRpcGxlIHRpbWluZyBjcml0aWNhbCByYXcKKwkgKiByZWdpc3RlciByZWFkcywgcG90 ZW50aWFsbHkgd2l0aCBwcmVlbXB0aW9uIGRpc2FibGVkLCBzbyB0aGUKKwkgKiBmb2xsb3dpbmcg Y29kZSBtdXN0IG5vdCBibG9jayBvbiB1bmNvcmUubG9jay4KKwkgKi8KKwlzcGluX2xvY2tfaXJx c2F2ZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFmbGFncyk7CisJCisJLyogcHJlZW1wdF9k aXNhYmxlX3J0KCkgc2hvdWxkIGdvIHJpZ2h0IGhlcmUgaW4gUFJFRU1QVF9SVCBwYXRjaHNldC4g Ki8KKworCS8qIEdldCBvcHRpb25hbCBzeXN0ZW0gdGltZXN0YW1wIGJlZm9yZSBxdWVyeS4gKi8K KwlpZiAoc3RpbWUpCisJCSpzdGltZSA9IGt0aW1lX2dldCgpOworCiAJaWYgKElTX0dFTjIoZGV2 KSB8fCBJU19HNFgoZGV2KSB8fCBJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA1KSB7CiAJCS8qIE5v IG9idmlvdXMgcGl4ZWxjb3VudCByZWdpc3Rlci4gT25seSBxdWVyeSB2ZXJ0aWNhbAogCQkgKiBz Y2Fub3V0IHBvc2l0aW9uIGZyb20gRGlzcGxheSBzY2FuIGxpbmUgcmVnaXN0ZXIuCiAJCSAqLwog CQlpZiAoSVNfR0VOMihkZXYpKQotCQkJcG9zaXRpb24gPSBJOTE1X1JFQUQoUElQRURTTChwaXBl KSkgJiBEU0xfTElORU1BU0tfR0VOMjsKKwkJCXBvc2l0aW9uID0gX19yYXdfaTkxNV9yZWFkMzIo ZGV2X3ByaXYsIFBJUEVEU0wocGlwZSkpICYgRFNMX0xJTkVNQVNLX0dFTjI7CiAJCWVsc2UKLQkJ CXBvc2l0aW9uID0gSTkxNV9SRUFEKFBJUEVEU0wocGlwZSkpICYgRFNMX0xJTkVNQVNLX0dFTjM7 CisJCQlwb3NpdGlvbiA9IF9fcmF3X2k5MTVfcmVhZDMyKGRldl9wcml2LCBQSVBFRFNMKHBpcGUp KSAmIERTTF9MSU5FTUFTS19HRU4zOwogCiAJCS8qCiAJCSAqIFRoZSBzY2FubGluZSBjb3VudGVy IGluY3JlbWVudHMgYXQgdGhlIGxlYWRpbmcgZWRnZQpAQCAtNjg3LDcgKzcxMSw3IEBAIHN0YXRp YyBpbnQgaTkxNV9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGlu dCBwaXBlLAogCQkgKiB0byBnZXQgYSBtb3JlIGFjY3VyYXRlIHBpY3R1cmUgd2hldGhlciB3ZSdy ZSBpbiB2YmxhbmsKIAkJICogb3Igbm90LgogCQkgKi8KLQkJaW5fdmJsID0gaW50ZWxfcGlwZV9p bl92YmxhbmsoZGV2LCBwaXBlKTsKKwkJaW5fdmJsID0gaW50ZWxfcGlwZV9pbl92YmxhbmtfbG9j a2VkKGRldiwgcGlwZSk7CiAJCWlmICgoaW5fdmJsICYmIHBvc2l0aW9uID09IHZibF9zdGFydCAt IDEpIHx8CiAJCSAgICAoIWluX3ZibCAmJiBwb3NpdGlvbiA9PSB2YmxfZW5kIC0gMSkpCiAJCQlw b3NpdGlvbiA9IChwb3NpdGlvbiArIDEpICUgdnRvdGFsOwpAQCAtNjk2LDcgKzcyMCw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBwaXBlLAogCQkgKiBXZSBjYW4gc3BsaXQgdGhpcyBpbnRvIHZlcnRpY2FsIGFuZCBob3Jp em9udGFsCiAJCSAqIHNjYW5vdXQgcG9zaXRpb24uCiAJCSAqLwotCQlwb3NpdGlvbiA9IChJOTE1 X1JFQUQoUElQRUZSQU1FUElYRUwocGlwZSkpICYgUElQRV9QSVhFTF9NQVNLKSA+PiBQSVBFX1BJ WEVMX1NISUZUOworCQlwb3NpdGlvbiA9IChfX3Jhd19pOTE1X3JlYWQzMihkZXZfcHJpdiwgUElQ RUZSQU1FUElYRUwocGlwZSkpICYgUElQRV9QSVhFTF9NQVNLKSA+PiBQSVBFX1BJWEVMX1NISUZU OwogCiAJCS8qIGNvbnZlcnQgdG8gcGl4ZWwgY291bnRzICovCiAJCXZibF9zdGFydCAqPSBodG90 YWw7CkBAIC03MDQsNiArNzI4LDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9nZXRfY3J0Y19zY2Fub3V0 cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlLAogCQl2dG90YWwgKj0gaHRvdGFs OwogCX0KIAorCS8qIEdldCBvcHRpb25hbCBzeXN0ZW0gdGltZXN0YW1wIGFmdGVyIHF1ZXJ5LiAq LworCWlmIChldGltZSkKKwkJKmV0aW1lID0ga3RpbWVfZ2V0KCk7CisKKwkvKiBwcmVlbXB0X2Vu YWJsZV9ydCgpIHNob3VsZCBnbyByaWdodCBoZXJlIGluIFBSRUVNUFRfUlQgcGF0Y2hzZXQuICov CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGlycWZs YWdzKTsKKwogCWluX3ZibCA9IHBvc2l0aW9uID49IHZibF9zdGFydCAmJiBwb3NpdGlvbiA8IHZi bF9lbmQ7CiAKIAkvKgotLSAKMS43LjEwLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==