From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH] drm/vblank: Fixup and document timestamp update/read barriers Date: Wed, 15 Apr 2015 09:17:02 +0200 Message-ID: <1429082222-20820-1-git-send-email-daniel.vetter@ffwll.ch> 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: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel Graphics Development , DRI Development Cc: Daniel Vetter , =?UTF-8?q?Michel=20D=C3=A4nzer?= , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org VGhpcyB3YXMgYSBiaXQgdG9vIG11Y2ggY2FyZ28tY3VsdGVkLCBzbyBsZXRzIG1ha2UgaXQgc29s aWQ6Ci0gdmJsYW5rLT5jb3VudCBkb2Vzbid0IG5lZWQgdG8gYmUgYW4gYXRvbWljLCB3cml0ZXMg YXJlIGFsd2F5cyBkb25lCiAgdW5kZXIgdGhlIHByb3RlY3Rpb24gb2YgZGV2LT52YmxhbmtfdGlt ZV9sb2NrLiBTd2l0Y2ggdG8gYW4gdW5zaWduZWQKICBsb25nIGluc3RlYWQgYW5kIHVwZGF0ZSBj b21tZW50cy4gTm90ZSB0aGF0IGF0b21pY19yZWFkIGlzIGp1c3QgYQogIG5vcm1hbCByZWFkIG9m IGEgdm9sYXRpbGUgdmFyaWFibGUsIHNvIG5vIG5lZWQgdG8gYXVkaXQgYWxsIHRoZQogIHJlYWQt c2lkZSBhY2Nlc3Mgc3BlY2lmaWNhbGx5LgoKLSBUaGUgYmFycmllcnMgZm9yIHRoZSB2Ymxhbmsg Y291bnRlciBzZXFsb2NrIHdlcmVuJ3QgY29tcGxldGU6IFRoZQogIHJlYWQtc2lkZSB3YXMgbWlz c2luZyB0aGUgZmlyc3QgYmFycmllciBiZXR3ZWVuIHRoZSBjb3VudGVyIHJlYWQgYW5kCiAgdGhl IHRpbWVzdGFtcCByZWFkLCBpdCBvbmx5IGhhZCBhIGJhcnJpZXIgYmV0d2VlbiB0aGUgdHMgYW5k IHRoZQogIGNvdW50ZXIgcmVhZC4gV2UgbmVlZCBib3RoLgoKLSBCYXJyaWVycyB3ZXJlbid0IHBy b3Blcmx5IGRvY3VtZW50ZWQuIFNpbmNlIGJhcnJpZXJzIG9ubHkgd29yayBpZgogIHlvdSBoYXZl IHRoZW0gb24gYm90aHMgc2lkZXMgb2YgdGhlIHRyYW5zYWN0aW9uIGl0J3MgcHJ1ZGVudCB0bwog IHJlZmVyZW5jZSB3aGVyZSB0aGUgb3RoZXIgc2lkZSBpcy4gVG8gYXZvaWQgZHVwbGljYXRpbmcg dGhlCiAgd3JpdGUtc2lkZSBjb21tZW50IDMgdGltZXMgZXh0cmFjdCBhIGxpdHRsZSBzdG9yZV92 YmxhbmsoKSBoZWxwZXIuCiAgSW4gdGhhdCBoZWxwZXIgYWxzbyBhc3NlcnQgdGhhdCB3ZSBkbyBp bmRlZWQgaG9sZAogIGRldi0+dmJsYW5rX3RpbWVfbG9jaywgc2luY2UgaW4gc29tZSBjYXNlcyB0 aGUgbG9jayBpcyBhY3F1aXJlZCBhCiAgZmV3IGZ1bmN0aW9ucyB1cCBpbiB0aGUgY2FsbGNoYWlu LgoKU3BvdHRlZCB3aGlsZSByZXZpZXdpbmcgYSBwYXRjaCBmcm9tIENocmlzIFdpbHNvbiB0byBh ZGQgYSBmYXN0cGF0aCB0bwp0aGUgdmJsYW5rX3dhaXQgaW9jdGwuCgpDYzogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBNYXJpbyBLbGVpbmVyIDxtYXJpby5rbGVp bmVyLmRlQGdtYWlsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+CkNjOiBNaWNoZWwgRMOkbnplciA8bWljaGVsQGRhZW56ZXIubmV0PgpTaWdu ZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIGluY2x1ZGUvZHJtL2RybVAuaCAgICAgICAgfCAgOCArKyst LQogMiBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA0NiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9pcnEuYwppbmRleCBjOGEzNDQ3NjU3MGEuLjIzYmZiYzYxYTQ5NCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCkBA IC03NCw2ICs3NCwzMyBAQCBtb2R1bGVfcGFyYW1fbmFtZWQodmJsYW5rb2ZmZGVsYXksIGRybV92 Ymxhbmtfb2ZmZGVsYXksIGludCwgMDYwMCk7CiBtb2R1bGVfcGFyYW1fbmFtZWQodGltZXN0YW1w X3ByZWNpc2lvbl91c2VjLCBkcm1fdGltZXN0YW1wX3ByZWNpc2lvbiwgaW50LCAwNjAwKTsKIG1v ZHVsZV9wYXJhbV9uYW1lZCh0aW1lc3RhbXBfbW9ub3RvbmljLCBkcm1fdGltZXN0YW1wX21vbm90 b25pYywgaW50LCAwNjAwKTsKIAorc3RhdGljIHZvaWQgc3RvcmVfdmJsYW5rKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIGludCBjcnRjLAorCQkJIHVuc2lnbmVkIHZibGFua19jb3VudF9pbmMsCisJ CQkgc3RydWN0IHRpbWV2YWwgKnRfdmJsYW5rKQoreworCXN0cnVjdCBkcm1fdmJsYW5rX2NydGMg KnZibGFuayA9ICZkZXYtPnZibGFua1tjcnRjXTsKKwl1MzIgdHNsb3Q7CisKKwlhc3NlcnRfc3Bp bl9sb2NrZWQoJmRldi0+dmJsYW5rX3RpbWVfbG9jayk7CisKKwlpZiAodF92YmxhbmspIHsKKwkJ dHNsb3QgPSB2YmxhbmstPmNvdW50ICsgdmJsYW5rX2NvdW50X2luYzsKKwkJdmJsYW5rdGltZXN0 YW1wKGRldiwgY3J0YywgdHNsb3QpID0gKnRfdmJsYW5rOworCX0KKworCS8qCisJICogdmJsYW5r IHRpbWVzdGFtcCB1cGRhdGVzIGFyZSBwcm90ZWN0ZWQgb24gdGhlIHdyaXRlIHNpZGUgd2l0aAor CSAqIHZibGFua190aW1lX2xvY2ssIGJ1dCBvbiB0aGUgcmVhZCBzaWRlIGRvbmUgbG9ja2xlc3Ns eSB1c2luZyBhCisJICogc2VxdWVuY2UtbG9jayBvbiB0aGUgdmJsYW5rIGNvdW50ZXIuIEVuc3Vy ZSBjb3JyZWN0IG9yZGVyaW5nIHVzaW5nCisJICogbWVtb3J5IGJhcnJyaWVycy4gV2UgbmVlZCB0 aGUgYmFycmllciBib3RoIGJlZm9yZSBhbmQgYWxzbyBhZnRlciB0aGUKKwkgKiBjb3VudGVyIHVw ZGF0ZSB0byBzeW5jaHJvbml6ZSB3aXRoIHRoZSBuZXh0IHRpbWVzdGFtcCB3cml0ZS4KKwkgKiBU aGUgcmVhZC1zaWRlIGJhcnJpZXJzIGZvciB0aGlzIGFyZSBpbiBkcm1fdmJsYW5rX2NvdW50X2Fu ZF90aW1lLgorCSAqLworCXNtcF93bWIoKTsKKwl2YmxhbmstPmNvdW50ICs9IHZibGFua19jb3Vu dF9pbmM7CisJc21wX3dtYigpOworfQorCiAvKioKICAqIGRybV91cGRhdGVfdmJsYW5rX2NvdW50 IC0gdXBkYXRlIHRoZSBtYXN0ZXIgdmJsYW5rIGNvdW50ZXIKICAqIEBkZXY6IERSTSBkZXZpY2UK QEAgLTkzLDcgKzEyMCw3IEBAIG1vZHVsZV9wYXJhbV9uYW1lZCh0aW1lc3RhbXBfbW9ub3Rvbmlj LCBkcm1fdGltZXN0YW1wX21vbm90b25pYywgaW50LCAwNjAwKTsKIHN0YXRpYyB2b2lkIGRybV91 cGRhdGVfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQogewog CXN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuayA9ICZkZXYtPnZibGFua1tjcnRjXTsKLQl1 MzIgY3VyX3ZibGFuaywgZGlmZiwgdHNsb3Q7CisJdTMyIGN1cl92YmxhbmssIGRpZmY7CiAJYm9v bCByYzsKIAlzdHJ1Y3QgdGltZXZhbCB0X3ZibGFuazsKIApAQCAtMTI5LDE4ICsxNTYsMTIgQEAg c3RhdGljIHZvaWQgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgaW50IGNydGMpCiAJaWYgKGRpZmYgPT0gMCkKIAkJcmV0dXJuOwogCi0JLyogUmVpbml0aWFs aXplIGNvcnJlc3BvbmRpbmcgdmJsYW5rIHRpbWVzdGFtcCBpZiBoaWdoLXByZWNpc2lvbiBxdWVy eQotCSAqIGF2YWlsYWJsZS4gU2tpcCB0aGlzIHN0ZXAgaWYgcXVlcnkgdW5zdXBwb3J0ZWQgb3Ig ZmFpbGVkLiBXaWxsCi0JICogcmVpbml0aWFsaXplIGRlbGF5ZWQgYXQgbmV4dCB2YmxhbmsgaW50 ZXJydXB0IGluIHRoYXQgY2FzZS4KKwkvKgorCSAqIE9ubHkgcmVpbml0aWFsaXplIGNvcnJlc3Bv bmRpbmcgdmJsYW5rIHRpbWVzdGFtcCBpZiBoaWdoLXByZWNpc2lvbiBxdWVyeQorCSAqIGF2YWls YWJsZSBhbmQgZGlkbid0IGZhaWwuIFdpbGwgcmVpbml0aWFsaXplIGRlbGF5ZWQgYXQgbmV4dCB2 YmxhbmsKKwkgKiBpbnRlcnJ1cHQgaW4gdGhhdCBjYXNlLgogCSAqLwotCWlmIChyYykgewotCQl0 c2xvdCA9IGF0b21pY19yZWFkKCZ2YmxhbmstPmNvdW50KSArIGRpZmY7Ci0JCXZibGFua3RpbWVz dGFtcChkZXYsIGNydGMsIHRzbG90KSA9IHRfdmJsYW5rOwotCX0KLQotCXNtcF9tYl9fYmVmb3Jl X2F0b21pYygpOwotCWF0b21pY19hZGQoZGlmZiwgJnZibGFuay0+Y291bnQpOwotCXNtcF9tYl9f YWZ0ZXJfYXRvbWljKCk7CisJc3RvcmVfdmJsYW5rKGRldiwgY3J0YywgZGlmZiwgcmMgPyAmdF92 YmxhbmsgOiBOVUxMKTsKIH0KIAogLyoKQEAgLTIxOCw3ICsyMzksNyBAQCBzdGF0aWMgdm9pZCB2 YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykK IAkvKiBDb21wdXRlIHRpbWUgZGlmZmVyZW5jZSB0byBzdG9yZWQgdGltZXN0YW1wIG9mIGxhc3Qg dmJsYW5rCiAJICogYXMgdXBkYXRlZCBieSBsYXN0IGludm9jYXRpb24gb2YgZHJtX2hhbmRsZV92 YmxhbmsoKSBpbiB2YmxhbmsgaXJxLgogCSAqLwotCXZibGNvdW50ID0gYXRvbWljX3JlYWQoJnZi bGFuay0+Y291bnQpOworCXZibGNvdW50ID0gdmJsYW5rLT5jb3VudDsKIAlkaWZmX25zID0gdGlt ZXZhbF90b19ucygmdHZibGFuaykgLQogCQkgIHRpbWV2YWxfdG9fbnMoJnZibGFua3RpbWVzdGFt cChkZXYsIGNydGMsIHZibGNvdW50KSk7CiAKQEAgLTIzNCwxNyArMjU1LDggQEAgc3RhdGljIHZv aWQgdmJsYW5rX2Rpc2FibGVfYW5kX3NhdmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNy dGMpCiAJICogYXZhaWxhYmxlLiBJbiB0aGF0IGNhc2Ugd2UgY2FuJ3QgYWNjb3VudCBmb3IgdGhp cyBhbmQganVzdAogCSAqIGhvcGUgZm9yIHRoZSBiZXN0LgogCSAqLwotCWlmICh2YmxyYyAmJiAo YWJzNjQoZGlmZl9ucykgPiAxMDAwMDAwKSkgewotCQkvKiBTdG9yZSBuZXcgdGltZXN0YW1wIGlu IHJpbmdidWZmZXIuICovCi0JCXZibGFua3RpbWVzdGFtcChkZXYsIGNydGMsIHZibGNvdW50ICsg MSkgPSB0dmJsYW5rOwotCi0JCS8qIEluY3JlbWVudCBjb29rZWQgdmJsYW5rIGNvdW50LiBUaGlz IGFsc28gYXRvbWljYWxseSBjb21taXRzCi0JCSAqIHRoZSB0aW1lc3RhbXAgY29tcHV0ZWQgYWJv dmUuCi0JCSAqLwotCQlzbXBfbWJfX2JlZm9yZV9hdG9taWMoKTsKLQkJYXRvbWljX2luYygmdmJs YW5rLT5jb3VudCk7Ci0JCXNtcF9tYl9fYWZ0ZXJfYXRvbWljKCk7Ci0JfQorCWlmICh2YmxyYyAm JiAoYWJzNjQoZGlmZl9ucykgPiAxMDAwMDAwKSkKKwkJc3RvcmVfdmJsYW5rKGRldiwgY3J0Yywg MSwgJnR2YmxhbmspOwogCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT52YmxhbmtfdGlt ZV9sb2NrLCBpcnFmbGFncyk7CiB9CkBAIC04NTIsNyArODY0LDcgQEAgdTMyIGRybV92Ymxhbmtf Y291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpCiAKIAlpZiAoV0FSTl9PTihj cnRjID49IGRldi0+bnVtX2NydGNzKSkKIAkJcmV0dXJuIDA7Ci0JcmV0dXJuIGF0b21pY19yZWFk KCZ2YmxhbmstPmNvdW50KTsKKwlyZXR1cm4gdmJsYW5rLT5jb3VudDsKIH0KIEVYUE9SVF9TWU1C T0woZHJtX3ZibGFua19jb3VudCk7CiAKQEAgLTg5NywxNiArOTA5LDE3IEBAIHUzMiBkcm1fdmJs YW5rX2NvdW50X2FuZF90aW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjLAogCWlm IChXQVJOX09OKGNydGMgPj0gZGV2LT5udW1fY3J0Y3MpKQogCQlyZXR1cm4gMDsKIAotCS8qIFJl YWQgdGltZXN0YW1wIGZyb20gc2xvdCBvZiBfdmJsYW5rX3RpbWUgcmluZ2J1ZmZlcgotCSAqIHRo YXQgY29ycmVzcG9uZHMgdG8gY3VycmVudCB2YmxhbmsgY291bnQuIFJldHJ5IGlmCi0JICogY291 bnQgaGFzIGluY3JlbWVudGVkIGR1cmluZyByZWFkb3V0LiBUaGlzIHdvcmtzIGxpa2UKLQkgKiBh IHNlcWxvY2suCisJLyoKKwkgKiBWYmxhbmsgdGltZXN0YW1wcyBhcmUgcmVhZCBsb2NrbGVzcy4g VG8gZW5zdXJlIGNvbnNpc3RlbmN5IHRoZSB2YmxhbmsKKwkgKiBjb3VudGVyIGlzIHJlY2hlY2tl ZCBhbmQgb3JkZXJpbmcgaXMgZW5zdXJlZCB1c2luZyBtZW1vcnkgYmFycmllcnMuCisJICogVGhp cyB3b3JrcyBsaWtlIGEgc2VxbG9jay4gVGhlIHdyaXRlLXNpZGUgYmFycmllcnMgYXJlIGluIHN0 b3JlX3ZibGFuay4KIAkgKi8KIAlkbyB7Ci0JCWN1cl92YmxhbmsgPSBhdG9taWNfcmVhZCgmdmJs YW5rLT5jb3VudCk7CisJCWN1cl92YmxhbmsgPSB2YmxhbmstPmNvdW50OworCQlzbXBfcm1iKCk7 CiAJCSp2Ymxhbmt0aW1lID0gdmJsYW5rdGltZXN0YW1wKGRldiwgY3J0YywgY3VyX3ZibGFuayk7 CiAJCXNtcF9ybWIoKTsKLQl9IHdoaWxlIChjdXJfdmJsYW5rICE9IGF0b21pY19yZWFkKCZ2Ymxh bmstPmNvdW50KSk7CisJfSB3aGlsZSAoY3VyX3ZibGFuayAhPSB2YmxhbmstPmNvdW50KTsKIAog CXJldHVybiBjdXJfdmJsYW5rOwogfQpAQCAtMTcxNSw3ICsxNzI4LDcgQEAgYm9vbCBkcm1faGFu ZGxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKIAkgKi8KIAogCS8q IEdldCBjdXJyZW50IHRpbWVzdGFtcCBhbmQgY291bnQuICovCi0JdmJsY291bnQgPSBhdG9taWNf cmVhZCgmdmJsYW5rLT5jb3VudCk7CisJdmJsY291bnQgPSB2YmxhbmstPmNvdW50OwogCWRybV9n ZXRfbGFzdF92Ymx0aW1lc3RhbXAoZGV2LCBjcnRjLCAmdHZibGFuaywgRFJNX0NBTExFRF9GUk9N X1ZCTElSUSk7CiAKIAkvKiBDb21wdXRlIHRpbWUgZGlmZmVyZW5jZSB0byB0aW1lc3RhbXAgb2Yg bGFzdCB2YmxhbmsgKi8KQEAgLTE3MzEsMjAgKzE3NDQsMTEgQEAgYm9vbCBkcm1faGFuZGxlX3Zi bGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKIAkgKiBlLmcuLCBkdWUgdG8g c3B1cmlvdXMgdmJsYW5rIGludGVycnVwdHMuIFdlIG5lZWQgdG8KIAkgKiBpZ25vcmUgdGhvc2Ug Zm9yIGFjY291bnRpbmcuCiAJICovCi0JaWYgKGFiczY0KGRpZmZfbnMpID4gRFJNX1JFRFVOREFO VF9WQkxJUlFfVEhSRVNIX05TKSB7Ci0JCS8qIFN0b3JlIG5ldyB0aW1lc3RhbXAgaW4gcmluZ2J1 ZmZlci4gKi8KLQkJdmJsYW5rdGltZXN0YW1wKGRldiwgY3J0YywgdmJsY291bnQgKyAxKSA9IHR2 Ymxhbms7Ci0KLQkJLyogSW5jcmVtZW50IGNvb2tlZCB2YmxhbmsgY291bnQuIFRoaXMgYWxzbyBh dG9taWNhbGx5IGNvbW1pdHMKLQkJICogdGhlIHRpbWVzdGFtcCBjb21wdXRlZCBhYm92ZS4KLQkJ ICovCi0JCXNtcF9tYl9fYmVmb3JlX2F0b21pYygpOwotCQlhdG9taWNfaW5jKCZ2YmxhbmstPmNv dW50KTsKLQkJc21wX21iX19hZnRlcl9hdG9taWMoKTsKLQl9IGVsc2UgeworCWlmIChhYnM2NChk aWZmX25zKSA+IERSTV9SRURVTkRBTlRfVkJMSVJRX1RIUkVTSF9OUykKKwkJc3RvcmVfdmJsYW5r KGRldiwgY3J0YywgMSwgJnR2YmxhbmspOworCWVsc2UKIAkJRFJNX0RFQlVHKCJjcnRjICVkOiBS ZWR1bmRhbnQgdmJsaXJxIGlnbm9yZWQuIGRpZmZfbnMgPSAlZFxuIiwKIAkJCSAgY3J0YywgKGlu dCkgZGlmZl9ucyk7Ci0JfQogCiAJc3Bpbl91bmxvY2soJmRldi0+dmJsYW5rX3RpbWVfbG9jayk7 CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAuaApp bmRleCA2MmM0MDc3N2MwMDkuLjRjMzFhMmNjNWEzMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0v ZHJtUC5oCisrKyBiL2luY2x1ZGUvZHJtL2RybVAuaApAQCAtNjg2LDkgKzY4NiwxMyBAQCBzdHJ1 Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50IHsKIHN0cnVjdCBkcm1fdmJsYW5rX2NydGMgewog CXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7CQkvKiBwb2ludGVyIHRvIHRoZSBkcm1fZGV2aWNlICov CiAJd2FpdF9xdWV1ZV9oZWFkX3QgcXVldWU7CS8qKjwgVkJMQU5LIHdhaXQgcXVldWUgKi8KLQlz dHJ1Y3QgdGltZXZhbCB0aW1lW0RSTV9WQkxBTktUSU1FX1JCU0laRV07CS8qKjwgdGltZXN0YW1w IG9mIGN1cnJlbnQgY291bnQgKi8KIAlzdHJ1Y3QgdGltZXJfbGlzdCBkaXNhYmxlX3RpbWVyOwkJ LyogZGVsYXllZCBkaXNhYmxlIHRpbWVyICovCi0JYXRvbWljX3QgY291bnQ7CQkJLyoqPCBudW1i ZXIgb2YgVkJMQU5LIGludGVycnVwdHMgKi8KKworCS8qIHZibGFuayBjb3VudGVyLCBwcm90ZWN0 ZWQgYnkgZGV2LT52YmxhbmtfdGltZV9sb2NrIGZvciB3cml0ZXMgKi8KKwl1bnNpZ25lZCBsb25n IGNvdW50OworCS8qIHZibGFuayB0aW1lc3RhbXBzLCBwcm90ZWN0ZWQgYnkgZGV2LT52Ymxhbmtf dGltZV9sb2NrIGZvciB3cml0ZXMgKi8KKwlzdHJ1Y3QgdGltZXZhbCB0aW1lW0RSTV9WQkxBTktU SU1FX1JCU0laRV07CisKIAlhdG9taWNfdCByZWZjb3VudDsJCS8qIG51bWJlciBvZiB1c2VycyBv ZiB2YmxhbmsgaW50ZXJydXB0c3BlciBjcnRjICovCiAJdTMyIGxhc3Q7CQkJLyogcHJvdGVjdGVk IGJ5IGRldi0+dmJsX2xvY2ssIHVzZWQgKi8KIAkJCQkJLyogZm9yIHdyYXBhcm91bmQgaGFuZGxp bmcgKi8KLS0gCjIuMS40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=